Qchen пре 2 година
родитељ
комит
2d2ca7c2d0

+ 7 - 0
src/main/java/com/ydtech/modules/protocols/controller/PtlNewAgreementController.java

@@ -160,6 +160,13 @@ public class PtlNewAgreementController extends BaseController {
         return ptlAgreementProductCostsNewService.costsEndDateBatch(agreementProductCostsEndDateVo) ? HttpResult.ok("费用批量修改成功") : HttpResult.error("费用批量修改失败");
     }
 
+    @ApiOperation("费用批量删除")
+    @PostMapping("/costs/deleteBatch")
+    public HttpResult costsDeleteBatch(@RequestBody String[] ids) {
+        Boolean b = ptlAgreementProductCostsNewService.costsDeleteBatch(ids);
+        return b ? HttpResult.ok("删除成功") : HttpResult.error("删除失败");
+    }
+
     @ApiOperation(value = "获取承保规则列表")
     @PostMapping("/undwrt/rules/list")
     public PageResult getRulesList(@RequestBody AgreementUndwrtRulesQueryVo agreementUndwrtRulesQueryVo){

+ 7 - 0
src/main/java/com/ydtech/modules/protocols/service/PtlAgreementProductCostsNewService.java

@@ -61,6 +61,13 @@ public interface PtlAgreementProductCostsNewService extends IService<PtlAgreemen
      */
     boolean costsDelete(String costsId);
 
+    /**
+     * 删除协议费用
+     * @param ids
+     * @return
+     */
+    boolean costsDeleteBatch(String[] ids);
+
     /**
      * 复制协议费用
      * @param agreementProductCostsCopyVo

+ 73 - 1
src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsNewServiceImpl.java

@@ -976,7 +976,6 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
     }
 
     @Override
-    @Transactional
     public boolean costsEndDateBatch(AgreementProductCostsEndDateVo agreementProductCostsEndDateVo){
         for (String id : agreementProductCostsEndDateVo.getIds()){
             PtlAgreementProductCostsNew ptlAgreementProductCostsNew = this.getById(id);
@@ -992,11 +991,84 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
             String desc = "修改费用因子";
             //添加费用因子轨迹
             ptlAgreementProductCostsTrajectoryService.addCostsTrajectory(ptlAgreementProductCostsNew.getId(),desc,BaseController.getUser().getId());
+            //保存产品费用历史记录
+            PtlAgreementProductCostsNewHistory ptlAgreementProductCostsNewHistory = new PtlAgreementProductCostsNewHistory();
+            //添加费用ID
+            ptlAgreementProductCostsNewHistory.setId(IdGenerate.nextId());
+            ptlAgreementProductCostsNewHistory.setCostsId(ptlAgreementProductCostsNew.getId());
+            //生成批次ID
+            String uuid = IdGenerate.nextId();
+            ptlAgreementProductCostsNewHistory.setBatch(uuid);
+            ptlAgreementProductCostsNewHistory.setProductId(ptlAgreementProductCostsNew.getProductId());
+            ptlAgreementProductCostsNewHistory.setProductName(ptlAgreementProductCostsNew.getProductName());
+            ptlAgreementProductCostsNewHistory.setOperatorType("update");
+            ptlAgreementProductCostsNewHistory.setModifier(BaseController.getUser().getId());
+            ptlAgreementProductCostsNewHistory.setOperatorTime(LocalDateTime.now());
+            ptlAgreementProductCostsNewHistoryService.save(ptlAgreementProductCostsNewHistory);
             baseMapper.updateById(ptlAgreementProductCostsNew);
         }
         return true;
     }
 
+    @Override
+    public boolean costsDeleteBatch(String[] ids){
+        for (String id : ids) {
+            PtlAgreementProductCostsNew ptlAgreementProductCostsNew = this.getById(id);
+            if(ptlAgreementProductCostsNew == null){
+                throw new SystemException("费用不存在");
+            }
+            PtlAgreementProductCostsExport productCostsExport = ptlAgreementProductCostsExportService.getOne(new LambdaQueryWrapper<PtlAgreementProductCostsExport>().eq(PtlAgreementProductCostsExport::getCostsId, id));
+
+
+            //保存产品费用历史记录
+            PtlAgreementProductCostsNewHistory ptlAgreementProductCostsNewHistory = new PtlAgreementProductCostsNewHistory();
+            BeanUtils.copyProperties(ptlAgreementProductCostsNew, ptlAgreementProductCostsNewHistory);
+            BeanUtils.copyProperties(productCostsExport, ptlAgreementProductCostsNewHistory);
+            //添加费用ID
+            ptlAgreementProductCostsNewHistory.setId(IdGenerate.nextId());
+            ptlAgreementProductCostsNewHistory.setCostsId(ptlAgreementProductCostsNew.getId());
+            //生成批次ID
+            String uuid = IdGenerate.nextId();
+            ptlAgreementProductCostsNewHistory.setBatch(uuid);
+            ptlAgreementProductCostsNewHistory.setProductId(ptlAgreementProductCostsNew.getProductId());
+            ptlAgreementProductCostsNewHistory.setProductName(ptlAgreementProductCostsNew.getProductName());
+            ptlAgreementProductCostsNewHistory.setOperatorType("delete");
+            ptlAgreementProductCostsNewHistory.setModifier(BaseController.getUser().getId());
+            ptlAgreementProductCostsNewHistory.setOperatorTime(LocalDateTime.now());
+            ptlAgreementProductCostsNewHistoryService.save(ptlAgreementProductCostsNewHistory);
+
+            //创建产品费用因子历史记录容器
+            List<PtlAgreementProductCostsAttrLinkHistory> costsAttrLinkHistories = new ArrayList<>();
+
+            //获取产品费用因子出口历史记录
+            List<PtlAgreementProductCostsAttrLink> costsAttrLinks = ptlAgreementProductCostsAttrLinkService.list(new LambdaQueryWrapper<PtlAgreementProductCostsAttrLink>()
+                    .eq(PtlAgreementProductCostsAttrLink::getCostsId, id));
+
+            costsAttrLinks.forEach(x -> {
+                PtlAgreementProductCostsAttrLinkHistory costsAttrLinkHistory = new PtlAgreementProductCostsAttrLinkHistory();
+                BeanUtils.copyProperties(x, costsAttrLinkHistory);
+                //设置产品费用因子历史记录
+                costsAttrLinkHistory.setId(null);
+                costsAttrLinkHistory.setBatch(uuid);
+                costsAttrLinkHistory.setOperatorType("delete");
+                costsAttrLinkHistory.setModifier(BaseController.getUser().getId());
+                costsAttrLinkHistory.setOperatorTime(LocalDateTime.now());
+                costsAttrLinkHistories.add(costsAttrLinkHistory);
+            });
+
+            //保存产品费用因子历史记录
+            ptlAgreementProductCostsAttrLinkHistoryService.saveBatch(costsAttrLinkHistories);
+
+            //删除产品费用及费用因子
+            baseMapper.deleteById(id);
+            ptlAgreementProductCostsAttrLinkService.remove(new LambdaQueryWrapper<PtlAgreementProductCostsAttrLink>().eq(PtlAgreementProductCostsAttrLink::getCostsId, id));
+            //添加费用因子轨迹
+            ptlAgreementProductCostsTrajectoryService.addCostsTrajectory(ptlAgreementProductCostsNew.getId(),"删除费用因子",BaseController.getUser().getId());
+
+        }
+        return true;
+    }
+
 
     @Autowired
     PtlAgreementService ptlAgreementService;