From 47c4c068e7826d1a8f5df0e80fa4bcb3f1334c83 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Fri, 16 Sep 2022 09:55:33 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E6=92=A4=E9=94=80=E6=9D=A5=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PayPaymentRecordController.java | 282 ++++++++++-------- .../service/IPayPaymentRecordService.java | 2 +- .../impl/PayPaymentRecordServiceImpl.java | 145 +++++++++ 3 files changed, 296 insertions(+), 133 deletions(-) diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/payment/controller/PayPaymentRecordController.java b/jero-boot-incoming-payment/src/main/java/com/jero/payment/controller/PayPaymentRecordController.java index f7c69c1d..c389bd8f 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/payment/controller/PayPaymentRecordController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/payment/controller/PayPaymentRecordController.java @@ -51,70 +51,85 @@ public class PayPaymentRecordController extends JeroController mainList(PayCommonProject payCommonProject, - @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, - @RequestParam(name="pageSize", defaultValue="10") Integer pageSize - ,String projectType - ,String paymentDate - ,String paidInvoicStatus) { - Page page = new Page(pageNo, pageSize); - List pageList = payPaymentRecordService.mainList(page, payCommonProject,projectType,paymentDate, paidInvoicStatus); + /** + * 到账开票主列表 + */ + @ApiOperation(value = "到账开票主列表", notes = "到账开票主列表") + @GetMapping(value = "/mainList") + @RequiresPermissions("incomePaymentAndInvoiving:search") + public Result mainList(PayCommonProject payCommonProject, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize + , String projectType + , String paymentDate + , String paidInvoicStatus) { + Page page = new Page(pageNo, pageSize); + List pageList = payPaymentRecordService.mainList(page, payCommonProject, projectType, paymentDate, paidInvoicStatus); - page.setRecords(pageList); - return Result.OK(page); - } - - /** - * 添加来款 - * @return - */ - @ApiOperation(value="添加来款", notes="添加来款") - @PostMapping(value = "/addAmountReceived") - public Result addAmountReceived(@RequestBody List list) { - try{ - payPaymentRecordService.addAmountReceived(list, ProjectCommon.PAYMENT_FLAG2,"record"); - }catch (Exception e){ - log.error("添加来款异常",e); - return Result.error(e.getMessage()); - } - return Result.OK("操作成功"); - } - - /** - * 标协会员添加来款 - * @return - */ - @ApiOperation(value="标协会员添加来款", notes="标协会员添加来款") - @PostMapping(value = "/standardsAddAR") - public Result standardsAddAR(@RequestParam(name="amountReceived")String amountReceived, - @RequestParam(name="tbPaymentId")String tbPaymentId, - @RequestBody MemberInfo memberInfo, - @RequestParam(name="checkResult")Boolean checkResult, - @RequestParam(name="remark",required = false)String remark) { - PayPaymentRecord payPaymentRecord = new PayPaymentRecord(); - payPaymentRecord.setAmountReceived(new BigDecimal(amountReceived)); - payPaymentRecord.setPaymentDate(new Date()); - payPaymentRecord.setRemark(remark); - - return payPaymentRecordService.standardsAddAR(tbPaymentId, payPaymentRecord, memberInfo, checkResult); - } + page.setRecords(pageList); + return Result.OK(page); + } /** - * 标协证书添加来款 + * 添加来款 + * * @return */ - @ApiOperation(value="标协证书添加来款") + @AutoLog(value = "添加来款") + @ApiOperation(value = "添加来款", notes = "添加来款") + @PostMapping(value = "/addAmountReceived") + public Result addAmountReceived(@RequestBody List list) { + try { + payPaymentRecordService.addAmountReceived(list, ProjectCommon.PAYMENT_FLAG2, "record"); + } catch (Exception e) { + log.error("添加来款异常", e); + return Result.error(e.getMessage()); + } + return Result.OK("操作成功"); + } + + @AutoLog(value = "撤销来款") + @ApiOperation(value = "撤销来款", notes = "撤销来款") + @PostMapping(value = "/revoke") + public Result revoke(@RequestParam(name = "id") String id) { + payPaymentRecordService.revoke(id); + return Result.OK("撤销成功"); + } + + + /** + * 标协会员添加来款 + * + * @return + */ + @AutoLog(value = "标协会员添加来款") + @ApiOperation(value = "标协会员添加来款", notes = "标协会员添加来款") + @PostMapping(value = "/standardsAddAR") + public Result standardsAddAR(@RequestParam(name = "amountReceived") String amountReceived, + @RequestParam(name = "tbPaymentId") String tbPaymentId, + @RequestBody MemberInfo memberInfo, + @RequestParam(name = "checkResult") Boolean checkResult, + @RequestParam(name = "remark", required = false) String remark) { + PayPaymentRecord payPaymentRecord = new PayPaymentRecord(); + payPaymentRecord.setAmountReceived(new BigDecimal(amountReceived)); + payPaymentRecord.setPaymentDate(new Date()); + payPaymentRecord.setRemark(remark); + + return payPaymentRecordService.standardsAddAR(tbPaymentId, payPaymentRecord, memberInfo, checkResult); + } + + /** + * 标协证书添加来款 + * + * @return + */ + @AutoLog(value = "标协证书添加来款") + @ApiOperation(value = "标协证书添加来款") @PostMapping(value = "/standardsCertificateAddAR") - public Result standardsCertificateAddAR(@RequestParam(name="amountReceived")String amountReceived, - @RequestParam(name="tbPaymentId")String tbPaymentId, - @RequestParam(name="checkResult")Boolean checkResult, - @RequestParam(name="remark",required = false)String remark) { + public Result standardsCertificateAddAR(@RequestParam(name = "amountReceived") String amountReceived, + @RequestParam(name = "tbPaymentId") String tbPaymentId, + @RequestParam(name = "checkResult") Boolean checkResult, + @RequestParam(name = "remark", required = false) String remark) { PayPaymentRecord payPaymentRecord = new PayPaymentRecord(); payPaymentRecord.setAmountReceived(new BigDecimal(amountReceived)); payPaymentRecord.setPaymentDate(new Date()); @@ -123,60 +138,62 @@ public class PayPaymentRecordController extends JeroController amountReceivedList(String id) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(PayPaymentRecord::getProjectId, id); - wrapper.eq(PayPaymentRecord::getPaymentStatus, PaymentStatusEnum.COMPLETED.getCode()); - wrapper.orderByAsc(PayPaymentRecord::getPaymentDate); - List list = payPaymentRecordService.list(wrapper); + /** + * 来款列表 + * + * @return + */ + @ApiOperation(value = "来款列表", notes = "来款列表") + @PostMapping(value = "/amountReceivedList") + public Result amountReceivedList(String id) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PayPaymentRecord::getProjectId, id); + wrapper.eq(PayPaymentRecord::getPaymentStatus, PaymentStatusEnum.COMPLETED.getCode()); + wrapper.orderByAsc(PayPaymentRecord::getPaymentDate); + List list = payPaymentRecordService.list(wrapper); - //标协会员、标协证书查出缴费方式 - if(list!=null && list.size()>0){ - if(PayIncomeContractCommon.PROJECT_TYPE5.equals(String.valueOf(list.get(0).getProjectType()))){ - TbMemberProjectSubitem memberProject = tbMemberProjectSubitemService.getById(id); - list.get(0).setPaymentMethod(memberProject.getPaymentMethod()); - } - if(PayIncomeContractCommon.PROJECT_TYPE6.equals(String.valueOf(list.get(0).getProjectType()))){ - TbCertificatePayment tbCertificatePayment = tbCertificatePaymentService.getById(id); - list.get(0).setPaymentMethod(tbCertificatePayment.getPaymentMethod()); - } - } + //标协会员、标协证书查出缴费方式 + if (list != null && list.size() > 0) { + if (PayIncomeContractCommon.PROJECT_TYPE5.equals(String.valueOf(list.get(0).getProjectType()))) { + TbMemberProjectSubitem memberProject = tbMemberProjectSubitemService.getById(id); + list.get(0).setPaymentMethod(memberProject.getPaymentMethod()); + } + if (PayIncomeContractCommon.PROJECT_TYPE6.equals(String.valueOf(list.get(0).getProjectType()))) { + TbCertificatePayment tbCertificatePayment = tbCertificatePaymentService.getById(id); + list.get(0).setPaymentMethod(tbCertificatePayment.getPaymentMethod()); + } + } - return Result.OK(list); - } + return Result.OK(list); + } - /** - * 编辑来款 - */ - @ApiOperation(value="编辑来款", notes="编辑来款") - @PostMapping(value = "/editAmountReceived") - public Result editAmountReceived(@RequestBody PayPaymentRecord payPaymentRecord) { - payPaymentRecordService.editAmountReceived(payPaymentRecord); - return Result.OK("编辑成功!"); - } - /** - * 添加开票 + * 编辑来款 */ - @ApiOperation(value="添加开票", notes="添加开票") + @ApiOperation(value = "编辑来款", notes = "编辑来款") + @PostMapping(value = "/editAmountReceived") + public Result editAmountReceived(@RequestBody PayPaymentRecord payPaymentRecord) { + payPaymentRecordService.editAmountReceived(payPaymentRecord); + return Result.OK("编辑成功!"); + } + + /** + * 添加开票 + */ + @ApiOperation(value = "添加开票", notes = "添加开票") @PostMapping(value = "/addPayBill") public Result addPayBill(@RequestBody(required = false) PayMailBillVO payMailBill) { @@ -184,10 +201,11 @@ public class PayPaymentRecordController extends JeroController payBillList(String id) { @@ -195,9 +213,10 @@ public class PayPaymentRecordController extends JeroController editPayBill(@RequestBody PayMailBillVO payMailBillVo) { payMailBillService.editPayBill(payMailBillVo); @@ -205,34 +224,33 @@ public class PayPaymentRecordController extends JeroController queryById(@RequestParam(name="id",required=true) String id) { - PayPaymentRecord payPaymentRecord = payPaymentRecordService.getById(id); - if(payPaymentRecord==null) { - return Result.error("未找到对应数据"); - } - return Result.OK(payPaymentRecord); - } + /** + * 通过id查询 + * + * @param id + * @return + */ + @ApiOperation(value = "pay_payment_record-通过id查询", notes = "pay_payment_record-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name = "id", required = true) String id) { + PayPaymentRecord payPaymentRecord = payPaymentRecordService.getById(id); + if (payPaymentRecord == null) { + return Result.error("未找到对应数据"); + } + return Result.OK(payPaymentRecord); + } - /** - * 导出excel - * - */ - @ApiOperation(value="导出excel", notes="导出excel") - @GetMapping(value = "/exportXls") - @AutoLog(value = "到账开票-导出excel",operateType = 6) - @RequiresPermissions("incomePaymentAndInvoiving:export") - public ModelAndView exportXls(HttpServletRequest request, PayCommonProject payCommonProject, - String projectType, String paymentDate,String paidInvoicStatus) { - return payPaymentRecordService.exportXls(request, payCommonProject,projectType, paymentDate,paidInvoicStatus, PayCommonProjectOutput.class, "到账开票"); - } + /** + * 导出excel + */ + @ApiOperation(value = "导出excel", notes = "导出excel") + @GetMapping(value = "/exportXls") + @AutoLog(value = "到账开票-导出excel", operateType = 6) + @RequiresPermissions("incomePaymentAndInvoiving:export") + public ModelAndView exportXls(HttpServletRequest request, PayCommonProject payCommonProject, + String projectType, String paymentDate, String paidInvoicStatus) { + return payPaymentRecordService.exportXls(request, payCommonProject, projectType, paymentDate, paidInvoicStatus, PayCommonProjectOutput.class, "到账开票"); + } -} + } 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 d99a3a08..bfbb6014 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 @@ -134,5 +134,5 @@ public interface IPayPaymentRecordService extends IService { Integer getMonthProjectCount(String time); - + void revoke(String id); } 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 34de89c5..2d5d33e5 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 @@ -868,6 +868,23 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl listId = new ArrayList<>(); + switch (String.valueOf(projectType)){ + + // 普通项目 + case PayIncomeContractCommon.PROJECT_TYPE1: + + PayCommonProject payCommonProject = payCommonProjectMapper.selectById(payPaymentRecord.getProjectId()); + + PayContactsManagementTemporary payCommonProjectTemporary = payContactsManagementTemporaryService.getById(payCommonProject.getContactsTemporaryId()); + if(!Objects.isNull(payCommonProjectTemporary)){ + listId.add(payCommonProjectTemporary); + } + + newPaidAmount =subtract(payCommonProject.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收 + inAccount = getInAccount(payCommonProject.getReceivableAmount(), newPaidAmount);//到账状态 + paymentStatus = payPaymentCheckService.getPaymentStatus(payCommonProject.getReceivableAmount(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode());//缴费状态 + tax = subtract(payCommonProject.getPaidTax(),payPaymentRecord.getTax()); + noTaxAmount = subtract(payCommonProject.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount()); + payCommonProject.setPaidTax(tax); + payCommonProject.setPaidNoTaxAmount(noTaxAmount); + //更新主列表 + payCommonProject.setPaidAmount(newPaidAmount); + payCommonProject.setInAccount(inAccount); + payCommonProject.setPaymentStatus(paymentStatus); + payCommonProjectMapper.updateById(payCommonProject); + + break; + // 工作组项目 + case PayIncomeContractCommon.PROJECT_TYPE2: + PayWorkingGroupSubItem payWorking = payWorkingGroupSubItemMapper.selectById(payPaymentRecord.getProjectId()); + PayWorkingGroup payWorkingGroup = payWorkingGroupService.getById(payWorking.getWorkingGroupId()); + LambdaQueryWrapper queryPayWorkingGroupSubItemContacts = new LambdaQueryWrapper<>(); + queryPayWorkingGroupSubItemContacts.eq(PayWorkingGroupSubItemContacts::getWorkingGroupSubId,payWorking.getId()); + List listPayWorkingGroupSubItemContacts = payWorkingGroupSubItemContactsService.list(queryPayWorkingGroupSubItemContacts); + if(!CollectionUtils.isEmpty(listPayWorkingGroupSubItemContacts)){ + List listIds = listPayWorkingGroupSubItemContacts.stream().map(PayWorkingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList()); + List payWorkingTemporary = payContactsManagementTemporaryService.listByIds(listIds); + if(!CollectionUtils.isEmpty(payWorkingTemporary)){ + listId.addAll(payWorkingTemporary); + } + } + + newPaidAmount =subtract(payWorking.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收 + inAccount = getInAccount(payWorking.getReceivableAmount(), newPaidAmount);//到账状态 + paymentStatus = payPaymentCheckService.getPaymentStatus(payWorking.getReceivableAmount(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode());//缴费状态 + tax = subtract(payWorking.getPaidTax(),payPaymentRecord.getTax()); + noTaxAmount = subtract(payWorking.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount()); + payWorking.setPaidTax(tax); + payWorking.setPaidNoTaxAmount(noTaxAmount); + //更新主列表 + payWorking.setPaidAmount(newPaidAmount); + payWorking.setInAccount(inAccount); + payWorking.setPaymentStatus(paymentStatus); + payWorkingGroupSubItemMapper.updateById(payWorking); + + break; + //会议项目 + case PayIncomeContractCommon.PROJECT_TYPE3: + + PayMeetingSituation meeting = payMeetingSituationMapper.selectById(payPaymentRecord.getProjectId()); + PayMeeting payMeeting =payMeetingService.getById(meeting.getMeetingId()); + + PayContactsManagement meetingPayContactsManagement = payContactsManagementService.getById(meeting.getContractId()); + if(!Objects.isNull(meetingPayContactsManagement)){ + String str = JSON.toJSONString(meetingPayContactsManagement); + PayContactsManagementTemporary meetingTemporary = JSONObject.parseObject(str,PayContactsManagementTemporary.class); + listId.add(meetingTemporary); + } + + newPaidAmount =subtract(meeting.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收 + inAccount = getInAccount(meeting.getAmountReceivable(), newPaidAmount);//到账状态 + paymentStatus = payPaymentCheckService.getPaymentStatus(meeting.getAmountReceivable(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode());//缴费状态 + tax = subtract(meeting.getPaidTax(),payPaymentRecord.getTax()); + noTaxAmount = subtract(meeting.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount()); + meeting.setPaidTax(tax); + meeting.setPaidNoTaxAmount(noTaxAmount); + //更新主列表 + meeting.setPaidAmount(newPaidAmount); + meeting.setInAccount(inAccount); + meeting.setPaymentStatus(paymentStatus); + payMeetingSituationMapper.updateById(meeting); + + break; + //会员项目 + case PayIncomeContractCommon.PROJECT_TYPE4: + + PayMemberProjectSubitem member = payMemberProjectSubitemMapper.selectById(payPaymentRecord.getProjectId()); + PayMemberProject payMemberProject = memberProjectService.getById(member.getProjectId()); + + PayContactsManagementTemporary memberTemporary = payContactsManagementTemporaryService.getById(member.getCompanyContactTemporaryId()); + if(!Objects.isNull(memberTemporary)){ + listId.add(memberTemporary); + } + + newPaidAmount =subtract(member.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收 + inAccount = getInAccount(member.getAmountReceivable(), newPaidAmount);//到账状态 + paymentStatus = payPaymentCheckService.getPaymentStatus(member.getAmountReceivable(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode());//缴费状态 + tax = subtract(member.getPaidTax(),payPaymentRecord.getTax()); + noTaxAmount = subtract(member.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount()); + member.setPaidTax(tax); + member.setPaidNoTaxAmount(noTaxAmount); + + //更新主列表 + member.setPaidAmount(newPaidAmount); + member.setInAccount(inAccount); + member.setPaymentStatus(paymentStatus); + payMemberProjectSubitemMapper.updateById(member); + + break; + //标协会员 + case PayIncomeContractCommon.PROJECT_TYPE5: + throw new JeroBootException("标协会员类型不可撤销!"); + //标协证书 + case PayIncomeContractCommon.PROJECT_TYPE6: + throw new JeroBootException("标协证书类型不可撤销!"); + default:break; + } + } + /** * 获取对象ID *