From 7222d2bcedd4b959107cfb0086a8bab10a2c15e0 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期三, 21 五月 2025 18:18:58 +0800
Subject: [PATCH] git ch

---
 server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java |  525 ++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 325 insertions(+), 200 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 312901d..b143150 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
@@ -449,13 +449,19 @@
         settleClaimsExtMapper.insert(settleClaims.getExtData());
         //澶勭悊闄勪欢寮�濮�
         multifileJoinMapper.update(null,new UpdateWrapper<Multifile>().lambda()
-                .set(Multifile::getIsdeleted,Constants.ZERO)
+                .set(Multifile::getIsdeleted,Constants.ONE)
                 .eq(Multifile::getObjId,model.getId())
-                .in(Multifile::getObjType,Constants.MultiFile.LP_YGGX_FILE.getKey()
+                .in(Multifile::getObjType
+                        ,Constants.MultiFile.LP_YGGX_FILE.getKey()
                         ,Constants.MultiFile.LP_ZYCL_FILE.getKey()
                         ,Constants.MultiFile.LP_MZCL_FILE.getKey()
                         ,Constants.MultiFile.LP_OTHER_FILE.getKey()
-                        ,Constants.MultiFile.LP_SCZL_FILE.getKey()));
+                        ,Constants.MultiFile.LP_SCZL_FILE.getKey()
+                        ,Constants.MultiFile.LP_SGXC_FILE.getKey()
+                        ,Constants.MultiFile.LP_DZBD_FILE.getKey()
+                )
+
+        );
         dealSysFileListBiz(settleClaims);
     }
 
@@ -487,12 +493,16 @@
         List<Multifile> outpatientFileList = settleClaims.getOutpatientFileList();//闂ㄨ瘖鏉愭枡
         List<Multifile> otherFileList = settleClaims.getOtherFileList();//鍏朵粬鏉愭枡
         List<Multifile> disabilityFileList = settleClaims.getDisabilityFileList();//浼ゆ畫鏉愭枡
+        List<Multifile> dzbdFileList = settleClaims.getDzbdFileList();//鐢靛瓙淇濆崟
+        List<Multifile> reportFileList = settleClaims.getReportFileList();//鎶ユ瑙嗛
         List<Multifile> insetList = new ArrayList<>();
         insetList.addAll(getMultifileListByObjtype(relationFileList,Constants.MultiFile.LP_YGGX_FILE.getKey(),settleClaims));
         insetList.addAll(getMultifileListByObjtype(hospitalFileList,Constants.MultiFile.LP_ZYCL_FILE.getKey(),settleClaims));
         insetList.addAll(getMultifileListByObjtype(outpatientFileList,Constants.MultiFile.LP_MZCL_FILE.getKey(),settleClaims));
         insetList.addAll(getMultifileListByObjtype(otherFileList,Constants.MultiFile.LP_OTHER_FILE.getKey(),settleClaims));
         insetList.addAll(getMultifileListByObjtype(disabilityFileList,Constants.MultiFile.LP_SCZL_FILE.getKey(),settleClaims));
+        insetList.addAll(getMultifileListByObjtype(dzbdFileList,Constants.MultiFile.LP_DZBD_FILE.getKey(),settleClaims));
+        insetList.addAll(getMultifileListByObjtype(reportFileList,Constants.MultiFile.LP_SGXC_FILE.getKey(),settleClaims));
         if(CollectionUtils.isNotEmpty(insetList)){
                 multifileJoinMapper.insert(insetList);
         }
@@ -510,6 +520,7 @@
                         || StringUtils.isBlank(multifile.getName())  ){
                     continue;
                 }
+                multifile.setId(null);
                 multifile.setCreator(model.getEditor());
                 multifile.setCreateDate(model.getEditDate());
                 multifile.setEditor(model.getEditor());
@@ -723,6 +734,122 @@
             settleClaims.setOtherFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_OTHER_FILE.getKey())).collect(Collectors.toList()));
 
             settleClaims.setPayFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_PAY_FILE.getKey())).collect(Collectors.toList()));
