Commit 334d388185278f2ee237e4e991a2cadbcf4998dd

Authored by chenhang4442024
1 parent c399957d

fix:第二版财务,修复发票上传之后,再填充数据,造成早发票审核时导出的数据,与最新的数据不一致的情况。

src/main/java/com/order/erp/service/order/impl/OrderFieldLockApplyServiceImpl.java
@@ -179,25 +179,22 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl<OrderFieldLockAp @@ -179,25 +179,22 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl<OrderFieldLockAp
179 if (ApplyTypeEnum.CHECK_BILL_APPLY.getType().equals(x.getType()) || ApplyTypeEnum.DEPARTMENT_INVOICE_APPLY.getType().equals(x.getType())) { 179 if (ApplyTypeEnum.CHECK_BILL_APPLY.getType().equals(x.getType()) || ApplyTypeEnum.DEPARTMENT_INVOICE_APPLY.getType().equals(x.getType())) {
180 OrderLockFieldVO orderLockFieldVO = JSONObject.parseObject(fields, OrderLockFieldVO.class); 180 OrderLockFieldVO orderLockFieldVO = JSONObject.parseObject(fields, OrderLockFieldVO.class);
181 // 解决待审批列表中的应付款要显示内部编码。 这里开始 181 // 解决待审批列表中的应付款要显示内部编码。 这里开始
182 - /* if(Objects.nonNull(orderLockFieldVO.getCheckBillOrderDO()) && StringUtils.isNotBlank(orderLockFieldVO.getCheckBillOrderDO().getCheckNo())){  
183 - List<CheckBillMappingDO> checkBillMappingDOList= checkBillMappingService.list(new LambdaQueryWrapper<CheckBillMappingDO>()  
184 - .eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN)  
185 - .eq(CheckBillMappingDO::getCheckNo, orderLockFieldVO.getCheckBillOrderDO().getCheckNo()));  
186 - if(CollectionUtils.isNotEmpty(checkBillMappingDOList)){  
187 - Set<Long> orderIds = checkBillMappingDOList.stream().map(CheckBillMappingDO::getOrderId).filter(Objects::nonNull).collect(Collectors.toSet());  
188 - if(CollectionUtils.isNotEmpty(orderIds)){  
189 - List<OrderBaseInfoDO> orderBaseInfoDOList = orderBaseInfoService.listByIds(orderIds);  
190 - if(CollectionUtils.isNotEmpty(orderBaseInfoDOList)){  
191 - Set<String> innerNoList = orderBaseInfoDOList.stream().map(OrderBaseInfoDO::getInnerNo).filter(Objects::nonNull).collect(Collectors.toSet());  
192 - if(CollectionUtils.isNotEmpty(innerNoList)){ 182 + //对于生产科发票特殊处理。
  183 + if(ApplyTypeEnum.DEPARTMENT_INVOICE_APPLY.getType().equals(x.getType())){
  184 + if(Objects.nonNull(orderLockFieldVO.getCheckBillOrderDO()) && StringUtils.isNotBlank(orderLockFieldVO.getCheckBillOrderDO().getCheckNo())){
  185 + Long orderId = orderLockFieldVO.getCheckBillOrderDO().getOrderId();
  186 + if(Objects.nonNull(orderId)){
  187 + OrderBaseInfoDO orderBaseInfoDO = orderBaseInfoService.getById(orderId);
  188 + if(Objects.nonNull(orderBaseInfoDO)){
  189 + if(StringUtils.isNotBlank(orderBaseInfoDO.getInnerNo())){
193 OrderBaseInfoVO orderBaseInfoVO = new OrderBaseInfoVO(); 190 OrderBaseInfoVO orderBaseInfoVO = new OrderBaseInfoVO();
194 resultVO.setOrderBaseInfo(orderBaseInfoVO); 191 resultVO.setOrderBaseInfo(orderBaseInfoVO);
195 - orderBaseInfoVO.setInnerNo(resultVO.getOrderBaseInfo().getInnerNo().join(",", innerNoList)); 192 + orderBaseInfoVO.setInnerNo(orderBaseInfoDO.getInnerNo());
196 } 193 }
197 } 194 }
198 } 195 }
199 - }  
200 - }//这里结束 上述为待审核列表中应收款要显示内部编码。*/ //这部分不需要了。 196 +
  197 + }}//这里结束 上述为待审核列表中应收款要显示内部编码。 //这部分不需要了。
