package com.ydtech.modules.inv.controller; import com.alibaba.fastjson.JSONObject; import com.ydtech.constants.enums.inv.InvPayMethodEnum; import com.ydtech.core.page.HttpResult; import com.ydtech.exception.SystemException; import com.ydtech.modules.base.controller.BaseController; import com.ydtech.modules.inv.model.InvAccount; import com.ydtech.modules.inv.model.InvAccountCard; import com.ydtech.modules.inv.model.InvAccountExcel; import com.ydtech.modules.inv.service.InvAccountCardService; import com.ydtech.modules.inv.service.InvAccountExcelService; import com.ydtech.modules.inv.service.InvAccountService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.util.Date; import java.util.List; import java.util.Map; import static com.ydtech.modules.inv.utils.TransferUtils.isProfitFull; /** * @author jianlong * @date 2024-01-10 09:49 */ @Api(tags = "账户信息管理", value = "账户信息管理") @RequestMapping("accountExcel") @RestController public class invAccountExcelController { @Autowired private InvAccountExcelService invAccountExcelService; @PostMapping("excel") @ApiOperation("导出资金申请模板") public HttpResult excelAccountOperate(@RequestBody List idList) { return invAccountExcelService.excelAccount(idList); } @PostMapping("invert") @ApiOperation("插入资金模板信息") public HttpResult invertAccount(@RequestBody InvAccountExcel invAccountExcel) { BaseController baseController = new BaseController(); Date date = new Date(); invAccountExcel.setCreateBy(baseController.getUserName()); invAccountExcel.setCreateTime(date); JSONObject outProfit = invAccountExcel.getOutProfit(); JSONObject entProfit = invAccountExcel.getEntProfit(); isProfitFull(outProfit, entProfit); if (invAccountExcel.getOutCardNum() == null && invAccountExcel.getEnterCardNum() == null) { throw new SystemException("请先选择账户"); } if (invAccountExcel.getEnterCardNum().equals(invAccountExcel.getOutCardNum())) { throw new SystemException("无法转账给本公司"); } if (invAccountExcelService.save(invAccountExcel)) { return HttpResult.ok("", invAccountExcel.getExcelAccountOperateId()); } return HttpResult.error("新增失败"); } @PostMapping("update") @ApiOperation("修改资金模板信息") public HttpResult updateAccount(@RequestBody InvAccountExcel invAccountExcel) { JSONObject outProfit = invAccountExcel.getOutProfit(); JSONObject entProfit = invAccountExcel.getEntProfit(); isProfitFull(outProfit, entProfit); if (invAccountExcel.getEnterCardNum().equals(invAccountExcel.getOutCardNum())) { throw new SystemException("无法转账给本公司"); } if (invAccountExcel.getExcelAccountOperateId() != null) { if (invAccountExcel.getTransferFlag().equals("1")) { BaseController baseController = new BaseController(); invAccountExcel.setUpdateBy(baseController.getUserName()); invAccountExcel.setUpdateTime(new Date()); return HttpResult.ok("", invAccountExcelService.updateById(invAccountExcel)); } else { return HttpResult.error("已转账无法修改"); } } else { return HttpResult.error("id不能为空"); } } @ApiOperation("获取资金模板详细信息") @GetMapping("getAccountExcelById") public HttpResult getAccountExcelById(@RequestParam("excelAccountOperateId") String excelAccountOperateId) { if (excelAccountOperateId != null) { InvAccountExcel byId = invAccountExcelService.getById(excelAccountOperateId); StringBuilder a = new StringBuilder(); String[] split = byId.getPayMethod().split(","); for (String i : split) { a.append(InvPayMethodEnum.getNameByCode(i)).append(","); } byId.setPayMethod(a.toString()); return HttpResult.ok("", byId); } else { return HttpResult.error("id不能为空"); } } @ApiOperation("获取资金模板列表") @PostMapping("getAccountExcel") public HttpResult getAccountExcel(@RequestBody InvAccountExcel invAccountExcel) { return invAccountExcelService.selectAccountExcel(invAccountExcel); } @ApiOperation("删除资金模板") @DeleteMapping("{excelAccountOperateId}") public HttpResult deleteAccountExcel(@PathVariable("excelAccountOperateId") String excelAccountOperateId) { InvAccountExcel invAccountExcel = invAccountExcelService.getById(excelAccountOperateId); if (excelAccountOperateId != null) { if (invAccountExcel.getTransferFlag() == null) { return HttpResult.error("转账标志未传递"); } if (invAccountExcel.getTransferFlag().equals("1")) { invAccountExcel.setDelFlag("1"); return HttpResult.ok("", invAccountExcelService.updateById(invAccountExcel)); } else { return HttpResult.error("已转账无法删除"); } } else { return HttpResult.error("id不能为空"); } } @ApiOperation("修改转账状态") @GetMapping("updateTransferFlag") public HttpResult updateTransferFlag(@RequestParam("excelAccountOperateId") String excelAccountOperateId) { if (excelAccountOperateId == null) { return HttpResult.error("id不能为空"); } return invAccountExcelService.updateTransferFlag(excelAccountOperateId); } }