diff --git a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java index 08779bc2..4134d40c 100644 --- a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java +++ b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java @@ -91,6 +91,8 @@ public class ShiroConfig { filterChainDefinitionMap.put("/sys/common/static/**", "anon");//图片预览 &下载文件不限制token filterChainDefinitionMap.put("/sys/common/pdf/**", "anon");//pdf预览 filterChainDefinitionMap.put("/generic/**", "anon");//pdf预览需要文件 + filterChainDefinitionMap.put("/paymentRecord/payPaymentRecord/standardsAddAR", "anon");//标协会员添加来款 + filterChainDefinitionMap.put("/", "anon"); filterChainDefinitionMap.put("/doc.html", "anon"); filterChainDefinitionMap.put("/**/*.js", "anon"); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java index 07ae5479..360a6f82 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java @@ -165,7 +165,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl addAmountReceived(@RequestBody PayPaymentRecord payPaymentRecord) { - return payPaymentRecordService.addPhase(payPaymentRecord); + return payPaymentRecordService.addAmountReceived(payPaymentRecord); + } + /** + * 标协会员添加来款 + * @return + */ + @ApiOperation(value="标协会员添加来款", notes="标协会员添加来款") + @PostMapping(value = "/standardsAddAR") + public Result standardsAddAR(@RequestParam(name="token")String token, + @RequestParam(name="publicKey")String publicKey, + @RequestParam(name="amountReceived")String amountReceived, + @RequestParam(name="paymentDate")String paymentDate, + @RequestParam(name="tbPaymentId")String tbPaymentId, + @RequestParam(name="remark",required = false)String remark) { + //身份校验 + authenticationUtils.check(token, publicKey); + + PayPaymentRecord payPaymentRecord=new PayPaymentRecord(); + payPaymentRecord.setAmountReceived(new BigDecimal(amountReceived)); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + try { + payPaymentRecord.setPaymentDate(simpleDateFormat.parse(paymentDate)); + } catch (ParseException e) { + e.printStackTrace(); + } + payPaymentRecord.setRemark(remark); + return payPaymentRecordService.standardsAddAR(tbPaymentId,payPaymentRecord); } /** @@ -148,8 +182,8 @@ public class PayPaymentRecordController extends JeroController { * 到账开票导出 * @return */ - List mainListExportXls(@Param("principalId")String principalId, - @Param("chargeProject")String chargeProject, - @Param("chargeCompanyTemporaryName")String chargeCompanyTemporaryName); + List mainListExportXls( + @Param("payCommonProject")PayCommonProject payCommonProject, + @Param("paymentDate") String paymentDate); } 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 9f951180..ec111cf2 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 @@ -97,21 +97,23 @@ - + select p.id,p.charge_project, p.charge_use, p.principal_id,p.principal_name,p.charge_company_temporary_name,p.receivable_amount,p.paid_amount,p.need_invoice,p.pack,p.in_account,p.make_invoice,p.mail,p.create_time,1 as projectType + 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 from pay_common_project c where c.receivable_amount ]]> 0 and c.receivable_amount is not null - - AND c.principal_id = #{principalId} + + AND c.principal_id = #{payCommonProject.principalId} - - AND c.charge_project = #{chargeProject} + + AND c.charge_project = #{payCommonProject.chargeProject} - - AND c.charge_company_temporary_name = #{chargeCompanyTemporaryName} + + AND c.charge_company_temporary_name = #{payCommonProject.chargeCompanyTemporaryName} UNION ALL @@ -121,14 +123,14 @@ where gsub.receivable_amount ]]> 0 and gsub.receivable_amount is not null - - AND g.principal_id_a = #{principalId} + + AND g.principal_id_a = #{payCommonProject.principalId} - - AND g.working_group_project = #{chargeProject} + + AND g.working_group_project = #{payCommonProject.chargeProject} - - AND gsub.charge_company_temporary_name = #{chargeCompanyTemporaryName} + + AND gsub.charge_company_temporary_name = #{payCommonProject.chargeCompanyTemporaryName} UNION ALL @@ -138,14 +140,14 @@ where sit.amount_receivable ]]> 0 and sit.amount_receivable is not null - - AND meeting.director_id = #{principalId} + + AND meeting.director_id = #{payCommonProject.principalId} - - AND meeting.meeting_name = #{chargeProject} + + AND meeting.meeting_name = #{payCommonProject.chargeProject} - - AND sit.company_name = #{chargeCompanyTemporaryName} + + AND sit.company_name = #{payCommonProject.chargeCompanyTemporaryName} UNION ALL @@ -155,14 +157,14 @@ where msub.amount_receivable ]]> 0 and msub.amount_receivable is not null - - AND member.director_id = #{principalId} + + AND member.director_id = #{payCommonProject.principalId} - - AND member.project_name = #{chargeProject} + + AND member.project_name = #{payCommonProject.chargeProject} - - AND msub.company_name = #{chargeCompanyTemporaryName} + + AND msub.company_name = #{payCommonProject.chargeCompanyTemporaryName} UNION ALL @@ -172,13 +174,20 @@ where tmsub.amount_receivable ]]> 0 and tmsub.amount_receivable is not null - - AND tmember.project_name = #{chargeProject} + + AND tmember.project_name = #{payCommonProject.chargeProject} - - AND tmsub.company_name = #{chargeCompanyTemporaryName} + + AND tmsub.company_name = #{payCommonProject.chargeCompanyTemporaryName} - order by create_time DESC + )p + LEFT JOIN pay_payment_record ppr ON ppr.project_id = p.id + where + 1=1 + + AND DATE_FORMAT(ppr.payment_date,'%Y') = #{paymentDate} + + GROUP BY p.id ORDER BY p.create_time \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/IPayPaymentRecordService.java b/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/IPayPaymentRecordService.java index d348255e..77cce7e6 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/IPayPaymentRecordService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/IPayPaymentRecordService.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.jero.common.api.vo.Result; import com.jero.payment.entity.PayPaymentRecord; import com.jero.project.entity.PayCommonProject; +import com.jero.project.vo.PayCommonProjectOutput; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; @@ -27,10 +28,17 @@ public interface IPayPaymentRecordService extends IService { List mainList(Page page, PayCommonProject payCommonProject,String paymentDate); /** - * 添加阶段 + * 添加来款 * @param payPaymentRecord */ - Result addPhase(PayPaymentRecord payPaymentRecord); + Result addAmountReceived(PayPaymentRecord payPaymentRecord); + + /** + * 标协会员添加来款 + * @param payPaymentRecord + */ + Result standardsAddAR(String tbPaymentId,PayPaymentRecord payPaymentRecord); + /** * 导出 * @param request @@ -39,5 +47,5 @@ public interface IPayPaymentRecordService extends IService { * @param title * @return */ - public ModelAndView exportXls(HttpServletRequest request, PayCommonProject payCommonProject, Class clazz, String title); + public ModelAndView exportXls(HttpServletRequest request, PayCommonProject payCommonProject, String paymentDate, Class clazz, String title); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/impl/PayPaymentRecordServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/impl/PayPaymentRecordServiceImpl.java index 403c4f0b..5f1b761f 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/impl/PayPaymentRecordServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/impl/PayPaymentRecordServiceImpl.java @@ -6,6 +6,7 @@ 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.exception.JeroBootException; +import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.util.oConvertUtils; import com.jero.contract.common.PayIncomeContractCommon; import com.jero.meeting.entity.PayMeetingSituation; @@ -22,10 +23,12 @@ import com.jero.project.entity.PayWorkingGroupSubItem; import com.jero.project.mapper.PayCommonProjectMapper; import com.jero.project.mapper.PayWorkingGroupSubItemMapper; import com.jero.common.util.AuthenticationUtils; +import com.jero.project.vo.PayCommonProjectOutput; import org.apache.commons.beanutils.PropertyUtils; import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.servlet.ModelAndView; @@ -56,6 +59,8 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl mainList(Page page, PayCommonProject payCommonProject,String paymentDate){ return payPaymentRecordMapper.mainList(page, payCommonProject, paymentDate); } @@ -77,7 +83,8 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl addPhase(PayPaymentRecord payPaymentRecord){ + @Override + public Result addAmountReceived(PayPaymentRecord payPaymentRecord){ BigDecimal receivableAmount; Boolean isAdd; @@ -203,6 +210,41 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl standardsAddAR(String tbPaymentId,PayPaymentRecord payPaymentRecord){ + + BigDecimal receivableAmount; + Boolean isAdd; + BigDecimal newPaidAmount; + BigDecimal paidAmount; + Integer inAccount; + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(TbMemberProjectSubitem::getTbPaymentId,tbPaymentId); + TbMemberProjectSubitem tbMember = tbMemberProjectSubitemMapper.selectOne(wrapper); + + receivableAmount = tbMember.getAmountReceivable();//应收 + paidAmount=tbMember.getPaidAmount();//实收 + + newPaidAmount =addPaidAmount(paidAmount,payPaymentRecord.getAmountReceived());//累加实收 + inAccount = getInAccount(receivableAmount, newPaidAmount);//到账状态 + + //更新主列表 + tbMember.setPaidAmount(newPaidAmount); + tbMember.setInAccount(inAccount); + tbMemberProjectSubitemMapper.updateById(tbMember); + + //插入来款记录表 + payPaymentRecordMapper.insert(payPaymentRecord); + return Result.OK("添加成功!"); + } + //标协类型新增时条件校验 private void type5AddCheck(PayPaymentRecord payPaymentRecord){ @@ -338,14 +380,18 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl clazz, String title) { + @Override + public ModelAndView exportXls(HttpServletRequest request, PayCommonProject payCommonProject,String paymentDate, Class clazz, String title) { // Step.2 获取导出数据 - List pageList=payPaymentRecordMapper.mainListExportXls(payCommonProject.getPrincipalId(), - payCommonProject.getChargeProject(), - payCommonProject.getChargeCompanyTemporaryName()); - List exportList = null; + List pageList=payPaymentRecordMapper.mainListExportXls(payCommonProject,paymentDate); + pageList.forEach(p-> { + if (!Objects.isNull(p.getChargeUse())) { + p.setChargeUse_dictText(sysBaseAPI.translateDict("payment_charge_use", String.valueOf(p.getChargeUse()))); + } + }); + List exportList = null; // 过滤选中数据 String selections = request.getParameter("selections"); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayCommonProject.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayCommonProject.java index 4b624641..3ec80eb5 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayCommonProject.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayCommonProject.java @@ -39,137 +39,115 @@ public class PayCommonProject implements Serializable { @ApiModelProperty(value = "主键") private String id; /**来款项目*/ - @Excel(name = "来款项目", width = 15) + @Excel(name = "来款项目", width = 20,orderNum = "0") @ApiModelProperty(value = "来款项目") @NotEmpty(message = "来款项目不能为空!") @Size(max = 100,message = "来款项目长度不能大于100个字符") private String chargeProject; + /**来款用途(字典表)*/ + @ApiModelProperty(value = "来款用途") + @Dict(dicCode = "payment_charge_use") + @NotNull(message = "来款用途不能为空!") + private Integer chargeUse; /**运行年份*/ - @Excel(name = "运行年份", width = 15) @ApiModelProperty(value = "运行年份") @NotEmpty(message = "运行年份不能为空!") @Pattern(regexp = "^\\d{4}$",message = "运行年份格式错误") private String year; /**负责人id*/ - @Excel(name = "负责人id", width = 15) @ApiModelProperty(value = "负责人id") @NotEmpty(message = "负责人id不能为空!") @Size(max = 32,message = "来款项目长度不能大于32个字符") private String principalId; /**负责人名称*/ - @Excel(name = "负责人名称", width = 15) + @Excel(name = "项目负责人", width = 15,orderNum = "2") @ApiModelProperty(value = "负责人名称") private String principalName; /**来款企业id*/ - @Excel(name = "来款企业id", width = 15) @ApiModelProperty(value = "来款企业id") @NotEmpty(message = "来款企业id不能为空!") @Size(max = 32,message = "来款企业id长度不能大于32个字符") private String chargeCompanyId; /**临时来款企业id*/ - @Excel(name = "临时来款企业id", width = 15) @ApiModelProperty(value = "临时来款企业id") @Size(max = 32,message = "临时来款企业id长度不能大于32个字符") private String chargeCompanyTemporaryId; /**临时来款企业*/ - @Excel(name = "临时来款企业", width = 15) + @Excel(name = "来款单位", width = 15,orderNum = "3") @ApiModelProperty(value = "临时来款企业") private String chargeCompanyTemporaryName; - /**来款用途(字典表)*/ - @Excel(name = "来款用途(字典表)", width = 15) - @ApiModelProperty(value = "来款用途(字典表)") - @Dict(dicCode = "payment_charge_use") - @NotNull(message = "来款用途不能为空!") - private Integer chargeUse; /**联系人id*/ - @Excel(name = "联系人id", width = 15) @ApiModelProperty(value = "联系人id") @NotEmpty(message = "联系人id不能为空!") @Size(max = 32,message = "来款企业id长度不能大于32个字符") private String contactsId; /**临时联系人id*/ - @Excel(name = "临时联系人id", width = 15) @ApiModelProperty(value = "临时联系人id") @Size(max = 32,message = "临时联系人id长度不能大于32个字符") private String contactsTemporaryId; /**临时联系人名称*/ - @Excel(name = "临时联系人名称", width = 15) @ApiModelProperty(value = "临时联系人名称") private String contactsTemporaryName; /**应收金额(元)*/ - @Excel(name = "应收金额(元)", width = 15) + @Excel(name = "应收金额(元)", width = 15,orderNum = "4") @ApiModelProperty(value = "应收金额(元)") @NotNull(message = "应收金额(元)不能为空!") @DecimalMax(value = "9999999999.99",message = "应收金额(元)格式错误") @JsonFormat(shape = JsonFormat.Shape.STRING) private BigDecimal receivableAmount; /**实收金额(元)*/ - @Excel(name = "实收金额(元)", width = 15) + @Excel(name = "实收金额(元)", width = 15,orderNum = "5") @ApiModelProperty(value = "实收金额(元)") @DecimalMax(value = "9999999999.99",message = "实收金额(元)格式错误") @JsonFormat(shape = JsonFormat.Shape.STRING) private BigDecimal paidAmount; /**邮寄联系人id*/ - @Excel(name = "邮寄联系人id", width = 15) @ApiModelProperty(value = "邮寄联系人id") @NotEmpty(message = "邮寄联系人id不能为空!") @Size(max = 32,message = "邮寄联系人id长度不能大于32个字符") private String mailContactsId; /**临时邮寄联系人id*/ - @Excel(name = "临时邮寄联系人id", width = 15) @ApiModelProperty(value = "临时邮寄联系人id") @Size(max = 32,message = "临时邮寄联系人id长度不能大于32个字符") private String mailContactsTemporaryId; /**临时邮寄联系人名称*/ - @Excel(name = "临时邮寄联系人名称", width = 15) @ApiModelProperty(value = "临时邮寄联系人名称") private String mailContactsTemporaryName; /**打包(1:是,0:否)*/ - @Excel(name = "打包(1:是,0:否)", width = 15) @ApiModelProperty(value = "打包(1:是,0:否)") private Integer pack; - /**需要发票(1:增值税普通发票,2:增值税专用发票,0:否)*/ - @Excel(name = "需要发票(1:增值税普通发票,2:增值税专用发票,0:否)", width = 15) + /**需要发票(1:增值税普通发票,2:增值税专用发票,0:否)*/ @ApiModelProperty(value = "需要发票(1:增值税普通发票,2:增值税专用发票,0:否)") @NotNull(message = "需要发票不能为空!") private Integer needInvoice; /**到账(1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志))*/ - @Excel(name = "到账(1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志))", width = 15) @ApiModelProperty(value = "到账(1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志))") private Integer inAccount; /**开票(1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志))*/ - @Excel(name = "开票(1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志))", width = 15) @ApiModelProperty(value = "开票(1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志))") private Integer makeInvoice; /**邮寄((1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志)))*/ - @Excel(name = "邮寄((1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志)))", width = 15) @ApiModelProperty(value = "邮寄((1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志)))") private Integer mail; /**来款方式(1:无,2:合同,3:收费通知)*/ - @Excel(name = "来款方式(1:无,2:合同,3:收费通知)", width = 15) @ApiModelProperty(value = "来款方式(1:无,2:合同,3:收费通知)") @NotNull(message = "需要发票不能为空!") private Integer chargeWay; /**合同编号*/ - @Excel(name = "合同编号", width = 15) @ApiModelProperty(value = "合同编号") @Size(max = 50,message = "合同编号长度不能大于50个字符") private String contractNum; /**收费通知号*/ - @Excel(name = "收费通知号", width = 15) @ApiModelProperty(value = "收费通知号") @Size(max = 50,message = "收费通知号长度不能大于50个字符") private String chargeNoticeNo; /**收费通知文件id*/ - @Excel(name = "收费通知文件id", width = 15) @ApiModelProperty(value = "收费通知文件id") private String chargeNoticeId; /**催款次数*/ - @Excel(name = "催款次数", width = 15) @ApiModelProperty(value = "催款次数") private Integer pressMoneyTimes; /**备注*/ - @Excel(name = "备注", width = 15) @ApiModelProperty(value = "备注") @Size(max = 200,message = "备注长度不能大于200个字符") private String remarks; diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/vo/PayCommonProjectOutput.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/vo/PayCommonProjectOutput.java index 8533f85a..3b0d5dbd 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/vo/PayCommonProjectOutput.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/vo/PayCommonProjectOutput.java @@ -3,6 +3,7 @@ package com.jero.project.vo; import com.jero.project.entity.PayCommonProject; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; import java.io.Serializable; @Data @@ -10,6 +11,7 @@ public class PayCommonProjectOutput extends PayCommonProject implements Serializ /** * 来款用途 */ + @Excel(name = "来款用途", width = 20,orderNum = "1") @ApiModelProperty(value = "来款用途") private String chargeUse_dictText; } diff --git a/jero-boot-single-startup/src/main/resources/application-dev.yml b/jero-boot-single-startup/src/main/resources/application-dev.yml index 3eefa24e..1cf7c870 100644 --- a/jero-boot-single-startup/src/main/resources/application-dev.yml +++ b/jero-boot-single-startup/src/main/resources/application-dev.yml @@ -315,4 +315,5 @@ huaWeiSms: #标协项目 standards: url: http://localhost:8081/api - token: Aa123456!! \ No newline at end of file + token: Aa123456!! + uesrname: admin \ No newline at end of file