201 //这部分的目的是,对于跟单员和业务员他们也能查看到应收款和应付款中各自负责订单的审核情况。 而财务和admin则会执行else{},会看到所有的审核订单信息。 198 //这部分的目的是,对于跟单员和业务员他们也能查看到应收款和应付款中各自负责订单的审核情况。 而财务和admin则会执行else{},会看到所有的审核订单信息。
202 if(RoleEnum.BUSINESS_USER.getCode().equals(roleEnum.getCode())){ 199 if(RoleEnum.BUSINESS_USER.getCode().equals(roleEnum.getCode())){
203 if(Objects.nonNull(orderLockFieldVO.getProducePaymentCheckBillFieldVO()) && orderLockFieldVO.getProducePaymentCheckBillFieldVO().getBusinesPerson().equals(loginUserName)){ 200 if(Objects.nonNull(orderLockFieldVO.getProducePaymentCheckBillFieldVO()) && orderLockFieldVO.getProducePaymentCheckBillFieldVO().getBusinesPerson().equals(loginUserName)){
@@ -623,9 +620,10 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl&lt;OrderFieldLockAp @@ -623,9 +620,10 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl&lt;OrderFieldLockAp
623 } else if(ApplyTypeEnum.DEPARTMENT_INVOICE_APPLY.getType().equals(applyDO.getType())){ 620 } else if(ApplyTypeEnum.DEPARTMENT_INVOICE_APPLY.getType().equals(applyDO.getType())){
624 OrderLockFieldVO lockFieldVO = JSONObject.parseObject(applyDO.getFields(), OrderLockFieldVO.class); 621 OrderLockFieldVO lockFieldVO = JSONObject.parseObject(applyDO.getFields(), OrderLockFieldVO.class);
625 ProducePaymentCheckBillOrderDO checkBillOrderDO = lockFieldVO.getCheckBillOrderDO(); 622 ProducePaymentCheckBillOrderDO checkBillOrderDO = lockFieldVO.getCheckBillOrderDO();
626 - checkBillOrderDO.setDepartmentInvoiceStatus(ApplyStatusEnum.AUDIT_REFUSE.getStatus()); 623 +
627 624
628 ProducePaymentCheckBillOrderDO invoiceInfoDO = checkBillOrderService.getById(checkBillOrderDO.getId()); 625 ProducePaymentCheckBillOrderDO invoiceInfoDO = checkBillOrderService.getById(checkBillOrderDO.getId());
  626 + invoiceInfoDO.setDepartmentInvoiceStatus(ApplyStatusEnum.AUDIT_REFUSE.getStatus());
629 //传递给审核一直都是最新的发票。 627 //传递给审核一直都是最新的发票。
630 if(com.order.erp.common.utils.StringUtils.isNotBlank(invoiceInfoDO.getInvoiceUrl())){ 628 if(com.order.erp.common.utils.StringUtils.isNotBlank(invoiceInfoDO.getInvoiceUrl())){
631 log.info("checkBillOrderDO.getInvoiceUrl() 极有可能为空: {}", checkBillOrderDO.getInvoiceUrl()); 629 log.info("checkBillOrderDO.getInvoiceUrl() 极有可能为空: {}", checkBillOrderDO.getInvoiceUrl());
@@ -636,12 +634,12 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl&lt;OrderFieldLockAp @@ -636,12 +634,12 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl&lt;OrderFieldLockAp
636 634
637 // 将更新后的 List 转换回逗号分隔的字符串并重新设置 635 // 将更新后的 List 转换回逗号分隔的字符串并重新设置
638 String updatedInvoiceUrls = String.join(",", urlList); 636 String updatedInvoiceUrls = String.join(",", urlList);
639 - checkBillOrderDO.setInvoiceUrl(updatedInvoiceUrls); 637 + invoiceInfoDO.setInvoiceUrl(updatedInvoiceUrls);
640 } 638 }
641 }else{ 639 }else{
642 - checkBillOrderDO.setInvoiceUrl(null); 640 + invoiceInfoDO.setInvoiceUrl(null);
643 } 641 }
644 - checkBillOrderService.updateById(checkBillOrderDO); 642 + checkBillOrderService.updateById(invoiceInfoDO);
645 } 643 }
646 644
647 OrderAuditLogDO auditLogDO = OrderAuditLogDO.builder().applyId(applyDO.getId()).orderId(applyDO.getOrderId()).optType(ApplyStatusEnum.AUDIT_REFUSE.getDesc()).build(); 645 OrderAuditLogDO auditLogDO = OrderAuditLogDO.builder().applyId(applyDO.getId()).orderId(applyDO.getOrderId()).optType(ApplyStatusEnum.AUDIT_REFUSE.getDesc()).build();
@@ -821,9 +819,9 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl&lt;OrderFieldLockAp @@ -821,9 +819,9 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl&lt;OrderFieldLockAp
821 applyDO.setStatus(ApplyStatusEnum.AUDIT_PASS.getStatus()); 819 applyDO.setStatus(ApplyStatusEnum.AUDIT_PASS.getStatus());
822 OrderLockFieldVO lockFieldVO = JSONObject.parseObject(applyDO.getFields(), OrderLockFieldVO.class); 820 OrderLockFieldVO lockFieldVO = JSONObject.parseObject(applyDO.getFields(), OrderLockFieldVO.class);
823 ProducePaymentCheckBillOrderDO checkBillOrderDO = lockFieldVO.getCheckBillOrderDO(); 821 ProducePaymentCheckBillOrderDO checkBillOrderDO = lockFieldVO.getCheckBillOrderDO();
824 - checkBillOrderDO.setDepartmentInvoiceStatus(ApplyStatusEnum.AUDIT_PASS.getStatus());  
825 //查询旧的。 822 //查询旧的。
826 ProducePaymentCheckBillOrderDO invoiceInfoDO = checkBillOrderService.getById(checkBillOrderDO.getId()); 823 ProducePaymentCheckBillOrderDO invoiceInfoDO = checkBillOrderService.getById(checkBillOrderDO.getId());
  824 + invoiceInfoDO.setDepartmentInvoiceStatus(ApplyStatusEnum.AUDIT_PASS.getStatus());