+
+            settleClaims.setDzbdFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_DZBD_FILE.getKey())).collect(Collectors.toList()));
+
+        }
+
+        //鏌ヨ鎿嶄綔璁板綍
+        List<SettleClaimsLog> settleClaimsLogList = settleClaimsLogJoinMapper.selectJoinList(SettleClaimsLog.class,
+                new MPJLambdaWrapper<SettleClaimsLog>()
+                        .selectAll(SettleClaimsLog.class)
+                        .selectAs(SystemUser::getRealname,SettleClaimsLog::getCreatorName)
+                        .selectAs(SystemUser::getType,SettleClaimsLog::getCreatorType)
+                        .selectAs(Company::getName,SettleClaimsLog::getCompanyName)
+                        .leftJoin(SystemUser.class,SystemUser::getId,SettleClaimsLog::getCreator)
+                        .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId)
+                        .eq(SettleClaimsLog::getSettleClainmsId,settleClaims.getId())
+                        .orderByAsc(SettleClaimsLog::getCreateDate)
+        );
+        settleClaims.setSettleClaimsLogList(settleClaimsLogList);
+        SettleClaimsLog lastConfirm = settleClaimsLogMapper.selectOne(new QueryWrapper<SettleClaimsLog>().lambda()
+                .eq(SettleClaimsLog::getSettleClainmsId,settleClaims.getId())
+                .eq(SettleClaimsLog::getObjType,Constants.SettleClaimsLogType.PLATFORM_CONFIRM_INFORMATION.getKey())
+                .orderByDesc(SettleClaimsLog::getCreateDate)
+                .last(" limit 1")
+        );
+
+        Multifile multifile = multifileJoinMapper.selectOne(new QueryWrapper<Multifile>()
+                .lambda()
+                .eq(Multifile::getObjId,settleClaims.getId())
+                .eq(Multifile::getIsdeleted,Constants.ZERO)
+                .in(Multifile::getObjType,
+                        Constants.MultiFile.LP_SGXC_FILE.getKey(),
+                        Constants.MultiFile.LP_YGGX_FILE.getKey(),
+                        Constants.MultiFile.LP_MZCL_FILE.getKey(),
+                        Constants.MultiFile.LP_ZYCL_FILE.getKey(),
+                        Constants.MultiFile.LP_SCZL_FILE.getKey(),
+                        Constants.MultiFile.LP_JACL_FILE.getKey())
+                .orderByDesc(Multifile::getCreateDate)
+                .last(" limit 1")
+        );
+
+        if(!Objects.isNull(lastConfirm)&&!Objects.isNull(multifile)){
+            settleClaims.setFinishDate(lastConfirm.getCreateDate().compareTo(multifile.getCreateDate())>=0?lastConfirm.getCreateDate():multifile.getCreateDate());
+        }else if(!Objects.isNull(lastConfirm)&&Objects.isNull(multifile)){
+            settleClaims.setFinishDate(lastConfirm.getCreateDate());
+        }
+        return settleClaims;
+    }
+
+
+    @Override
+    public SettleClaims getSettleClaimsDetailForSd(Integer id){
+        MPJLambdaWrapper<SettleClaims>  queryWrapper =    new MPJLambdaWrapper<SettleClaims>();
+        queryWrapper.selectAll(SettleClaims.class)
+                .selectAs(SettleClaimsExt::getBxOrg,SettleClaims::getCompanyName)
+                .selectAs(SettleClaimsExt::getBxName,SettleClaims::getSolutionName)
+                .selectAs(SettleClaimsExt::getMemberName,SettleClaims::getMemberName)
+                .selectAs(SettleClaimsExt::getMemberIdcard,SettleClaims::getMemberIdcardNo)
+                .selectAs(SettleClaimsExt::getBxStartdate,SettleClaims::getBaoxianStartTime)
+                .selectAs(SettleClaimsExt::getBxEnddate,SettleClaims::getBaoxianEndTime)
+                .selectAs(SettleClaimsExt::getBxCode,SettleClaims::getApplyCode)
+                .innerJoin(SettleClaimsExt.class,SettleClaimsExt::getSettileClaimsId,SettleClaims::getId)
+                .eq(SettleClaims::getId,id);
+        SettleClaims settleClaims = settleClaimsJoinMapper.selectJoinOne(SettleClaims.class,queryWrapper);
+        if(settleClaims == null){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if(StringUtils.isNotBlank(settleClaims.getHpAccountContent())){
+            settleClaims.setAccountList(JSONArray.parseArray(settleClaims.getHpAccountContent(),CompensationVO.class ));
+        }
+        List<Multifile> multifileList = multifileJoinMapper.selectJoinList(Multifile.class,
+                new MPJLambdaWrapper<Multifile>()
+                        .selectAll(Multifile.class)
+                        .selectAs(SystemUser::getRealname,Multifile::getCreatorName)
+                        .leftJoin(SystemUser.class,SystemUser::getId,Multifile::getCreator)
+                        .eq(Multifile::getObjId,id)
+                        .eq(Multifile::getIsdeleted,Constants.ZERO)
+                        .orderByAsc(Multifile::getCreateDate)
+        );
+        String rPath = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode();
+        String path = rPath+ systemDictDataBiz.queryByCode(Constants.OSS,Constants.SETTLE_FILE).getCode();
+        if(multifileList!=null){
+            for(Multifile f : multifileList){
+                if(f!=null&& StringUtils.isNotBlank(f.getFileurl())){
+                    f.setFileurlFull(path+f.getFileurl());
+                }
+            }
+        }
+        Multifile baoxiandanFile = multifileJoinMapper.selectOne(new QueryWrapper<Multifile>()
+                .lambda().eq(Multifile::getObjId,settleClaims.getInsuranceApplyId())
+                .eq(Multifile::getIsdeleted,Constants.ZERO)
+                .eq(Multifile::getObjType,Constants.MultiFile.BD_DONE_PDF.getKey())
+                .last("limit 1"));
+        if(baoxiandanFile!=null&& StringUtils.isNotBlank(baoxiandanFile.getFileurl())){
+            path = rPath+ systemDictDataBiz.queryByCode(Constants.OSS,Constants.APPLY_FILE).getCode();
+            baoxiandanFile.setFileurlFull(path+baoxiandanFile.getFileurl());
+        }
+        settleClaims.setBaoxiandanFile(baoxiandanFile);//淇濋櫓鍗�
+        if(CollectionUtils.isNotEmpty(multifileList)){
+            settleClaims.setReportFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_SGXC_FILE.getKey())).collect(Collectors.toList()));
+
+            settleClaims.setRelationFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_YGGX_FILE.getKey())).collect(Collectors.toList()));
+
+            settleClaims.setOutpatientFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_MZCL_FILE.getKey())).collect(Collectors.toList()));
+
+            settleClaims.setHospitalFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_ZYCL_FILE.getKey())).collect(Collectors.toList()));
+
+            settleClaims.setDisabilityFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_SCZL_FILE.getKey())).collect(Collectors.toList()));
+
+            settleClaims.setCompensationFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_JACL_FILE.getKey())).collect(Collectors.toList()));
+
+            settleClaims.setOtherFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_OTHER_FILE.getKey())).collect(Collectors.toList()));
+
+            settleClaims.setPayFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_PAY_FILE.getKey())).collect(Collectors.toList()));
+
+            settleClaims.setDzbdFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_DZBD_FILE.getKey())).collect(Collectors.toList()));
+
         }
 
         //鏌ヨ鎿嶄綔璁板綍
