From c35d4cc65b01b0a3b88e88f25d485d38b1ef12bd Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 20 五月 2025 10:35:13 +0800
Subject: [PATCH] 提交一把

---
 server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java |  169 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 156 insertions(+), 13 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
index f3ea9df..f55fd08 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
@@ -377,6 +377,66 @@
 
 
     @Override
+    public Integer createSys(SettleClaims settleClaims) {
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        settleClaims.setOrigin(Constants.ONE);
+        if(Objects.isNull(settleClaims)
+                || Objects.isNull(settleClaims.getMemberName())
+                || Objects.isNull(settleClaims.getSolutionName())
+                || Objects.isNull(settleClaims.getDuId())
+                || Objects.isNull(settleClaims.getWorktypeId())
+                || Objects.isNull(settleClaims.getHappenTime())
+                || Objects.isNull(settleClaims.getType())
+                || Objects.isNull(settleClaims.getInHospital())
+                || Objects.isNull(settleClaims.getMedicalInsurance())
+                || Objects.isNull(settleClaims.getContent())
+                || Objects.isNull(settleClaims.getInformantName())
+                || Objects.isNull(settleClaims.getInformantPhone())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        if(!loginUserInfo.getType().equals(Constants.ONE)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炰紒涓氬憳宸ユ棤娉曡繘琛岃鎿嶄綔");
+        }
+        //鏌ヨ鏄惁瀛樺湪宸叉彁鎶ョ殑鏁版嵁  鏍规嵁浜哄憳鍜屼繚闄╂柟妗堣繘琛岃繃婊� 鏄惁瀛樺湪杩涜涓殑鏁版嵁
+        if(settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda()
+                .eq(SettleClaims::getSolutionId,settleClaims.getSolutionId())
+                .eq(SettleClaims::getMemberId,loginUserInfo.getId())
+                .in(SettleClaims::getStatus,Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey(),
+                        Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())
+        )>Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪鎻愭姤涓殑鎶ユ鏁版嵁!");
+        }
+        settleClaims.setCreateDate(new Date());
+        settleClaims.setIsdeleted(Constants.ZERO);
+        settleClaims.setCompanyId(loginUserInfo.getCompanyId());
+        settleClaims.setStatus(Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey());
+        settleClaims.setCreator(loginUserInfo.getId());
+        settleClaims.setCheckUserId(loginUserInfo.getId());
+        settleClaimsMapper.insert(settleClaims);
+
+        List<Multifile> reportVideo = settleClaims.getReportFileList();
+        if(CollectionUtils.isNotEmpty(reportVideo)){
+            for (int i = 0; i < reportVideo.size(); i++) {
+                Multifile multifile = reportVideo.get(i);
+                if(Objects.isNull(multifile.getFileurl())
+                        || Objects.isNull(multifile.getType())
+                        || StringUtils.isBlank(multifile.getName())
+                ){
+                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢鍐呭寮傚父");
+                }
+                multifile.setCreator(loginUserInfo.getId());
+                multifile.setCreateDate(new Date());
+                multifile.setIsdeleted(Constants.ZERO);
+                multifile.setObjId(settleClaims.getId());
+                multifile.setObjType(Constants.ONE);
+                multifile.setSortnum(i+1);
+                multifileJoinMapper.insert(multifile);
+            }
+        }
+
+        return  settleClaims.getId();
+    }
+    @Override
     public Integer create(SettleClaims settleClaims) {
         LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         if(Objects.isNull(settleClaims)
@@ -1001,6 +1061,7 @@
         }
         SettleClaims settleClaims = new SettleClaims();
         BeanUtils.copyProperties(settleClaimsDTO,settleClaims);
+        settleClaims.setReportNumStatus(Constants.ZERO);
         if(Objects.nonNull(settleClaims.getId())){
             settleClaims.setEditDate(new Date());
             settleClaims.setEditor(loginUserInfo.getId());
@@ -1499,7 +1560,34 @@
     }
 
 
-
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public void updCaseType(CaseTypeDTO dto){
+        if(Objects.isNull(dto)
+                || Objects.isNull(dto.getId())
+                || Objects.isNull(dto.getCaseType())
+                || !(dto.getCaseType()>=Constants.ONE&&dto.getCaseType()<=Constants.THREE)
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(!loginUserInfo.getType().equals(Constants.ZERO)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炵鐞嗗憳鏃犳硶杩涜璇ユ搷浣�");
+        }
+        SettleClaims settleClaims  = settleClaimsJoinMapper.selectById(dto.getId());
+        if(Objects.isNull(settleClaims)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if(!Constants.equalsInteger(Constants.SettleClaimsStatus.ACCEPTANCE.getKey(),settleClaims.getStatus())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
+        }
+        //瀛樺偍鏃ュ織
+        this.saveSettleClaimsLog(settleClaims, Constants.SettleClaimsLogType.UPD_CASE_TYPE,Constants.SettleClaimsLogType.UPD_CASE_TYPE.getInfo());
+        settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda()
+                .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime())
+                .set(SettleClaims::getEditor,loginUserInfo.getId())
+                .set(SettleClaims::getCaseType,dto.getCaseType()));
+    }
 
 
 
@@ -1556,16 +1644,25 @@
         if(!user.getType().equals(Constants.ZERO)){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炵鐞嗗憳鏃犳硶杩涜璇ユ搷浣�");
         }
-        //鏌ヨ鏄惁鏈夋姤妗堝彿鏇存敼璁板綍
-        if(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey())
-        && settleClaimsLogMapper.selectCount(new QueryWrapper<SettleClaimsLog>().lambda()
-                        .eq(SettleClaimsLog::getObjType,Constants.SettleClaimsLogType.PLATFORM_ADDCODE.getKey())
-                .eq(SettleClaimsLog::getSettleClainmsId,param.getId()))>=Constants.ONE){
+        if(Constants.equalsInteger(model.getReportNumStatus(),Constants.TWO)){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浠呭彲淇敼涓�娆℃姤妗堝彿");
         }
-        if(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())&&StringUtils.isNotBlank(model.getReportNum())){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"宸蹭慨鏀规姤妗堝彿锛屾棤娉曞啀娆′慨鏀�");
+        if(!((Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey())&&Constants.equalsInteger(model.getReportNumStatus(),Constants.ONE))
+                ||(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_DEAL.getKey())&&Constants.equalsInteger(model.getReportNumStatus(),Constants.ZERO)))){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浠呭彲淇敼涓�娆℃姤妗堝彿");
         }
