diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/enums/CompanyMessageEnums.java b/jero-boot-incoming-payment/src/main/java/com/jero/common/enums/CompanyMessageEnums.java index 7aa69e92..750dc527 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/common/enums/CompanyMessageEnums.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/enums/CompanyMessageEnums.java @@ -24,7 +24,9 @@ public enum CompanyMessageEnums { MSG10("QY_10_YJTZ_MAIL_CONTRACT","邮寄通知","contractName"),//查看该物流信息,contractName MSG11("QY_11_CKTZ_PAY","催款通知","projectName"),//弹窗:查看该项目详情 MSG12("QY_12_WJTZ_WORK_GROUP_SEND","文件通知","workGroupName,systemAddress,wxName"),//弹窗:查看该项目详情,workGroupName,systemUrl,wxName - MSG13("QY_13_HYTZ_FBW_CREATE","会议通知","meetingName,busId");//点击跳转到报名页面,meetingName,busId + MSG13("QY_13_JFTZ_DZ_CREATE","缴费通知","projectName,amount"),//弹窗:查看该项目详情,projectName,amount + MSG14("QY_14_KPTZ_KP_CREATE","开票通知","projectName"),//弹窗:查看该项目详情,projectName + MSG15("QY_15_HYTZ_NOT_AUDIT_CREATE","会议通知","");//弹窗:查看该会议详情 diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/enums/ManagementMessageEnums.java b/jero-boot-incoming-payment/src/main/java/com/jero/common/enums/ManagementMessageEnums.java index 12fae14d..6949f126 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/common/enums/ManagementMessageEnums.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/enums/ManagementMessageEnums.java @@ -19,7 +19,12 @@ public enum ManagementMessageEnums { MSG6("GL_6_DBTZ_ADD","打包通知","projectName"),//查看该项目详情,projectName MSG7("GL_7_DBTZ_CONTRACT","打包通知","projectName"),//查看项目详情,projectName MSG8("GL_8_HYTZ_ON_ACCESS_UPDATE","会议通知","meetingName,username1,username2,record"),//查看该参会人详情,meetingName,username1,username2 - MSG9("GL_9_QYTZ_CREATE","企业通知","");//企业列表页 + MSG9("GL_9_QYTZ_CREATE","企业通知",""),//企业列表页 + MSG10("GL_10_HYTZ_CREATE","会议通知","meetingName"),//参会人员列表页, meetingName + MSG11("GL_11_DZTZ_DZ_CREATE","到账通知","projectName,time,amount"),//查看该项目详情, projectName,time,amount + MSG12("GL_12_KPTZ_KP_CREATE","开票通知","projectName,time,amount,num"),//查看该项目详情,projectName,time,amount,num + MSG13("GL_13_YJTZ_PJ_CREATE","邮寄通知","projectName"),//查看该项目详情, projectName + MSG14("GL_14_YJTZ_HT_CREATE","邮寄通知","contractNum,contractName");//跳转到合同的详情页面, contractNum,contractName private String code; diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/enums/MessageUrlEnums.java b/jero-boot-incoming-payment/src/main/java/com/jero/common/enums/MessageUrlEnums.java index d2ce082c..2cd1054b 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/common/enums/MessageUrlEnums.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/enums/MessageUrlEnums.java @@ -21,6 +21,11 @@ public enum MessageUrlEnums { M_OPEN_TYPE7("M_OPEN_TYPE7","component","@comp/ProjectDetailModal"), M_OPEN_TYPE8("M_OPEN_TYPE8","url","/incomePayments/meetManage/SignUpInfoDetail"), M_OPEN_TYPE9("M_OPEN_TYPE9","url","/businessManagement/BusinessManagement"), + M_OPEN_TYPE10("M_OPEN_TYPE10","url","/businessManagement/BusinessManagement"),// todo 未改 + M_OPEN_TYPE11("M_OPEN_TYPE11","url","/businessManagement/BusinessManagement"),// todo 未改 + M_OPEN_TYPE12("M_OPEN_TYPE12","url","/businessManagement/BusinessManagement"),// todo 未改 + M_OPEN_TYPE13("M_OPEN_TYPE13","url","/businessManagement/BusinessManagement"),// todo 未改 + M_OPEN_TYPE14("M_OPEN_TYPE14","url","/businessManagement/BusinessManagement"),// todo 未改 // todo 待定企业端 C_OPEN_TYPE1("C_OPEN_TYPE1","href",""), C_OPEN_TYPE2("C_OPEN_TYPE2","component","MessagePage/MeetingDetailModal"), @@ -34,7 +39,10 @@ public enum MessageUrlEnums { C_OPEN_TYPE10("C_OPEN_TYPE10","href","https://www.kuaidi100.com/all/hhair56.shtml?mscomnu"), C_OPEN_TYPE11("C_OPEN_TYPE11","component","MessagePage/ProjectDetailModal"), C_OPEN_TYPE12("C_OPEN_TYPE12","component","MessagePage/ProjectDetailModal"), - C_OPEN_TYPE13("C_OPEN_TYPE13","href",""); + C_OPEN_TYPE13("C_OPEN_TYPE13","href",""),// todo 未改 + C_OPEN_TYPE14("C_OPEN_TYPE14","href",""),// todo 未改 + C_OPEN_TYPE15("C_OPEN_TYPE15","href","");// todo 未改 + /** * 业务类型(email:邮件 bpm:流程) diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/xml/ProjectDetailMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/xml/ProjectDetailMapper.xml index 9056b56c..baa15669 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/xml/ProjectDetailMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/xml/ProjectDetailMapper.xml @@ -177,9 +177,6 @@ UNION ALL select count(*) as num from pay_member_project_subitem msub where DATE_FORMAT(create_time,'%Y-%m') = #{time} - - UNION ALL - select count(*) as num from tb_member_project_subitem tmsub where DATE_FORMAT(create_time,'%Y-%m') = #{time} ) a \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/service/impl/SendMessageServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/common/service/impl/SendMessageServiceImpl.java index 931c7d32..97ad8074 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/common/service/impl/SendMessageServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/service/impl/SendMessageServiceImpl.java @@ -295,6 +295,36 @@ public class SendMessageServiceImpl implements SendMessageService { signature = "中汽中心标准所"; templateId = "1b9dd79bb217420fa25725feb1ffaef4"; break; + case "GL_10_HYTZ_CREATE": + //中汽中心标准所-管理端-会议通知-10 + sender = "8821092414406"; + signature = "中汽中心标准所"; + templateId = "c842206392b944998bf9dd2742570931"; + break; + case "GL_11_DZTZ_DZ_CREATE": + //中汽中心标准所-管理端-到账通知-11 + sender = "8821092414406"; + signature = "中汽中心标准所"; + templateId = "908238343aa94bab9d3921f77e98431d"; + break; + case "GL_12_KPTZ_KP_CREATE": + //中汽中心标准所-管理端-开票通知-12 + sender = "8821092414406"; + signature = "中汽中心标准所"; + templateId = "626041c1823240b99f7aad68aa2bd9ec"; + break; + case "GL_13_YJTZ_PJ_CREATE": + //中汽中心标准所-管理端-邮寄通知-13 + sender = "8821092414406"; + signature = "中汽中心标准所"; + templateId = "b933c487581146f38a7a7bf306b8aa0e"; + break; + case "GL_14_YJTZ_HT_CREATE": + //中汽中心标准所-管理端-邮寄通知-14 + sender = "8821092414406"; + signature = "中汽中心标准所"; + templateId = "6f054af3cfc345168e1e2e3cbf03403b"; + break; case "QY_1_HYTZ_WORK_GROUP_CREATE": //中汽中心标准所-企业端-会议通知-1 sender = "8821092414406"; @@ -369,13 +399,25 @@ public class SendMessageServiceImpl implements SendMessageService { //中汽中心标准所-企业端-文件通知-12 sender = "8821092414406"; signature = "中汽中心标准所"; - templateId = "e1a089109aaa4820927d488613171b54";//todo 审核不通过 + templateId = "e1a089109aaa4820927d488613171b54"; break; - case "QY_13_HYTZ_FBW_CREATE": - //中汽中心标准所-企业端-会议通知-13 + case "QY_13_JFTZ_DZ_CREATE": + //中汽中心标准所-企业端-缴费通知-13 sender = "8821092414406"; signature = "中汽中心标准所"; - templateId = "926e49e09008438b88d80849fe9f5bbb"; + templateId = "8beb893a9ce64444a71019c9eec6e310"; + break; + case "QY_14_KPTZ_KP_CREATE": + //中汽中心标准所-企业端-开票通知-14 + sender = "8821092414406"; + signature = "中汽中心标准所"; + templateId = "9895707d70584324b3ff398b362a83e6"; + break; + case "QY_15_HYTZ_NOT_AUDIT_CREATE": + //中汽中心标准所-企业端-会议通知-15 + sender = "8821092414406"; + signature = "中汽中心标准所"; + templateId = "5f438a655ed148c69f9d17e881112017"; break; default: throw new JeroBootException("codeType flase."); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/common/PayIncomeContractCommon.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/common/PayIncomeContractCommon.java index ed9f433b..ec954d33 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/common/PayIncomeContractCommon.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/common/PayIncomeContractCommon.java @@ -80,11 +80,11 @@ public class PayIncomeContractCommon { */ public final static List LIST_SPENDING_CONTRACT = Arrays.asList("合同编号","合同名称","签订单位","签订联系人","是否开口","负责人", "部门名称","签订合同总金额","税率","未税金额","合同签订日期","合同终止日期","合同约定主要时点", - "应收金额","已收金额","未收金额","账款状态","合同约定付款次数"); + "应付金额","已付金额","未付金额","账款状态","合同约定付款次数"); /** * 支出合同分期信息excel 表头 */ - public final static List LIST_SPENDING_CONTRACT_INSTALLMENT = Arrays.asList("阶段","阶段应收","阶段应收时间","阶段实收","阶段实收时间"); + public final static List LIST_SPENDING_CONTRACT_INSTALLMENT = Arrays.asList("阶段","阶段应付","阶段应付时间","阶段实付","阶段实付时间"); /** * 来源(1:收入合同,2:打包管理) diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/controller/PayIncomeContractController.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/controller/PayIncomeContractController.java index 06c8db93..4dd653b9 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/controller/PayIncomeContractController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/controller/PayIncomeContractController.java @@ -456,12 +456,39 @@ public class PayIncomeContractController extends JeroController queryByCompanyId(@RequestParam(name="companyId") String companyId) { + if (StringUtils.isBlank(companyId)) { + return Result.error("企业id不能为空!"); + } + LambdaQueryWrapper queryPayIncomeContract = new LambdaQueryWrapper(); + queryPayIncomeContract.eq(PayIncomeContract::getSignedCompanyId,companyId); + List listPayIncomeContract = payIncomeContractService.list(queryPayIncomeContract); + List list = new ArrayList<>(); + if(!CollectionUtils.isEmpty(listPayIncomeContract)){ + list = listPayIncomeContract.stream().map(PayIncomeContract::getContractNum).collect(Collectors.toList()); + } + return Result.OK(list); + } /** * 通过id查询详情 * @@ -520,8 +547,15 @@ public class PayIncomeContractController extends JeroController query = new LambdaQueryWrapper<>(); query.in(PayIncomeContractInstallment::getContractId,listId); List listPayIncomeContractInstallment = payIncomeContractInstallmentService.list(query); - if(!CollectionUtils.isEmpty(listPayIncomeContractInstallment)){ - exportList.forEach(p->{ - String str = JSON.toJSONString(p); - Map map = JSONObject.parseObject(str,Map.class); - map.put("contractDate",DateUtils.date2Str(p.getContractDate(),new SimpleDateFormat("yyyy-MM-dd"))); - map.put("terminationDate",DateUtils.date2Str(p.getTerminationDate(),new SimpleDateFormat("yyyy-MM-dd"))); - map.put("opening",sysBaseAPI.translateDict("yn",String.valueOf(p.getOpening()))); - map.put("accountStatus",sysBaseAPI.translateDict("revenue_contract_account_status",String.valueOf(p.getAccountStatus()))); - map.put("pack",sysBaseAPI.translateDict("yn",String.valueOf(p.getPack()))); - List listSub = listPayIncomeContractInstallment.stream().filter(item-> - Objects.equals(p.getId(),item.getContractId())).collect(Collectors.toList()); - if(!CollectionUtils.isEmpty(listSub)){ + exportList.forEach(p->{ + if(Objects.isNull(p.getAccountsReceivableAmount())){ + p.setAccountsReceivableAmount(new BigDecimal("0.00")); + } + if(Objects.isNull(p.getAmountReceived())){ + p.setAmountReceived(new BigDecimal("0.00")); + } + p.setOutstandingAmount(p.getAccountsReceivableAmount().subtract(p.getAmountReceived())); + // 已收全款 + if(p.getOutstandingAmount().compareTo(new BigDecimal("0.00")) == 0 + || p.getOutstandingAmount().compareTo(new BigDecimal("0.00")) < 0){ + p.setAccountStatus(PayIncomeContractCommon.ACCOUNT_STATUS3); + } + // 部分收款 + if(p.getOutstandingAmount().compareTo(new BigDecimal("0.00")) > 0 && p.getOutstandingAmount().compareTo(p.getAccountsReceivableAmount()) < 0){ + p.setAccountStatus(PayIncomeContractCommon.ACCOUNT_STATUS2); + } + // 待收款 + if(p.getOutstandingAmount().compareTo(p.getAccountsReceivableAmount()) == 0 && p.getAccountsReceivableAmount().compareTo(new BigDecimal("0.00")) > 0 ){ + p.setAccountStatus(PayIncomeContractCommon.ACCOUNT_STATUS1); + } + String str = JSON.toJSONString(p); + Map map = JSONObject.parseObject(str,Map.class); + map.put("contractDate",DateUtils.date2Str(p.getContractDate(),new SimpleDateFormat("yyyy-MM-dd"))); + map.put("terminationDate",DateUtils.date2Str(p.getTerminationDate(),new SimpleDateFormat("yyyy-MM-dd"))); + map.put("opening",sysBaseAPI.translateDict("yn",String.valueOf(p.getOpening()))); + map.put("accountStatus",sysBaseAPI.translateDict("revenue_contract_account_status",String.valueOf(p.getAccountStatus()))); + map.put("pack",sysBaseAPI.translateDict("yn",String.valueOf(p.getPack()))); + + if(!CollectionUtils.isEmpty(listPayIncomeContractInstallment)) { + List listSub = listPayIncomeContractInstallment.stream().filter(item -> + Objects.equals(p.getId(), item.getContractId())).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(listSub)) { int count = mapCount.get("count"); - if(count < listSub.size()){ - mapCount.put("count",listSub.size()); + if (count < listSub.size()) { + mapCount.put("count", listSub.size()); } - listSub.forEach(p1->{ + listSub.forEach(p1 -> { int n = listSub.indexOf(p1) + 1; - map.put("phaseName" + n,p1.getPhaseName()); - map.put("accountsReceivableAmount" + n,Objects.isNull(p1.getAccountsReceivableAmount()) ? "" : String.valueOf(p1.getAccountsReceivableAmount())); - map.put("accountsReceivableTime" + n, DateUtils.date2Str(p1.getAccountsReceivableTime(),new SimpleDateFormat("yyyy-MM-dd"))); - map.put("paidAmount" + n,Objects.isNull(p1.getPaidAmount()) ? "" : String.valueOf(p1.getPaidAmount())); - map.put("paidTime" + n,DateUtils.date2Str(p1.getPaidTime(),new SimpleDateFormat("yyyy-MM-dd"))); + map.put("phaseName" + n, p1.getPhaseName()); + map.put("accountsReceivableAmount" + n, Objects.isNull(p1.getAccountsReceivableAmount()) ? "" : String.valueOf(p1.getAccountsReceivableAmount())); + map.put("accountsReceivableTime" + n, DateUtils.date2Str(p1.getAccountsReceivableTime(), new SimpleDateFormat("yyyy-MM-dd"))); + map.put("paidAmount" + n, Objects.isNull(p1.getPaidAmount()) ? "" : String.valueOf(p1.getPaidAmount())); + map.put("paidTime" + n, DateUtils.date2Str(p1.getPaidTime(), new SimpleDateFormat("yyyy-MM-dd"))); }); } list.add(map); - }); - } + } + }); }else{ throw new JeroBootException("数据为空!"); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/controller/PaySpendingContractController.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/controller/PaySpendingContractController.java index af6ec595..5a07d442 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/controller/PaySpendingContractController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/controller/PaySpendingContractController.java @@ -7,6 +7,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -20,7 +21,9 @@ import com.jero.common.system.base.controller.JeroController; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.DateUtils; import com.jero.common.util.oConvertUtils; +import com.jero.contract.common.PayIncomeContractCommon; import com.jero.contract.entity.*; +import com.jero.contract.service.IPaySpendingContractAuditService; import com.jero.contract.service.IPaySpendingContractInstallmentService; import com.jero.contract.service.IPaySpendingContractService; import com.jero.contract.vo.*; @@ -56,6 +59,8 @@ public class PaySpendingContractController extends JeroController 50){ return Result.error("合同编号长度不能大于50个字符!"); @@ -96,7 +102,7 @@ public class PaySpendingContractController extends JeroController page = new Page<>(pageNo, pageSize); - IPage pageList = paySpendingContractService.queryPageList(page, paySpendingContract,startTime,endTime); + IPage pageList = paySpendingContractService.queryPageList(page, paySpendingContract,startTime,endTime,chargeStatus); return Result.OK(pageList); } @@ -154,6 +160,40 @@ public class PaySpendingContractController extends JeroController audit(@RequestBody PaySpendingContractAudit paySpendingContractAudit) { + if(StringUtils.isBlank(paySpendingContractAudit.getContractId())){ + return Result.error("id不能为空!"); + } + paySpendingContractService.updateAudit(paySpendingContractAudit); + return Result.OK("审核成功!"); + } + + /** + * 归档 + * + * @param paySpendingContractAudit 审核记录 + */ + @AutoLog(value = "收入合同-归档",operateType = 8) + @RequiresPermissions("revenueContract:archive") + @ApiOperation(value="收入合同-归档", notes="收入合同-归档") + @PostMapping(value = "/archive") + public Result archive(@RequestBody PaySpendingContractAudit paySpendingContractAudit) { + if(StringUtils.isBlank(paySpendingContractAudit.getContractId())){ + return Result.error("id不能为空!"); + } + paySpendingContractService.updateArchive(paySpendingContractAudit); + return Result.OK("归档成功!"); + } /** * 通过id删除 * @@ -217,14 +257,40 @@ public class PaySpendingContractController extends JeroController listPaySpendingContractInstallment = paySpendingContractInstallmentService.list(queryPaySpendingContractInstallment); String str = JSON.toJSONString(paySpendingContract); + PaySpendingContractDetailOutput paySpendingContractDetailOutput = JSONObject.parseObject(str,PaySpendingContractDetailOutput.class); - // 字典翻译 - paySpendingContractDetailOutput.setOpening_dictText(sysBaseAPI.translateDict("yn",String.valueOf(paySpendingContract.getOpening()))); paySpendingContractDetailOutput.setAccountStatus_dictText(sysBaseAPI.translateDict("revenue_contract_account_status",String.valueOf(paySpendingContract.getAccountStatus()))); paySpendingContractDetailOutput.setPack_dictText(sysBaseAPI.translateDict("yn",String.valueOf(paySpendingContract.getPack()))); + paySpendingContractDetailOutput.setContractStatus_dictText(sysBaseAPI.translateDict("revenue_contract_status",String.valueOf(paySpendingContract.getStatus()))); if(!CollectionUtils.isEmpty(listPaySpendingContractInstallment)){ paySpendingContractDetailOutput.setListInstallment(listPaySpendingContractInstallment); } + + LambdaQueryWrapper queryPaySpendingContractAudit = new LambdaQueryWrapper<>(); + queryPaySpendingContractAudit.in(PaySpendingContractAudit::getContractId,id); + List listPaySpendingContractAudit = paySpendingContractAuditService.list(queryPaySpendingContractAudit); + List listArchive = new ArrayList<>(); + List listAudit = new ArrayList<>(); + if(!CollectionUtils.isEmpty(listPaySpendingContractAudit)){ + String strAudit = JSON.toJSONString(listPaySpendingContractAudit); + List listAll = JSONArray.parseArray(strAudit,PaySpendingContractAuditOutput.class); + listAll.forEach(p->{ + if(!Objects.isNull(p.getContractStatus())){ + p.setContractStatus_dictText(sysBaseAPI.translateDict("revenue_contract_status",String.valueOf(p.getContractStatus()))); + } + }); + // 获取存档记录 + listArchive = listAll.stream().filter(p->Objects.equals(p.getContractStatus(), PayIncomeContractCommon.STATUS5)).collect(Collectors.toList()); + // 获取审核记录 + listAudit = listAll.stream().filter(p->!Objects.equals(p.getContractStatus(), PayIncomeContractCommon.STATUS5)).collect(Collectors.toList()); + } + + if(!CollectionUtils.isEmpty(listArchive)){ + paySpendingContractDetailOutput.setListArchive(listArchive); + } + if(!CollectionUtils.isEmpty(listAudit)){ + paySpendingContractDetailOutput.setListAudit(listAudit); + } return Result.OK(paySpendingContractDetailOutput); } @@ -252,14 +318,14 @@ public class PaySpendingContractController extends JeroController pageList = paySpendingContractService.queryList(paySpendingContract.getPrincipalId(), paySpendingContract.getContractNum(), - paySpendingContract.getContractName(),startTime,endTime); + List pageList = paySpendingContractService.queryList(paySpendingContract,startTime,endTime,chargeStatus); List exportList = null; // 过滤选中数据 @@ -324,24 +390,24 @@ public class PaySpendingContractController extends JeroController 0){ for (int i = 1; i <= count; i++){ filedsList.add(new ExcelExportEntity(i + "阶段", "phaseName" + i)); - filedsList.add(new ExcelExportEntity(i + "阶段应收", "accountsReceivableAmount" + i)); - filedsList.add(new ExcelExportEntity(i + "阶段应收时间", "accountsReceivableTime" + i)); - filedsList.add(new ExcelExportEntity(i + "阶段实收", "paidAmount" + i)); - filedsList.add(new ExcelExportEntity(i + "阶段实收时间", "paidTime" + i)); + filedsList.add(new ExcelExportEntity(i + "阶段应付", "accountsReceivableAmount" + i)); + filedsList.add(new ExcelExportEntity(i + "阶段应付时间", "accountsReceivableTime" + i)); + filedsList.add(new ExcelExportEntity(i + "阶段实付", "paidAmount" + i)); + filedsList.add(new ExcelExportEntity(i + "阶段实付时间", "paidTime" + i)); } } // Step.3 AutoPoi 导出Excel ModelAndView mv = new ModelAndView(new JeecgMapExcelView()); - mv.addObject(MapExcelConstants.FILE_NAME, "收入合同"); //此处设置的filename无效 ,前端会重更新设置一下 + mv.addObject(MapExcelConstants.FILE_NAME, "支出合同"); //此处设置的filename无效 ,前端会重更新设置一下 mv.addObject(MapExcelConstants.ENTITY_LIST, filedsList); //update-begin--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置-------------------- ExportParams exportParams=new ExportParams("支出合同", "支出合同"); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/entity/PaySpendingContract.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/entity/PaySpendingContract.java index 9cef8f7f..942a989b 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/entity/PaySpendingContract.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/entity/PaySpendingContract.java @@ -174,6 +174,11 @@ public class PaySpendingContract implements Serializable { @ApiModelProperty(value = "打包年份") // @Pattern(regexp = "^\\d{4}$",message = "打包年份式错误") private String packYear; + /**合同状态(2:已通过,3:未通过,4:已归档)*/ + @Excel(name = "合同状态(2:已通过,3:未通过,4:已存档)", width = 15) + @ApiModelProperty(value = "合同状态(2:已通过,3:未通过,4:已存档)") + @Dict(dicCode = "expenditure_contract_status") + private java.lang.Integer status; /**创建人*/ @ApiModelProperty(value = "创建人") private String createBy; diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/entity/PaySpendingContractAudit.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/entity/PaySpendingContractAudit.java new file mode 100644 index 00000000..5989b0a5 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/entity/PaySpendingContractAudit.java @@ -0,0 +1,72 @@ +package com.jero.contract.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.jero.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; +import javax.validation.constraints.Size; +import java.io.Serializable; + +/** + * @Description: pay_spending_contract_audit + * @Author: jeecg-boot + * @Date: 2021-09-03 + * @Version: V1.0 + */ +@Data +@TableName("pay_spending_contract_audit") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="pay_spending_contract_audit对象", description="pay_spending_contract_audit") +public class PaySpendingContractAudit implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private String id; + /**合同id*/ + @Excel(name = "合同id", width = 15) + @ApiModelProperty(value = "合同id") + @Size(max = 32, message = "合同id长度不能大于32个字符") + private String contractId; + /**合同状态(2:待审核,3:已通过,4:未通过,5:已归档)*/ + @Excel(name = "合同状态(2:待审核,3:已通过,4:未通过,5:已归档)", width = 15) + @ApiModelProperty(value = "合同状态(2:待审核,3:已通过,4:未通过,5:已归档)") + @Dict(dicCode = "expenditure_contract_status") + @Max(5) + @Min(1) + private Integer contractStatus; + /**拒绝说明*/ + @Excel(name = "拒绝说明", width = 15) + @ApiModelProperty(value = "拒绝说明") + @Size(max = 200, message = "拒绝说明长度不能大于200个字符") + private String explainRemarks; + /**创建人*/ + @ApiModelProperty(value = "创建人") + private String createBy; + /**创建时间*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建时间") + private java.util.Date createTime; + /**更新人*/ + @ApiModelProperty(value = "更新人") + private String updateBy; + /**更新时间*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新时间") + private java.util.Date updateTime; +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/PaySpendingContractAuditMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/PaySpendingContractAuditMapper.java new file mode 100644 index 00000000..4ae5ffb4 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/PaySpendingContractAuditMapper.java @@ -0,0 +1,15 @@ +package com.jero.contract.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jero.contract.entity.PaySpendingContractAudit; + +/** + * @Description: pay_income_contract_audit + * @Author: jeecg-boot + * @Date: 2021-09-03 + * @Version: V1.0 + */ +public interface PaySpendingContractAuditMapper extends BaseMapper { + +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/PaySpendingContractMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/PaySpendingContractMapper.java index c2f06047..c01bfe8f 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/PaySpendingContractMapper.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/PaySpendingContractMapper.java @@ -26,7 +26,7 @@ public interface PaySpendingContractMapper extends BaseMapper queryPageList(Page page, @Param("paySpendingContract") PaySpendingContract paySpendingContract - ,@Param("startTime") String startTime, @Param("endTime") String endTime); + ,@Param("startTime") String startTime, @Param("endTime") String endTime,@Param("chargeStatus") String chargeStatus); /** * @Description excel导出 @@ -36,8 +36,7 @@ public interface PaySpendingContractMapper extends BaseMapper queryList(@Param("principalId") String principalId, @Param("contractNum") String contractNum, - @Param("contractName") String contractName,@Param("startTime") String startTime, - @Param("endTime") String endTime); + List queryList(@Param("paySpendingContract") PaySpendingContract paySpendingContract + ,@Param("startTime") String startTime, @Param("endTime") String endTime,@Param("chargeStatus") String chargeStatus); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/xml/PayIncomeContractMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/xml/PayIncomeContractMapper.xml index 521bdff2..ebb12161 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/xml/PayIncomeContractMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/xml/PayIncomeContractMapper.xml @@ -231,9 +231,6 @@ pic.termination_date AS terminationDate, pic.contract_time_points AS contractTimePoints, pic.accounts_receivable_amount AS accountsReceivableAmount, - pic.amount_received AS amountReceived, - pic.outstanding_amount AS outstandingAmount, - pic.account_status AS accountStatus, pic.contract_payment_times AS contractPaymentTimes, pic.pack, pic.pack_year AS packYear, @@ -248,26 +245,27 @@ where contract_id = pic.id AND accounts_receivable_time is not null AND accounts_receivable_time < DATE_FORMAT( NOW(), '%Y-%m-%d' ) AND accounts_receivable_amount != 0 AND accounts_receivable_amount > if(paid_amount is null or paid_amount = '',0,paid_amount) ) AS chargeStatus, - GROUP_CONCAT(project.projectName ORDER BY project.id DESC) AS associatedProject + GROUP_CONCAT(project.projectName ORDER BY project.id DESC) AS associatedProject, + sum(project.paid_amount) as amountReceived FROM pay_income_contract pic LEFT JOIN pay_income_contract_associated pica ON pica.contract_id = pic.id LEFT JOIN ( - SELECT id,charge_project AS projectName FROM pay_common_project + SELECT id,charge_project AS projectName,paid_amount FROM pay_common_project UNION ALL - SELECT pwgs.id,pwg.working_group_project AS projectName FROM pay_working_group_subitem pwgs + SELECT pwgs.id,pwg.working_group_project AS projectName,paid_amount FROM pay_working_group_subitem pwgs LEFT JOIN pay_working_group pwg ON pwg.id = pwgs.working_group_id WHERE pwg.working_group_project IS NOT NULL AND pwg.working_group_project != '' UNION ALL - SELECT sit.id,meeting.meeting_name AS projectName FROM pay_meeting meeting + SELECT sit.id,meeting.meeting_name AS projectName,paid_amount FROM pay_meeting meeting INNER JOIN pay_meeting_situation sit ON meeting.id = sit.meeting_id WHERE meeting.meeting_name IS NOT NULL AND meeting.meeting_name != '' UNION ALL - SELECT msub.id,pmp.project_name AS projectName FROM pay_member_project pmp + SELECT msub.id,pmp.project_name AS projectName,paid_amount FROM pay_member_project pmp INNER JOIN pay_member_project_subitem msub ON pmp.id = msub.project_id WHERE pmp.project_name IS NOT NULL AND pmp.project_name != '' UNION ALL - SELECT tmsub.id,tmember.project_name AS projectName FROM tb_member_project tmember + SELECT tmsub.id,tmember.project_name AS projectName,paid_amount FROM tb_member_project tmember INNER JOIN tb_member_project_subitem tmsub ON tmember.id=tmsub.project_id where tmember.project_name IS NOT NULL AND tmember.project_name != '' ) project ON project.id = pica.project_id diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/xml/PaySpendingContractAuditMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/xml/PaySpendingContractAuditMapper.xml new file mode 100644 index 00000000..39461036 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/xml/PaySpendingContractAuditMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/xml/PaySpendingContractMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/xml/PaySpendingContractMapper.xml index e6e3c365..42c7841e 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/xml/PaySpendingContractMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/xml/PaySpendingContractMapper.xml @@ -30,6 +30,8 @@ contract_payment_times, pack, pack_year, + status, + if(status = 2,1,0) as statusOrder, create_by, create_time, update_by, @@ -55,6 +57,12 @@ AND principal_id = #{paySpendingContract.principalId} + + AND psc.status = #{paySpendingContract.status} + + + AND psc.chargeStatus = #{chargeStatus} + ORDER BY chargeStatus desc,create_time desc @@ -97,11 +105,11 @@ ) AS chargeStatus FROM pay_spending_contract psc - - AND contract_num LIKE CONCAT('%',CONCAT(#{contractNum},'%')) + + AND contract_num LIKE CONCAT('%',CONCAT(#{paySpendingContract.contractNum},'%')) - - AND contract_name LIKE CONCAT('%',CONCAT(#{contractName},'%')) + + AND contract_name LIKE CONCAT('%',CONCAT(#{paySpendingContract.contractName},'%')) AND DATE_FORMAT(create_time,'%Y-%m-%d') >= #{startTime} @@ -109,8 +117,14 @@ AND DATE_FORMAT(create_time,'%Y-%m-%d') <= #{endTime} - - AND principal_id = #{principalId} + + AND principal_id = #{paySpendingContract.principalId} + + + AND psc.status = #{paySpendingContract.status} + + + AND psc.chargeStatus = #{chargeStatus} ORDER BY chargeStatus desc,create_time desc diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/IPaySpendingContractAuditService.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/IPaySpendingContractAuditService.java new file mode 100644 index 00000000..c7d88516 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/IPaySpendingContractAuditService.java @@ -0,0 +1,14 @@ +package com.jero.contract.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.contract.entity.PaySpendingContractAudit; + +/** + * @Description: pay_income_contract_audit + * @Author: jeecg-boot + * @Date: 2021-09-03 + * @Version: V1.0 + */ +public interface IPaySpendingContractAuditService extends IService { + +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/IPaySpendingContractService.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/IPaySpendingContractService.java index 3c1acc02..e862f9a3 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/IPaySpendingContractService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/IPaySpendingContractService.java @@ -3,7 +3,10 @@ package com.jero.contract.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.contract.entity.PayIncomeContract; +import com.jero.contract.entity.PayIncomeContractAudit; import com.jero.contract.entity.PaySpendingContract; +import com.jero.contract.entity.PaySpendingContractAudit; import com.jero.contract.vo.PaySpendingContractInput; import javax.servlet.http.HttpServletRequest; @@ -24,7 +27,7 @@ public interface IPaySpendingContractService extends IService queryPageList(Page page,PaySpendingContract paySpendingContract,String startTime,String endTime); + IPage queryPageList(Page page,PaySpendingContract paySpendingContract,String startTime,String endTime,String chargeStatus); /** * @Description 添加 @@ -79,5 +82,23 @@ public interface IPaySpendingContractService extends IService queryList(String principalId, String contractNum,String contractName,String startTime,String endTime); + List queryList(PaySpendingContract paySpendingContract,String startTime,String endTime,String chargeStatus); + /** + * @Description 审核 + * @Author lqt + * @Date 2021/9/5 + * @Param paySpendingContractAudit 审核记录 + * @Return + * @Exception + */ + void updateAudit(PaySpendingContractAudit paySpendingContractAudit); + /** + * @Description 归档 + * @Author lqt + * @Date 2021/9/5 + * @Param paySpendingContractAudit 审核记录 + * @Return + * @Exception + */ + void updateArchive(PaySpendingContractAudit paySpendingContractAudit); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PayIncomeContractServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PayIncomeContractServiceImpl.java index 3428d279..7d94d1de 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PayIncomeContractServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PayIncomeContractServiceImpl.java @@ -46,6 +46,7 @@ import com.jero.modules.system.service.ISysUserService; import com.jero.pack.common.PackCommon; import com.jero.pack.entity.PayPackCompanyProject; import com.jero.pack.service.IPayPackCompanyProjectService; +import com.jero.project.common.PayProjectCommon; import com.jero.project.entity.PayCommonProject; import com.jero.project.entity.PayWorkingGroup; import com.jero.project.entity.PayWorkingGroupSubItem; @@ -138,10 +139,10 @@ public class PayIncomeContractServiceImpl extends ServiceImpl updatePayCommonProject = new LambdaUpdateWrapper<>(); + updatePayCommonProject.set(PayCommonProject::getUpdateBy,sysUser.getUsername()); + updatePayCommonProject.set(PayCommonProject::getUpdateTime,new Date()); // 合同为打包 if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){ // 查询打包项目来源是否为收入合同 @@ -616,14 +618,12 @@ public class PayIncomeContractServiceImpl extends ServiceImpl updatePayCommonProject = new LambdaUpdateWrapper<>(); - updatePayCommonProject.set(PayCommonProject::getUpdateBy,sysUser.getUsername()); - updatePayCommonProject.set(PayCommonProject::getUpdateTime,new Date()); updatePayCommonProject.set(PayCommonProject::getPack,PayIncomeContractCommon.PACK0); - updatePayCommonProject.eq(PayCommonProject::getId,payIncomeContractAssociated.getProjectId()); - payCommonProjectService.update(updatePayCommonProject); } } + updatePayCommonProject.eq(PayCommonProject::getId,payIncomeContractAssociated.getProjectId()); + updatePayCommonProject.set(PayCommonProject::getContractNum,null); + payCommonProjectService.update(updatePayCommonProject); break; case PayIncomeContractCommon.PROJECT_TYPE2: // 工作组项目 @@ -633,7 +633,9 @@ public class PayIncomeContractServiceImpl extends ServiceImpl updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>(); + updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getUpdateBy,sysUser.getUsername()); + updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getUpdateTime,new Date()); // 合同为打包 if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){ // 查询打包项目来源是否为收入合同 @@ -644,14 +646,12 @@ public class PayIncomeContractServiceImpl extends ServiceImpl updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>(); - updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getUpdateBy,sysUser.getUsername()); - updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getUpdateTime,new Date()); updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getPack,PayIncomeContractCommon.PACK0); - updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getId,listPayWorkingGroupSubItem.getId()); - payWorkingGroupSubItemService.update(updatePayWorkingGroupSubItem); } } + updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getId,listPayWorkingGroupSubItem.getId()); + updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getContractNum,null); + payWorkingGroupSubItemService.update(updatePayWorkingGroupSubItem); break; case PayIncomeContractCommon.PROJECT_TYPE3: // 会议项目 @@ -682,6 +682,9 @@ public class PayIncomeContractServiceImpl extends ServiceImpl updatePayMemberProjectSubitem = new LambdaUpdateWrapper<>(); + updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getUpdateBy,sysUser.getUsername()); + updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getUpdateTime,new Date()); // 合同为打包 if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){ // 查询打包项目来源是否为收入合同 @@ -692,14 +695,12 @@ public class PayIncomeContractServiceImpl extends ServiceImpl updatePayMemberProjectSubitem = new LambdaUpdateWrapper<>(); - updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getUpdateBy,sysUser.getUsername()); - updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getUpdateTime,new Date()); updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getPack,PayIncomeContractCommon.PACK0); - updatePayMemberProjectSubitem.eq(PayMemberProjectSubitem::getId,payMemberProjectSubitem.getId()); - memberProjectSubitemService.update(updatePayMemberProjectSubitem); } } + updatePayMemberProjectSubitem.eq(PayMemberProjectSubitem::getId,payMemberProjectSubitem.getId()); + updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getContractNo,null); + memberProjectSubitemService.update(updatePayMemberProjectSubitem); break; case PayIncomeContractCommon.PROJECT_TYPE5: // 标协会员 @@ -1114,7 +1115,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl implements IPaySpendingContractAuditService { + +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PaySpendingContractServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PaySpendingContractServiceImpl.java index 56f0f4ee..10a0e588 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PaySpendingContractServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PaySpendingContractServiceImpl.java @@ -1,27 +1,39 @@ package com.jero.contract.service.impl; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.common.RoleCommon; +import com.jero.common.dto.SendMessageDTO; +import com.jero.common.enums.ManagementMessageEnums; import com.jero.common.exception.JeroBootException; +import com.jero.common.service.SendMessageService; import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.DateUtils; import com.jero.common.util.ImportExcelUtil; +import com.jero.common.util.PasswordUtil; import com.jero.common.util.ValidUtil; import com.jero.contract.common.PayIncomeContractCommon; +import com.jero.contract.entity.PayIncomeContract; import com.jero.contract.entity.PaySpendingContract; +import com.jero.contract.entity.PaySpendingContractAudit; import com.jero.contract.entity.PaySpendingContractInstallment; import com.jero.contract.mapper.PaySpendingContractMapper; +import com.jero.contract.service.IPaySpendingContractAuditService; import com.jero.contract.service.IPaySpendingContractInstallmentService; import com.jero.contract.service.IPaySpendingContractService; import com.jero.contract.vo.PaySpendingContractImportExcel; import com.jero.contract.vo.PaySpendingContractInput; +import com.jero.mail.entity.PayMailContract; +import com.jero.mail.service.IPayMailContractService; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.service.ISysUserService; +import com.jero.temporary.entity.PayContactsManagementTemporary; +import com.jero.temporary.service.IPayContactsManagementTemporaryService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -64,11 +76,19 @@ public class PaySpendingContractServiceImpl extends ServiceImpl queryPageList(Page page, PaySpendingContract paySpendingContract, String startTime, String endTime) { - return paySpendingContractMapper.queryPageList(page,paySpendingContract,startTime,endTime); + public IPage queryPageList(Page page, PaySpendingContract paySpendingContract, String startTime, String endTime,String chargeStatus) { + return paySpendingContractMapper.queryPageList(page,paySpendingContract,startTime,endTime,chargeStatus); } @Override @@ -83,7 +103,7 @@ public class PaySpendingContractServiceImpl extends ServiceImpl list = sysUserService.getRolesUser(Arrays.asList(RoleCommon.CWRY)); + if(!CollectionUtils.isEmpty(list)){ + list.forEach(p->{ + // 发送消息 + SendMessageDTO sendMessageDTO = new SendMessageDTO(); + if(!StringUtils.isBlank(p.getEmail())){ + sendMessageDTO.setEmail(PasswordUtil.decrypt(p.getEmail())); + } + if(!StringUtils.isEmpty(p.getPhone())){ + sendMessageDTO.setPhone(PasswordUtil.decrypt(p.getPhone())); + } + HashMap map = new HashMap<>(); + map.put("contractNum",paySpendingContract.getContractNum()); + map.put("contractName",paySpendingContract.getContractName()); + sendMessageDTO.setFromUser(sysUser.getUsername()); + sendMessageDTO.setToUser(p.getUsername()); + sendMessageDTO.setTemplateCode(ManagementMessageEnums.MSG2.getCode()); + sendMessageDTO.setTemplateParam(map); + sendMessageDTO.setBusType("M_OPEN_TYPE2"); + JSONObject json = new JSONObject(); + json.put("revenueId",paySpendingContract.getId()); + json.put("contractNum",paySpendingContract.getContractNum()); + sendMessageDTO.setBusId(json.toJSONString()); + sendMessageService.SendMessageService(sendMessageDTO); + }); + } return paySpendingContract; } @@ -146,7 +195,7 @@ public class PaySpendingContractServiceImpl extends ServiceImpl listPaySpendingContractStatus = paySpendingContractService.list(query); if(CollectionUtils.isEmpty(listPaySpendingContractStatus)){ - throw new JeroBootException("收入合同不存在!"); + throw new JeroBootException("支出合同不存在!"); } LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); StringBuilder msg = new StringBuilder(); @@ -352,28 +402,28 @@ public class PaySpendingContractServiceImpl extends ServiceImpl"); + sb.append("第").append(n + 1).append("行:").append(i+1).append("阶段应付格式错误,请修改。
"); }else{ paySpendingContractInstallment.setAccountsReceivableAmount(new BigDecimal(sub.get(mm + 1))); } } if(!StringUtils.isBlank(sub.get(mm + 2))){ if(!DateUtils.isValidDate(sub.get(mm + 2))){ - sb.append("第").append(n + 1).append("行:").append(i+1).append("阶段应收时间日期格式不正确,请修改。
"); + sb.append("第").append(n + 1).append("行:").append(i+1).append("阶段应付时间日期格式不正确,请修改。
"); }else{ paySpendingContractInstallment.setAccountsReceivableTime(DateUtils.str2Date(sub.get(mm + 2),new SimpleDateFormat("yyyy-MM-dd"))); } } if(!StringUtils.isBlank(sub.get(mm + 3))){ if(!pattern.matcher(sub.get(mm + 3)).matches()){ - sb.append("第").append(n + 1).append("行:").append(i+1).append("阶段实收格式错误,请修改。
"); + sb.append("第").append(n + 1).append("行:").append(i+1).append("阶段实付格式错误,请修改。
"); }else{ paySpendingContractInstallment.setPaidAmount(new BigDecimal(sub.get(mm + 3))); } } if(!StringUtils.isBlank(sub.get(mm + 4))) { if (!DateUtils.isValidDate(sub.get(mm + 4))) { - sb.append("第").append(n + 1).append("行:").append(i+1).append("阶段实收时间日期格式不正确,请修改。
"); + sb.append("第").append(n + 1).append("行:").append(i+1).append("阶段实付时间日期格式不正确,请修改。
"); } else { paySpendingContractInstallment.setPaidTime(DateUtils.str2Date(sub.get(mm + 4), new SimpleDateFormat("yyyy-MM-dd"))); } @@ -458,9 +508,9 @@ public class PaySpendingContractServiceImpl extends ServiceImpl"); + sb.append("第").append(n + 1).append("行:已付金额大于应付金额,请修改。
"); }else if(!Objects.isNull(paySpendingContract.getOutstandingAmount()) && paySpendingContract.getAccountsReceivableAmount().subtract(paySpendingContract.getAmountReceived()).compareTo(paySpendingContract.getOutstandingAmount()) != 0){ - sb.append("第").append(n + 1).append("行:未收金额不正确,请修改。
"); + sb.append("第").append(n + 1).append("行:未付金额不正确,请修改。
"); } } List listPaySpendingContractInstallment = p.getListInstallment(); @@ -469,7 +519,7 @@ public class PaySpendingContractServiceImpl extends ServiceImpl"); + sb.append("第").append(n + 1).append("行:").append(c).append("阶段实付大于应付,请修改。
"); } }); } @@ -499,6 +549,7 @@ public class PaySpendingContractServiceImpl extends ServiceImpl listPaySpendingContractInstallment = p.getListInstallment(); if(!CollectionUtils.isEmpty(listPaySpendingContractInstallment)){ @@ -518,8 +569,135 @@ public class PaySpendingContractServiceImpl extends ServiceImpl queryList(String principalId,String contractNum, String contractName, String startTime, String endTime) { - return paySpendingContractMapper.queryList(principalId, contractNum, contractName, startTime, endTime); + public List queryList(PaySpendingContract paySpendingContract,String startTime,String endTime,String chargeStatus) { + return paySpendingContractMapper.queryList( paySpendingContract, startTime, endTime, chargeStatus); + } + + @Override + @Transactional + public void updateAudit(PaySpendingContractAudit paySpendingContractAudit) { + PaySpendingContract paySpendingContractStatus = paySpendingContractService.getById(paySpendingContractAudit.getContractId()); + if(Objects.isNull(paySpendingContractStatus)){ + throw new JeroBootException("支出合同不存在!"); + } + // 校验合同状态是否为待审核 + if(Objects.isNull(paySpendingContractAudit.getContractStatus()) || !Objects.equals(paySpendingContractStatus.getStatus(),PayIncomeContractCommon.STATUS2) + || (!Objects.equals(paySpendingContractAudit.getContractStatus(),PayIncomeContractCommon.STATUS3) && !Objects.equals(paySpendingContractAudit.getContractStatus(),PayIncomeContractCommon.STATUS4))){ + throw new JeroBootException("支出合同状态不正确!"); + } + + if(Objects.equals(paySpendingContractAudit.getContractStatus(),PayIncomeContractCommon.STATUS4) + && StringUtils.isBlank(paySpendingContractAudit.getExplainRemarks())){ + throw new JeroBootException("请输入拒绝说明!"); + } + if(Objects.equals(paySpendingContractAudit.getContractStatus(),PayIncomeContractCommon.STATUS3)){ + paySpendingContractAudit.setExplainRemarks(""); + } + + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + LambdaUpdateWrapper update = new LambdaUpdateWrapper<>(); + update.set(PaySpendingContract::getUpdateBy,sysUser.getUsername()); + update.set(PaySpendingContract::getUpdateTime,new Date()); + update.eq(PaySpendingContract::getId,paySpendingContractAudit.getContractId()); + update.set(PaySpendingContract::getStatus, paySpendingContractAudit.getContractStatus()); + paySpendingContractService.update(update); + // 添加审核记录 + paySpendingContractAuditService.save(paySpendingContractAudit); + + // 审核通过 + if(Objects.equals(paySpendingContractAudit.getContractStatus(),PayIncomeContractCommon.STATUS3)){ + // 更新到合同邮寄表 + PayMailContract payMailContract = new PayMailContract(); + PayContactsManagementTemporary payContactsManagementTemporary = payContactsManagementTemporaryService.getById(paySpendingContractStatus.getSignedContactsTemporaryId()); + if(!Objects.isNull(payContactsManagementTemporary)){ + payMailContract.setMobile(payContactsManagementTemporary.getPhone()); + payMailContract.setEmail(payContactsManagementTemporary.getEmail()); + } + payMailContract.setContractId(paySpendingContractStatus.getId()); + payMailContract.setPostStatus(PayIncomeContractCommon.POST_STATUS0); + payMailContract.setLiaisonMan(paySpendingContractStatus.getContractName()); + payMailContractService.save(payMailContract); + // 获取项目负责人,发送消息 + List list = sysUserService.getRolesUser(Arrays.asList(RoleCommon.CWRY)); + if(!CollectionUtils.isEmpty(list)){ + list.forEach(p->{ + // 发送消息 + SendMessageDTO sendMessageDTO = new SendMessageDTO(); + if(!StringUtils.isBlank(p.getEmail())){ + sendMessageDTO.setEmail(PasswordUtil.decrypt(p.getEmail())); + } + if(!StringUtils.isBlank(p.getPhone())){ + sendMessageDTO.setPhone(PasswordUtil.decrypt(p.getPhone())); + } + HashMap map = new HashMap<>(); + map.put("contractNum",paySpendingContractStatus.getContractNum()); + map.put("contractName",paySpendingContractStatus.getContractName()); + sendMessageDTO.setFromUser(sysUser.getUsername()); + sendMessageDTO.setToUser(p.getUsername()); + sendMessageDTO.setTemplateCode(ManagementMessageEnums.MSG3.getCode()); + sendMessageDTO.setTemplateParam(map); + sendMessageDTO.setBusType("M_OPEN_TYPE3"); + JSONObject json = new JSONObject(); + json.put("revenueId",paySpendingContractStatus.getId()); + json.put("contractNum",paySpendingContractStatus.getContractNum()); + sendMessageDTO.setBusId(json.toJSONString()); + sendMessageService.SendMessageService(sendMessageDTO); + }); + } + } + // 审核未通过 + if(Objects.equals(paySpendingContractAudit.getContractStatus(),PayIncomeContractCommon.STATUS4)){ + SysUser sysUserData = sysUserService.getById(paySpendingContractStatus.getPrincipalId()); + if(!Objects.isNull(sysUserData)){ + // 发送消息 + SendMessageDTO sendMessageDTO = new SendMessageDTO(); + if(!StringUtils.isBlank(sysUserData.getEmail())){ + sendMessageDTO.setEmail(PasswordUtil.decrypt(sysUserData.getEmail())); + } + if(!StringUtils.isEmpty(sysUserData.getPhone())){ + sendMessageDTO.setPhone(PasswordUtil.decrypt(sysUserData.getPhone())); + } + HashMap map = new HashMap<>(); + map.put("contractNum",paySpendingContractStatus.getContractNum()); + map.put("contractName",paySpendingContractStatus.getContractName()); + sendMessageDTO.setFromUser(sysUser.getUsername()); + sendMessageDTO.setToUser(sysUserData.getUsername()); + sendMessageDTO.setTemplateCode(ManagementMessageEnums.MSG4.getCode()); + sendMessageDTO.setTemplateParam(map); + sendMessageDTO.setBusType("M_OPEN_TYPE4"); + JSONObject json = new JSONObject(); + json.put("revenueId",paySpendingContractStatus.getId()); + json.put("contractNum",paySpendingContractStatus.getContractNum()); + sendMessageDTO.setBusId(json.toJSONString()); + sendMessageService.SendMessageService(sendMessageDTO); + } + } + } + + @Override + @Transactional + public void updateArchive(PaySpendingContractAudit paySpendingContractAudit) { + PaySpendingContract paySpendingContractStatus = paySpendingContractService.getById(paySpendingContractAudit.getContractId()); + if(Objects.isNull(paySpendingContractStatus)){ + throw new JeroBootException("支出合同不存在!"); + } + // 校验合同状态是否为已通过 + if(!Objects.equals(paySpendingContractStatus.getStatus(),PayIncomeContractCommon.STATUS3)){ + throw new JeroBootException("支出合同不可归档!"); + } + if(Objects.isNull(paySpendingContractAudit.getContractStatus()) || !Objects.equals(paySpendingContractAudit.getContractStatus(),PayIncomeContractCommon.STATUS5)){ + throw new JeroBootException("支出合同状态不正确!"); + } + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + LambdaUpdateWrapper update = new LambdaUpdateWrapper<>(); + update.set(PaySpendingContract::getUpdateBy,sysUser.getUsername()); + update.set(PaySpendingContract::getUpdateTime,new Date()); + update.eq(PaySpendingContract::getId,paySpendingContractAudit.getContractId()); + update.set(PaySpendingContract::getStatus, PayIncomeContractCommon.STATUS5); + paySpendingContractService.update(update); + // 添加归档记录 + paySpendingContractAudit.setContractStatus(PayIncomeContractCommon.STATUS5); + paySpendingContractAuditService.save(paySpendingContractAudit); } @@ -589,21 +767,21 @@ public class PaySpendingContractServiceImpl extends ServiceImpl"); + sb.append("第").append(n).append("行:应付金额格式错误,请修改。
"); }else{ paySpendingContract.setAccountsReceivableAmount(new BigDecimal(map.get(13))); } } if(!StringUtils.isBlank(map.get(14))){ if(!pattern.matcher(map.get(14)).matches()){ - sb.append("第").append(n).append("行:已收金额格式错误,请修改。
"); + sb.append("第").append(n).append("行:已付金额格式错误,请修改。
"); }else{ paySpendingContract.setAmountReceived(new BigDecimal(map.get(14))); } } if(!StringUtils.isBlank(map.get(15))){ if(!pattern.matcher(map.get(15)).matches()){ - sb.append("第").append(n).append("行:未收金额格式错误,请修改。
"); + sb.append("第").append(n).append("行:未付金额格式错误,请修改。
"); }else{ paySpendingContract.setOutstandingAmount(new BigDecimal(map.get(15))); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/vo/PaySpendingContractAuditOutput.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/vo/PaySpendingContractAuditOutput.java new file mode 100644 index 00000000..fbd91e85 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/vo/PaySpendingContractAuditOutput.java @@ -0,0 +1,14 @@ +package com.jero.contract.vo; + +import com.jero.contract.entity.PayIncomeContractAudit; +import lombok.Data; + +import java.io.Serializable; + +@Data +public class PaySpendingContractAuditOutput extends PayIncomeContractAudit implements Serializable { + /** + * 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已归档) + */ + private String contractStatus_dictText; +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/vo/PaySpendingContractDetailOutput.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/vo/PaySpendingContractDetailOutput.java index b65ccfe4..153ba304 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/vo/PaySpendingContractDetailOutput.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/vo/PaySpendingContractDetailOutput.java @@ -2,6 +2,7 @@ package com.jero.contract.vo; import com.jero.contract.entity.PaySpendingContract; import com.jero.contract.entity.PaySpendingContractInstallment; +import com.jero.mail.entity.PayMailContract; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -23,9 +24,30 @@ public class PaySpendingContractDetailOutput extends PaySpendingContract impleme * 是否打包(1:是,2:否) */ private String pack_dictText; + + /** + * 合同状态(2:待审核,3:已通过,4:未通过,5:已存档) + */ + private String contractStatus_dictText; /** * 分期记录 */ @ApiModelProperty(value = "分期记录集合") private List listInstallment; + + /** + * 归档记录 + */ + @ApiModelProperty(value = "归档记录") + private List listArchive; + /** + * 审核记录 + */ + @ApiModelProperty(value = "审核记录") + private List listAudit; + /** + * 邮寄信息 + */ + @ApiModelProperty(value = "邮寄信息") + private PayMailContract payMailContract; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/vo/PaySpendingContractExcelModel.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/vo/PaySpendingContractExcelModel.java index d8565538..0ce863af 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/vo/PaySpendingContractExcelModel.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/vo/PaySpendingContractExcelModel.java @@ -47,14 +47,14 @@ public class PaySpendingContractExcelModel implements Serializable { /**合同约定主要时点*/ @Excel(name = "合同约定主要时点", width = 15) private String contractTimePoints; - /**应收金额*/ - @Excel(name = "应收金额", width = 15) + /**应付金额*/ + @Excel(name = "应付金额", width = 15) private String accountsReceivableAmount; - /**已收金额*/ - @Excel(name = "已收金额", width = 15) + /**已付金额*/ + @Excel(name = "已付金额", width = 15) private String amountReceived; - /**未收金额*/ - @Excel(name = "未收金额", width = 15) + /**未付金额*/ + @Excel(name = "未付金额", width = 15) private BigDecimal outstandingAmount; /**账款状态(1:未支付,2:部分支付,3:已付全款)*/ @Excel(name = "账款状态", width = 15) @@ -65,31 +65,31 @@ public class PaySpendingContractExcelModel implements Serializable { /**阶段名称*/ @Excel(name = "1阶段", width = 15) private String phaseName1; - /**应收金额*/ - @Excel(name = "1阶段应收", width = 15) + /**应付金额*/ + @Excel(name = "1阶段应付", width = 15) private Integer accountsReceivableAmount1; - /**应收时间*/ - @Excel(name = "1阶段应收时间", width = 15, format = "yyyy-MM-dd") + /**应付时间*/ + @Excel(name = "1阶段应付时间", width = 15, format = "yyyy-MM-dd") private Date accountsReceivableTime1; - /**实收金额*/ - @Excel(name = "1阶段实收", width = 15) + /**实付金额*/ + @Excel(name = "1阶段实付", width = 15) private Integer paidAmount1; - /**实收时间*/ - @Excel(name = "1阶段实收时间", width = 15, format = "yyyy-MM-dd") + /**实付时间*/ + @Excel(name = "1阶段实付时间", width = 15, format = "yyyy-MM-dd") private Date paidTime1; /**阶段名称*/ @Excel(name = "2阶段", width = 15) private String phaseName2; - /**应收金额*/ - @Excel(name = "2阶段应收", width = 15) + /**应付金额*/ + @Excel(name = "2阶段应付", width = 15) private Integer accountsReceivableAmount2; - /**应收时间*/ - @Excel(name = "2阶段应收时间", width = 15, format = "yyyy-MM-dd") + /**应付时间*/ + @Excel(name = "2阶段应付时间", width = 15, format = "yyyy-MM-dd") private Date accountsReceivableTime2; - /**实收金额*/ - @Excel(name = "2阶段实收", width = 15) + /**实付金额*/ + @Excel(name = "2阶段实付", width = 15) private Integer paidAmount2; - /**实收时间*/ - @Excel(name = "2阶段实收时间", width = 15, format = "yyyy-MM-dd") + /**实付时间*/ + @Excel(name = "2阶段实付时间", width = 15, format = "yyyy-MM-dd") private Date paidTime2; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java index 9a085bb8..935a316a 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java @@ -9,8 +9,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.api.vo.Result; import com.jero.common.common.ProjectCommon; +import com.jero.common.dto.SendMessageDTO; +import com.jero.common.enums.ManagementMessageEnums; import com.jero.common.exception.JeroBootException; import com.jero.common.service.ProjectDetailService; +import com.jero.common.service.SendMessageService; +import com.jero.common.system.vo.LoginUser; import com.jero.common.util.AuthenticationUtils; import com.jero.common.util.PasswordUtil; import com.jero.company.entity.PayCompanyManagement; @@ -55,16 +59,15 @@ import com.jero.temporary.entity.PayCompanyManagementTemporary; import com.jero.temporary.service.IPayCompanyManagementTemporaryService; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.text.SimpleDateFormat; +import java.util.*; import java.util.stream.Collectors; /** @@ -104,13 +107,11 @@ public class PayMailBillServiceImpl extends ServiceImpl map = new HashMap<>(); + map.put("projectName", payMailBill.getProjectName()); + map.put("time", sdf.format(payMailBill.getCreateTime())); + map.put("amount", String.valueOf(payMailBill.getInvoiceAmount())); + map.put("num", String.valueOf(payMailBill.getBillNo())); + sendMessageDTO.setFromUser(sysUser.getUsername()); + sendMessageDTO.setToUser(sysUserInfo.getUsername()); + sendMessageDTO.setTemplateCode(ManagementMessageEnums.MSG12.getCode()); + sendMessageDTO.setTemplateParam(map); + sendMessageDTO.setBusType("M_OPEN_TYPE12"); +// JSONObject json = new JSONObject(); +// if(payWorkingGroupDistributionRecord.getProjectType() == PayProjectCommon.PROJECT_TYPE_FILE1){ +// json.put("id",listStr.get(0).getSubId()); +// }else if(payWorkingGroupDistributionRecord.getProjectType() == PayProjectCommon.PROJECT_TYPE_FILE2){ +// json.put("id",listStr.get(0).getProjectId()); +// } +// sendMessageDTO.setBusId(json.toJSONString()); + sendMessageService.SendMessageService(sendMessageDTO); + } + return Result.OK("添加成功!"); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/PayMemberProjectSubitemController.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/PayMemberProjectSubitemController.java index 936724dd..f80ad117 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/PayMemberProjectSubitemController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/PayMemberProjectSubitemController.java @@ -8,6 +8,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import cn.hutool.core.util.NumberUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.jero.common.api.vo.Result; import com.jero.common.exception.JeroBootException; import com.jero.common.service.RolePermissionService; @@ -17,9 +19,10 @@ import com.jero.common.system.vo.DictModel; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.ValidUtil; import com.jero.common.util.oConvertUtils; -import com.jero.company.entity.PayCompanyManagement; import com.jero.company.entity.PayContactsManagement; import com.jero.company.service.IPayContactsManagementService; +import com.jero.contract.entity.PayIncomeContract; +import com.jero.contract.service.IPayIncomeContractService; import com.jero.member.entity.PayMemberProject; import com.jero.member.entity.PayMemberProjectSubitem; import com.jero.member.service.IPayMemberProjectService; @@ -28,12 +31,15 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.member.vo.PayMemberProjectSubitemExcel; +import com.jero.project.common.PayProjectCommon; import lombok.extern.slf4j.Slf4j; import com.jero.common.system.base.controller.JeroController; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.BeanUtils; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import io.swagger.annotations.Api; @@ -59,6 +65,8 @@ public class PayMemberProjectSubitemController extends JeroController importExcel(HttpServletRequest request, HttpServletResponse response) { String projectId = request.getParameter("projectId"); if (StringUtils.isBlank(projectId)) { @@ -287,6 +296,17 @@ public class PayMemberProjectSubitemController extends JeroController queryPayIncomeContract = new LambdaQueryWrapper(); + queryPayIncomeContract.eq(PayIncomeContract::getContractNum,projectSubitemExcel.getContractNo()); + queryPayIncomeContract.eq(PayIncomeContract::getSignedCompanyId,projectSubitemExcel.getCompanyId()); + List listPayIncomeContract = payIncomeContractService.list(queryPayIncomeContract); + if(CollectionUtils.isEmpty(listPayIncomeContract)){ + errorMessage.add("第" + errorRowNum + "行:合同号不存在"); + } + } + //复制属性 BeanUtils.copyProperties(projectSubitemExcel, projectSubitem); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectServiceImpl.java index 30fbb184..fdccec00 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectServiceImpl.java @@ -16,6 +16,8 @@ import com.jero.member.service.IPayMemberProjectService; import com.jero.member.service.IPayMemberProjectSubitemService; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.mapper.SysUserMapper; +import com.jero.project.common.PayProjectCommon; +import com.jero.project.entity.PayCommonProject; import org.apache.commons.collections.CollectionUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java index 0948ebe4..a49611c3 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java @@ -21,6 +21,7 @@ import com.jero.member.mapper.PayMemberProjectMapper; import com.jero.pack.entity.PayPackCompanyProject; import com.jero.pack.service.IPayPackCompanyProjectService; import com.jero.project.common.PayProjectCommon; +import com.jero.project.entity.PayCommonProject; import com.jero.temporary.entity.PayCompanyManagementTemporary; import com.jero.temporary.entity.PayContactsManagementTemporary; import com.jero.temporary.service.IPayCompanyManagementTemporaryService; @@ -209,6 +210,21 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl SELECT * FROM ( - select c.id,c.charge_project, c.charge_use, c.principal_id,c.principal_name,c.charge_company_temporary_name,c.receivable_amount,c.paid_amount,c.need_invoice,c.pack,c.in_account,c.make_invoice,c.mail,c.create_time,1 as projectType + select c.id,c.charge_project, c.charge_use, c.principal_id,c.principal_name,c.charge_company_temporary_name,c.receivable_amount,c.paid_amount,c.need_invoice,c.pack,c.in_account,c.make_invoice,c.mail,c.create_time,1 as projectType,c.contacts_temporary_name from pay_common_project c @@ -151,7 +151,7 @@ UNION ALL - select gsub.id,g.working_group_project, gsub.charge_use, g.principal_id_a,g.principal_name_a,gsub.charge_company_temporary_name,gsub.receivable_amount,gsub.paid_amount,gsub.need_invoice,gsub.pack,gsub.in_account,gsub.make_invoice,gsub.mail,gsub.create_time,2 + select gsub.id,g.working_group_project, gsub.charge_use, g.principal_id_a,g.principal_name_a,gsub.charge_company_temporary_name,gsub.receivable_amount,gsub.paid_amount,gsub.need_invoice,gsub.pack,gsub.in_account,gsub.make_invoice,gsub.mail,gsub.create_time,2,gsub.contacts_temporary_name_one from pay_working_group g inner join pay_working_group_subitem gsub on g.id = gsub.working_group_id @@ -173,7 +173,7 @@ UNION ALL - select sit.id,meeting.meeting_name,sit.charge_use, meeting.director_id, meeting.director_name,sit.company_name,sit.amount_receivable,sit.paid_amount,sit.need_invoice,sit.pack,sit.in_account,sit.make_invoice,sit.mail,sit.create_time,3 + select sit.id,meeting.meeting_name,sit.charge_use, meeting.director_id, meeting.director_name,sit.company_name,sit.amount_receivable,sit.paid_amount,sit.need_invoice,sit.pack,sit.in_account,sit.make_invoice,sit.mail,sit.create_time,3,sit.company_contact_name from pay_meeting meeting inner join pay_meeting_situation sit on meeting.id = sit.meeting_id @@ -196,7 +196,7 @@ UNION ALL - select msub.id,pmp.project_name,msub.charge_use,pmp.director_id,pmp.director_name,msub.company_name,msub.amount_receivable,msub.paid_amount,msub.need_invoice,msub.pack,msub.in_account,msub.make_invoice,msub.mail,msub.create_time,4 + select msub.id,pmp.project_name,msub.charge_use,pmp.director_id,pmp.director_name,msub.company_name,msub.amount_receivable,msub.paid_amount,msub.need_invoice,msub.pack,msub.in_account,msub.make_invoice,msub.mail,msub.create_time,4,msub.company_contact_name from pay_member_project pmp inner join pay_member_project_subitem msub on pmp.id=msub.project_id @@ -218,7 +218,7 @@ UNION ALL - select tmsub.id,tmember.project_name,tmsub.charge_use,'','',tmsub.company_name,tmsub.amount_receivable,tmsub.paid_amount,tmsub.invoice_requirements,tmsub.pack,tmsub.in_account,tmsub.make_invoice,tmsub.mail,tmsub.create_time,5 + select tmsub.id,tmember.project_name,tmsub.charge_use,'','',tmsub.company_name,tmsub.amount_receivable,tmsub.paid_amount,tmsub.invoice_requirements,tmsub.pack,tmsub.in_account,tmsub.make_invoice,tmsub.mail,tmsub.create_time,5,tmsub.liaison_man from tb_member_project tmember inner join tb_member_project_subitem tmsub on tmember.id=tmsub.project_id diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/payment/mapper/xml/PayPaymentRecordMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/payment/mapper/xml/PayPaymentRecordMapper.xml index 1ce27978..28682a78 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/payment/mapper/xml/PayPaymentRecordMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/payment/mapper/xml/PayPaymentRecordMapper.xml @@ -4,10 +4,10 @@