Procházet zdrojové kódy

评估-发票修改接口独立

huangguoce před 3 dny
rodič
revize
fce6a0476e

+ 14 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/invoice/controller/FinanceInvoiceController.java

@@ -153,6 +153,20 @@ public class FinanceInvoiceController {
         return ResponseEntity.ok ("操作成功");
     }
 
+
+    /**
+     * 仅作为单独保存发票数据接口使用
+     * @param financeInvoiceDTO
+     * @return
+     */
+    @ApiLog(value = "仅作为单独保存发票数据接口使用")
+    @PreAuthorize("hasAnyAuthority('finance:invoice:add','finance:invoice:edit')")
+    @PostMapping("saveFormOnly")
+    public ResponseEntity saveFormOnly(@Valid @RequestBody FinanceInvoiceDTO financeInvoiceDTO) throws Exception {
+        financeInvoiceService.saveFormOnly(financeInvoiceDTO);
+        return ResponseEntity.ok ("操作成功");
+    }
+
     /**
      * 保存发票数据-流程
      * @param financeInvoiceDTO

+ 191 - 1
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/invoice/service/FinanceInvoiceService.java

@@ -462,10 +462,199 @@ public class FinanceInvoiceService extends ServiceImpl<FinanceInvoiceMapper, Fin
         return financeInvoiceDTO;
     }
 
-    public String saveForm(FinanceInvoiceDTO financeInvoiceDTO) throws Exception{
+    /**
+     * 仅作为单独保存发票数据接口使用
+     * @param financeInvoiceDTO
+     * @return
+     * @throws Exception
+     */
+    public String saveFormOnly(FinanceInvoiceDTO financeInvoiceDTO) throws Exception{
+        //添加钉钉通知处理
+        boolean isDDNotice = false;
+        String isOms = "0";
 
+        FinanceInvoice financeInvoice = FinanceInvoiceWrapper.INSTANCE.toEntity(financeInvoiceDTO);
+        if(StringUtils.isNotBlank(financeInvoiceDTO.getRelatedInvoice())){
+            financeInvoice.setRelatedInvoice(financeInvoiceDTO.getRelatedInvoice());
+        }
+        if(StringUtils.isNotBlank(financeInvoiceDTO.getSituationDetail())){
+            financeInvoice.setSituationDetail(financeInvoiceDTO.getSituationDetail());
+        }
+        if(StringUtils.isNotBlank(financeInvoiceDTO.getRedFlushReason())){
+            financeInvoice.setRedFlushReason(financeInvoiceDTO.getRedFlushReason());
+        }
+        if(StringUtils.isNotBlank(financeInvoiceDTO.getIsSmsNotice())){
+            financeInvoice.setIsSmsNotice(financeInvoiceDTO.getIsSmsNotice());
+        }
+        if(StringUtils.isNotBlank(financeInvoiceDTO.getIsOmsBilling())){
+            financeInvoice.setIsOmsBilling(financeInvoiceDTO.getIsOmsBilling());
+        }
+        if (ObjectUtil.isNotEmpty(financeInvoice)) {
+            if(StringUtils.isBlank(financeInvoice.getId())){
+                //获取当前登录人信息
+                UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
+                //发票编号生成
+                String serialNum = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), FinanceInvoiceDTO.BIZ_CODE, TokenProvider.getCurrentToken());
+                financeInvoice.setNo(serialNum);
+                if (StringUtils.isBlank(financeInvoice.getInvalidStatus())){
+                    financeInvoice.setInvalidStatus("0");
+                }
+                if (StringUtils.isBlank(financeInvoice.getReceivablesStatus())){
+                    financeInvoice.setReceivablesStatus("0");
+                }
+            }
+            if(StringUtils.isNotEmpty(financeInvoiceDTO.getActualDrawerEmailAddress())){
+                financeInvoice.setActualDrawerEmailAddress(financeInvoiceDTO.getActualDrawerEmailAddress());
+            }
+            financeInvoice.setRedInvoiceFlag(financeInvoiceDTO.getRedInvoiceFlag());
+            financeInvoice.setRedInvoiceRelevancyId(financeInvoiceDTO.getRedInvoiceRelevancyId());
+            financeInvoice.setRedInvoiceRelevancyNumber(financeInvoiceDTO.getRedInvoiceRelevancyNumber());
+        }
+        this.saveOrUpdate(financeInvoice);
+        if (ObjectUtil.isNotEmpty(financeInvoiceDTO)) {
+            // 如果当前是执行的是收款页面的保存方法
+            if ("1".equals(financeInvoiceDTO.getIsReceivables())) {
+                // 如果传过来的收款日期为空,则将本条发票的收款日期置空
+                if (ObjectUtil.isEmpty(financeInvoiceDTO.getReceivablesDate())) {
+                    // 根据发票id,置空发票的收款日期
+                    financeInvoiceMapper.setReceivablesDateNull(financeInvoice.getId());
+                }
+            }
+            // 基本信息保存
+            if(CollectionUtil.isNotEmpty(financeInvoiceDTO.getFinanceInvoiceBaseDTOList())){
+                List<String> delIds = financeInvoiceDTO.getFinanceInvoiceBaseDTOList().stream().distinct().filter(item->{
+                    if(StringUtils.isNotBlank(item.getId())){
+                        return true;
+                    }
+                    return false;
+                }).map(FinanceInvoiceBaseDTO::getId).collect(Collectors.toList());
+                if(CollectionUtil.isNotEmpty(delIds)){
+                    financeInvoiceBaseMapper.delete(new QueryWrapper<FinanceInvoiceBase>().lambda()
+                            .eq(FinanceInvoiceBase::getInvoiceId,financeInvoice.getId()).notIn(FinanceInvoiceBase::getId,delIds));
+                }else{
+                    financeInvoiceBaseMapper.delete(new QueryWrapper<FinanceInvoiceBase>().lambda()
+                            .eq(FinanceInvoiceBase::getInvoiceId,financeInvoice.getId()));
+                }
+                financeInvoiceDTO.getFinanceInvoiceBaseDTOList().stream().forEach(item->{
+                    FinanceInvoiceBase financeInvoiceBase = FinanceInvoiceBaseWrapper.INSTANCE.toEntity(item);
+                    if(StringUtils.isNotBlank(financeInvoiceBase.getId())){
+                        financeInvoiceBaseMapper.updateById(financeInvoiceBase);
+                    }else{
+                        financeInvoiceBase.setInvoiceId(financeInvoice.getId());
+                        financeInvoiceBaseMapper.insert(financeInvoiceBase);
+                    }
+                });
+            }else{
+                financeInvoiceBaseMapper.delete(new QueryWrapper<FinanceInvoiceBase>().lambda()
+                        .eq(FinanceInvoiceBase::getInvoiceId,financeInvoice.getId()));
+            }
+            // 附件保存
+            if(CollectionUtil.isNotEmpty(financeInvoiceDTO.getWorkAttachmentDtoList())){
+                List<String> delIds = financeInvoiceDTO.getWorkAttachmentDtoList().stream().distinct().filter(item -> {
+                    if (StringUtils.isNotBlank(item.getId())) {
+                        return true;
+                    }
+                    return false;
+                }).map(WorkAttachmentInfo::getId).collect(Collectors.toList());
+                if(CollectionUtil.isNotEmpty(delIds)){
+                    SpringUtil.getBean ( IWorkAttachmentApi.class ).deleteByAttachmentIdNotInIds(financeInvoice.getId(),delIds);
+                }else{
+                    SpringUtil.getBean ( IWorkAttachmentApi.class ).deleteByAttachmentId(financeInvoice.getId());
+                }
+                //获取当前登录人信息
+                UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
+                AtomicInteger j = new AtomicInteger(1);
+                List<WorkAttachmentInfo> collect = financeInvoiceDTO.getWorkAttachmentDtoList().stream().filter(item -> {
+                    if (StringUtils.isNotBlank(item.getId())) {
+                        return false;
+                    }
+                    return true;
+                }).collect(Collectors.toList());
+                collect.forEach(item->{
+                    this.saveFiles(item,financeInvoice.getId(),userDTO,j);
+                    j.getAndIncrement();
+                });
+            }else{
+                SpringUtil.getBean ( IWorkAttachmentApi.class ).deleteByAttachmentId(financeInvoice.getId());
+            }
+            // 发票明细保存
+            if(CollectionUtil.isNotEmpty(financeInvoiceDTO.getFinanceInvoiceDetailDTOList())){
+                List<String> delIds = financeInvoiceDTO.getFinanceInvoiceDetailDTOList().stream().distinct().filter(item -> {
+                    if (StringUtils.isNotBlank(item.getId())) {
+                        return true;
+                    }
+                    return false;
+                }).map(FinanceInvoiceDetailDTO::getId).collect(Collectors.toList());
+                if(CollectionUtil.isNotEmpty(delIds)){
+                    financeInvoiceDetailMapper.delete(new QueryWrapper<FinanceInvoiceDetail>().lambda()
+                            .eq(FinanceInvoiceDetail::getInvoiceId,financeInvoice.getId())
+                            .notIn(FinanceInvoiceDetail::getId,delIds));
+                }else{
+                    financeInvoiceDetailMapper.delete(new QueryWrapper<FinanceInvoiceDetail>().lambda().eq(FinanceInvoiceDetail::getInvoiceId,financeInvoice.getId()));
+                }
+                financeInvoiceDTO.getFinanceInvoiceDetailDTOList().stream().forEach(item->{
+                    FinanceInvoiceDetail financeInvoiceDetail = FinanceInvoiceDetailWrapper.INSTANCE.toEntity(item);
+                    if(StringUtils.isNotBlank(financeInvoiceDetail.getId())){
+                        financeInvoiceDetailMapper.updateById(financeInvoiceDetail);
+                    }else{
+                        financeInvoiceDetail.setInvoiceId(financeInvoice.getId());
+                        financeInvoiceDetailMapper.insert(financeInvoiceDetail);
+                    }
+                });
+            }else{
+                financeInvoiceDetailMapper.delete(new QueryWrapper<FinanceInvoiceDetail>().lambda().eq(FinanceInvoiceDetail::getInvoiceId,financeInvoice.getId()));
+            }
+            // 收款明细保存
+            if(CollectionUtil.isNotEmpty(financeInvoiceDTO.getFinanceInvoiceReceivablesDTOList())){
+                List<String> delIds = financeInvoiceDTO.getFinanceInvoiceReceivablesDTOList().stream().distinct().filter(item -> {
+                    if (StringUtils.isNotBlank(item.getId())) {
+                        return true;
+                    }
+                    return false;
+                }).map(FinanceInvoiceReceivablesDTO::getId).collect(Collectors.toList());
+                if(CollectionUtil.isNotEmpty(delIds)){
+                    financeInvoiceReceivablesMapper.delete(new QueryWrapper<FinanceInvoiceReceivables>().lambda()
+                            .eq(FinanceInvoiceReceivables::getInvoiceId,financeInvoice.getId())
+                            .notIn(FinanceInvoiceReceivables::getId,delIds));
+                }else{
+                    financeInvoiceReceivablesMapper.delete(new QueryWrapper<FinanceInvoiceReceivables>().lambda().eq(FinanceInvoiceReceivables::getInvoiceId,financeInvoice.getId()));
+                }
+                financeInvoiceDTO.getFinanceInvoiceReceivablesDTOList().stream().forEach(item->{
+                    FinanceInvoiceReceivables financeInvoiceReceivables = FinanceInvoiceReceivablesWrapper.INSTANCE.toEntity(item);
+                    if(StringUtils.isNotBlank(financeInvoiceReceivables.getId())){
+                        financeInvoiceReceivablesMapper.updateById(financeInvoiceReceivables);
+                    }else{
+                        financeInvoiceReceivables.setInvoiceId(financeInvoice.getId());
+                        financeInvoiceReceivablesMapper.insert(financeInvoiceReceivables);
+                    }
+                });
+            }else{
+                financeInvoiceReceivablesMapper.delete(new QueryWrapper<FinanceInvoiceReceivables>().lambda().eq(FinanceInvoiceReceivables::getInvoiceId,financeInvoice.getId()));
+            }
+            // 作废信息保存
+            if(ObjectUtil.isNotEmpty(financeInvoiceDTO.getFinanceInvoiceInvalidDTO())){
+                FinanceInvoiceInvalid financeInvoiceInvalid = FinanceInvoiceInvalidWrapper.INSTANCE.toEntity(financeInvoiceDTO.getFinanceInvoiceInvalidDTO());
+                if(StringUtils.isNotBlank(financeInvoiceInvalid.getId())){
+                    financeInvoiceInvalidMapper.update(financeInvoiceInvalid,
+                            new QueryWrapper<FinanceInvoiceInvalid>().lambda().eq(FinanceInvoiceInvalid::getId,financeInvoiceInvalid.getId()));
+                }else{
+                    financeInvoiceInvalid.setInvalidStatus("0");
+                    financeInvoiceInvalid.setInvoiceId(financeInvoice.getId());
+                    financeInvoiceInvalidMapper.insert(financeInvoiceInvalid);
+                }
+            }else{
+                financeInvoiceInvalidMapper.delete(new QueryWrapper<FinanceInvoiceInvalid>().lambda().eq(FinanceInvoiceInvalid::getInvoiceId,financeInvoice.getId()));
+                FinanceInvoiceInvalid financeInvoiceInvalid = new FinanceInvoiceInvalid();
+                financeInvoiceInvalid.setInvalidStatus("0");
+                financeInvoiceInvalid.setInvoiceId(financeInvoice.getId());
+                financeInvoiceInvalidMapper.insert(financeInvoiceInvalid);
+            }
+        }
+        return financeInvoice.getId();
+    }
 
 
+    public String saveForm(FinanceInvoiceDTO financeInvoiceDTO) throws Exception{
         //添加钉钉通知处理
         boolean isDDNotice = false;
         if(financeInvoiceDTO.getStatus().equals("2")){
@@ -689,6 +878,7 @@ public class FinanceInvoiceService extends ServiceImpl<FinanceInvoiceMapper, Fin
         return "ok";
     }
 
+
     /**
      * 判断是否开票逻辑
      */