From bcf40504dd6dbad43d4d54a5c099abceb8de6d71 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期一, 01 四月 2024 17:04:41 +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/InsuranceApplyServiceImpl.java | 195 +++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 172 insertions(+), 23 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 0902a7f..6e086af 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
@@ -42,6 +42,7 @@
import java.io.File;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
@@ -102,6 +103,8 @@
private NoticesMapper noticesMapper;
@Autowired
private UnionApplyJoinMapper unionApplyJoinMapper;
+ @Autowired
+ private UnionChangeJoinMapper unionChangeJoinMapper;
@Override
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
@@ -152,6 +155,39 @@
applyLogMapper.insert(log);
return 1;
+ }
+ @Override
+ @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+ public Integer closeWtbForShop(InsuranceApply insuranceApply) {
+ if(insuranceApply.getId() == null ||StringUtils.isBlank(insuranceApply.getCheckInfo())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ InsuranceApply model = insuranceApplyMapper.selectById(insuranceApply.getId());
+
+ if(model == null ||!Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ //鍙湁瀹℃牳閫氳繃鐨勭姸鎬佸彲鍏抽棴
+ if(!Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WTB_BUSINESS_CHECK_PASS.getKey())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
+ }
+ LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ InsuranceApply update = new InsuranceApply();
+ update.setEditDate(new Date());
+ update.setEditor(user.getId());
+ update.setStatus(Constants.InsuranceApplyStatus.WTB_CLOSED.getKey());
+ update.setCheckDate(update.getEditDate());
+ update.setCheckInfo(insuranceApply.getCheckInfo());
+ update.setCheckUserId(user.getId());
+ update.setId(model.getId());
+ insuranceApplyMapper.updateById(update);
+
+ Constants.ApplyLogType applyLogType = Constants.ApplyLogType.SHOP_CLOSE_WTB_APPLY;
+ 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));
+ applyLogMapper.insert(log);
+ return 1;
}
@Override
@@ -717,15 +753,6 @@
update.setId(model.getId());
unionApplyJoinMapper.updateById(update);
- //瀛樺偍寰呭姙淇℃伅
-// Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
-// //鍒犻櫎鍏朵粬寰呭姙
-// noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey())
-// .ne(Notices::getType,Constants.NoticeType.SIX.getStatus())
-// .eq(Notices::getObjId,model.getId()));
-// Notices notices = new Notices(noticeObjectType,Constants.ZERO,model.getId(),model.getSolutionsName(),model.getCompanyId(),Constants.NoticeType.TWO);
-// noticesMapper.insert(notices);
-
Multifile f = new Multifile();
f.setIsdeleted(Constants.ZERO);
f.setCreator(model.getCreator());
@@ -738,11 +765,49 @@
f.setInfo("鍟嗘埛绛剧讲鎶曚繚鍗�");
f.setName("鍟嗘埛绛剧讲鎶曚繚鍗�.pdf");
multifileMapper.insert(f);
-// Constants.ApplyLogType applyLogType = Constants.ApplyLogType.SIGNATURE;
-// ApplyLog log = new ApplyLog(update,applyLogType.getName(), null,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
-// applyLogMapper.insert(log);
-//
-// startSendEmail(f, model.getCompanyName(),model.getSolutionsName(),model.getSolutionEmail());
+
+ Constants.ApplyLogType applyLogType = Constants.ApplyLogType.IA_HBD_SIGNATURE_TBD;
+ ApplyLog log = new ApplyLog(model,applyLogType.getName(), null
+ ,model.getId(),applyLogType.getKey(),null, JSONObject.toJSONString(model));
+ applyLogMapper.insert(log);
+
+ return f;
+ }
+
+
+ /**
+ * 鍟嗘埛鍚堝苟鍗�(鍔犲噺淇�/鎹㈠巶) 鍟嗘埛绛剧讲鎶曚繚鐢宠鍗�
+ * @param model
+ * @param fileurl
+ * @param fullUrl
+ * @return
+ */
+ public Multifile uploadUnionChangeSignedFileDo(UnionChange model,String fileurl,String fullUrl) {
+ UnionChange update = new UnionChange();
+ update.setEditDate(new Date());
+ update.setEditor(model.getCreator());
+ update.setStatus(Constants.UnionChangeStatus.UPLOAD_INSURANCE_POLICY.getKey());
+ update.setId(model.getId());
+ unionChangeJoinMapper.updateById(update);
+
+ Multifile f = new Multifile();
+ f.setIsdeleted(Constants.ZERO);
+ f.setCreator(model.getCreator());
+ f.setObjId(update.getId());
+ f.setCreateDate(update.getEditDate());
+ f.setObjType(Constants.MultiFile.WTB_CA_TBD_PDF.getKey());
+ f.setType(Constants.TWO);
+ f.setFileurl(fileurl);
+ f.setFileurlFull(fullUrl);
+ f.setInfo("濮旀墭鍔犲噺淇�/鎹㈠巶涓氬姟 -鎶曚繚鍗�");
+ f.setName("濮旀墭鍔犲噺淇�/鎹㈠巶涓氬姟 -鎶曚繚鍗�.pdf");
+ multifileMapper.insert(f);
+
+ Constants.ApplyLogType applyLogType = Constants.ApplyLogType.CA_HBD_SIGNATURE_TBD;
+ ApplyLog log = new ApplyLog(model,applyLogType.getName(), null
+ ,model.getId(),applyLogType.getKey(),null, JSONObject.toJSONString(model));
+ applyLogMapper.insert(log);
+
return f;
}
@@ -971,11 +1036,32 @@
continue;
}
uploadUnionApplySignedFileDo(model,fileUrl,path+fileUrl);
-// return;
}
}
-
+ /**
+ *鍚堝苟鍔犲噺淇濇崲鍘� 绛剧讲涓氬姟
+ */
+ List<UnionChange> unionChangeList = unionChangeJoinMapper.selectJoinList(UnionChange.class,
+ new MPJLambdaWrapper<UnionChange>()
+ .selectAll(UnionChange.class)
+ .eq(UnionChange::getStatus,Constants.UnionChangeStatus.MERGE.getKey())
+ .isNotNull(UnionChange::getSignApplyNo));
+ if(unionChangeList !=null && unionChangeList.size()>0 ){
+ for(UnionChange model : unionChangeList){
+ String status = signService.linkFileStatus(model.getSignApplyNo());
+ if(!StringUtils.equals(status,"3")){
+ continue;
+ }
+ String link = signService.linkFile(model.getSignApplyNo());
+ String fileUrl = uploadSignFile(link);
+ if(StringUtils.isBlank(fileUrl)){
+ //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚�
+ continue;
+ }
+ uploadUnionChangeSignedFileDo(model,fileUrl,path+fileUrl);
+ }
+ }
@@ -1146,6 +1232,27 @@
}
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;
+ }
+ uploadUnionChangeSignedFileDo(unionChange,fileUrl,path+fileUrl);
+ }
+
+
}else if(Constants.equalsInteger(data.getSignStatus(), Constants.TWO )){
//濡傛灉宸叉嫆绛撅紝娓呴櫎鍚堝悓锛屼笅娆$绔犻噸鏂扮敓鎴愭柊鍚堝悓
insuranceApplyMapper.update(null,new UpdateWrapper<InsuranceApply>().lambda()
@@ -1166,6 +1273,9 @@
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()));
}
}
@@ -1261,15 +1371,19 @@
if(Objects.isNull(solutions)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈡柟妗堜俊鎭�");
}
- if(solutions.getType().equals(Constants.ZERO)){
+ if(Constants.equalsObject(solutions.getType(),Constants.ZERO)){
if(!Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.UPLOAD.getKey())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
}
}else{
- if(!user.getType().equals(Constants.TWO)){
+ if(!Constants.equalsObject(user.getType(),Constants.TWO)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炲晢鎴风鏃犳硶杩涜璇ユ搷浣�");
}
- if(!Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WTB_RETURN.getKey())){
+ //濮旀墭淇濆緟绛剧讲銆佸緟瀹℃牳鍙繘琛岄��鍥炴搷浣�
+ if(!(Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WTB_UPLOAD.getKey())
+ ||Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WTB_COMPANY_APPLY_SIGNATURE.getKey())
+ ||Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WTB_COMPANY_MEMBER_LIST_SIGNATURE.getKey())
+ )){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
}
}
@@ -1286,9 +1400,14 @@
//濡傛灉鏄笉閫氳繃
applyLogType = Constants.ApplyLogType.PLATFORM_RETURN ;
update.setStatus(Constants.InsuranceApplyStatus.PLATFORM_RETURN.getKey());
+ if(Constants.equalsObject(solutions.getType(),Constants.ONE)){
+ update.setStatus(Constants.InsuranceApplyStatus.WTB_RETURN.getKey());
+ }
}else{
applyLogType = Constants.ApplyLogType.PLATFORM_CHECK_PASS;
- update.setStatus(Constants.InsuranceApplyStatus.PLATFORM_CHECK_PASS.getKey());
+ if(Constants.equalsObject(solutions.getType(),Constants.ONE)){
+ update.setStatus(Constants.InsuranceApplyStatus.WTB_BUSINESS_CHECK_PASS.getKey());
+ }
}
insuranceApplyMapper.updateById(update);
@@ -1380,9 +1499,7 @@
applyLogMapper.insert(log);
-
//鍙戦�佸緟鍔炰笟鍔�
-
//瀛樺偍寰呭姙淇℃伅
Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
//鍒犻櫎鍏朵粬寰呭姙
@@ -1582,6 +1699,14 @@
applyDetail.setSex(member.getSex());
applyDetail.setFee(countCyclePriceVO.getCyclePrice());
applyDetail.setCurrentFee(BigDecimal.ZERO);
+ //鑾峰彇璁$畻鎬诲ぉ鏁�
+ 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(),"鎶曚繚淇℃伅寮傚父锛氭�诲ぉ鏁颁笌鎬婚噾棰濋敊璇�");
+ }
+ applyDetail.setPrice(
+ applyDetail.getFee().divide(new BigDecimal(maxDays),2,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崟浣嶆湭鏌ヨ鍒帮紒");
@@ -1883,10 +2008,10 @@
.selectAs(Solutions::getTimeUnit,InsuranceApply::getTimeUnit)
.selectAs(Solutions::getType,InsuranceApply::getSolutionType)
.selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
- .selectAs(Solutions::getName,InsuranceApply::getShopName)
.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(" t3.name as shopName")
.leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
.leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
.leftJoin(Company.class,Company::getId,Solutions::getShopId)
@@ -2119,6 +2244,30 @@
/**
+ * 浼佷笟淇濋殰涓汉鏁�
+ * @return
+ */
+ @Override
+ public Integer guaranteeNum() {
+ LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ if(loginUserInfo.getType().equals(Constants.ZERO)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炰紒涓氱鐢ㄦ埛鏃犳硶杩涜璇ユ搷浣�");
+ }
+ MPJLambdaWrapper<ApplyDetail> lambdaWrapper = new MPJLambdaWrapper<ApplyDetail>();
+ lambdaWrapper.select(ApplyDetail::getId)
+ .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId)
+ .and(i->i.eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()).or().eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.WTB_DONE.getKey()))
+ .eq(InsuranceApply::getCompanyId,loginUserInfo.getCompanyId())
+ .apply(" now() between t.START_TIME and t.END_TIME ");
+
+ Integer count = applyDetailJoinMapper.selectJoinCount(lambdaWrapper);
+ return count;
+ }
+
+
+
+
+ /**
* 鏇存柊淇濆崟瀹為檯閲戦
*/
@Override
--
Gitblit v1.9.3