From 2b0a139f88adbbb67bc6feed69dc1ee9ff158cb9 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期四, 29 五月 2025 13:34:17 +0800 Subject: [PATCH] 提交一把订单 --- server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java | 160 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 150 insertions(+), 10 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 e752211..c7a167c 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 @@ -67,6 +67,8 @@ @Autowired private SettleClaimsMapper settleClaimsMapper; @Autowired + private MemberMapper memberMapper; + @Autowired private SettleClaimsExtMapper settleClaimsExtMapper; @Autowired @@ -396,6 +398,7 @@ } if(!Constants.equalsObject(settleClaims.getStatus(),Constants.ZERO) &&( Objects.isNull(settleClaims.getExtData().getBxName()) + || Objects.isNull(settleClaims.getExtData().getReportDate()) || Objects.isNull(settleClaims.getExtData().getBxCode()) || Objects.isNull(settleClaims.getExtData().getBxEnddate()) || Objects.isNull(settleClaims.getExtData().getBxOrg()) @@ -567,6 +570,7 @@ )>Constants.ZERO){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪鎻愭姤涓殑鎶ユ鏁版嵁!"); } + settleClaims.setCreateDate(new Date()); settleClaims.setIsdeleted(Constants.ZERO); settleClaims.setCompanyId(loginUserInfo.getCompanyId()); @@ -783,6 +787,94 @@ List<SettleParentStatusVO> parentStatusVOList = this.getParentStatus(settleClaims); settleClaims.setParentStatusVOList(parentStatusVOList); settleClaims.setStatusName(Constants.SettleClaimsStatus.getName(settleClaims.getStatus())); + + if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.REJECT_DEAL.getKey()) + || Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.WAIT_DISCUSS_REJECT.getKey())){ + SettleClaimsLog settleClaimsLog = settleClaimsLogJoinMapper.selectJoinOne(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()) + .in(SettleClaimsLog::getObjType,Constants.SettleClaimsLogType.PLATFORM_DISCUSS_REFUSE.getKey(), + Constants.SettleClaimsLogType.PLATFORM_REFUSE_ACCEPTANCE.getKey()) + .orderByDesc(SettleClaimsLog::getCreateDate) + .last(" limit 1") + ); + settleClaims.setRefuseSettleClaimsLog(settleClaimsLog); + }else if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.FINISH_ACCEPTANCE.getKey())){ + SettleClaimsLog settleClaimsLog = settleClaimsLogJoinMapper.selectJoinOne(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()) + .in(SettleClaimsLog::getObjType,Constants.SettleClaimsLogType.PLATFORM_RETURN.getKey()) + .orderByDesc(SettleClaimsLog::getCreateDate) + .last(" limit 1") + ); + settleClaims.setRefuseSettleClaimsLog(settleClaimsLog); + }else if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey()) + &&Constants.equalsInteger(settleClaims.getWaitSupplement(),Constants.ONE) + ){ + SettleClaimsLog settleClaimsLog = settleClaimsLogJoinMapper.selectJoinOne(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()) + .in(SettleClaimsLog::getObjType,Constants.SettleClaimsLogType.SUPPLEMENT_DESCRIBE.getKey()) + .orderByDesc(SettleClaimsLog::getCreateDate) + .last(" limit 1") + ); + settleClaims.setRefuseSettleClaimsLog(settleClaimsLog); + }else if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.CLOSE_CASE.getKey())){ + SettleClaimsLog settleClaimsLog = settleClaimsLogJoinMapper.selectJoinOne(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()) + .in(SettleClaimsLog::getObjType,Constants.SettleClaimsLogType.PLATFORM_FINISH.getKey()) + .orderByDesc(SettleClaimsLog::getCreateDate) + .last(" limit 1") + ); + settleClaims.setRefuseSettleClaimsLog(settleClaimsLog); + } + + if((Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey()) + || Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.getKey())) + && Constants.equalsInteger(settleClaims.getWaitSupplement(),Constants.ONE)){ + SettleClaimsLog settleClaimsLog = settleClaimsLogJoinMapper.selectJoinOne(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()) + .in(SettleClaimsLog::getObjType,Constants.SettleClaimsLogType.SUPPLEMENT_DESCRIBE.getKey()) + .orderByDesc(SettleClaimsLog::getCreateDate) + .last(" limit 1") + ); + settleClaims.setSupplementSettleClaimsLog(settleClaimsLog); + } + + + return settleClaims; } @@ -1112,6 +1204,7 @@ .selectAs(Member::getIdcardNo,SettleClaims::getMemberIdcardNo) .selectAs(Worktype::getName,SettleClaims::getWorktypeName) .selectAs(InsuranceApply::getStartTime,SettleClaims::getBaoxianStartTime) + .selectAs(InsuranceApply::getCode,SettleClaims::getApplyCode) .selectAs(DispatchUnit::getName,SettleClaims::getDuName) .selectAs(InsuranceApply::getStartTime,SettleClaims::getBaoxianStartTime) .selectAs(InsuranceApply::getEndTime,SettleClaims::getBaoxianEndTime) @@ -1130,7 +1223,8 @@ }else { queryWrapper. in(Company::getId, user.getCompanyIdList()); } - } else { + queryWrapper.ne(SettleClaims::getStatus,Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey()); + }{ //浼佷笟鐢ㄦ埛鍙湅鑷繁鐨勬暟鎹� pageWrap.getModel().setCompanyId(user.getCompanyId()); } @@ -1186,6 +1280,7 @@ .selectAs(SettleClaimsExt::getBxStartdate,SettleClaims::getBaoxianStartTime) .selectAs(SettleClaimsExt::getBxEnddate,SettleClaims::getBaoxianEndTime) .selectAs(SettleClaimsExt::getBxCode,SettleClaims::getApplyCode) + .selectAs(SettleClaimsExt::getReportDate,SettleClaims::getReportDate) .innerJoin(SettleClaimsExt.class,SettleClaimsExt::getSettileClaimsId,SettleClaims::getId); queryWrapper.eq(SettleClaims::getIsdeleted,Constants.ZERO); queryWrapper.eq(SettleClaims::getOrigin,Constants.ONE); @@ -1202,7 +1297,9 @@ 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())); + if(Objects.nonNull(settleClaims.getStatus())){ + settleClaims.setStatusName(Constants.SettleClaimsStatus.getName(settleClaims.getStatus())); + } settleClaims.setPcAccount(settleClaims.getHpAccount().add(settleClaims.getHpOtherAccount())); } return pageData; @@ -1252,10 +1349,25 @@ throw new BusinessException(ResponseStatus.BAD_REQUEST); } } + Member member =memberMapper.selectById(settleClaimsDTO.getMemberId()); + if(member == null){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝鍑洪櫓浜轰俊鎭笉姝g‘锛�"); + } SettleClaims settleClaims = new SettleClaims(); BeanUtils.copyProperties(settleClaimsDTO,settleClaims); settleClaims.setReportNumStatus(Constants.ZERO); + settleClaims.setCompanyId(loginUserInfo.getCompanyId()); settleClaims.setOrigin(Constants.ZERO); + settleClaims.setMemberName(member.getName()); + settleClaims.setCreateDate(new Date()); + if(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)&&StringUtils.isBlank(settleClaims.getCode())){ + Long nextCode = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda().ne(SettleClaims::getStatus,Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey()) + .eq(SettleClaims::getOrigin,Constants.ZERO) .like(SettleClaims::getCreateDate,DateUtil.getDate(new Date(),"yyyy-MM-dd")) + )+1; + settleClaims.setCode("YYBLP-"+DateUtil.getDate(new Date(),"yyyyMMdd")+ + (StringUtils.leftPad(nextCode.toString(),2,"0")) + ); + } if(Objects.nonNull(settleClaims.getId())){ settleClaims.setEditDate(new Date()); settleClaims.setEditor(loginUserInfo.getId()); @@ -1267,9 +1379,7 @@ } settleClaimsMapper.updateById(settleClaims); }else{ - settleClaims.setCreateDate(new Date()); settleClaims.setIsdeleted(Constants.ZERO); - settleClaims.setCompanyId(loginUserInfo.getCompanyId()); settleClaims.setStatus(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)? Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey():Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey()); if(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)){ @@ -1287,7 +1397,21 @@ this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.PLATFORM_REGISTER,null,Constants.SettleClaimsStatus.CONFIRM_INFORMATION); } } + if( Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey()) || + Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())){ + //-濡傛灉鏄緟绔嬫鎴栬�呭凡绔嬫寰呭鏍革紝鍙戝緟鍔為�氱煡------------- + Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.SETTLE_CLAIMS; + noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,settleClaims.getId())); + Notices notices = new Notices(noticeObjectType,Constants.ZERO,settleClaims.getId(),getNoticeConttent(settleClaims), + settleClaims.getCompanyId(), + Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey())?Constants.NoticeType.ZERO:Constants.NoticeType.TWO); + noticesMapper.insert(notices); + } return settleClaims.getId(); + } + + private String getNoticeConttent(SettleClaims settleClaims) { + return "鎶ユ鍙凤細"+StringUtils.defaultString(settleClaims.getCode(),"")+" 鍑洪櫓浜猴細"+StringUtils.defaultString(settleClaims.getMemberName(),""); } public void saveRisk(SettleClaims settleClaims, SettleClaimsDTO settleClaimsDTO, SystemDictDataServiceImpl systemDictDataService){ @@ -1298,7 +1422,7 @@ } Date happenTime = DateUtil.StringToDate(settleClaims.getHappenTime()); if(happenTime.getTime() < insuranceApply.getStartTime().getTime() || happenTime.getTime() > insuranceApply.getEndTime().getTime()){ - throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"浜嬫晠鍙戠敓浜嬩欢鏈湪淇濆崟鐢熸晥鑼冨洿鍐�"); + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"浜嬫晠鍙戠敓鏃堕棿鏈湪淇濆崟鐢熸晥鑼冨洿鍐�"); } Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId()); if(Objects.isNull(solutions)){ @@ -1726,6 +1850,7 @@ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~"); } settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda() + .set(SettleClaims::getWaitSupplement,Constants.ZERO) .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()).set(SettleClaims::getWaitSupplement,Constants.ZERO)); } multifileJoinMapper.delete(new QueryWrapper<Multifile>().lambda().eq(Multifile::getObjId,dto.getId()).eq(Multifile::getObjType,Constants.MultiFile.LP_OTHER_FILE.getKey())); @@ -1880,8 +2005,11 @@ 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.CONFIRM_INFORMATION.getKey()) + (Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey()) + &&Constants.equalsInteger(model.getReportNumStatus(),Constants.ONE)) + ||((Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey()) + || Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey()) + || Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_DISCUSS_AUDIT.getKey())) &&Constants.equalsInteger(model.getReportNumStatus(),Constants.ZERO)) // ||(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_DEAL.getKey()) // &&Constants.equalsInteger(model.getReportNumStatus(),Constants.ZERO)) @@ -2018,11 +2146,22 @@ //鍙楃悊鍟嗚瀹℃壒 settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda() .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()).set(SettleClaims::getEditor,loginUserInfo.getId()) - .set(SettleClaims::getStatus,Constants.SettleClaimsStatus.REJECT_DEAL.getKey())); + .set(SettleClaims::getStatus,Constants.SettleClaimsStatus.WAIT_DISCUSS_AUDIT.getKey())); //瀛樺偍鏃ュ織 this.saveSettleClaimsLog(settleClaims, Constants.SettleClaimsLogType.PLATFORM_WAIT_DISCUSS, - dto.getDescribe(),Constants.SettleClaimsStatus.REJECT_DEAL); + dto.getDescribe(),Constants.SettleClaimsStatus.WAIT_DISCUSS_AUDIT); + } + + if( Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey()) || + Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.WAIT_DISCUSS_AUDIT.getKey())){ + //-濡傛灉鏄緟绔嬫鎴栬�呭凡绔嬫寰呭鏍革紝鍙戝緟鍔為�氱煡------------- + Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.SETTLE_CLAIMS; + noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,settleClaims.getId())); + Notices notices = new Notices(noticeObjectType,Constants.ZERO,settleClaims.getId(),getNoticeConttent(settleClaims), + settleClaims.getCompanyId(), + Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey())?Constants.NoticeType.ZERO:Constants.NoticeType.TWO); + noticesMapper.insert(notices); } } @@ -2250,7 +2389,8 @@ 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.setId(settleClaims.getId()); + update.setFeeUpdate(Constants.ONE); settleClaimsMapper.updateById(update); //瀛樺偍鏃ュ織 -- Gitblit v1.9.3