@@ -771,6 +898,7 @@
                     .eq(SettleClaimsExt::getSettileClaimsId,settleClaims.getId())
                     .last("limit 1")));
         }
+        settleClaims.setExtData(settleClaimsExtMapper.selectOne(new QueryWrapper<SettleClaimsExt>().lambda().eq(SettleClaimsExt::getSettileClaimsId,id).last("limit 1")));
         return settleClaims;
     }
 
@@ -912,7 +1040,7 @@
 
     @Override
     public void deleteById(Integer id) {
-        settleClaimsMapper.deleteById(id);
+        settleClaimsMapper.update(new UpdateWrapper<SettleClaims>().lambda().set(SettleClaims::getIsdeleted,Constants.ONE).eq(SettleClaims::getId,id));
     }
 
     @Override
@@ -976,6 +1104,8 @@
                 .selectAs(Worktype::getName,SettleClaims::getWorktypeName)
                 .selectAs(InsuranceApply::getStartTime,SettleClaims::getBaoxianStartTime)
                 .selectAs(DispatchUnit::getName,SettleClaims::getDuName)
+                .selectAs(InsuranceApply::getStartTime,SettleClaims::getBaoxianStartTime)
+                .selectAs(InsuranceApply::getEndTime,SettleClaims::getBaoxianEndTime)
                 .leftJoin(Company.class,Company::getId,SettleClaims::getCompanyId)
                 .leftJoin(Member.class,Member::getId,SettleClaims::getMemberId)
                 .leftJoin(DispatchUnit.class,DispatchUnit::getId,SettleClaims::getDuId)
@@ -995,113 +1125,26 @@
             //浼佷笟鐢ㄦ埛鍙湅鑷繁鐨勬暟鎹�
             pageWrap.getModel().setCompanyId(user.getCompanyId());
         }
+        queryWrapper.eq(SettleClaims::getIsdeleted,Constants.ZERO);
+        queryWrapper.eq(SettleClaims::getOrigin,Constants.ZERO);
         queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()),Member::getName, pageWrap.getModel().getMemberName());
         queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getMemberIdcardNo()),Member::getIdcardNo, pageWrap.getModel().getMemberIdcardNo());
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getInformantName()),SettleClaims::getInformantName, pageWrap.getModel().getInformantName());
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getDuName()),DispatchUnit::getName, pageWrap.getModel().getDuName());
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCreateDateStr()),SettleClaims::getCreateDate, pageWrap.getModel().getCreateDateStr());
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getHappenTime()),SettleClaims::getHappenTime, pageWrap.getModel().getHappenTime());
         queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getDuName()),DispatchUnit::getName, pageWrap.getModel().getDuName());
         queryWrapper.eq(pageWrap.getModel().getBaseSolutionId()!=null,Solutions::getBaseId, pageWrap.getModel().getBaseSolutionId());
         queryWrapper.eq(pageWrap.getModel().getBaseDuId()!=null,DispatchUnit::getBaseId, pageWrap.getModel().getBaseDuId());
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getSolutionName()),Solutions::getName, pageWrap.getModel().getSolutionName());
+        queryWrapper.eq(pageWrap.getModel().getInHospital()!=null,SettleClaims::getInHospital, pageWrap.getModel().getInHospital());
+        queryWrapper.eq(pageWrap.getModel().getStatus()!=null,SettleClaims::getStatus, pageWrap.getModel().getStatus());
+        queryWrapper.eq(pageWrap.getModel().getCompanyId()!=null,SettleClaims::getCompanyId, pageWrap.getModel().getCompanyId());
+        queryWrapper.eq(pageWrap.getModel().getOrigin()!=null,SettleClaims::getOrigin, pageWrap.getModel().getOrigin());
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCode()),SettleClaims::getCode, pageWrap.getModel().getCode());
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getReportNum()),SettleClaims::getReportNum, pageWrap.getModel().getReportNum());
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getApplyCode()),InsuranceApply::getCode, pageWrap.getModel().getApplyCode());
 