827 //传递给审核一直都是最新的发票。 825 //传递给审核一直都是最新的发票。
828 if(com.order.erp.common.utils.StringUtils.isNotBlank(invoiceInfoDO.getInvoiceUrl())){ 826 if(com.order.erp.common.utils.StringUtils.isNotBlank(invoiceInfoDO.getInvoiceUrl())){
829 if(com.order.erp.common.utils.StringUtils.isNotBlank(checkBillOrderDO.getInvoiceUrl())){ 827 if(com.order.erp.common.utils.StringUtils.isNotBlank(checkBillOrderDO.getInvoiceUrl())){
@@ -832,15 +830,15 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl&lt;OrderFieldLockAp @@ -832,15 +830,15 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl&lt;OrderFieldLockAp
832 if(!deductUrlSet.contains(checkBillOrderDO.getInvoiceUrl())){ 830 if(!deductUrlSet.contains(checkBillOrderDO.getInvoiceUrl())){
833 deductUrlSet.add(checkBillOrderDO.getInvoiceUrl()); 831 deductUrlSet.add(checkBillOrderDO.getInvoiceUrl());
834 String updateDeductUrl=String.join(",",deductUrlSet); 832 String updateDeductUrl=String.join(",",deductUrlSet);
835 - checkBillOrderDO.setInvoiceUrl(updateDeductUrl); 833 + invoiceInfoDO.setInvoiceUrl(updateDeductUrl);
836 } 834 }
837 } 835 }
838 }else{ 836 }else{
839 if(com.order.erp.common.utils.StringUtils.isNotBlank(checkBillOrderDO.getInvoiceUrl())){ 837 if(com.order.erp.common.utils.StringUtils.isNotBlank(checkBillOrderDO.getInvoiceUrl())){
840 - checkBillOrderDO.setInvoiceUrl(checkBillOrderDO.getInvoiceUrl()); 838 + invoiceInfoDO.setInvoiceUrl(checkBillOrderDO.getInvoiceUrl());
841 } 839 }
842 } 840 }
843 - checkBillOrderService.updateById(checkBillOrderDO); 841 + checkBillOrderService.updateById(invoiceInfoDO);
844 } 842 }
845 843
846 OrderAuditLogDO auditLogDO = OrderAuditLogDO.builder().applyId(applyDO.getId()).orderId(applyDO.getOrderId()).optType(ApplyStatusEnum.AUDIT_PASS.getDesc()).build(); 844 OrderAuditLogDO auditLogDO = OrderAuditLogDO.builder().applyId(applyDO.getId()).orderId(applyDO.getOrderId()).optType(ApplyStatusEnum.AUDIT_PASS.getDesc()).build();
src/main/java/com/order/erp/service/order/impl/ProducePaymentCheckBillOrderServiceImpl.java
@@ -822,6 +822,7 @@ public class ProducePaymentCheckBillOrderServiceImpl extends ServiceImpl&lt;Produce @@ -822,6 +822,7 @@ public class ProducePaymentCheckBillOrderServiceImpl extends ServiceImpl&lt;Produce
822 throw new BusinessException("应付款单据已审核通过,无法编辑"); 822 throw new BusinessException("应付款单据已审核通过,无法编辑");
823 } 823 }
824 //todo 已完成。 824 //todo 已完成。
  825 + checkCommitApply(deductInfoVO.getId());
