From 3a45da15c947c2d478a44a51bd0f926647b1b841 Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期五, 11 四月 2025 16:33:17 +0800 Subject: [PATCH] 提交 --- server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java | 749 ++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 499 insertions(+), 250 deletions(-) diff --git a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java index 07136ac..57636f3 100644 --- a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java +++ b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java @@ -2,6 +2,7 @@ import cn.hutool.core.util.IdcardUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.api.R; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.annotation.excel.ExcelExporter; import com.doumee.core.constants.ResponseStatus; @@ -93,6 +94,8 @@ @Autowired private MemberMapper memberMapper; + @Autowired + private MemberJoinMapper memberJoinMapper; @Autowired private DuSolutionMapper duSolutionMapper; @Autowired @@ -224,6 +227,10 @@ if(model.getApplyEndTime()== null || model.getStartTime().getTime()>model.getApplyEndTime().getTime() ){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风敓鏁堝懆鏈熸椂闂翠笉绗﹀悎瑕佹眰锛岃纭鍚庝慨鏀归噸璇晘"); } + Solutions solutions = solutionsMapper.selectById(model.getSolutionId()); + if(Objects.isNull(solutions)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈡柟妗堜俊鎭�"); + } //璁$畻瀹為檯鎴鏃堕棿 Date actEndTime = new Date(model.getApplyEndTime().getTime() + (insuranceApply.getStartTime().getTime() - model.getApplyStartTime().getTime())); LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); @@ -305,6 +312,11 @@ if(CollectionUtils.isNotEmpty(applyDetailList)){ List<MemberInsurance> memberInsuranceList = new ArrayList<>(); for (ApplyDetail applyDetail:applyDetailList) { + + //鏌ヨ浜哄憳淇℃伅鏄惁瀛樺湪鐩稿悓鐨勬柟妗堜笅鏄惁瀛樺湪 鍐茬獊鏁版嵁 + this.checkMemberSolution(solutions.getBaseId(),applyDetail.getIdcardNo(),applyDetail.getMemberName(),update.getStartTime() + ,update.getEndTime(),insuranceApply.getId()); + MemberInsurance memberInsurance = new MemberInsurance(applyDetail,user.getId()); memberInsurance.setRelationType(Constants.ZERO); memberInsuranceList.add(memberInsurance); @@ -1171,218 +1183,350 @@ } @Override - public void dealSignResult(NotifyDataReq data){ + public String dealSignResult(NotifyDataReq data){ if(data.getApplyNo() == null ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } - if(Constants.equalsInteger(data.getSignStatus(), Constants.THREE )){ + if(Constants.equalsInteger(data.getSignStatus(), Constants.THREE ) + || Constants.equalsInteger(data.getSignStatus(), Constants.TWO )){ //濡傛灉宸蹭繚鍏�,鍙笅杞界绾﹂檮浠� String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+ systemDictDataBiz.queryByCode(Constants.OSS,Constants.APPLY_FILE).getCode(); - //鐩翠繚 鎶曚繚鐢宠 - InsuranceApply model = insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class, - new MPJLambdaWrapper<InsuranceApply>() - .selectAll(InsuranceApply.class) - .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) - .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail) - .selectAs(Company::getName,InsuranceApply::getCompanyName) - .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) - .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) - .eq(Solutions::getType,Constants.ZERO) - .eq(InsuranceApply::getSignApplyNo,data.getApplyNo()) - .last("limit 1" )); - if(model != null && Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey())){ + String r = dealXBTBBiz(path,data,"鐩翠繚-鎶曚繚鐢宠绛剧讲"); + if(StringUtils.isNotBlank(r)){ + return r; + } + r = dealWTBQYQRSBiz(path,data,"濮旀墭淇�-浼佷笟鏂规纭涔︾缃�"); + if(StringUtils.isNotBlank(r)){ + return r; + } + r = dealWTBQYRYMQDBiz(path,data,"濮旀墭淇�-浼佷笟浜哄憳鍚嶅崟绛剧讲"); + if(StringUtils.isNotBlank(r)){ + return r; + } + r = dealWTBTBSQBiz(path,data,"濮旀墭淇�-鎶曚繚鐢宠涔︾缃�"); + if(StringUtils.isNotBlank(r)){ + return r; + } + r = dealZBJJBQYBiz(path,data,"鐩翠繚-鍔犲噺淇濅紒涓氱缃�"); + if(StringUtils.isNotBlank(r)){ + return r; + } + r = dealWTBJJBQYBiz(path,data,"濮旀墭淇�-鍔犲噺淇濅紒涓氱缃�"); + if(StringUtils.isNotBlank(r)){ + return r; + } + r = dealHBDSHBiz(path,data,"鎶曚繚鍚堝苟鍗�-鍟嗘埛绛剧讲绛剧讲"); + if(StringUtils.isNotBlank(r)){ + return r; + } + r = dealHBCHANGEQYBiz(path,data,"鍚堝苟鍔犲噺淇�/鎹㈠巶绛剧讲"); + if(StringUtils.isNotBlank(r)){ + return r; + } + } + return "鏃犲鐞嗘暟鎹�"; + } + + private String dealHBCHANGEQYBiz(String path, NotifyDataReq data, String title) { + UnionChange unionChange = unionChangeJoinMapper.selectOne( + new MPJLambdaWrapper<UnionChange>() + .selectAll(UnionChange.class) + .eq(UnionChange::getSignApplyNo,data.getApplyNo()) + .last(" limit 1 ")); + if(unionChange == null){ + return null; + } + if( Constants.equalsInteger(unionChange.getStatus(),Constants.UnionChangeStatus.MERGE.getKey())){ + if(Constants.equalsInteger(data.getSignStatus(), Constants.THREE )){ //瀹屾垚绛剧讲宸插畬鎴愭搷浣� - String link = signService.linkFile(data.getApplyNo()); + String link = signService.linkFile(unionChange.getSignApplyNo()); String fileUrl = uploadSignFile(link); if(StringUtils.isBlank(fileUrl)){ //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� - return; - } - uploadSignedFileDo(model,fileUrl,path+fileUrl); - return; - } - //濮旀墭淇� 浼佷笟鏂规纭涔� - InsuranceApply modelTBQRS = insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class, - new MPJLambdaWrapper<InsuranceApply>() - .selectAll(InsuranceApply.class) - .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) - .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail) - .selectAs(Company::getName,InsuranceApply::getCompanyName) - .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) - .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) - .eq(Solutions::getType,Constants.ONE) - .eq(InsuranceApply::getSignQrsNo,data.getApplyNo()) - .last("limit 1" )); - if(modelTBQRS != null && Constants.equalsInteger(modelTBQRS.getStatus(),Constants.InsuranceApplyStatus.WTB_UPLOAD.getKey())){ - //瀹屾垚绛剧讲宸插畬鎴愭搷浣� - String link = signService.linkFile(data.getApplyNo()); - String fileUrl = uploadSignFile(link); - if(StringUtils.isBlank(fileUrl)){ - //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� - return; - } - uploadFAQRSSignedFileDo(modelTBQRS,fileUrl,path+fileUrl); - return; - } - - - - //濮旀墭淇� 浼佷笟绛剧讲浜哄憳鍚嶅崟 - InsuranceApply modelMemberList = insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class, - new MPJLambdaWrapper<InsuranceApply>() - .selectAll(InsuranceApply.class) - .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) - .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail) - .selectAs(Company::getName,InsuranceApply::getCompanyName) - .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) - .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) - .eq(Solutions::getType,Constants.ONE) - .eq(InsuranceApply::getSignMemberListNo,data.getApplyNo()) - .last("limit 1" )); - if(modelMemberList != null && Constants.equalsInteger(modelMemberList.getStatus(),Constants.InsuranceApplyStatus.WTB_COMPANY_APPLY_SIGNATURE.getKey())){ - //瀹屾垚绛剧讲宸插畬鎴愭搷浣� - String link = signService.linkFile(data.getApplyNo()); - String fileUrl = uploadSignFile(link); - if(StringUtils.isBlank(fileUrl)){ - //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� - return; - } - uploadApplyMemberListSignedFileDo(modelMemberList,fileUrl,path+fileUrl); - return; - } - - - //濮旀墭淇� 鎶曚繚鐢宠涔︾缃� - InsuranceApply modelTBQSQ = insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class, - new MPJLambdaWrapper<InsuranceApply>() - .selectAll(InsuranceApply.class) - .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) - .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail) - .selectAs(Company::getName,InsuranceApply::getCompanyName) - .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) - .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) - .eq(Solutions::getType,Constants.ONE) - .eq(InsuranceApply::getApplyTbdNo,data.getApplyNo()) - .last("limit 1" )); - if(modelTBQRS != null && Constants.equalsInteger(modelTBQSQ.getUnionApplyTbdStatus(),Constants.ONE)){ - //瀹屾垚绛剧讲宸插畬鎴愭搷浣� - String link = signService.linkFile(data.getApplyNo()); - String fileUrl = uploadSignFile(link); - if(StringUtils.isBlank(fileUrl)){ - //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� - return; - } - uploadTBSQSSignedFileDo(modelTBQSQ,fileUrl,path+fileUrl); - return; - } - - //鐩翠繚 鍔犲噺淇濅紒涓氱缃� - ApplyChange applyChange = applyChangeMapper.selectJoinOne(ApplyChange.class, - new MPJLambdaWrapper<ApplyChange>() - .selectAll(ApplyChange.class) - .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) - .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail) - .selectAs(Solutions::getId,ApplyChange::getSolutionsId) - .selectAs(Company::getName,InsuranceApply::getCompanyName) - .selectAs(InsuranceApply::getCompanyId,ApplyChange::getCompanyId) - .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId) - .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) - .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) - .eq(Solutions::getType,Constants.ZERO) - .eq(ApplyChange::getSignApplyNo,data.getApplyNo()).last("limit 1" )); - if(applyChange != null &&Constants.equalsInteger(applyChange.getStatus(),Constants.ApplyChangeStatus.UPLOAD.getKey())){ - String link = signService.linkFile(data.getApplyNo()); - String fileUrl = uploadSignFile(link); - if(StringUtils.isBlank(fileUrl)){ - //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� - return; - } - uploadChangeSignedFileDo(applyChange,fileUrl,path+fileUrl); - } - - //濮旀墭淇� 鍔犲噺淇濅紒涓氱缃� - ApplyChange applyChangeMemberList = applyChangeMapper.selectJoinOne(ApplyChange.class, - new MPJLambdaWrapper<ApplyChange>() - .selectAll(ApplyChange.class) - .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) - .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail) - .selectAs(Solutions::getId,ApplyChange::getSolutionsId) - .selectAs(Company::getName,InsuranceApply::getCompanyName) - .selectAs(InsuranceApply::getCompanyId,ApplyChange::getCompanyId) - .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId) - .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) - .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) - .eq(Solutions::getType,Constants.ONE) - .eq(ApplyChange::getSignMemberListNo,data.getApplyNo()).last("limit 1" )); - if(applyChangeMemberList != null &&Constants.equalsInteger(applyChangeMemberList.getStatus(),Constants.ApplyChangeStatus.UPLOAD.getKey())){ - String link = signService.linkFile(data.getApplyNo()); - String fileUrl = uploadSignFile(link); - if(StringUtils.isBlank(fileUrl)){ - //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� - return; - } - uploadChangeMemberListSignedFileDo(applyChangeMemberList,fileUrl,path+fileUrl); - } - - - //鎶曚繚鍚堝苟鍗� 鍟嗘埛绛剧讲淇濆崟 - UnionApply unionApply = unionApplyJoinMapper.selectOne(new QueryWrapper<UnionApply>() - .lambda().eq(UnionApply::getSignApplyNo,data.getApplyNo()).last(" limit 1 ")); - if(unionApply != null &&Constants.equalsInteger(unionApply.getStatus(),Constants.UnionApplyStatus.WAIT_SIGNATURE.getKey())){ - String link = signService.linkFile(data.getApplyNo()); - String fileUrl = uploadSignFile(link); - if(StringUtils.isBlank(fileUrl)){ - //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� - return; - } - uploadUnionApplySignedFileDo(unionApply,fileUrl,path+fileUrl); - } - - - /** - *鍚堝苟鍔犲噺淇濇崲鍘� 绛剧讲涓氬姟 - */ - UnionChange unionChange = unionChangeJoinMapper.selectOne( - new MPJLambdaWrapper<UnionChange>() - .selectAll(UnionChange.class) - .eq(UnionChange::getSignApplyNo,data.getApplyNo()) - .last(" limit 1 ")); - if(unionChange != null &&Constants.equalsInteger(unionChange.getStatus(),Constants.UnionChangeStatus.MERGE.getKey())){ - String link = signService.linkFile(model.getSignApplyNo()); - String fileUrl = uploadSignFile(link); - if(StringUtils.isBlank(fileUrl)){ - //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� - return; + return title+"鍚堝悓涓嬭浇澶辫触锛岀瓑寰呬笅娆℃帹閫佸鐞�"; } uploadUnionChangeSignedFileDo(unionChange,fileUrl,path+fileUrl); + return title+"鐘舵�佸鐞嗘垚鍔�"; + }else{ + //濡傛灉宸叉嫆绛撅紝娓呴櫎鍚堝悓锛屼笅娆$绔犻噸鏂扮敓鎴愭柊鍚堝悓 + unionChangeJoinMapper.update(null,new UpdateWrapper<UnionChange>().lambda() + .set(UnionChange::getSignApplyNo,null) + .eq(UnionChange::getSignApplyNo,data.getApplyNo())); + return title+"鍚堝悓鎷掔澶勭悊鎴愬姛"; + } + } + return title+"鐘舵�佸凡娴佽浆锛屼笉鍋氬鐞�"; + } + + private String dealHBDSHBiz(String path, NotifyDataReq data, String title) { + //鎶曚繚鍚堝苟鍗� 鍟嗘埛绛剧讲淇濆崟 + UnionApply unionApply = unionApplyJoinMapper.selectOne(new QueryWrapper<UnionApply>() + .lambda().eq(UnionApply::getSignApplyNo,data.getApplyNo()).last(" limit 1 ")); + if(unionApply == null){ + return null; + } + if( Constants.equalsInteger(unionApply.getStatus(),Constants.UnionApplyStatus.WAIT_SIGNATURE.getKey())){ + if(Constants.equalsInteger(data.getSignStatus(), Constants.THREE )){ + //瀹屾垚绛剧讲宸插畬鎴愭搷浣� + String link = signService.linkFile(data.getApplyNo()); + String fileUrl = uploadSignFile(link); + if(StringUtils.isBlank(fileUrl)){ + //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� + return title+"鍚堝悓涓嬭浇澶辫触锛岀瓑寰呬笅娆℃帹閫佸鐞�"; + } + uploadUnionApplySignedFileDo(unionApply,fileUrl,path+fileUrl); + return title+"鐘舵�佸鐞嗘垚鍔�"; + }else{ + //濡傛灉宸叉嫆绛撅紝娓呴櫎鍚堝悓锛屼笅娆$绔犻噸鏂扮敓鎴愭柊鍚堝悓 + unionApplyJoinMapper.update(null,new UpdateWrapper<UnionApply>().lambda() + .set(UnionApply::getSignApplyNo,null) + .eq(UnionApply::getSignApplyNo,data.getApplyNo())); + return title+"鍚堝悓鎷掔澶勭悊鎴愬姛"; + } + } + return title+"鐘舵�佸凡娴佽浆锛屼笉鍋氬鐞�"; + + } + + private String dealWTBJJBQYBiz(String path, NotifyDataReq data, String title) { + //濮旀墭淇� 鍔犲噺淇濅紒涓氱缃� + ApplyChange applyChangeMemberList = applyChangeMapper.selectJoinOne(ApplyChange.class, + new MPJLambdaWrapper<ApplyChange>() + .selectAll(ApplyChange.class) + .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) + .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail) + .selectAs(Solutions::getId,ApplyChange::getSolutionsId) + .selectAs(Company::getName,InsuranceApply::getCompanyName) + .selectAs(InsuranceApply::getCompanyId,ApplyChange::getCompanyId) + .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId) + .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) + .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) + .eq(Solutions::getType,Constants.ONE) + .eq(ApplyChange::getSignMemberListNo,data.getApplyNo()).last("limit 1" )); + if(applyChangeMemberList == null){ + return null; + } + if( Constants.equalsInteger(applyChangeMemberList.getStatus(),Constants.ApplyChangeStatus.UPLOAD.getKey())){ + if(Constants.equalsInteger(data.getSignStatus(), Constants.THREE )){ + //瀹屾垚绛剧讲宸插畬鎴愭搷浣� + String link = signService.linkFile(data.getApplyNo()); + String fileUrl = uploadSignFile(link); + if(StringUtils.isBlank(fileUrl)){ + //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� + return title+"鍚堝悓涓嬭浇澶辫触锛岀瓑寰呬笅娆℃帹閫佸鐞�"; + } + uploadChangeMemberListSignedFileDo(applyChangeMemberList,fileUrl,path+fileUrl); + return title+"鐘舵�佸鐞嗘垚鍔�"; + }else{ + //濡傛灉宸叉嫆绛撅紝娓呴櫎鍚堝悓锛屼笅娆$绔犻噸鏂扮敓鎴愭柊鍚堝悓 + applyChangeMapper.update(null,new UpdateWrapper<ApplyChange>().lambda() + .set(ApplyChange::getSignMemberListNo,null) + .eq(ApplyChange::getSignMemberListNo,data.getApplyNo())); + return title+"鍚堝悓鎷掔澶勭悊鎴愬姛"; + } + } + return title+"鐘舵�佸凡娴佽浆锛屼笉鍋氬鐞�"; + } + + private String dealZBJJBQYBiz(String path, NotifyDataReq data, String title) { + //鐩翠繚 鍔犲噺淇濅紒涓氱缃� + ApplyChange applyChange = applyChangeMapper.selectJoinOne(ApplyChange.class, + new MPJLambdaWrapper<ApplyChange>() + .selectAll(ApplyChange.class) + .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) + .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail) + .selectAs(Solutions::getId,ApplyChange::getSolutionsId) + .selectAs(Company::getName,InsuranceApply::getCompanyName) + .selectAs(InsuranceApply::getCompanyId,ApplyChange::getCompanyId) + .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId) + .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) + .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) + .eq(Solutions::getType,Constants.ZERO) + .eq(ApplyChange::getSignApplyNo,data.getApplyNo()).last("limit 1" )); + if(applyChange == null){ + return null; + } + if( Constants.equalsInteger(applyChange.getStatus(),Constants.ApplyChangeStatus.UPLOAD.getKey())){ + if(Constants.equalsInteger(data.getSignStatus(), Constants.THREE )){ + //瀹屾垚绛剧讲宸插畬鎴愭搷浣� + String link = signService.linkFile(data.getApplyNo()); + String fileUrl = uploadSignFile(link); + if(StringUtils.isBlank(fileUrl)){ + //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� + return title+"鍚堝悓涓嬭浇澶辫触锛岀瓑寰呬笅娆℃帹閫佸鐞�"; + } + uploadChangeSignedFileDo(applyChange,fileUrl,path+fileUrl); + return title+"鐘舵�佸鐞嗘垚鍔�"; + }else{ + //濡傛灉宸叉嫆绛撅紝娓呴櫎鍚堝悓锛屼笅娆$绔犻噸鏂扮敓鎴愭柊鍚堝悓 + applyChangeMapper.update(null,new UpdateWrapper<ApplyChange>().lambda() + .set(ApplyChange::getSignApplyNo,null) + .eq(ApplyChange::getSignApplyNo,data.getApplyNo())); + return title+"鍚堝悓鎷掔澶勭悊鎴愬姛"; + } + } + + return title+"鐘舵�佸凡娴佽浆锛屼笉鍋氬鐞�"; + } + + private String dealWTBTBSQBiz(String path, NotifyDataReq data, String title) { + //濮旀墭淇� 鎶曚繚鐢宠涔︾缃� + InsuranceApply modelTBQSQ = insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class, + new MPJLambdaWrapper<InsuranceApply>() + .selectAll(InsuranceApply.class) + .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) + .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail) + .selectAs(Company::getName,InsuranceApply::getCompanyName) + .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) + .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) + .eq(Solutions::getType,Constants.ONE) + .eq(InsuranceApply::getApplyTbdNo,data.getApplyNo()) + .last("limit 1" )); + if(modelTBQSQ == null){ + return null; + } + if( Constants.equalsInteger(modelTBQSQ.getUnionApplyTbdStatus(),Constants.ONE)){ + if(Constants.equalsInteger(data.getSignStatus(), Constants.THREE )){ + //瀹屾垚绛剧讲宸插畬鎴愭搷浣� + String link = signService.linkFile(data.getApplyNo()); + String fileUrl = uploadSignFile(link); + if(StringUtils.isBlank(fileUrl)){ + //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� + return title+"鍚堝悓涓嬭浇澶辫触锛岀瓑寰呬笅娆℃帹閫佸鐞�"; + } + uploadTBSQSSignedFileDo(modelTBQSQ,fileUrl,path+fileUrl); + return title+"鐘舵�佸鐞嗘垚鍔�"; + }else{ + //濡傛灉宸叉嫆绛撅紝娓呴櫎鍚堝悓锛屼笅娆$绔犻噸鏂扮敓鎴愭柊鍚堝悓 + insuranceApplyJoinMapper.update(null,new UpdateWrapper<InsuranceApply>().lambda() + .set(InsuranceApply::getApplyTbdNo,null) + .eq(InsuranceApply::getApplyTbdNo,data.getApplyNo())); + return title+"鍚堝悓鎷掔澶勭悊鎴愬姛"; + } + } + return title+"鐘舵�佸凡娴佽浆锛屼笉鍋氬鐞�"; + } + + private String dealWTBQYRYMQDBiz(String path, NotifyDataReq data, String title) { + //濮旀墭淇� 浼佷笟绛剧讲浜哄憳鍚嶅崟 + InsuranceApply modelMemberList = insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class, + new MPJLambdaWrapper<InsuranceApply>() + .selectAll(InsuranceApply.class) + .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) + .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail) + .selectAs(Company::getName,InsuranceApply::getCompanyName) + .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) + .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) + .eq(Solutions::getType,Constants.ONE) + .eq(InsuranceApply::getSignMemberListNo,data.getApplyNo()) + .last("limit 1" )); + if(modelMemberList == null){ + return null; + } + if( Constants.equalsInteger(modelMemberList.getStatus(),Constants.InsuranceApplyStatus.WTB_COMPANY_APPLY_SIGNATURE.getKey())){ + if(Constants.equalsInteger(data.getSignStatus(), Constants.THREE )){ + //瀹屾垚绛剧讲宸插畬鎴愭搷浣� + String link = signService.linkFile(data.getApplyNo()); + String fileUrl = uploadSignFile(link); + if(StringUtils.isBlank(fileUrl)){ + //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� + return title+"鍚堝悓涓嬭浇澶辫触锛岀瓑寰呬笅娆℃帹閫佸鐞�"; + } + uploadApplyMemberListSignedFileDo(modelMemberList,fileUrl,path+fileUrl); + return title+"鐘舵�佸鐞嗘垚鍔�"; + }else{ + //濡傛灉宸叉嫆绛撅紝娓呴櫎鍚堝悓锛屼笅娆$绔犻噸鏂扮敓鎴愭柊鍚堝悓 + insuranceApplyMapper.update(null,new UpdateWrapper<InsuranceApply>().lambda() + .set(InsuranceApply::getSignMemberListNo,null) + .eq(InsuranceApply::getSignMemberListNo,data.getApplyNo())); + return title+"鍚堝悓鎷掔澶勭悊鎴愬姛"; + } + } + return title+"鐘舵�佸凡娴佽浆锛屼笉鍋氬鐞�"; + } + + private String dealWTBQYQRSBiz(String path, NotifyDataReq data, String title) { + //濮旀墭淇� 浼佷笟鏂规纭涔� + InsuranceApply modelTBQRS = insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class, + new MPJLambdaWrapper<InsuranceApply>() + .selectAll(InsuranceApply.class) + .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) + .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail) + .selectAs(Company::getName,InsuranceApply::getCompanyName) + .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) + .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) + .eq(Solutions::getType,Constants.ONE) + .eq(InsuranceApply::getSignQrsNo,data.getApplyNo()) + .last("limit 1" )); + if(modelTBQRS == null){ + return null; + } + if( Constants.equalsInteger(modelTBQRS.getStatus(),Constants.InsuranceApplyStatus.WTB_UPLOAD.getKey())){ + if(Constants.equalsInteger(data.getSignStatus(), Constants.THREE )){ + //瀹屾垚绛剧讲宸插畬鎴愭搷浣� + String link = signService.linkFile(data.getApplyNo()); + String fileUrl = uploadSignFile(link); + if(StringUtils.isBlank(fileUrl)){ + //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� + return title+"鍚堝悓涓嬭浇澶辫触锛岀瓑寰呬笅娆℃帹閫佸鐞�"; + } + uploadFAQRSSignedFileDo(modelTBQRS,fileUrl,path+fileUrl); + return title+"鐘舵�佸鐞嗘垚鍔�"; + }else{ + //濡傛灉宸叉嫆绛撅紝娓呴櫎鍚堝悓锛屼笅娆$绔犻噸鏂扮敓鎴愭柊鍚堝悓 + insuranceApplyMapper.update(null,new UpdateWrapper<InsuranceApply>().lambda() + .set(InsuranceApply::getSignQrsNo,null) + .eq(InsuranceApply::getSignQrsNo,data.getApplyNo())); + return title+"鍚堝悓鎷掔澶勭悊鎴愬姛"; } - - }else if(Constants.equalsInteger(data.getSignStatus(), Constants.TWO )){ - //濡傛灉宸叉嫆绛撅紝娓呴櫎鍚堝悓锛屼笅娆$绔犻噸鏂扮敓鎴愭柊鍚堝悓 - insuranceApplyMapper.update(null,new UpdateWrapper<InsuranceApply>().lambda() - .set(InsuranceApply::getSignApplyNo,null) - .eq(InsuranceApply::getSignApplyNo,data.getApplyNo())); - applyChangeMapper.update(null,new UpdateWrapper<ApplyChange>().lambda() - .set(ApplyChange::getSignApplyNo,null) - .eq(ApplyChange::getSignApplyNo,data.getApplyNo())); - insuranceApplyMapper.update(null,new UpdateWrapper<InsuranceApply>().lambda() - .set(InsuranceApply::getSignQrsNo,null) - .eq(InsuranceApply::getSignQrsNo,data.getApplyNo())); - insuranceApplyMapper.update(null,new UpdateWrapper<InsuranceApply>().lambda() - .set(InsuranceApply::getSignMemberListNo,null) - .eq(InsuranceApply::getSignMemberListNo,data.getApplyNo())); - unionApplyJoinMapper.update(null,new UpdateWrapper<UnionApply>().lambda() - .set(UnionApply::getSignApplyNo,null) - .eq(UnionApply::getSignApplyNo,data.getApplyNo())); - applyChangeMapper.update(null,new UpdateWrapper<ApplyChange>().lambda() - .set(ApplyChange::getSignMemberListNo,null) - .eq(ApplyChange::getSignMemberListNo,data.getApplyNo())); - unionChangeJoinMapper.update(null,new UpdateWrapper<UnionChange>().lambda() - .set(UnionChange::getSignApplyNo,null) - .eq(UnionChange::getSignApplyNo,data.getApplyNo())); } + return title+"鐘舵�佸凡娴佽浆锛屼笉鍋氬鐞�"; + } + + /** + * 鎶曚繚鐩翠繚鐢宠绛剧讲 + * @param path + * @param data + * @return + */ + private String dealXBTBBiz(String path, NotifyDataReq data,String title) { + InsuranceApply model = insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class, + new MPJLambdaWrapper<InsuranceApply>() + .selectAll(InsuranceApply.class) + .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) + .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail) + .selectAs(Company::getName,InsuranceApply::getCompanyName) + .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) + .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) + .eq(Solutions::getType,Constants.ZERO) + .eq(InsuranceApply::getSignApplyNo,data.getApplyNo()) + .last("limit 1" )); + if(model == null){ + return null; + } + if( Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey())){ + //瀹屾垚绛剧讲宸插畬鎴愭搷浣� + if(Constants.equalsInteger(data.getSignStatus(), Constants.THREE )){ + String link = signService.linkFile(data.getApplyNo()); + String fileUrl = uploadSignFile(link); + if(StringUtils.isBlank(fileUrl)){ + //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� + return title + "鍚堝悓涓嬭浇澶辫触锛岀瓑寰呬笅娆℃帹閫佸鐞�"; + } + uploadSignedFileDo(model,fileUrl,path+fileUrl); + return title +"鐘舵�佸鐞嗘垚鍔�"; + }else{ + //濡傛灉宸叉嫆绛撅紝娓呴櫎鍚堝悓锛屼笅娆$绔犻噸鏂扮敓鎴愭柊鍚堝悓 + insuranceApplyMapper.update(null,new UpdateWrapper<InsuranceApply>().lambda() + .set(InsuranceApply::getSignApplyNo,null) + .eq(InsuranceApply::getSignApplyNo,data.getApplyNo())); + return title+"鍚堝悓鎷掔澶勭悊鎴愬姛"; + } + + } + return title+"鐘舵�佸凡娴佽浆锛屼笉鍋氬鐞�"; } @@ -1614,14 +1758,17 @@ insuranceApply.setEndTime(countCyclePriceVO.getEndDate()); insuranceApply.setFinalEndTime(countCyclePriceVO.getEndDate()); insuranceApplyMapper.insert(insuranceApply); - - //澶勭悊涓嬬骇鏁版嵁 this.dealApplyDetailData(insuranceApply,solutions,applyDetailList,loginUserInfo,countCyclePriceVO,true); InsuranceApply updBean = new InsuranceApply(); updBean.setId(insuranceApply.getId()); updBean.setFee(applyDetailList.stream().map(ApplyDetail::getFee).reduce(BigDecimal.ZERO,BigDecimal::add)); insuranceApplyMapper.updateById(updBean); + +// if(1==1){ +// throw new BusinessException(ResponseStatus.NOT_ALLOWED); +// } + //瀛樺偍鏃ュ織鏁版嵁 Constants.ApplyLogType applyLogType = Constants.ApplyLogType.UPLOAD; String info =applyLogType.getInfo(); @@ -1760,7 +1907,7 @@ .apply(" t1.BASE_ID in ( select du.id from dispatch_unit du where du.STATUS = 0 and du.ISDELETED = 0 ) ") ); if(!CollectionUtils.isNotEmpty(duSolutionList)){ - throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏁版嵁寮傚父锛氫繚闄╂柟妗堜笅鏈煡璇㈠埌娲鹃仯鍗曚綅"); + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝淇濋櫓鏂规涓嬫湭鏌ヨ鍒版淳閬e崟浣嶄俊鎭紝璇风‘淇濇淳閬e崟浣嶅拰宸ヤ綔閰嶇疆骞跺鏍搁�氳繃锛�"); } //鏌ヨ鎵�鏈夋淳閬e崟浣嶄笅鐨勫伐绉� List<Integer> duSolutionIdList = duSolutionList.stream().map(i->i.getId()).collect(Collectors.toList()); @@ -1772,10 +1919,50 @@ .eq(checkNewData,Worktype::getDataType,Constants.TWO) .in(DuWorktype::getDuSolutionId,duSolutionIdList)); if(!CollectionUtils.isNotEmpty(duWorktypeList)){ - throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏁版嵁寮傚父锛氫繚闄╂柟妗堜笅鏈煡璇㈠埌宸ョ淇℃伅"); + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝淇濋櫓鏂规涓嬫湭鏌ヨ鍒板伐绉嶄俊鎭紝璇风‘淇濇淳閬e崟浣嶅拰宸ヤ綔閰嶇疆骞跺鏍搁�氳繃锛�"); } if(CollectionUtils.isNotEmpty(applyDetailList)){ + List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda() + .eq(Member::getCompanyId,insuranceApply.getCompanyId()) + .eq(Member::getIsdeleted,Constants.ZERO)); + + List<Member> addMemberList = new ArrayList<>(); + for (int i = 0; i < applyDetailList.size(); i++) { + ApplyDetail applyDetail = applyDetailList.get(i); + Member member = null; + if(CollectionUtils.isNotEmpty(memberList)){ + Optional<Member> optional = memberList.stream().filter(m->m.getIdcardNo().equals(applyDetail.getIdcardNo())).findFirst(); + if(optional.isPresent()){ + member = optional.get(); + } + } + if(Objects.isNull(member)){ + member = new Member(); + member.setCreateDate(new Date()); + member.setCreator(loginUserInfo.getId()); + member.setIsdeleted(Constants.ZERO); + member.setName(applyDetail.getMemberName()); + member.setCompanyId(insuranceApply.getCompanyId()); + member.setSex(Constants.getSexByIdCard(applyDetail.getIdcardNo())); + if(!IdcardUtil.isValidCard(applyDetail.getIdcardNo())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝鎶曚繚鍛樺伐銆�"+member.getName()+"銆戣韩浠借瘉淇℃伅銆�"+applyDetail.getIdcardNo()+"銆戦敊璇�"); + } + member.setIdcardNo(applyDetail.getIdcardNo()); + member.setApplyId(insuranceApply.getId()); +// member.setStartTime(applyDetail.getStartTime()); +// member.setEndTime(applyDetail.getEndTime()); + member.setDuId(applyDetail.getDuId()); + member.setWorktypeId(applyDetail.getWorktypeId()); + addMemberList.add(member); + } + //鏌ヨ浜哄憳淇℃伅鏄惁瀛樺湪鐩稿悓鐨勬柟妗堜笅鏄惁瀛樺湪 鍐茬獊鏁版嵁 + this.checkMemberSolution(solutions.getBaseId(),member.getIdcardNo(),member.getName(),insuranceApply.getStartTime(),insuranceApply.getEndTime(),insuranceApply.getId()); + } + if(CollectionUtils.isNotEmpty(addMemberList)){ + memberJoinMapper.insertBatchSomeColumn(addMemberList); + } + memberList.addAll(addMemberList); for (int i = 0; i < applyDetailList.size(); i++) { ApplyDetail applyDetail = applyDetailList.get(i); if(Objects.isNull(applyDetail) @@ -1784,8 +1971,9 @@ ||Objects.isNull(applyDetail.getDuId()) ||Objects.isNull(applyDetail.getWorktypeId()) ){ - throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鎶曚繚鍛樺伐淇℃伅鏁版嵁缂哄け"); + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝鎶曚繚鍛樺伐淇℃伅鏁版嵁缂哄け锛岃鎸夌収瑕佹眰濉啓鍛樺伐鐨勬湁鏁堜俊鎭紒"); } + applyDetail.setChangeStatus(Constants.ZERO); applyDetail.setCreateDate(new Date()); applyDetail.setCreator(loginUserInfo.getId()); applyDetail.setIsdeleted(Constants.ZERO); @@ -1793,40 +1981,30 @@ applyDetail.setEndTime(insuranceApply.getApplyEndTime()); applyDetail.setSortnum(i); applyDetail.setApplyId(insuranceApply.getId()); - Member member = new Member(); - if(Objects.isNull(applyDetail.getMemberId())){ - //鏌ヨ鏄惁瀛樺湪璇ョ敤鎴� - member = memberMapper.selectOne(new QueryWrapper<Member>().lambda() - .eq(Member::getCompanyId,insuranceApply.getCompanyId()) - .eq(Member::getIsdeleted,Constants.ZERO) - .eq(Member::getIdcardNo,applyDetail.getIdcardNo()) - .last(" limit 1") - ); - if(Objects.isNull(member)){ - member = new Member(); - member.setCreateDate(new Date()); - member.setCreator(loginUserInfo.getId()); - member.setIsdeleted(Constants.ZERO); - member.setName(applyDetail.getMemberName()); - member.setCompanyId(insuranceApply.getCompanyId()); - member.setSex(Constants.getSexByIdCard(applyDetail.getIdcardNo())); - if(!IdcardUtil.isValidCard(applyDetail.getIdcardNo())){ - throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鎶曚繚鍛樺伐淇℃伅韬唤璇佷俊鎭敊璇痆"+member.getName()+"]"); - } - member.setIdcardNo(applyDetail.getIdcardNo()); - member.setApplyId(insuranceApply.getId()); - member.setStartTime(applyDetail.getStartTime()); - member.setEndTime(applyDetail.getEndTime()); - member.setDuId(applyDetail.getDuId()); - member.setWorktypeId(applyDetail.getWorktypeId()); - memberMapper.insert(member); - }else{ + //鏍规嵁鍛樺伐韬唤璇佽繘琛屽垽鏂勾榫� + long age = Constants.getAgeByIdCard(applyDetail.getIdcardNo()); + if(Objects.isNull(age) + || age > solutions.getMaxAge() + || age < solutions.getMinAge()){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆�"+applyDetail.getMemberName()+"銆戝憳宸ュ勾榫勮秴鍑烘柟妗堥厤缃�,鏂规閰嶇疆銆�"+solutions.getMinAge()+" - "+solutions.getMaxAge()+"銆戯紒"); + } + + Member member = null; + if(Objects.isNull(applyDetail.getMemberId())){ + if(CollectionUtils.isNotEmpty(memberList)){ + Optional<Member> optional = memberList.stream().filter(m->m.getIdcardNo().equals(applyDetail.getIdcardNo())).findFirst(); + if(optional.isPresent()){ + member = optional.get(); + } + } + //鏌ヨ鏄惁瀛樺湪璇ョ敤鎴� + if(!Objects.isNull(member)){ member.setApplyId(insuranceApply.getId()); member.setDuId(applyDetail.getDuId()); member.setWorktypeId(applyDetail.getWorktypeId()); - member.setStartTime(applyDetail.getStartTime()); - member.setEndTime(applyDetail.getEndTime()); +// member.setStartTime(applyDetail.getStartTime()); +// member.setEndTime(applyDetail.getEndTime()); memberMapper.updateById(member); } }else{ @@ -1837,18 +2015,12 @@ member.setApplyId(insuranceApply.getId()); member.setDuId(applyDetail.getDuId()); member.setWorktypeId(applyDetail.getWorktypeId()); - member.setStartTime(applyDetail.getStartTime()); - member.setEndTime(applyDetail.getEndTime()); +// member.setStartTime(applyDetail.getStartTime()); +// member.setEndTime(applyDetail.getEndTime()); memberMapper.updateById(member); } - //鏍规嵁鍛樺伐韬唤璇佽繘琛屽垽鏂勾榫� - long age = Constants.getAgeByIdCard(member.getIdcardNo()); - if(Objects.isNull(age) - || age > solutions.getMaxAge() - || age < solutions.getMinAge()){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆�"+applyDetail.getMemberName()+"銆戝憳宸ュ勾榫勮秴鍑烘柟妗堥厤缃�,鏂规閰嶇疆銆�"+solutions.getMinAge()+" - "+solutions.getMaxAge()+"銆戯紒"); - } + applyDetail.setMemberId(member.getId()); applyDetail.setIdcardNo(member.getIdcardNo()); applyDetail.setSex(member.getSex()); @@ -1857,24 +2029,94 @@ //鑾峰彇璁$畻鎬诲ぉ鏁� Integer maxDays = DateUtil.calculateBetween(applyDetail.getStartTime(),applyDetail.getEndTime(),0); if(Constants.equalsInteger(maxDays,0)||Objects.isNull(applyDetail.getFee())){ - throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鎶曚繚淇℃伅寮傚父锛氭�诲ぉ鏁颁笌鎬婚噾棰濋敊璇�"); + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鎶曚繚淇℃伅寮傚父锛氭姇淇濇�诲ぉ鏁颁笌鎬婚噾棰濋敊璇�"); } applyDetail.setPrice( applyDetail.getFee().divide(new BigDecimal(maxDays),7,RoundingMode.HALF_UP) ); //楠岃瘉娲鹃仯鍗曚綅淇℃伅鏄惁瀛樺湪 if(duSolutionList.stream().filter(d->d.getDispatchUnitId().equals(applyDetail.getDuId())).collect(Collectors.toList()).size()<=Constants.ZERO){ - throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"銆�"+applyDetail.getMemberName()+"銆戝憳宸ユ淳閬e崟浣嶆湭鏌ヨ鍒帮紒"); + throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"銆�"+applyDetail.getMemberName()+applyDetail.getIdcardNo()+"銆戝憳宸ユ淳閬e崟浣嶆湭鏌ヨ鍒帮紒"); } if(duWorktypeList.stream().filter(d->d.getWorkTypeId().equals(applyDetail.getWorktypeId())) .collect(Collectors.toList()).size()<=Constants.ZERO){ - throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"銆�"+applyDetail.getMemberName()+"銆戝憳宸ュ伐绉嶄俊鎭湭鏌ヨ鍒帮紒"); + throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"銆�"+applyDetail.getMemberName()+applyDetail.getIdcardNo()+"銆戝憳宸ュ伐绉嶄俊鎭湭鏌ヨ鍒帮紒"); } } applyDetailJoinMapper.insertBatchSomeColumn(applyDetailList); } } + + /** + * 鏌ヨ 浼氬憳淇℃伅鍦ㄦ柟妗堜笅鏄惁瀛樺湪鍐茬獊鏁版嵁 + * @param solutionId + * @param startTime + * @param endTime + */ + @Override + public void checkMemberSolution(Integer solutionId,String idCode,String memberName,Date startTime,Date endTime,Integer applyId){ + List<ApplyDetail> applyDetailList = new ArrayList<ApplyDetail>(); + try { + applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class, + new MPJLambdaWrapper<ApplyDetail>() + .selectAll(ApplyDetail.class) + .selectAs(InsuranceApply::getCode,ApplyDetail::getApplyCode) + .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId) + .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) + .eq(ApplyDetail::getIdcardNo,idCode) + .eq(ApplyDetail::getIsdeleted,Constants.ZERO) + .eq(Solutions::getBaseId,solutionId) + .ne(Objects.nonNull(applyId),InsuranceApply::getId,applyId) + .notIn(InsuranceApply::getStatus + ,Constants.InsuranceApplyStatus.CLOSE.getKey() + ,Constants.InsuranceApplyStatus.WTB_CLOSED.getKey() ) + .apply(" ( " + + " '"+DateUtil.getPlusTime(startTime)+"' <= t.start_time AND t.start_time < '"+DateUtil.getPlusTime(endTime)+"' " + + " or " + + " ( '"+DateUtil.getPlusTime(startTime)+"' < t.end_time AND t.end_time < '"+DateUtil.getPlusTime(endTime)+"' ) " + + " or " + + " ( '"+DateUtil.getPlusTime(startTime)+"' > t.start_time AND '"+DateUtil.getPlusTime(endTime)+"' < t.end_time )" + + " ) " )); + }catch (Exception e){ + } + if(applyDetailList.size() >Constants.ZERO){ + ApplyDetail applyDetail = applyDetailList.get(Constants.ZERO); + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璇ュ憳宸ャ��"+memberName+" "+idCode+"銆戝湪璇ヤ繚闄╂柟妗堜笅宸插瓨鍦ㄦ姇淇濊褰曪紝鏃犳硶杩涜璇ユ搷浣�"); + }; + } + + public static void checkStaticMemberSolution(Integer solutionId,String idCode,String memberName,Date startTime, + Date endTime,ApplyDetailJoinMapper applyDetailJoinMapper){ + List<ApplyDetail> applyDetailList = new ArrayList<ApplyDetail>(); + try { + applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class, + new MPJLambdaWrapper<ApplyDetail>() + .selectAll(ApplyDetail.class) + .selectAs(InsuranceApply::getCode,ApplyDetail::getApplyCode) + .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId) + .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) + .eq(ApplyDetail::getIdcardNo,idCode) + .eq(Solutions::getBaseId,solutionId) + .eq(ApplyDetail::getIsdeleted,Constants.ZERO) + .notIn(InsuranceApply::getStatus + ,Constants.InsuranceApplyStatus.CLOSE.getKey() + ,Constants.InsuranceApplyStatus.WTB_CLOSED.getKey() ) + .apply(" ( " + + " '"+DateUtil.getPlusTime(startTime)+"' <= t.start_time AND t.start_time < '"+DateUtil.getPlusTime(endTime)+"' " + + " or " + + " ( '"+DateUtil.getPlusTime(startTime)+"' < t.end_time AND t.end_time < '"+DateUtil.getPlusTime(endTime)+"' ) " + + " or " + + " ( '"+DateUtil.getPlusTime(startTime)+"' > t.start_time AND '"+DateUtil.getPlusTime(endTime)+"' < t.end_time )" + + " ) " )); + }catch (Exception e){ + + } + if(applyDetailList.size() >Constants.ZERO){ + ApplyDetail applyDetail = applyDetailList.get(Constants.ZERO); + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璇ュ憳宸ャ��"+memberName+" "+idCode+"銆戝湪璇ヤ繚闄╂柟妗堜笅宸插瓨鍦ㄦ姇淇濊褰曪紝鏃犳硶杩涜璇ユ搷浣�"); + }; + } @Override public void deleteById(Integer id) { @@ -1969,7 +2211,8 @@ queryWrapper.selectAs(Solutions::getPrice,InsuranceApply::getPrice); queryWrapper.selectAs(Solutions::getTimeUnit,InsuranceApply::getTimeUnit); queryWrapper.select(" DATEDIFF( t.END_TIME ,now() ) AS loseEfficacyDays "); - queryWrapper.select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad where ad.apply_id = t.id ) as insureNum"); + queryWrapper.select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad where ad.apply_id = t.id ) as insureNum"); + queryWrapper.select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad inner join insurance_apply a on ad.apply_id = a.id and a.status in ( 5 , 27 ) where ad.apply_id = t.id and ad.END_TIME > now() ) as guaranteeNum"); if(!Objects.isNull(pageWrap.getModel())&&!Objects.isNull(pageWrap.getModel().getType())){ queryWrapper.select(" ifnull(( select sum(td.fee) from taxes ts inner join tax_detial td on td.TAX_ID = ts.id where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id ),0) as taxesMoney"); queryWrapper.select(" ( select td.CREATE_DATE from taxes ts inner join tax_detial td on td.TAX_ID = ts.id where ts.status = 1 and td.INSURANCE_APPLY_ID = t.id order by td.CREATE_DATE desc limit 1 ) as taxesLast "); @@ -2096,6 +2339,7 @@ queryWrapper.selectAs(Solutions::getName,InsuranceApply::getSolutionsName); queryWrapper.selectAs(Solutions::getType,InsuranceApply::getSolutionType); queryWrapper.select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad where ad.apply_id = t.id ) as insureNum"); + queryWrapper.select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad inner join insurance_apply a on ad.apply_id = a.id and a.status in ( 5 , 27 ) where ad.apply_id = t.id and ad.END_TIME > now() ) as guaranteeNum"); queryWrapper.select(" ( select max(ac.APPLY_START_TIME) from apply_change ac where ac.apply_id = t.id and ac.status = 2 ) as lastChangeDate"); queryWrapper.select(" ( select sum(td.fee) from taxes ts inner join tax_detial td on td.TAX_ID = ts.id where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id ) as taxesMoney "); queryWrapper.select(" ( select td.CREATE_DATE from taxes ts inner join tax_detial td on td.TAX_ID = ts.id where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id order by td.CREATE_DATE desc limit 1 ) as taxesLast "); @@ -2241,6 +2485,7 @@ .selectAs(Company::getName,InsuranceApply::getCompanyName) .select(" ( select max(ac.APPLY_START_TIME) from apply_change ac where ac.apply_id = t.id and ac.status = 2 ) as lastChangeDate") .select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad where ad.apply_id = t.id ) as insureNum") + .select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad inner join insurance_apply a on ad.apply_id = a.id and a.status in ( 5 , 27 ) where ad.apply_id = t.id and ad.END_TIME > now() ) as guaranteeNum") .select(" t3.name as shopName") .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) @@ -2364,6 +2609,8 @@ .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) .selectAs(Solutions::getType,InsuranceApply::getSolutionType) .selectAs(Company::getName,InsuranceApply::getCompanyName) + .select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad where ad.apply_id = t.id ) as insureNum") + .select(" ifnull(( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad inner join insurance_apply a on ad.apply_id = a.id and a.status in ( 5 , 27 ) where ad.apply_id = t.id and ad.END_TIME > now() ),0) as guaranteeNum") .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) .eq(InsuranceApply::getId,model.getId()) @@ -2380,11 +2627,12 @@ .selectAs(DispatchUnit::getName,ApplyDetail::getDuName) .leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId) .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId) + .ge(ApplyDetail::getEndTime,DateUtil.getPlusTime2(new Date())) .eq(ApplyDetail::getApplyId,model.getId()); //鏌ヨ鏄庣粏 List<ApplyDetail> detailList =applyDetailJoinMapper.selectJoinList(ApplyDetail.class,wrapper1); if(detailList!=null){ - insuranceApply.setInsureNum(detailList.size()); +// insuranceApply.setInsureNum(detailList.size()); insuranceApply.setApplyDetailList(detailList); } insuranceApply.setRemark(model.getRemark()); @@ -2555,6 +2803,7 @@ BigDecimal sumAmount = BigDecimal.ZERO; List<ApplyDetail> applyDetailList = applyDetailMapper .selectList(new QueryWrapper<ApplyDetail>().lambda() + .ne(ApplyDetail::getChangeStatus,Constants.TWO) .eq(ApplyDetail::getApplyId,insuranceApply.getId())); if(CollectionUtils.isNotEmpty(applyDetailList)){ for (ApplyDetail applyDetail: applyDetailList) { @@ -2570,16 +2819,15 @@ applyDetail.setCurrentFee(applyDetail.getFee()); applyDetailMapper.updateById(applyDetail); } - sumAmount = sumAmount.add(applyDetail.getCurrentFee()); + if(Constants.equalsInteger(applyDetail.getChangeStatus(),Constants.ZERO) || applyDetail.getEndTime().getTime()>System.currentTimeMillis()){ + sumAmount = sumAmount.add(applyDetail.getCurrentFee()); + } } } insuranceApply.setCurrentFee(sumAmount); insuranceApplyMapper.updateById(insuranceApply); } } -// if(1==1){ -// throw new BusinessException(ResponseStatus.NOT_ALLOWED); -// } } @@ -2715,6 +2963,7 @@ .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId) .isNull(ApplyDetail::getFromId) .eq(ApplyDetail::getApplyId,model.getId()) + .orderByAsc(ApplyDetail::getId) ); model.setApplyDetailList(applyDetailList); return model; -- Gitblit v1.9.3