From be0301e67768fb183df7e29f411a7e54dbf15c40 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期三, 08 五月 2024 10:37:58 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/1.0.1' into 1.0.1 --- server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java | 122 ++++++++++++++++++++++++++++++++++------ 1 files changed, 102 insertions(+), 20 deletions(-) diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java index 4da9d33..151b5c5 100644 --- a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java +++ b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java @@ -167,12 +167,14 @@ noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,model.getId())); Notices notices = new Notices(noticeObjectType,Constants.ONE,model.getId(),solutions.getName(), insuranceApply.getCompanyId(), Constants.NoticeType.FOUR); +// notices.setParam1(insuranceApply.getId().toString()); noticesMapper.insert(notices); Constants.ApplyLogType applyLogType = Constants.ApplyLogType.CA_PLATFORM_CHECK_PASS_NO; String info =applyLogType.getInfo(); info = info.replace("${param}", update.getCheckInfo()); - ApplyLog log = new ApplyLog(update,applyLogType.getName(),info,update.getId(),applyLogType.getKey(), JSONObject.toJSONString(model), JSONObject.toJSONString(update)); + ApplyLog log = new ApplyLog(update,applyLogType.getName(), + info,update.getId(),applyLogType.getKey(), JSONObject.toJSONString(model), JSONObject.toJSONString(update)); applyLogMapper.insert(log); return 1; @@ -193,6 +195,10 @@ ApplyChange model = applyChangeMapper.selectById(param.getId()); if(model == null ||!Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + if(!Constants.equalsInteger(model.getType(),Constants.ONE)&& + param.getDelValidTime() == null ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); } if(!Constants.equalsInteger(model.getStatus(),Constants.ApplyChangeStatus.SIGNATURE.getKey())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵"); @@ -215,6 +221,7 @@ update.setId(model.getId()); update.setValidCode(param.getValidCode()); update.setApplyStartTime(param.getApplyStartTime()); + update.setDelValidTime(param.getDelValidTime()); update.setCode(model.getCode()); param.getPidanFile().setIsdeleted(Constants.ZERO); @@ -240,6 +247,15 @@ // if(1==1){ // throw new BusinessException(ResponseStatus.DATA_EMPTY); // } + + + Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.APPLY_CHANGE; + if(model.getType().equals(Constants.ONE)){ + noticeObjectType = Constants.NoticeObjectType.CHANGE_FACTORY; + } + //鍒犻櫎鍏朵粬寰呭姙 + noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,model.getId())); + Constants.ApplyLogType applyLogType = Constants.ApplyLogType.CA_PLATFORM_APPROVE; String info = ""; @@ -320,7 +336,7 @@ } /** - * 澶勭悊鍔犲噺淇濇槑缁嗘暟鎹� + * 澶勭悊鎹㈠巶鏄庣粏鏁版嵁 * @param update */ private void dealDetailsDUdata(ApplyChange update,InsuranceApply insuranceApply) { @@ -351,7 +367,6 @@ //瀹為檯鎵瑰崟鐢熸晥鏃ユ湡 Date applyStartTime = DateUtil.getMontageDate(update.getApplyStartTime(),1); for(ApplyChagneDetail detail : detailList){ - //鏌ヨ鍑忎繚浜哄憳鏄惁瀛樺湪 鍐茬獊鐨� 淇濆崟鏄庣粏鏁版嵁 if(applyDetailJoinMapper.selectCount(new QueryWrapper<ApplyDetail>() .lambda() .eq(ApplyDetail::getApplyId,update.getApplyId()) @@ -831,7 +846,21 @@ applyChange.setEditor(loginUserInfo.getId()); applyChange.setEditDate(new Date()); applyChange.setIsdeleted(Constants.ZERO); - applyChange.setApplyStartTime(applyChange.getValidTime()); + //鏍规嵁鐢宠鏃ユ湡 澶勭悊鍔犲噺淇濈殑 瀹為檯鐢熸晥鏃ユ湡 + if(Objects.nonNull(solutions.getAddValidDays())){ + applyChange.setApplyStartTime( + DateUtil.afterDateByType(applyChange.getValidTime(),0,solutions.getAddValidDays()) + ); + }else{ + applyChange.setApplyStartTime(applyChange.getValidTime()); + } + if(Objects.nonNull(solutions.getDelValidDays())){ + applyChange.setDelValidTime( + DateUtil.afterDateByType(applyChange.getValidTime(),0,solutions.getDelValidDays()) + ); + }else{ + applyChange.setDelValidTime(applyChange.getValidTime()); + } applyChange.setStatus(Constants.ZERO); applyChangeMapper.insert(applyChange); @@ -883,7 +912,9 @@ if (Objects.isNull(insuranceApply)) { throw new BusinessException(ResponseStatus.DATA_EMPTY); } - if (!Constants.equalsInteger(insuranceApply.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())) { + if (!(Constants.equalsInteger(insuranceApply.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()) + ||Constants.equalsInteger(insuranceApply.getStatus(),Constants.InsuranceApplyStatus.WTB_DONE.getKey()) + )) { throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "淇濆崟鐘舵�侀敊璇�"); } if (DateUtil.compareDate(insuranceApply.getEndTime(),new Date()) >= Constants.ZERO @@ -939,6 +970,11 @@ ApplyLog log = new ApplyLog(applyChange,applyLogType.getName(),info,applyChange.getId(),applyLogType.getKey(), null, null); applyLogMapper.insert(log); + Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.APPLY_CHANGE; + if(applyChange.getType().equals(Constants.ONE)){ + noticeObjectType = Constants.NoticeObjectType.CHANGE_FACTORY; + } + noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,applyChange.getId())); return applyChange.getId(); } @@ -975,10 +1011,15 @@ applyChangeCyclePriceDTO.setApplyId(insuranceApply.getId()); //鍔犱繚鏁版嵁 List<ApplyChagneDetail> addDetailList = applyChange.getAddDetailList(); + Integer addDetailSize = 0 ; if (CollectionUtils.isNotEmpty(addDetailList)) { - if(companySolution.getCanAdd().equals(Constants.ZERO)){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ紒涓氬垎閰嶄繚闄╂柟妗堟棤娉曡繘琛屽姞淇�"); + addDetailSize = addDetailList.size(); + if(Objects.isNull(solutions.getCanAdd()) || solutions.getCanAdd().equals(Constants.ZERO)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ繚闄╂柟妗堟棤娉曡繘琛屽姞淇�"); } +// if(companySolution.getCanAdd().equals(Constants.ZERO)){ +// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ紒涓氬垎閰嶄繚闄╂柟妗堟棤娉曡繘琛屽姞淇�"); +// } //楠岃瘉鏄惁瀛樺湪閲嶅鏁版嵁 List<String> idcarNo = addDetailList.stream().map(m->m.getIdcardNo()).collect(Collectors.toList()); Set<String> set = new HashSet<>(idcarNo); @@ -998,28 +1039,49 @@ //鍑忎繚鏁版嵁 List<ApplyChagneDetail> delDetailList = applyChange.getDelDetailList(); + Integer delDetailSize = 0 ; if (CollectionUtils.isNotEmpty(delDetailList)) { + delDetailSize = delDetailList.size() ; //楠岃瘉鏄惁瀛樺湪閲嶅鏁版嵁 List<String> idcarNo = delDetailList.stream().map(m->m.getIdcardNo()).collect(Collectors.toList()); Set<String> set = new HashSet<>(idcarNo); if(idcarNo.size() != set.size()){ throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"瀵逛笉璧凤紝浜哄憳褰曞叆鏁版嵁瀛樺湪鐩稿悓鏁版嵁锛�"); } - - if(companySolution.getCanReduce().equals(Constants.ZERO)){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ紒涓氬垎閰嶄繚闄╂柟妗堟棤娉曡繘琛屽噺淇�"); + if(Objects.isNull(solutions.getCanReduce()) || solutions.getCanReduce().equals(Constants.ZERO)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ繚闄╂柟妗堟棤娉曡繘琛屽噺淇�"); } +// if(companySolution.getCanReduce().equals(Constants.ZERO)){ +// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ紒涓氬垎閰嶄繚闄╂柟妗堟棤娉曡繘琛屽噺淇�"); +// } //鍑忎繚鏄庣粏鏁版嵁 璁$畻閲戦 鏍规嵁鎵瑰崟鏃堕棿 鍓嶄竴澶� 璁$畻 - applyChangeCyclePriceDTO.setValidTime(DateUtil.getMontageDate(applyChange.getValidTime(),2)); + applyChangeCyclePriceDTO.setValidTime(DateUtil.getMontageDate(applyChange.getValidTime(),3)); + CountCyclePriceVO countCyclePriceVO = this.getChangeCountCyclePriceVO(applyChangeCyclePriceDTO); BigDecimal detailFee = countCyclePriceVO.getCyclePrice(); this.delChangeDetail(applyChange,delDetailList,insuranceApply,solutions,loginUserInfo,detailFee,applyChangeCyclePriceDTO.getValidTime()); fee = fee.add(delDetailList.stream().map(ApplyChagneDetail::getFee).reduce(BigDecimal.ZERO,BigDecimal::add)); } + if(Objects.nonNull(solutions.getDelOnlyReplace())&& solutions.getDelOnlyReplace().equals(Constants.ONE)){ + if(delDetailSize > addDetailSize){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ繚闄╂柟妗堜粎鏀寔鏇挎崲"); + } + } + //鎹㈠巶涓氬姟 List<ApplyChagneDetail> changeDetailList = applyChange.getChangeDetailList(); if (CollectionUtils.isNotEmpty(changeDetailList)) { + if(Objects.isNull(solutions.getCanChangeUnit()) || solutions.getCanChangeUnit().equals(Constants.ZERO)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ繚闄╂柟妗堟棤娉曡繘琛屾崲鍘傛搷浣�"); + } + //楠岃瘉鏄惁瀛樺湪閲嶅鏁版嵁 + List<String> idcarNo = changeDetailList.stream().map(m->m.getIdcardNo()).collect(Collectors.toList()); + Set<String> set = new HashSet<>(idcarNo); + if(idcarNo.size() != set.size()){ + throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"瀵逛笉璧凤紝浜哄憳褰曞叆鏁版嵁瀛樺湪鐩稿悓鏁版嵁锛�"); + } + this.changeDetail(applyChange,changeDetailList,duWorktypeList,duSolutionList,loginUserInfo); } return fee; @@ -1097,6 +1159,7 @@ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍑忎繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戜繚鍗曚繚闅滄棩鏈熻嚦锛氥��" + applyDetail.getEndTime() + "銆戞棤娉曢�氳繃鏈鐢宠"); } + applyChagneDetail.setPrice(applyDetail.getPrice()); applyChagneDetail.setCreateDate(new Date()); applyChagneDetail.setCreator(loginUserInfo.getId()); @@ -1114,7 +1177,10 @@ member.setEndTime(applyChagneDetail.getEndTime()); memberMapper.updateById(member); - applyChagneDetail.setFee( detailFee.multiply(new BigDecimal(-1))); + //鏌ヨ鍑忎繚鏃ユ湡 + Integer delDays = DateUtil.daysBetweenDates(applyDetail.getEndTime(),endTime); + + applyChagneDetail.setFee( new BigDecimal(delDays).multiply(applyDetail.getPrice()).multiply(new BigDecimal(-1))); applyChagneDetailJoinMapper.insert(applyChagneDetail); } } @@ -1499,11 +1565,11 @@ }else if(loginUserInfo.getType().equals(Constants.TWO)){ //濡傛灉鏄晢鎴锋煡鐪� if(pageWrap.getModel().getSolutionType()!=null && pageWrap.getModel().getSolutionType() ==0){ - queryWrapper.exists("select cs.id from company_solution cs where cs.isdeleted=0 and cs.company_id=t1.company_id and cs.shop_id="+loginUserInfo.getCompanyId()); + queryWrapper.exists("select cs.id from company_solution cs where cs.isdeleted=0 AND cs.SOLUTION_ID = t1.SOLUTION_ID and cs.shop_id="+loginUserInfo.getCompanyId()); }else if(pageWrap.getModel().getSolutionType()!=null && pageWrap.getModel().getSolutionType() ==1){ queryWrapper.eq(Solutions::getShopId,loginUserInfo.getCompanyId()); }else{ - queryWrapper.apply("((t1.type=0 and exists(select cs.id from company_solution cs where cs.isdeleted=0 and cs.company_id=t1.company_id and cs.shop_id="+loginUserInfo.getCompanyId()+")) or (" + + queryWrapper.apply("((t1.type=0 and exists(select cs.id from company_solution cs where cs.isdeleted=0 AND cs.SOLUTION_ID = t1.SOLUTION_ID and cs.shop_id="+loginUserInfo.getCompanyId()+")) or (" + "t2.type=1 and t2.shop_id="+loginUserInfo.getCompanyId()+"))") ; } }else{ @@ -1757,6 +1823,7 @@ .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 0 )",ApplyChange::getAddNum) .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 1 )",ApplyChange::getDelNum) .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 2 )",ApplyChange::getChangeNum) + .select(" ( select max(ac.APPLY_START_TIME) from apply_change ac where ac.apply_id = t.apply_id and ac.status = 2 ) as lastChangeDate") .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId) .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) @@ -2026,7 +2093,7 @@ CountCyclePriceVO returnCountCyclePriceVO = new CountCyclePriceVO(); //鍔犲噺淇濋噾棰� // returnCountCyclePriceVO.setCyclePrice(sumPrice.multiply(new BigDecimal(optDays)).divide(new BigDecimal(sumDays),2, RoundingMode.HALF_UP)); - returnCountCyclePriceVO.setCyclePrice(applyDetail.getPrice().multiply(new BigDecimal(optDays))); + returnCountCyclePriceVO.setCyclePrice(applyDetail.getPrice().multiply(new BigDecimal(optDays)).setScale(2, RoundingMode.HALF_UP)); return returnCountCyclePriceVO; } @@ -2092,14 +2159,14 @@ public String getChangeMemberListOnlineSignLink(SmsCheckDTO smsCheckDTO) { if(Objects.isNull(smsCheckDTO) || Objects.isNull(smsCheckDTO.getBusinessId()) - || StringUtils.isBlank(smsCheckDTO.getCode()) +// || StringUtils.isBlank(smsCheckDTO.getCode()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } //楠岃瘉 楠岃瘉鐮� - if(!debugModel){ - smsEmailService.validateCode(smsCheckDTO.getCode()); - } +// if(!debugModel){ +// smsEmailService.validateCode(smsCheckDTO.getCode()); +// } ApplyChange model = this.queryApplyChangeData(smsCheckDTO.getBusinessId()); if(Objects.isNull(model)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠姞鍑忎繚/鎹㈠巶淇℃伅"); @@ -2167,6 +2234,9 @@ } if(applyChange.getId() == null){ throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + if(Objects.isNull(applyChange)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); } ApplyChange model = applyChangeJoinMapper.selectJoinOne(ApplyChange.class, new MPJLambdaWrapper<ApplyChange>() @@ -2206,8 +2276,20 @@ update.setStatus(Constants.ApplyChangeStatus.CHECHED_PASSED.getKey()); } applyChangeJoinMapper.updateById(update); + + + Constants.ApplyLogType applyLogType = Constants.ApplyLogType.CA_HBD_AUDIT; + String info = applyChange.getCheckInfo(); + if(StringUtils.isNotBlank(applyChange.getCheckInfo())){ + info = info.replace("${param}", applyChange.getCheckInfo()); + }else{ + info = info.replace("${param}", ""); + } + ApplyLog log = new ApplyLog(update,applyLogType.getName(),info,update.getId(),applyLogType.getKey(), null, null); + applyLogMapper.insert(log); + Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.APPLY_CHANGE; - if(Constants.equalsInteger(applyChange.getType(),Constants.ONE)){ + if(Constants.equalsInteger(model.getType(),Constants.ONE)){ noticeObjectType = Constants.NoticeObjectType.CHANGE_FACTORY; } //鍒犻櫎鍏ㄩ儴寰呭姙 -- Gitblit v1.9.3