825 checkApply(new ArrayList<>(Arrays.asList(deductInfoVO.getId()))); 826 checkApply(new ArrayList<>(Arrays.asList(deductInfoVO.getId())));
826 //需要判断一下是否为空?不然知己以逗号分隔会报错。 827 //需要判断一下是否为空?不然知己以逗号分隔会报错。
827 if(StringUtils.isNotBlank(checkBillOrderDO.getDeductUrl())){ 828 if(StringUtils.isNotBlank(checkBillOrderDO.getDeductUrl())){
@@ -868,6 +869,7 @@ public class ProducePaymentCheckBillOrderServiceImpl extends ServiceImpl&lt;Produce @@ -868,6 +869,7 @@ public class ProducePaymentCheckBillOrderServiceImpl extends ServiceImpl&lt;Produce
868 throw new BusinessException("已完成收款,无法更新!"); 869 throw new BusinessException("已完成收款,无法更新!");
869 } 870 }
870 //todo 已完成。 871 //todo 已完成。
  872 + checkCommitApply(amountInfoVO.getId());
871 checkApply(new ArrayList<>(Arrays.asList(amountInfoVO.getId()))); 873 checkApply(new ArrayList<>(Arrays.asList(amountInfoVO.getId())));
872 874
873 checkBillOrderDO.setActualPayedAmount1(amountInfoVO.getActualPayedAmount1() != null ? amountInfoVO.getActualPayedAmount1().setScale(2, BigDecimal.ROUND_HALF_UP) : BigDecimal.ZERO.setScale(2, BigDecimal.ROUND_HALF_UP)); 875 checkBillOrderDO.setActualPayedAmount1(amountInfoVO.getActualPayedAmount1() != null ? amountInfoVO.getActualPayedAmount1().setScale(2, BigDecimal.ROUND_HALF_UP) : BigDecimal.ZERO.setScale(2, BigDecimal.ROUND_HALF_UP));