-        if (pageWrap.getModel().getId() != null) {
-            queryWrapper.eq(SettleClaims::getId, pageWrap.getModel().getId());
-        }
-        if (pageWrap.getModel().getCreator() != null) {
-            queryWrapper.eq(SettleClaims::getCreator, pageWrap.getModel().getCreator());
-        }
-        if (pageWrap.getModel().getCreateDate() != null) {
-            queryWrapper.ge(SettleClaims::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
-            queryWrapper.le(SettleClaims::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
-        }
-        if (pageWrap.getModel().getEditor() != null) {
-            queryWrapper.eq(SettleClaims::getEditor, pageWrap.getModel().getEditor());
-        }
-        if (pageWrap.getModel().getEditDate() != null) {
-            queryWrapper.ge(SettleClaims::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
-            queryWrapper.le(SettleClaims::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
-        }
-        if (pageWrap.getModel().getIsdeleted() != null) {
-            queryWrapper.eq(SettleClaims::getIsdeleted, pageWrap.getModel().getIsdeleted());
-        }
-        if (pageWrap.getModel().getRemark() != null) {
-            queryWrapper.eq(SettleClaims::getRemark, pageWrap.getModel().getRemark());
-        }
-        if (pageWrap.getModel().getSortnum() != null) {
-            queryWrapper.eq(SettleClaims::getSortnum, pageWrap.getModel().getSortnum());
-        }
-        if (pageWrap.getModel().getSolutionId() != null) {
-            queryWrapper.eq(SettleClaims::getSolutionId, pageWrap.getModel().getSolutionId());
-        }
-        if (pageWrap.getModel().getCompanyId() != null) {
-            queryWrapper.eq(SettleClaims::getCompanyId, pageWrap.getModel().getCompanyId());
-        }
-        if (pageWrap.getModel().getMemberId() != null) {
-            queryWrapper.eq(SettleClaims::getMemberId, pageWrap.getModel().getMemberId());
-        }
-        if (pageWrap.getModel().getHappenTime() != null) {
-            queryWrapper.eq(SettleClaims::getHappenTime, pageWrap.getModel().getHappenTime());
-        }
-        if (pageWrap.getModel().getIdcardNo() != null) {
-            queryWrapper.eq(SettleClaims::getIdcardNo, pageWrap.getModel().getIdcardNo());
-
-        }
-        if (pageWrap.getModel().getDuId() != null) {
-            queryWrapper.eq(SettleClaims::getDuId, pageWrap.getModel().getDuId());
-        }
-        if (pageWrap.getModel().getWorktypeId() != null) {
-            queryWrapper.eq(SettleClaims::getWorktypeId, pageWrap.getModel().getWorktypeId());
-        }
-        if (pageWrap.getModel().getFee() != null) {
-            queryWrapper.eq(SettleClaims::getFee, pageWrap.getModel().getFee());
-        }
-        if (pageWrap.getModel().getCheckInfo() != null) {
-            queryWrapper.eq(SettleClaims::getCheckInfo, pageWrap.getModel().getCheckInfo());
-        }
-        if (pageWrap.getModel().getCheckUserId() != null) {
-            queryWrapper.eq(SettleClaims::getCheckUserId, pageWrap.getModel().getCheckUserId());
-        }
-        if (pageWrap.getModel().getCode() != null) {
-            queryWrapper.eq(SettleClaims::getCode, pageWrap.getModel().getCode());
-        }
-        if (pageWrap.getModel().getStatus() != null) {
-            if(pageWrap.getModel().getStatus().equals(Constants.ZERO)){
-                queryWrapper.in(SettleClaims::getStatus, Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey()
-                        ,Constants.SettleClaimsStatus.DEAL_ING.getKey()
-                        ,Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey());
-            }else{
-                queryWrapper.eq(SettleClaims::getStatus, pageWrap.getModel().getStatus());
-            }
-
-
-        }
-        if (pageWrap.getModel().getType() != null) {
-            queryWrapper.eq(SettleClaims::getType, pageWrap.getModel().getType());
-        }
-        if (pageWrap.getModel().getInHospital() != null) {
-            queryWrapper.eq(SettleClaims::getInHospital, pageWrap.getModel().getInHospital());
-        }
-        if (pageWrap.getModel().getMedicalInsurance() != null) {
-            queryWrapper.eq(SettleClaims::getMedicalInsurance, pageWrap.getModel().getMedicalInsurance());
-        }
-        if (pageWrap.getModel().getContent() != null) {
-            queryWrapper.eq(SettleClaims::getContent, pageWrap.getModel().getContent());
-        }
-        if (pageWrap.getModel().getInformantName() != null) {
-            queryWrapper.eq(SettleClaims::getInformantName, pageWrap.getModel().getInformantName());
-        }
-        if (pageWrap.getModel().getInformantPhone() != null) {
-            queryWrapper.eq(SettleClaims::getInformantPhone, pageWrap.getModel().getInformantPhone());
-        }
-        if (pageWrap.getModel().getAreaId() != null) {
-            queryWrapper.eq(SettleClaims::getAreaId, pageWrap.getModel().getAreaId());
-        }
-        if (pageWrap.getModel().getAreaInfo() != null) {
-            queryWrapper.eq(SettleClaims::getAreaInfo, pageWrap.getModel().getAreaInfo());
-        }
-        if (pageWrap.getModel().getReportNum() != null) {
-            queryWrapper.eq(SettleClaims::getReportNum, pageWrap.getModel().getReportNum());
-        }
-        if (pageWrap.getModel().getInsuranceApplyId() != null) {
-            queryWrapper.eq(SettleClaims::getInsuranceApplyId, pageWrap.getModel().getInsuranceApplyId());
-        }
         queryWrapper.orderByDesc(SettleClaims::getCreateDate);
         /*for(PageWrap.SortData sortData: pageWrap.getSorts()) {
             if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
@@ -1111,8 +1154,51 @@
             }
         }*/
         PageData<SettleClaims> pageData = PageData.from(settleClaimsJoinMapper.selectJoinPage(page,SettleClaims.class, queryWrapper));
+        for (SettleClaims settleClaims:pageData.getRecords()) {
+            settleClaims.setStatusName(Constants.SettleClaimsStatus.getName(settleClaims.getStatus()));
+            settleClaims.setPcAccount(settleClaims.getHpAccount().add(settleClaims.getHpOtherAccount()));
+        }
         return pageData;
     }
+
+
+    @Override
+    public PageData<SettleClaims> findPageForSd(PageWrap<SettleClaims> pageWrap) {
+        IPage<SettleClaims> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        MPJLambdaWrapper<SettleClaims>  queryWrapper = new MPJLambdaWrapper<SettleClaims>();
+        queryWrapper.selectAll(SettleClaims.class)
+                .selectAs(SettleClaimsExt::getBxOrg,SettleClaims::getCompanyName)
+                .selectAs(SettleClaimsExt::getBxName,SettleClaims::getSolutionName)
+                .selectAs(SettleClaimsExt::getMemberName,SettleClaims::getMemberName)
+                .selectAs(SettleClaimsExt::getMemberIdcard,SettleClaims::getMemberIdcardNo)
+                .selectAs(SettleClaimsExt::getBxStartdate,SettleClaims::getBaoxianStartTime)
+                .selectAs(SettleClaimsExt::getBxEnddate,SettleClaims::getBaoxianEndTime)
+                .selectAs(SettleClaimsExt::getBxCode,SettleClaims::getApplyCode)
+                .innerJoin(SettleClaimsExt.class,SettleClaimsExt::getSettileClaimsId,SettleClaims::getId);
+        queryWrapper.eq(SettleClaims::getIsdeleted,Constants.ZERO);
+        queryWrapper.eq(SettleClaims::getOrigin,Constants.ONE);
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getReportNum()),SettleClaims::getReportNum, pageWrap.getModel().getReportNum());
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),SettleClaimsExt::getBxOrg, pageWrap.getModel().getCompanyName());
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getInformantName()),SettleClaims::getInformantName, pageWrap.getModel().getInformantName());
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getHappenTime()),SettleClaims::getHappenTime, pageWrap.getModel().getHappenTime());
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCreateDateStr()),SettleClaims::getCreateDate, pageWrap.getModel().getCreateDateStr());
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()),SettleClaimsExt::getMemberName, pageWrap.getModel().getMemberName());
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getSolutionName()),SettleClaimsExt::getBxName, pageWrap.getModel().getSolutionName());
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getApplyCode()),SettleClaimsExt::getBxCode, pageWrap.getModel().getApplyCode());
+        queryWrapper.eq(pageWrap.getModel().getInHospital()!=null,SettleClaims::getInHospital, pageWrap.getModel().getInHospital());
+        queryWrapper.eq(pageWrap.getModel().getStatus()!=null,SettleClaims::getStatus, pageWrap.getModel().getStatus());
+        queryWrapper.orderByDesc(SettleClaims::getCreateDate);
+        PageData<SettleClaims> pageData = PageData.from(settleClaimsJoinMapper.selectJoinPage(page,SettleClaims.class, queryWrapper));
+        for (SettleClaims settleClaims:pageData.getRecords()) {
+            settleClaims.setStatusName(Constants.SettleClaimsStatus.getName(settleClaims.getStatus()));
+            settleClaims.setPcAccount(settleClaims.getHpAccount().add(settleClaims.getHpOtherAccount()));
+        }
+        return pageData;
+    }
+
+
 
     @Override
     public long count(SettleClaims settleClaims) {
@@ -2203,101 +2289,140 @@
     }
 
 
