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 | 761 ++++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 555 insertions(+), 206 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 f55fd08..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
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
@@ -19,6 +20,8 @@
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.vo.CompensationVO;
import com.doumee.dao.business.vo.RiskConfigVO;
+import com.doumee.dao.business.vo.SettleClaimsMoneyVO;
+import com.doumee.dao.business.vo.SettleParentStatusVO;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.SettleClaimsLogService;
import com.doumee.service.business.SettleClaimsService;
@@ -61,6 +64,8 @@
@Autowired
private SettleClaimsMapper settleClaimsMapper;
+ @Autowired
+ private SettleClaimsExtMapper settleClaimsExtMapper;
@Autowired
private SettleClaimsLogMapper settleClaimsLogMapper;
@@ -375,67 +380,161 @@
return 1;
}
-
@Override
- public Integer createSys(SettleClaims settleClaims) {
+ @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+ public Integer createOrEditSys(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())){
+ || Objects.isNull(settleClaims.getExtData())
+ || Objects.isNull(settleClaims.getExtData().getMemberName())
+ || Objects.isNull(settleClaims.getExtData().getMemberIdcardType())
+ || Objects.isNull(settleClaims.getExtData().getMemberIdcard())){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
- if(!loginUserInfo.getType().equals(Constants.ONE)){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炰紒涓氬憳宸ユ棤娉曡繘琛岃鎿嶄綔");
+ if(!Constants.equalsObject(settleClaims.getStatus(),Constants.ZERO)
+ &&( Objects.isNull(settleClaims.getExtData().getBxName())
+ || Objects.isNull(settleClaims.getExtData().getBxCode())
+ || Objects.isNull(settleClaims.getExtData().getBxEnddate())
+ || Objects.isNull(settleClaims.getExtData().getBxOrg())
+ || Objects.isNull(settleClaims.getInformantPhone()) )){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
- //鏌ヨ鏄惁瀛樺湪宸叉彁鎶ョ殑鏁版嵁 鏍规嵁浜哄憳鍜屼繚闄╂柟妗堣繘琛岃繃婊� 鏄惁瀛樺湪杩涜涓殑鏁版嵁
- 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(),"瀛樺湪鎻愭姤涓殑鎶ユ鏁版嵁!");
+ if(!Constants.equalsInteger(loginUserInfo.getType(),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);
+ Date date =new Date();
+ settleClaims.setEditDate(date);
+ settleClaims.setEditor(loginUserInfo.getId());
- 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(),"闄勪欢鍐呭寮傚父");
+ List<CompensationVO> feeList = settleClaims.getAccountList();
+ BigDecimal mainFee = new BigDecimal(0);
+ BigDecimal ortherFee = new BigDecimal(0);
+ if(feeList!=null && feeList.size()>0){
+ for(CompensationVO fee : feeList){
+ if(Constants.equalsObject(fee.getType(),Constants.ZERO)){
+ mainFee = mainFee.add(Constants.formatBigdecimal(fee.getFee()));
+ }else{
+ ortherFee = ortherFee.add(Constants.formatBigdecimal(fee.getFee()));
}
- 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);
}
+ settleClaims.setHpAccountContent(JSONObject.toJSONString(feeList));
+ settleClaims.setHpAccount(mainFee);
+ settleClaims.setHpOtherAccount(ortherFee);
}
-
+ if(settleClaims.getId() ==null){
+ //濡傛灉鏄柊澧炶褰�
+ dealCreateSysBiz(settleClaims,date,loginUserInfo);
+ }else{
+ //濡傛灉鏇存柊
+ dealUpdateSysBiz(settleClaims,date,loginUserInfo);
+ }
return settleClaims.getId();
}
+
+ private void dealUpdateSysBiz(SettleClaims settleClaims, Date date, LoginUserInfo loginUserInfo) {
+ SettleClaims model = settleClaimsMapper.selectById(settleClaims.getId());
+ if(model ==null){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ settleClaimsMapper.updateById(settleClaims);
+ //鍒犻櫎鍘熸潵鐨勬墿灞曞睘鎬т俊鎭紝淇濈暀鏈�鏂扮殑
+ settleClaimsExtMapper.delete(new UpdateWrapper<SettleClaimsExt>().lambda().eq(SettleClaimsExt::getSettileClaimsId,model.getId()));
+ settleClaims.getExtData().setCreator(settleClaims.getCreator());
+ settleClaims.getExtData().setCreateDate(date);
+ settleClaims.getExtData().setEditor(settleClaims.getCreator());
+ settleClaims.getExtData().setEditDate(date);
+ settleClaims.getExtData().setIsdeleted(Constants.ZERO);
+ settleClaims.getExtData().setSettileClaimsId(settleClaims.getId());
+ settleClaimsExtMapper.insert(settleClaims.getExtData());
+ //澶勭悊闄勪欢寮�濮�
+ multifileJoinMapper.update(null,new UpdateWrapper<Multifile>().lambda()
+ .set(Multifile::getIsdeleted,Constants.ONE)
+ .eq(Multifile::getObjId,model.getId())
+ .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_SGXC_FILE.getKey()
+ ,Constants.MultiFile.LP_DZBD_FILE.getKey()
+ )
+
+ );
+ dealSysFileListBiz(settleClaims);
+ }
+
+ private void dealCreateSysBiz(SettleClaims settleClaims,Date date,LoginUserInfo loginUserInfo) {
+ settleClaims.setCreateDate(date);
+ settleClaims.setIsdeleted(Constants.ZERO);
+ settleClaims.setCreator(loginUserInfo.getId());
+
+ settleClaimsMapper.insert(settleClaims);
+ settleClaims.getExtData().setCreator(settleClaims.getCreator());
+ settleClaims.getExtData().setCreateDate(date);
+ settleClaims.getExtData().setEditor(settleClaims.getCreator());
+ settleClaims.getExtData().setEditDate(date);
+ settleClaims.getExtData().setIsdeleted(Constants.ZERO);
+ settleClaims.getExtData().setSettileClaimsId(settleClaims.getId());
+ settleClaimsExtMapper.insert(settleClaims.getExtData());
+ //澶勭悊闄勪欢寮�濮�
+ dealSysFileListBiz(settleClaims);
+ }
+
+ /**
+ * 澶勭悊闄勪欢寮�濮�
+ * @param settleClaims
+ */
+
+ private void dealSysFileListBiz(SettleClaims settleClaims) {
+ List<Multifile> relationFileList = settleClaims.getRelationFileList();//鍛樺伐鍏崇郴鏉愭枡
+ List<Multifile> hospitalFileList = settleClaims.getHospitalFileList();//浣忛櫌鏉愭枡
+ 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);
+ }
+ //--------------澶勭悊闄勪欢缁撴潫----------------
+ }
+
+ private Collection<? extends Multifile> getMultifileListByObjtype(List<Multifile> list, int key,SettleClaims model) {
+ List<Multifile> insetList = new ArrayList<>();
+ if(CollectionUtils.isNotEmpty(list)){
+ int index = 0;
+ for (int i = 0; i < list.size(); i++) {
+ Multifile multifile = list.get(i);
+ if(Objects.isNull(multifile.getFileurl())
+ || Objects.isNull(multifile.getType())
+ || StringUtils.isBlank(multifile.getName()) ){
+ continue;
+ }
+ multifile.setId(null);
+ multifile.setCreator(model.getEditor());
+ multifile.setCreateDate(model.getEditDate());
+ multifile.setEditor(model.getEditor());
+ multifile.setEditDate(model.getEditDate());
+ multifile.setIsdeleted(Constants.ZERO);
+ multifile.setObjId(model.getId());
+ multifile.setObjType(key);
+ multifile.setSortnum(index++);
+ insetList.add(multifile);
+ }
+ }
+ return insetList;
+ }
+
@Override
public Integer create(SettleClaims settleClaims) {
LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
@@ -633,6 +732,11 @@
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()));
+
}
//鏌ヨ鎿嶄綔璁板綍
@@ -675,6 +779,126 @@
}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()));
+
+ }
+
+ //鏌ヨ鎿嶄綔璁板綍
+ 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());
+ }
+ if(Constants.equalsObject(settleClaims.getOrigin(),Constants.ONE)){
+ settleClaims.setExtData(settleClaimsExtMapper.selectOne(new LambdaQueryWrapper<SettleClaimsExt>()
+ .eq(SettleClaimsExt::getIsdeleted,Constants.ZERO)
+ .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;
}
@@ -816,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
@@ -880,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)
@@ -899,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)) {
@@ -1015,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) {
@@ -1062,6 +1244,7 @@
SettleClaims settleClaims = new SettleClaims();
BeanUtils.copyProperties(settleClaimsDTO,settleClaims);
settleClaims.setReportNumStatus(Constants.ZERO);
+ settleClaims.setOrigin(Constants.ZERO);
if(Objects.nonNull(settleClaims.getId())){
settleClaims.setEditDate(new Date());
settleClaims.setEditor(loginUserInfo.getId());
@@ -1071,7 +1254,6 @@
//澶勭悊椋庨櫓淇℃伅
this.saveRisk(settleClaims,settleClaimsDTO,systemDictDataService);
}
-
settleClaimsMapper.updateById(settleClaims);
}else{
settleClaims.setCreateDate(new Date());
@@ -1174,7 +1356,7 @@
//澶氭鍑洪櫓鎻愰啋
if(StringUtils.isNotBlank(riskConfigVO.getRiskTimesOpen()) && StringUtils.equals(riskConfigVO.getRiskTimesOpen(),Constants.ONE+"")
&& StringUtils.isNotBlank(riskConfigVO.getRiskTimesReportTimes())){
- Integer cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda()
+ Long cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda()
.eq(SettleClaims::getMemberId,settleClaimsDTO.getMemberId())
.ne(Objects.nonNull(settleClaims.getId()),SettleClaims::getId,settleClaims.getId())
.apply(" HAPPEN_TIME > DATE_SUB(now(), INTERVAL 365 DAY) ")
@@ -1192,7 +1374,7 @@
&& StringUtils.equals(riskConfigVO.getRiskRepeatReportOpen(),Constants.ONE+"")
&& StringUtils.isNotBlank(riskConfigVO.getRiskRepeatReportTimeUnit())
&& StringUtils.isNotBlank(riskConfigVO.getRiskRepeatReportTime())){
- Integer cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda()
+ Long cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda()
.eq(SettleClaims::getMemberId,settleClaimsDTO.getMemberId())
.ne(Objects.nonNull(settleClaims.getId()),SettleClaims::getId,settleClaims.getId())
.apply(riskConfigVO.getRiskRepeatReportTimeUnit().equals("1")," HAPPEN_TIME > DATE_SUB(now(), INTERVAL "+riskConfigVO.getRiskRepeatReportTime()+" HOUR) ")
@@ -1212,7 +1394,7 @@
if(StringUtils.isNotBlank(riskConfigVO.getRiskClaimTimesOpen())
&& StringUtils.equals(riskConfigVO.getRiskClaimTimesOpen(),Constants.ONE+"")
&& StringUtils.isNotBlank(riskConfigVO.getRiskClaimTimes())){
- Integer cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda()
+ Long cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda()
.eq(SettleClaims::getInsuranceApplyId,settleClaimsDTO.getInsuranceApplyId())
.ne(Objects.nonNull(settleClaims.getId()),SettleClaims::getId,settleClaims.getId())
.apply(" HAPPEN_TIME > DATE_SUB(now(), INTERVAL 365 DAY) ")
@@ -1790,11 +1972,23 @@
@Override
- public List<CompensationVO> getCompensation(Integer id){
- SettleClaims settleClaims = settleClaimsMapper.selectById(id);
+ public List<CompensationVO> getCompensation(CompensationFeeDTO compensationFeeDTO){
+ if(Objects.isNull(compensationFeeDTO)
+ || Objects.isNull(compensationFeeDTO.getType())
+ ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ SettleClaims settleClaims = null;
+ if(Objects.nonNull(compensationFeeDTO.getId())){
+ settleClaims = settleClaimsMapper.selectById(compensationFeeDTO.getId());
+ }
List<CompensationVO> modelList = new ArrayList<>();
- if (Objects.nonNull(settleClaims)&&StringUtils.isNotBlank(settleClaims.getAccountContent())) {
- modelList = JSONArray.parseArray(settleClaims.getAccountContent(),CompensationVO.class);
+ if (Objects.nonNull(settleClaims)) {
+ if(Constants.equalsInteger(compensationFeeDTO.getType(),Constants.ZERO)&&StringUtils.isNotBlank(settleClaims.getAccountContent())){
+ modelList = JSONArray.parseArray(settleClaims.getAccountContent(),CompensationVO.class);
+ }else if(Constants.equalsInteger(compensationFeeDTO.getType(),Constants.ONE)&&StringUtils.isNotBlank(settleClaims.getHpAccountContent())){
+ modelList = JSONArray.parseArray(settleClaims.getHpAccountContent(),CompensationVO.class);
+ }
}
Constants.compensation [] compensations = Constants.compensation.values();
List<CompensationVO> list = new ArrayList<>();
@@ -1837,17 +2031,17 @@
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
}
- List<CompensationVO> modelList = JSONArray.parseArray(settleClaims.getAccountContent(),CompensationVO.class);
+ List<CompensationVO> modelList = JSONArray.parseArray(dto.getCompensationJson(),CompensationVO.class);
SettleClaims update = new SettleClaims();
update.setEditDate(new Date());
update.setEditor(loginUserInfo.getId());
- 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));
- update.setOtherAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.TWO)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+ update.setYlClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)&&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.ZERO)&&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.ZERO)&&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.ZERO)&&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.ZERO)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+ update.setOtherAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
update.setAccountContent(dto.getCompensationJson());
update.setId(settleClaims.getId());
update.setStatus(Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.getKey());
@@ -1925,18 +2119,17 @@
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
}
- List<CompensationVO> modelList = JSONArray.parseArray(settleClaims.getAccountContent(),CompensationVO.class);
+
+ List<CompensationVO> modelList = JSONArray.parseArray(dto.getCompensationJson(),CompensationVO.class);
SettleClaims update = new SettleClaims();
update.setEditDate(new Date());
update.setEditor(loginUserInfo.getId());
- 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));
- update.setOtherAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.TWO)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
- update.setAccountContent(dto.getCompensationJson());
+ update.setHpAccountContent(dto.getCompensationJson());
+ update.setHpAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+ update.setHpOtherAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+
+
update.setId(settleClaims.getId());
update.setStatus(Constants.SettleClaimsStatus.COMPENSATION.getKey());
settleClaimsMapper.updateById(update);
@@ -1985,7 +2178,7 @@
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);
+ List<CompensationVO> oldList = JSONArray.parseArray(settleClaims.getHpAccountContent(),CompensationVO.class);
for (CompensationVO compensationVO:oldList) {
if(compensationVO.getName().equals(Constants.compensation.YL_COMPENSATION.getName())){
compensationVO.setFee(update.getYlClaimAccount());
@@ -1999,7 +2192,6 @@
continue;
}
}
- update.setAccountContent(dto.getCompensationJson());
update.setAccountContent(JSONArray.toJSONString(oldList));
update.setId(settleClaims.getId());
settleClaimsMapper.updateById(update);
@@ -2039,41 +2231,198 @@
}
-// @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());
-// }
+ @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.CONFIRM_FEE.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.CLOSE_CASE.getKey());
+ update.setId(settleClaims.getId());
+ settleClaimsMapper.updateById(update);
+
+ if(CollectionUtils.isNotEmpty(dto.getMultifileList())){
+ List<Multifile> fileList = dto.getMultifileList();
+ if(CollectionUtils.isNotEmpty(fileList)){
+ for (int i = 0; i < fileList.size(); i++) {
+ Multifile multifile = fileList.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.MultiFile.LP_PAY_FILE.getKey());
+ multifile.setSortnum(i+1);
+ multifileJoinMapper.insert(multifile);
+ }
+ }
+ }
+
+
+ //瀛樺偍鏃ュ織
+ this.saveSettleClaimsLog(settleClaims,
+ Constants.SettleClaimsLogType.PLATFORM_FINISH,
+ dto.getDescribe());
+ }
+ 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