+
+
+//        //鏌ヨ鏄惁鏈夋姤妗堝彿鏇存敼璁板綍
+//        if(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey())
+//        && settleClaimsLogMapper.selectCount(new QueryWrapper<SettleClaimsLog>().lambda()
+//                        .eq(SettleClaimsLog::getObjType,Constants.SettleClaimsLogType.PLATFORM_ADDCODE.getKey())
+//                .eq(SettleClaimsLog::getSettleClainmsId,param.getId()))>=Constants.ONE){
+//            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浠呭彲淇敼涓�娆℃姤妗堝彿");
+//        }
+//        if(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())&&StringUtils.isNotBlank(model.getReportNum())){
+//            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"宸蹭慨鏀规姤妗堝彿锛屾棤娉曞啀娆′慨鏀�");
+//        }
         settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda()
                 .eq(SettleClaims::getId,param.getId()).set(SettleClaims::getEditDate,
                         DateUtil.getCurrDateTime()).set(SettleClaims::getReportNum,param.getReportNum()));
@@ -1573,6 +1670,7 @@
         SettleClaims update = new SettleClaims();
         update.setEditDate(new Date());
         update.setEditor(user.getId());
+        update.setReportNumStatus(model.getReportNumStatus()+Constants.ONE);
         update.setId(model.getId());
         update.setCheckDate(update.getEditDate());
         update.setCheckInfo("娣诲姞澶囨鍙�");
@@ -1608,7 +1706,7 @@
                 ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_DISCUSS_REJECT.getKey())
                 ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.getKey())
                 ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.COMPENSATION.getKey())
