diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsContractCostSubItem.java b/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsContractCostSubItem.java index 4efe8298..7646821d 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsContractCostSubItem.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsContractCostSubItem.java @@ -40,11 +40,6 @@ public class TbsContractCostSubItem { private String payCompleteState; private String payRemark; private String payCode;// 唯一 - private String accountCode;// 拼科目编号 - private String accountName;// 拼科目名称 - private String costCenterNo;// 拼成本中心编号 - private String costCenterName;// 拼成本中心名称 - } @Data diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java index e6f9faf7..07ec2dec 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java @@ -259,157 +259,8 @@ public class TbsCostApplyServiceImpl extends ServiceImpl data = new HashMap<>(10); if(tbsCostApply.getContractFlag()!=null&&tbsCostApply.getContractFlag().equals(1)){ - - data.put("title",tbsCostApply.getChargeTheme()); - data.put("orgId",tbsCostApply.getId().toString()); - data.put("costApplyCode", tbsCostApply.getCode()); - data.put("applyUserCode", sysUser.getCode()); - data.put("applyUserName", sysUser.getName()); - data.put("supplierName", tbsCostApply.getSupplierName()); - data.put("supplierCode", tbsCostApply.getSupplierCode()); - data.put("targetId", tbsCostApply.getId()+""); - data.put("targetCode", tbsCostApply.getCode()); - data.put("exsp1",TbsSeeYonConst.CostApplyContractConf.Code()); - //添加跳转地址业务 - String urlKey = "exsp5"+IdUtil.simpleUUID(); - String baseJumpUrl = JumpToUtil.getUrl(projectProperties.getHostUrl(),TbsSeeYonConst.CostApplyConf.Code(),urlKey); - data.put("exsp5",urlKey); - data.put("cmsLink",baseJumpUrl); - - data.put("rowDate",DateUtils.format(LocalDateTime.now(), DateFormatString.DATE_TIME)); - data.put("rowState","03"); - - //拓展添加审批关联区域 - String saleRegionId = supplier.handleSaleRegionId(); - String bizRegionId = supplier.handleBizRegionId(); - BmsRegion saleRegion = regionMapper.selectById(saleRegionId); - BmsRegion2 bizRegion = region2Mapper.selectById(bizRegionId); - String saleRegionNames = saleRegion!=null?saleRegion.getPathNames():"null_申请时未录入"; - String bizRegionNames = bizRegion!=null?bizRegion.getPathNames():"null_申请时未录入"; - - //拓展添加审批关联 - data.put("biz_region",bizRegionNames); - data.put("exsp2",saleRegionNames); - data.put("dataState",TbsCostApplyState.State_1_apply.getCode()+""); - - //创建协议类data数据 - data.put("serialNumber",tbsCostApply.getCode()); - data.put("applySubject",tbsCostApply.getChargeTheme()); - data.put("supplierCode",tbsCostApply.getSupplierCode()); - data.put("supplierName",tbsCostApply.getSupplierName()); - data.put("totalSalesMoney",tbsCostApply.getTotalActivityPreAmount()); - data.put("totalExpenseRate",tbsCostApply.getTotalActivityAmount().divide(tbsCostApply.getTotalActivityPreAmount(),2,RoundingMode.DOWN)); - data.put("remark",tbsCostApply.getRemark()); - - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); - lqw.eq(TbsCostContract::getCostApplyId,tbsCostApply.getId()); - List contracts = costContractMapper.selectList(lqw); - if(contracts.size()>0){ - TbsCostContract contract = contracts.get(0); - data.put("payee",contract.getPayee()); - data.put("bankName",contract.getBankName()); - data.put("bankAccount",contract.getBankAccount()); - data.put("sealID",contract.getSealId()); - data.put("sealName",contract.getSealName()); - data.put("sealNum",contract.getSealNum()); - data.put("fileNum",contract.getFileNum()); - - data.put("contractName",contract.getContractName()); - data.put("contractTotalMoney",contract.getContractAmount()); - data.put("signDate",contract.getSignTime()==null?null:contract.getSignTime().toString()); - data.put("expireDate",contract.getExpireTime()==null?null:contract.getExpireTime().toString()); - data.put("contractContent",contract.getContractCondition()); - String urls = ""; - if (CollectionUtil.isNotEmpty(contract.getAttachIds())){ - List attachIds = Arrays.asList(contract.getAttachIds()); - List attachList = sysAttachService.listByIds(attachIds); - urls = attachList.stream().map(SysAttach::getPath).collect(Collectors.joining(" , ")); - } - data.put("contractFile",urls); - }else { - Assert.throwEx("请补充合同信息"); - } - - //创建子表数据 - List subList = new ArrayList<>(); - - //活动明细 - LambdaQueryWrapper actCgLqw = new LambdaQueryWrapper<>(); - actCgLqw.eq(TbsActivityCenterGoods::getCostApplyId,id); - List activityCenterGoodsList = tbsActivityCenterGoodsMapper.selectList(actCgLqw); - for (TbsActivityCenterGoods centerGoods : activityCenterGoodsList) { - TbsActivity currActivity = null; - for (TbsActivity activity : activityList) { - if(centerGoods.getActivityId().equals(activity.getId())){ - currActivity = activity; - break; - } - } - TbsContractCostSubItem.Activity dataActivity = new TbsContractCostSubItem.Activity(); - dataActivity.setActivityCode(currActivity.getActivityCode()); - dataActivity.setActivityPurpose(currActivity.getActTitle()); - dataActivity.setCostCode(tbsCostApply.getCode()); - dataActivity.setStartDate(currActivity.getActStartDate()==null?null:currActivity.getActStartDate().toString()); - dataActivity.setEndDate(currActivity.getActEndDate()==null?null:currActivity.getActEndDate().toString()); - dataActivity.setWriteOffDate(currActivity.getPreCheckDate()==null?null:currActivity.getPreCheckDate().toString()); - dataActivity.setProductType(centerGoods.getTargetType()); - dataActivity.setProduct(centerGoods.getTargetName()); - dataActivity.setActivityAccountCode(centerGoods.getSubjectCode()); - dataActivity.setActivityAccountName(centerGoods.getSubjectName()); - dataActivity.setActivityCostCenterNo(centerGoods.getCenterCode()); - dataActivity.setActivityCostCenterName(centerGoods.getCenterName()+"("+centerGoods.getCenterType()+")"); - dataActivity.setMoney(centerGoods.getCenterGoodsAmount()); - subList.add(dataActivity); - } - //活动的科目和成本中心 - List tbsActivityCenters = tbsActivityCenterService.listByCostApplyId(Long.parseLong(id)); - String concatCenterCodes = tbsActivityCenters.stream().map(TbsActivityCenter::getCenterCode).collect(Collectors.joining(",")); - String concatCenterNames = tbsActivityCenters.stream().map(TbsActivityCenter::getCenterName).collect(Collectors.joining(",")); - List tbsActivitySubjects = tbsActivitySubjectService.listByCostApplyId(Long.parseLong(id)); - String concatSubjectCodes = tbsActivitySubjects.stream().map(TbsActivitySubject::getSubjectCode).collect(Collectors.joining(",")); - String concatSubjectNames = tbsActivitySubjects.stream().map(TbsActivitySubject::getSubjectName).collect(Collectors.joining(",")); - // 付款条件 - for (TbsActivityPayCondition payCondition : payConditions) { - TbsActivity currActivity = null; - for (TbsActivity activity : activityList) { - if(payCondition.getActivityId().equals(activity.getId())){ - currActivity = activity; - break; - } - } - TbsContractCostSubItem.Payment subPayment = new TbsContractCostSubItem.Payment(); - subPayment.setPayItem(payCondition.getTitle()); - subPayment.setPayCondition(payCondition.getConditionMsg()); - subPayment.setApplyMoney(currActivity.getTotalAmount()); - subPayment.setPayDate(payCondition.getPaymentDate()!=null?payCondition.getPaymentDate().toString():null); - subPayment.setActualPayDate(null); - String stateMsg = payCondition.getFinishedFlag().equals(1)?"已完成":"未处理"; - subPayment.setPayCompleteState(stateMsg); - subPayment.setPayRemark(payCondition.getRemark()); - subPayment.setPayCode(payCondition.getCode()); - subPayment.setAccountCode(concatSubjectCodes); - subPayment.setAccountName(concatSubjectNames); - subPayment.setCostCenterNo(concatCenterCodes); - subPayment.setCostCenterName(concatCenterNames); - subList.add(subPayment); - } - - // 协议条款 - LambdaQueryWrapper todoLqw = new LambdaQueryWrapper<>(); - todoLqw.eq(TbsCostTodo::getCostApplyId,tbsCostApply.getId()); - List costTodoList = tbsCostTodoMapper.selectList(todoLqw); - for (TbsCostTodo costTodo : costTodoList) { - TbsContractCostSubItem.ToDoItem toDoItem = new TbsContractCostSubItem.ToDoItem(); - toDoItem.setServiceDescription(costTodo.getDescr()); - toDoItem.setDeliveryStandard(costTodo.getPayMsg()); - toDoItem.setDeliveryDate(costTodo.getPrePayDate()==null?null : costTodo.getPrePayDate().toString()); - toDoItem.setAgreeRemark(costTodo.getRemark()); - toDoItem.setAgreeCompleteState(costTodo.getFinishedFlag().equals(1)?"已完成":"未完成"); - subList.add(toDoItem); - } - //关联 - data.put("sub", subList); - + //创建协议的费用申请Data + this.buildContractApplyData(id, tbsCostApply, activityList, payConditions, supplier, sysUser, data); }else { //创建通用的费用申请Data this.buildCommonApplyData(id, tbsCostApply, activityList, supplier, result, sysUser, data); @@ -504,6 +355,172 @@ public class TbsCostApplyServiceImpl extends ServiceImpl activityList, List payConditions, BmsSupplier supplier, SysUser sysUser, Map data) { + data.put("title", tbsCostApply.getChargeTheme()); + data.put("orgId", tbsCostApply.getId().toString()); + data.put("costApplyCode", tbsCostApply.getCode()); + data.put("applyUserCode", sysUser.getCode()); + data.put("applyUserName", sysUser.getName()); + data.put("supplierName", tbsCostApply.getSupplierName()); + data.put("supplierCode", tbsCostApply.getSupplierCode()); + data.put("targetId", tbsCostApply.getId()+""); + data.put("targetCode", tbsCostApply.getCode()); + data.put("exsp1",TbsSeeYonConst.CostApplyContractConf.Code()); + //添加跳转地址业务 + String urlKey = "exsp5"+IdUtil.simpleUUID(); + String baseJumpUrl = JumpToUtil.getUrl(projectProperties.getHostUrl(),TbsSeeYonConst.CostApplyConf.Code(),urlKey); + data.put("exsp5",urlKey); + data.put("cmsLink",baseJumpUrl); + + data.put("rowDate",DateUtils.format(LocalDateTime.now(), DateFormatString.DATE_TIME)); + data.put("rowState","03"); + + //拓展添加审批关联区域 + String saleRegionId = supplier.handleSaleRegionId(); + String bizRegionId = supplier.handleBizRegionId(); + BmsRegion saleRegion = regionMapper.selectById(saleRegionId); + BmsRegion2 bizRegion = region2Mapper.selectById(bizRegionId); + String saleRegionNames = saleRegion!=null?saleRegion.getPathNames():"null_申请时未录入"; + String bizRegionNames = bizRegion!=null?bizRegion.getPathNames():"null_申请时未录入"; + + //拓展添加审批关联 + data.put("biz_region",bizRegionNames); + data.put("exsp2",saleRegionNames); + data.put("dataState",TbsCostApplyState.State_1_apply.getCode()+""); + + //创建协议类data数据 + data.put("serialNumber", tbsCostApply.getCode()); + data.put("applySubject", tbsCostApply.getChargeTheme()); + data.put("supplierCode", tbsCostApply.getSupplierCode()); + data.put("supplierName", tbsCostApply.getSupplierName()); + data.put("totalSalesMoney", tbsCostApply.getTotalActivityPreAmount()); + data.put("totalExpenseRate", tbsCostApply.getTotalActivityAmount().divide(tbsCostApply.getTotalActivityPreAmount(),2,RoundingMode.DOWN)); + data.put("remark", tbsCostApply.getRemark()); + + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(TbsCostContract::getCostApplyId, tbsCostApply.getId()); + List contracts = costContractMapper.selectList(lqw); + + if(contracts.size()>0){ + //活动的科目和成本中心 + List tbsActivityCenters = tbsActivityCenterService.listByCostApplyId(Long.parseLong(id)); + String concatCenterCodes = tbsActivityCenters.stream().map(TbsActivityCenter::getCenterCode).collect(Collectors.joining(",")); + String concatCenterNames = tbsActivityCenters.stream().map(TbsActivityCenter::getCenterName).collect(Collectors.joining(",")); + List tbsActivitySubjects = tbsActivitySubjectService.listByCostApplyId(Long.parseLong(id)); + String concatSubjectCodes = tbsActivitySubjects.stream().map(TbsActivitySubject::getSubjectCode).collect(Collectors.joining(",")); + String concatSubjectNames = tbsActivitySubjects.stream().map(TbsActivitySubject::getSubjectName).collect(Collectors.joining(",")); + + TbsCostContract contract = contracts.get(0); + data.put("payee",contract.getPayee()); + data.put("bankName",contract.getBankName()); + data.put("bankAccount",contract.getBankAccount()); + data.put("sealID",contract.getSealId()); + data.put("sealName",contract.getSealName()); + data.put("sealNum",contract.getSealNum()); + data.put("fileNum",contract.getFileNum()); + + data.put("accountCode",concatSubjectCodes); + data.put("accountName",concatSubjectNames); + data.put("costCenterNo",concatCenterCodes); + data.put("costCenterName",concatCenterNames); + + + data.put("contractName",contract.getContractName()); + data.put("contractTotalMoney",contract.getContractAmount()); + data.put("signDate",contract.getSignTime()==null?null:contract.getSignTime().toString()); + data.put("expireDate",contract.getExpireTime()==null?null:contract.getExpireTime().toString()); + data.put("contractContent",contract.getContractCondition()); + String urls = ""; + if (CollectionUtil.isNotEmpty(contract.getAttachIds())){ + List attachIds = Arrays.asList(contract.getAttachIds()); + List attachList = sysAttachService.listByIds(attachIds); + urls = attachList.stream().map(SysAttach::getPath).collect(Collectors.joining(" , ")); + } + data.put("contractFile",urls); + }else { + Assert.throwEx("请补充合同信息"); + } + + //创建子表数据 + List subList = new ArrayList<>(); + + //活动明细 + LambdaQueryWrapper actCgLqw = new LambdaQueryWrapper<>(); + actCgLqw.eq(TbsActivityCenterGoods::getCostApplyId, id); + List activityCenterGoodsList = tbsActivityCenterGoodsMapper.selectList(actCgLqw); + for (TbsActivityCenterGoods centerGoods : activityCenterGoodsList) { + TbsActivity currActivity = null; + for (TbsActivity activity : activityList) { + if(centerGoods.getActivityId().equals(activity.getId())){ + currActivity = activity; + break; + } + } + TbsContractCostSubItem.Activity dataActivity = new TbsContractCostSubItem.Activity(); + dataActivity.setActivityCode(currActivity.getActivityCode()); + dataActivity.setActivityPurpose(currActivity.getActTitle()); + dataActivity.setCostCode(tbsCostApply.getCode()); + dataActivity.setStartDate(currActivity.getActStartDate()==null?null:currActivity.getActStartDate().toString()); + dataActivity.setEndDate(currActivity.getActEndDate()==null?null:currActivity.getActEndDate().toString()); + dataActivity.setWriteOffDate(currActivity.getPreCheckDate()==null?null:currActivity.getPreCheckDate().toString()); + dataActivity.setProductType(centerGoods.getTargetType()); + dataActivity.setProduct(centerGoods.getTargetName()); + dataActivity.setActivityAccountCode(centerGoods.getSubjectCode()); + dataActivity.setActivityAccountName(centerGoods.getSubjectName()); + dataActivity.setActivityCostCenterNo(centerGoods.getCenterCode()); + dataActivity.setActivityCostCenterName(centerGoods.getCenterName()+"("+centerGoods.getCenterType()+")"); + dataActivity.setMoney(centerGoods.getCenterGoodsAmount()); + subList.add(dataActivity); + } + // 付款条件 + for (TbsActivityPayCondition payCondition : payConditions) { + TbsActivity currActivity = null; + for (TbsActivity activity : activityList) { + if(payCondition.getActivityId().equals(activity.getId())){ + currActivity = activity; + break; + } + } + TbsContractCostSubItem.Payment subPayment = new TbsContractCostSubItem.Payment(); + subPayment.setPayItem(payCondition.getTitle()); + subPayment.setPayCondition(payCondition.getConditionMsg()); + subPayment.setApplyMoney(currActivity.getTotalAmount()); + subPayment.setPayDate(payCondition.getPaymentDate()!=null?payCondition.getPaymentDate().toString():null); + subPayment.setActualPayDate(null); + String stateMsg = payCondition.getFinishedFlag().equals(1)?"已完成":"未处理"; + subPayment.setPayCompleteState(stateMsg); + subPayment.setPayRemark(payCondition.getRemark()); + subPayment.setPayCode(payCondition.getCode()); + subList.add(subPayment); + } + + // 协议条款 + LambdaQueryWrapper todoLqw = new LambdaQueryWrapper<>(); + todoLqw.eq(TbsCostTodo::getCostApplyId, tbsCostApply.getId()); + List costTodoList = tbsCostTodoMapper.selectList(todoLqw); + for (TbsCostTodo costTodo : costTodoList) { + TbsContractCostSubItem.ToDoItem toDoItem = new TbsContractCostSubItem.ToDoItem(); + toDoItem.setServiceDescription(costTodo.getDescr()); + toDoItem.setDeliveryStandard(costTodo.getPayMsg()); + toDoItem.setDeliveryDate(costTodo.getPrePayDate()==null?null : costTodo.getPrePayDate().toString()); + toDoItem.setAgreeRemark(costTodo.getRemark()); + toDoItem.setAgreeCompleteState(costTodo.getFinishedFlag().equals(1)?"已完成":"未完成"); + subList.add(toDoItem); + } + //关联 + data.put("sub", subList); + } + private void buildCommonApplyData(String id, TbsCostApply tbsCostApply, List activityList, BmsSupplier supplier, TbsBudgetCostResult result, SysUser sysUser, Map data) { String actTitles = activityList.stream().map(TbsActivity::getActTitle).collect(Collectors.joining("; ")); data.put("costApplyCode", tbsCostApply.getCode());