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 179 if (ApplyTypeEnum.CHECK_BILL_APPLY.getType().equals(x.getType()) || ApplyTypeEnum.DEPARTMENT_INVOICE_APPLY.getType().equals(x.getType())) {
180 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 190 OrderBaseInfoVO orderBaseInfoVO = new OrderBaseInfoVO();
194 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 198 //这部分的目的是,对于跟单员和业务员他们也能查看到应收款和应付款中各自负责订单的审核情况。 而财务和admin则会执行else{},会看到所有的审核订单信息。
202 199 if(RoleEnum.BUSINESS_USER.getCode().equals(roleEnum.getCode())){
203 200 if(Objects.nonNull(orderLockFieldVO.getProducePaymentCheckBillFieldVO()) && orderLockFieldVO.getProducePaymentCheckBillFieldVO().getBusinesPerson().equals(loginUserName)){
... ... @@ -623,9 +620,10 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl&lt;OrderFieldLockAp
623 620 } else if(ApplyTypeEnum.DEPARTMENT_INVOICE_APPLY.getType().equals(applyDO.getType())){
624 621 OrderLockFieldVO lockFieldVO = JSONObject.parseObject(applyDO.getFields(), OrderLockFieldVO.class);
625 622 ProducePaymentCheckBillOrderDO checkBillOrderDO = lockFieldVO.getCheckBillOrderDO();
626   - checkBillOrderDO.setDepartmentInvoiceStatus(ApplyStatusEnum.AUDIT_REFUSE.getStatus());
  623 +
627 624  
628 625 ProducePaymentCheckBillOrderDO invoiceInfoDO = checkBillOrderService.getById(checkBillOrderDO.getId());
  626 + invoiceInfoDO.setDepartmentInvoiceStatus(ApplyStatusEnum.AUDIT_REFUSE.getStatus());
629 627 //传递给审核一直都是最新的发票。
630 628 if(com.order.erp.common.utils.StringUtils.isNotBlank(invoiceInfoDO.getInvoiceUrl())){
631 629 log.info("checkBillOrderDO.getInvoiceUrl() 极有可能为空: {}", checkBillOrderDO.getInvoiceUrl());
... ... @@ -636,12 +634,12 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl&lt;OrderFieldLockAp
636 634  
637 635 // 将更新后的 List 转换回逗号分隔的字符串并重新设置
638 636 String updatedInvoiceUrls = String.join(",", urlList);
639   - checkBillOrderDO.setInvoiceUrl(updatedInvoiceUrls);
  637 + invoiceInfoDO.setInvoiceUrl(updatedInvoiceUrls);
640 638 }
641 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 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 819 applyDO.setStatus(ApplyStatusEnum.AUDIT_PASS.getStatus());
822 820 OrderLockFieldVO lockFieldVO = JSONObject.parseObject(applyDO.getFields(), OrderLockFieldVO.class);
823 821 ProducePaymentCheckBillOrderDO checkBillOrderDO = lockFieldVO.getCheckBillOrderDO();
824   - checkBillOrderDO.setDepartmentInvoiceStatus(ApplyStatusEnum.AUDIT_PASS.getStatus());
825 822 //查询旧的。
826 823 ProducePaymentCheckBillOrderDO invoiceInfoDO = checkBillOrderService.getById(checkBillOrderDO.getId());
  824 + invoiceInfoDO.setDepartmentInvoiceStatus(ApplyStatusEnum.AUDIT_PASS.getStatus());
827 825 //传递给审核一直都是最新的发票。
828 826 if(com.order.erp.common.utils.StringUtils.isNotBlank(invoiceInfoDO.getInvoiceUrl())){
829 827 if(com.order.erp.common.utils.StringUtils.isNotBlank(checkBillOrderDO.getInvoiceUrl())){
... ... @@ -832,15 +830,15 @@ public class OrderFieldLockApplyServiceImpl extends ServiceImpl&lt;OrderFieldLockAp
832 830 if(!deductUrlSet.contains(checkBillOrderDO.getInvoiceUrl())){
833 831 deductUrlSet.add(checkBillOrderDO.getInvoiceUrl());
834 832 String updateDeductUrl=String.join(",",deductUrlSet);
835   - checkBillOrderDO.setInvoiceUrl(updateDeductUrl);
  833 + invoiceInfoDO.setInvoiceUrl(updateDeductUrl);
836 834 }
837 835 }
838 836 }else{
839 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 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 822 throw new BusinessException("应付款单据已审核通过,无法编辑");
823 823 }
824 824 //todo 已完成。
  825 + checkCommitApply(deductInfoVO.getId());
825 826 checkApply(new ArrayList<>(Arrays.asList(deductInfoVO.getId())));
826 827 //需要判断一下是否为空?不然知己以逗号分隔会报错。
827 828 if(StringUtils.isNotBlank(checkBillOrderDO.getDeductUrl())){
... ... @@ -868,6 +869,7 @@ public class ProducePaymentCheckBillOrderServiceImpl extends ServiceImpl&lt;Produce
868 869 throw new BusinessException("已完成收款,无法更新!");
869 870 }
870 871 //todo 已完成。
  872 + checkCommitApply(amountInfoVO.getId());
871 873 checkApply(new ArrayList<>(Arrays.asList(amountInfoVO.getId())));
872 874  
873 875 checkBillOrderDO.setActualPayedAmount1(amountInfoVO.getActualPayedAmount1() != null ? amountInfoVO.getActualPayedAmount1().setScale(2, BigDecimal.ROUND_HALF_UP) : BigDecimal.ZERO.setScale(2, BigDecimal.ROUND_HALF_UP));
... ...