-                ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_CLOSE_CASE.getKey())
+                ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.CONFIRM_FEE.getKey())
                 ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.CLOSE_CASE.getKey())
         )){
             throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇峰綋鍓嶄笉鏀寔璇ユ搷浣渵");
@@ -1867,7 +1965,9 @@
         if(Objects.isNull(settleClaims)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
-        if(!Constants.equalsInteger(Constants.SettleClaimsStatus.COMPENSATION.getKey(),settleClaims.getStatus())){
+        if(!(Constants.equalsInteger(Constants.SettleClaimsStatus.COMPENSATION.getKey(),settleClaims.getStatus())
+                || Constants.equalsInteger(Constants.SettleClaimsStatus.CONFIRM_FEE.getKey(),settleClaims.getStatus()))
+        ){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
         }
 
@@ -1876,12 +1976,14 @@
         SettleClaims update = new SettleClaims();
         update.setEditDate(new Date());
         update.setEditor(loginUserInfo.getId());
+        if(Constants.equalsInteger(Constants.SettleClaimsStatus.CONFIRM_FEE.getKey(),settleClaims.getStatus())){
+            update.setFeeUpdate(Constants.ONE);
+        }
         update.setYlClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.YL_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
         update.setWgClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.WG_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
         update.setScClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.SC_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
         update.setSwClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.SW_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
         update.setClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
-
         //澶勭悊鍘嗗彶鏁版嵁
         List<CompensationVO> oldList =  JSONArray.parseArray(settleClaims.getAccountContent(),CompensationVO.class);
         for (CompensationVO compensationVO:oldList) {
@@ -1912,7 +2014,6 @@
     @Override
     @Transactional(rollbackFor = {BusinessException.class,Exception.class})
     public void confirmFee(Integer id){
-       
         LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         if(!loginUserInfo.getType().equals(Constants.ZERO)){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炵鐞嗗憳鏃犳硶杩涜璇ユ搷浣�");
@@ -1924,7 +2025,12 @@
         if(!Constants.equalsInteger(Constants.SettleClaimsStatus.COMPENSATION.getKey(),settleClaims.getStatus())){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
         }
-
+        SettleClaims update = new SettleClaims();
+        update.setEditDate(new Date());
+        update.setEditor(loginUserInfo.getId());
+        update.setStatus(Constants.SettleClaimsStatus.WAIT_DEAL.getKey());
+        update.setId(settleClaims.getId());
+        settleClaimsMapper.updateById(update);
 
         //瀛樺偍鏃ュ織
         this.saveSettleClaimsLog(settleClaims,
@@ -1933,5 +2039,42 @@
     }
 
 
+//    @Override
+//    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+//    public void payCash(PayCashDTO dto){
+//        if(Objects.isNull(dto)
+//                || Objects.isNull(dto.getId())
+//                || StringUtils.isBlank(dto.getDescribe())
+//        ){
+//            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+//        }
+//        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+//        if(!loginUserInfo.getType().equals(Constants.ZERO)){
+//            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炵鐞嗗憳鏃犳硶杩涜璇ユ搷浣�");
+//        }
+//        SettleClaims settleClaims  = settleClaimsJoinMapper.selectById(dto.getId());
+//        if(Objects.isNull(settleClaims)){
+//            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+//        }
+//        if(!Constants.equalsInteger(Constants.SettleClaimsStatus.COMPENSATION.getKey(),settleClaims.getStatus())){
+//            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
+//        }
+//        SettleClaims update = new SettleClaims();
+//        update.setEditDate(new Date());
+//        update.setEditor(loginUserInfo.getId());
+//        update.setStatus(Constants.SettleClaimsStatus.WAIT_DEAL.getKey());
+//        update.setId(settleClaims.getId());
+//        settleClaimsMapper.updateById(update);
+//
+//        //瀛樺偍鏃ュ織
+//        this.saveSettleClaimsLog(settleClaims,
+//                Constants.SettleClaimsLogType.CONFIRM_FEE,
+//                Constants.SettleClaimsLogType.CONFIRM_FEE.getInfo());
+//    }
+
+
+
+
+
 
 }

--
Gitblit v1.9.3