-//
-//    public List<SettleParentStatusVO> getParentStatus(SettleClaims settleClaims){
-//        List<SettleParentStatusVO> settleParentStatusVOList = new ArrayList<>();
-//        List<SettleClaimsLog> settleClaimsLogList = settleClaimsLogMapper
-//                .selectList(new QueryWrapper<SettleClaimsLog>().lambda().eq(SettleClaimsLog::getObjId,settleClaims.getId()).orderByDesc(SettleClaimsLog::getCreateDate));
-//        //绔嬫閫�鍥炵姸鎬佹暟鎹�
-//        if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.FINISH_ACCEPTANCE.getKey())){
-//            SettleParentStatusVO settleParentStatusVO = new SettleParentStatusVO();
-//            settleParentStatusVO.setParentTitle("鎶ユ");
-//            settleParentStatusVO.setStatus(Constants.ONE);
-//            settleParentStatusVO.setChildTitle(Constants.SettleClaimsStatus.FINISH_ACCEPTANCE.getName());
-//            Optional<SettleClaimsLog> optionalSettleClaimsLog = settleClaimsLogList.stream()
-//                    .filter(i->Constants.equalsInteger(i.getObjType(),Constants.SettleClaimsLogType.PLATFORM_RETURN.getKey())).findFirst();
-//            if(optionalSettleClaimsLog.isPresent()){
-//                settleParentStatusVO.setOptDate(optionalSettleClaimsLog.get().getCreateDate());
-//            }
-//            settleParentStatusVOList.add(settleParentStatusVO);
-//            return settleParentStatusVOList;
-//        }
-//        //鏆傚瓨鐘舵�� 鏃犱富娴佺▼鏁版嵁
-//        if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey())){
-//            return settleParentStatusVOList;
-//        }
-//        //鍟嗚瀹℃壒涓嶉�氳繃
-//        if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.WAIT_DISCUSS_REJECT.getKey())){
-//
-//            SettleParentStatusVO settleParentStatusBAVO = new SettleParentStatusVO();
-//            settleParentStatusBAVO.setParentTitle("鎶ユ");
-//            settleParentStatusBAVO.setChildTitle("宸叉姤妗�");
-//            settleParentStatusBAVO.setStatus(Constants.ZERO);
-//            Optional<SettleClaimsLog> optionalSettleClaimsBALog = settleClaimsLogList.stream()
-//                    .filter(i->Constants.equalsInteger(i.getParentStatus(),Constants.ONE)).findFirst();
-//            if(optionalSettleClaimsBALog.isPresent()){
-//                settleParentStatusBAVO.setOptDate(optionalSettleClaimsBALog.get().getCreateDate());
-//            }
-//            settleParentStatusVOList.add(settleParentStatusBAVO);
-//
-//            SettleParentStatusVO settleParentStatusLAVO = new SettleParentStatusVO();
-//            settleParentStatusLAVO.setParentTitle("绔嬫");
-//            settleParentStatusLAVO.setChildTitle("宸茬珛妗�");
-//            settleParentStatusLAVO.setStatus(Constants.ZERO);
-//            Optional<SettleClaimsLog> optionalSettleClaimsLALog = settleClaimsLogList.stream()
-//                    .filter(i->Constants.equalsInteger(i.getParentStatus(),Constants.TWO)).findFirst();
-//            if(optionalSettleClaimsLALog.isPresent()){
-//                settleParentStatusLAVO.setOptDate(optionalSettleClaimsBALog.get().getCreateDate());
-//            }
-//            settleParentStatusVOList.add(settleParentStatusBAVO);
-//
-//            SettleParentStatusVO settleParentStatusSLVO = new SettleParentStatusVO();
-//            settleParentStatusSLVO.setParentTitle("鍙楃悊");
-//            settleParentStatusSLVO.setChildTitle("鍟嗚鎷掔粷");
-//            settleParentStatusSLVO.setStatus(Constants.TWO);
-//            Optional<SettleClaimsLog> optionalSettleClaimsSLLog = settleClaimsLogList.stream()
-//                    .filter(i->Constants.equalsInteger(i.getParentStatus(),Constants.THREE)).findFirst();
-//            if(optionalSettleClaimsSLLog.isPresent()){
-//                settleParentStatusSLVO.setOptDate(optionalSettleClaimsSLLog.get().getCreateDate());
-//            }
-//            settleParentStatusVOList.add(settleParentStatusSLVO);
-//
-//            return settleParentStatusVOList;
-//        }
-//
-//        if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.RETURN.getKey())){
-//            List<SettleClaimsLog> settleClaimsLogs = settleClaimsLogList.stream()
-//                    .filter(i->i.getParentStatus()<Constants.SettleClaimsStatus.RETURN.getParentKey()).collect(Collectors.toList());
-//
-//            for (int i = 1; i <= 5; i++) {
-//                SettleParentStatusVO s = new SettleParentStatusVO();
-//                Constants.SettleClaimsLogParentStatus  parentStatus = Constants.SettleClaimsLogParentStatus.getAll(i);
-//                s.setParentTitle(parentStatus.getName());
-//                s.set(parentStatus.getInfo());
-//                s.setStatus(Constants.ZERO);
-//
-//            }
-//            SettleParentStatusVO settleParentStatusCHVO = new SettleParentStatusVO();
-//            settleParentStatusCHVO.setParentTitle("宸叉挙妗�");
-//            settleParentStatusCHVO.setChildTitle("浼佷笟涓诲姩鎾ゆ");
-//            settleParentStatusCHVO.setStatus(Constants.TWO);
-//            Optional<SettleClaimsLog> optionalSettleClaimsSLLog = settleClaimsLogList.stream()
-//                    .filter(i->Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsLogType.RETURN_SETTLE.getKey())).findFirst();
-//            if(optionalSettleClaimsSLLog.isPresent()){
-//                settleParentStatusCHVO.setOptDate(optionalSettleClaimsSLLog.get().getCreateDate());
-//            }
-//            settleParentStatusVOList.add(settleParentStatusCHVO);
-//
-//
-//            return settleParentStatusVOList;
-//
-//        }
-//
-//
-//        return settleParentStatusVOList;
-//
-//
-//    }
+
+    public List<SettleParentStatusVO> getParentStatus(SettleClaims settleClaims){
+        List<SettleParentStatusVO> settleParentStatusVOList = new ArrayList<>();
+        List<SettleClaimsLog> settleClaimsLogList = settleClaimsLogMapper
+                .selectList(new QueryWrapper<SettleClaimsLog>().lambda().eq(SettleClaimsLog::getObjId,settleClaims.getId()).orderByDesc(SettleClaimsLog::getCreateDate));
+        //绔嬫閫�鍥炵姸鎬佹暟鎹�
+        if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.FINISH_ACCEPTANCE.getKey())){
+            SettleParentStatusVO settleParentStatusVO = new SettleParentStatusVO();
+            settleParentStatusVO.setParentTitle("鎶ユ");
+            settleParentStatusVO.setStatus(Constants.ONE);
+            settleParentStatusVO.setChildTitle(Constants.SettleClaimsStatus.FINISH_ACCEPTANCE.getName());
+            Optional<SettleClaimsLog> optionalSettleClaimsLog = settleClaimsLogList.stream()
+                    .filter(i->Constants.equalsInteger(i.getObjType(),Constants.SettleClaimsLogType.PLATFORM_RETURN.getKey())).findFirst();
+            if(optionalSettleClaimsLog.isPresent()){
+                settleParentStatusVO.setOptDate(optionalSettleClaimsLog.get().getCreateDate());
+            }
+            settleParentStatusVOList.add(settleParentStatusVO);
+            return settleParentStatusVOList;
+        }
+        //鏆傚瓨鐘舵�� 鏃犱富娴佺▼鏁版嵁
+        if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey())){
+            return settleParentStatusVOList;
+        }
+        //鍟嗚瀹℃壒涓嶉�氳繃
+        if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.WAIT_DISCUSS_REJECT.getKey())){
+            SettleParentStatusVO settleParentStatusBAVO = new SettleParentStatusVO();
+            settleParentStatusBAVO.setParentTitle("鎶ユ");
+            settleParentStatusBAVO.setChildTitle("宸叉姤妗�");
+            settleParentStatusBAVO.setStatus(Constants.ZERO);
+            Optional<SettleClaimsLog> optionalSettleClaimsBALog = settleClaimsLogList.stream()
+                    .filter(i->Constants.equalsInteger(i.getParentStatus(),Constants.ONE)).findFirst();
+            if(optionalSettleClaimsBALog.isPresent()){
+                settleParentStatusBAVO.setOptDate(optionalSettleClaimsBALog.get().getCreateDate());
+            }
+            settleParentStatusVOList.add(settleParentStatusBAVO);
+
+            SettleParentStatusVO settleParentStatusLAVO = new SettleParentStatusVO();
+            settleParentStatusLAVO.setParentTitle("绔嬫");
+            settleParentStatusLAVO.setChildTitle("宸茬珛妗�");
+            settleParentStatusLAVO.setStatus(Constants.ZERO);
+            Optional<SettleClaimsLog> optionalSettleClaimsLALog = settleClaimsLogList.stream()
+                    .filter(i->Constants.equalsInteger(i.getParentStatus(),Constants.TWO)).findFirst();
+            if(optionalSettleClaimsLALog.isPresent()){
+                settleParentStatusLAVO.setOptDate(optionalSettleClaimsBALog.get().getCreateDate());
+            }
+            settleParentStatusVOList.add(settleParentStatusBAVO);
+
+            SettleParentStatusVO settleParentStatusSLVO = new SettleParentStatusVO();
+            settleParentStatusSLVO.setParentTitle("鍙楃悊");
+            settleParentStatusSLVO.setChildTitle("鍟嗚鎷掔粷");
+            settleParentStatusSLVO.setStatus(Constants.THREE);
+            Optional<SettleClaimsLog> optionalSettleClaimsSLLog = settleClaimsLogList.stream()
+                    .filter(i->Constants.equalsInteger(i.getParentStatus(),Constants.THREE)).findFirst();
+            if(optionalSettleClaimsSLLog.isPresent()){
+                settleParentStatusSLVO.setOptDate(optionalSettleClaimsSLLog.get().getCreateDate());
+            }
+            settleParentStatusVOList.add(settleParentStatusSLVO);
+
+            return settleParentStatusVOList;
+        }
+
+        //涓诲姩鎾ら攢
+        if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.RETURN.getKey())){
+            List<SettleClaimsLog> settleClaimsLogs = settleClaimsLogList.stream()
+                    .filter(i->i.getParentStatus()<Constants.SettleClaimsStatus.RETURN.getParentKey()).collect(Collectors.toList());
+            //鑾峰彇褰撳墠鏃ュ織鏈�澶х殑鐖剁姸鎬�
+            Optional<Integer> optionalInteger = settleClaimsLogs.stream().map(i->i.getParentStatus()).max(Comparator.comparingInt(o -> o));
+            if(optionalInteger.isPresent()){
+                for (int i = 1; i <= 5; i++) {
+                    SettleParentStatusVO s = new SettleParentStatusVO();
+                    Constants.SettleClaimsLogParentStatus  parentStatus = Constants.SettleClaimsLogParentStatus.getAll(i);
+                    s.setParentTitle(parentStatus.getName());
+                    s.setChildTitle(parentStatus.getInfo());
+                    s.setStatus(Constants.ZERO);
+                    //濡傛灉鏄瓑浜庣埗鐘舵�� 鍒欏幓鏌ヨ瀹為檯鐨勪笟鍔$姸鎬�
+                    if(Constants.equalsInteger(i,optionalInteger.get())){
+                        Optional<SettleClaimsLog> settleClaimsLogOptional = settleClaimsLogList.stream()
+                                .filter(j->Constants.equalsInteger(j.getParentStatus(),optionalInteger.get())).findFirst();
+                        if(settleClaimsLogOptional.isPresent()){
+                            s.setChildTitle(Constants.SettleClaimsLogType.getName(settleClaimsLogOptional.get().getObjType()));
+                        }
+                    }
+                    settleParentStatusVOList.add(s);
+                }
+            }
+            //娣诲姞鎾ゆ鏁版嵁
+            SettleParentStatusVO settleParentStatusCHVO = new SettleParentStatusVO();
+            settleParentStatusCHVO.setParentTitle("宸叉挙妗�");
+            settleParentStatusCHVO.setChildTitle("浼佷笟涓诲姩鎾ゆ");
+            settleParentStatusCHVO.setStatus(Constants.THREE);
+            Optional<SettleClaimsLog> optionalSettleClaimsSLLog = settleClaimsLogList.stream()
+                    .filter(i->Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsLogType.RETURN_SETTLE.getKey())).findFirst();
+            if(optionalSettleClaimsSLLog.isPresent()){
+                settleParentStatusCHVO.setOptDate(optionalSettleClaimsSLLog.get().getCreateDate());
+            }
+            settleParentStatusVOList.add(settleParentStatusCHVO);
+            return settleParentStatusVOList;
+        }
+
+
+        List<SettleClaimsLog> settleClaimsLogs = settleClaimsLogList.stream()
+                .filter(i->i.getParentStatus()<Constants.SettleClaimsStatus.RETURN.getParentKey()).collect(Collectors.toList());
+        Optional<Integer> optionalInteger = settleClaimsLogs.stream().map(i->i.getParentStatus()).max(Comparator.comparingInt(o -> o));
+        if(optionalInteger.isPresent()){
+            for (int i = 1; i <= 6; i++) {
+                SettleParentStatusVO s = new SettleParentStatusVO();
+                Constants.SettleClaimsLogParentStatus  parentStatus = Constants.SettleClaimsLogParentStatus.getAll(i);
+                s.setParentTitle(parentStatus.getName());
+                if(optionalInteger.get()>i){
+                    //濡傛灉鏈�澶х殑鐖朵笟鍔$姸鎬� 澶т簬 榛樿鐨�6绫绘暟鎹� 鍒欑洿鎺ユ樉绀洪粯璁ら厤缃�
+                    s.setChildTitle(parentStatus.getInfo());
+                    s.setStatus(Constants.ZERO);
+                }else if(optionalInteger.get()<i){
+                    //濡傛灉鏈�澶х殑鐖朵笟鍔$姸鎬� 灏忎簬 榛樿鐨�6绫绘暟鎹� 鍒欑洿鎺ユ樉绀洪粯璁ゆ湭澶勭悊閰嶇疆
+                    s.setChildTitle(parentStatus.getWaitInfo());
+                    s.setStatus(Constants.TWO);
+                }else{
+                    //濡傛灉鏄瓑浜庣埗鐘舵�� 鍒欏幓鏌ヨ瀹為檯鐨勪笟鍔$姸鎬�
+                    if(Constants.equalsInteger(i,optionalInteger.get())){
+                        Optional<SettleClaimsLog> settleClaimsLogOptional = settleClaimsLogList.stream()
+                                .filter(j->Constants.equalsInteger(j.getParentStatus(),optionalInteger.get())).findFirst();
+                        if(settleClaimsLogOptional.isPresent()){
+                            s.setChildTitle(Constants.SettleClaimsLogType.getName(settleClaimsLogOptional.get().getObjType()));
+                        }
+                    }
+                    s.setStatus(Constants.ONE);
+                }
+                settleParentStatusVOList.add(s);
+            }
+        }
+        return settleParentStatusVOList;
+
+
+    }
 
 
 

--
Gitblit v1.9.3