From 6fb727669795f9b62ea103da8874ebe856b294da Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 22 一月 2024 11:07:23 +0800
Subject: [PATCH] 开发业务接口
---
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java | 264 ++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 252 insertions(+), 12 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 8940095..599e639 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
@@ -1,5 +1,6 @@
package com.doumee.service.business.impl;
+import com.alibaba.fastjson.JSONObject;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
@@ -52,6 +53,8 @@
@Autowired
private ApplyLogMapper applyLogMapper;
+ @Autowired
+ private MultifileMapper multifileMapper;
@Autowired
private ApplyLogJoinMapper applyLogJoinMapper;
@@ -65,6 +68,227 @@
private DuSolutionMapper duSolutionMapper;
@Autowired
private DuWorktypeMapper duWorktypeMapper;
+
+ @Override
+ @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+ public Integer back(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.UPLOAD.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.PLATFORM_RETURN.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.PLATFORM_RETURN;
+ 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
+ @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+ public Integer uploadBaoxiandan(InsuranceApply insuranceApply) {
+ if(insuranceApply.getId() == null
+ || insuranceApply.getCode() == null
+ || insuranceApply.getStartTime() == null
+ || insuranceApply.getBaoxiandanFile() == null
+ ||StringUtils.isBlank( insuranceApply.getBaoxiandanFile() .getFileurl())
+ ||StringUtils.isBlank( insuranceApply.getBaoxiandanFile() .getName())){
+ 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.SIGNATURE.getKey())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
+ }
+ if(insuranceApply.getApplyEndTime()== null || insuranceApply.getStartTime().getTime()>insuranceApply.getApplyEndTime().getTime() ){
+ 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.UPLOAD_INSURANCE.getKey());
+ update.setCheckDate(update.getEditDate());
+ update.setCheckInfo(insuranceApply.getCheckInfo());
+ update.setCheckUserId(user.getId());
+ update.setId(model.getId());
+ update.setCode(insuranceApply.getCode());
+ update.setEndTime(model.getApplyEndTime());
+ update.setStartTime(insuranceApply.getStartTime());
+ insuranceApplyMapper.updateById(update);
+
+ insuranceApply.getBaoxiandanFile().setIsdeleted(Constants.ZERO);
+ insuranceApply.getBaoxiandanFile().setCreator(user.getId());
+ insuranceApply.getBaoxiandanFile().setCreateDate(update.getEditDate());
+ insuranceApply.getBaoxiandanFile().setObjType(Constants.MultiFile.BD_DONE_PDF.getKey());
+ insuranceApply.getBaoxiandanFile().setType(Constants.TWO);
+ multifileMapper.insert(insuranceApply.getBaoxiandanFile());
+ update.setBaoxiandanFile(insuranceApply.getBaoxiandanFile());
+
+ Constants.ApplyLogType applyLogType = Constants.ApplyLogType.UPLOAD_INSURANCE;
+ String info = "";
+ if(model.getApplyStartTime()!=null && model.getApplyStartTime().getTime()/1000!= insuranceApply.getStartTime().getTime()/1000){
+ info =applyLogType.getInfo();
+ info = info.replace("${param1}",DateUtil.getPlusTime2(model.getApplyEndTime()));
+ info = info.replace("${param2}",DateUtil.getPlusTime2(insuranceApply.getStartTime()));
+ }
+ ApplyLog log = new ApplyLog(update,applyLogType.getName(), info,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
+ applyLogMapper.insert(log);
+ return 1;
+
+ }
+ @Override
+ @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+ public Integer dealBackApply(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);
+ }
+
+ LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ Constants.ApplyLogType applyLogType = null;
+ String info = "";
+ if(insuranceApply.getDealBackApply() ==1){
+ //濡傛灉鏄┏鍥�,鍙兘鍙┏鍥炵敵璇风姸鎬佽繘琛屾搷浣�
+ if(!Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.COMPANY_APPLY_RETURN_SELECT.getKey())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
+ }
+ applyLogType = Constants.ApplyLogType.PLATFORM_UN_AGREE_BACK;
+ info = applyLogType.getInfo();
+ info = info.replace("${param}", insuranceApply.getCheckInfo());
+ }else{
+ //濡傛灉鏄悓鎰�,涓ょ鐢宠閫�鍥炵姸鎬侀兘鍙搷浣�
+ if(!(Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.COMPANY_APPLY_RETURN_SELECT.getKey())
+ ||Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.COMPANY_APPLY_RETURN.getKey()))){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
+ }
+ applyLogType = Constants.ApplyLogType.PLATFORM_AGREE_BACK;
+ }
+ InsuranceApply update = new InsuranceApply();
+ update.setEditDate(new Date());
+ update.setEditor(user.getId());
+ //鍚屾剰閫�鍥烇紝鐩存帴鍥炲埌鏈�鍒濈姸鎬侊紝濡傛灉椹冲洖閫�鍥炵敵璇凤紝鍒欎繚鍗曠姸鎬佸洖鍒板緟涓婁紶淇濋櫓鍗�
+ update.setStatus(insuranceApply.getDealBackApply() ==0?Constants.InsuranceApplyStatus.UPLOAD.getKey():Constants.InsuranceApplyStatus.SIGNATURE.getKey());
+ update.setCheckDate(update.getEditDate());
+ update.setCheckInfo(insuranceApply.getCheckInfo());
+ update.setCheckUserId(user.getId());
+ update.setId(model.getId());
+ insuranceApplyMapper.updateById(update);
+
+ ApplyLog log = new ApplyLog(update,applyLogType.getName(),info,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
+ applyLogMapper.insert(log);
+ return 1;
+
+
+ }
+ @Override
+ @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+ public Integer uploadToubaodan(InsuranceApply insuranceApply) {
+ if(insuranceApply.getId() == null
+ || insuranceApply.getToubaodanFile() == null
+ ||StringUtils.isBlank( insuranceApply.getToubaodanFile() .getFileurl())
+ ||StringUtils.isBlank( insuranceApply.getToubaodanFile() .getName())){
+ 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.UPLOAD.getKey())
+ || Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.PLATFORM_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.WAIT_SIGNATURE.getKey());
+ update.setCheckDate(update.getEditDate());
+ update.setCheckInfo(insuranceApply.getCheckInfo());
+ update.setCheckUserId(user.getId());
+ update.setId(model.getId());
+ insuranceApplyMapper.updateById(update);
+
+ insuranceApply.getToubaodanFile().setIsdeleted(Constants.ZERO);
+ insuranceApply.getToubaodanFile().setCreator(user.getId());
+ insuranceApply.getToubaodanFile().setCreateDate(update.getEditDate());
+ insuranceApply.getToubaodanFile().setObjType(Constants.MultiFile.BD_APPLY_PDF.getKey());
+ insuranceApply.getToubaodanFile().setType(Constants.TWO);
+ multifileMapper.insert(insuranceApply.getToubaodanFile());
+ update.setToubaodanFile(insuranceApply.getToubaodanFile());
+
+ Constants.ApplyLogType applyLogType = Constants.ApplyLogType.WAIT_SIGNATURE;
+ String info =applyLogType.getInfo();
+ info = info.replace("${param}", update.getCheckInfo());
+ ApplyLog log = new ApplyLog(update,applyLogType.getName(),StringUtils.isNotBlank(update.getCheckInfo())?info:"",update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
+ applyLogMapper.insert(log);
+ return 1;
+
+ }
+
+ /**
+ * 瀹℃牳閫氳繃
+ * @param insuranceApply
+ * @return
+ */
+ @Override
+ @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+ public Integer check(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.UPLOAD.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.PLATFORM_CHECK_PASS.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.PLATFORM_CHECK_PASS;
+ ApplyLog log = new ApplyLog(update,applyLogType.getName(),null,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
+ applyLogMapper.insert(log);
+ return 1;
+
+ }
+
@Override
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
@@ -143,7 +367,7 @@
}
applyDetail.setIdcardNo(member.getIdcardNo());
applyDetail.setSex(member.getSex());
- applyDetail.setFee(this.countDetailFee(solutions,insuranceApply.getApplyEndTime(),insuranceApply.getApplyStartTime()));
+ applyDetail.setFee(Constants.countDetailFee(solutions,insuranceApply.getApplyEndTime(),insuranceApply.getApplyStartTime()));
//楠岃瘉娲鹃仯鍗曚綅淇℃伅鏄惁瀛樺湪
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崟浣嶆湭鏌ヨ鍒帮紒");
@@ -169,21 +393,21 @@
applyLog.setTitle(insuranceApplyStatus.getName());
applyLog.setContent(content);
applyLog.setObjType(insuranceApplyStatus.getKey());
- applyLog.setObjId(Integer.toString(insuranceApply.getId()));
+ applyLog.setObjId( insuranceApply.getId());
applyLog.setStatus(insuranceApply.getStatus());
applyLogMapper.insert(applyLog);
}
- public BigDecimal countDetailFee(Solutions solutions ,Date startDate,Date endDate){
- //鏌ヨ淇濋櫓瀹為檯鍛ㄦ湡
- Integer cycle = DateUtil.calculateBetween(endDate,startDate,solutions.getDataType());
- if(cycle==-1){
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏃ユ湡淇℃伅閿欒!");
- }
- return solutions.getPrice().multiply(new BigDecimal(cycle));
- }
+// public BigDecimal countDetailFee(Solutions solutions ,Date startDate,Date endDate){
+// //鏌ヨ淇濋櫓瀹為檯鍛ㄦ湡
+// Integer cycle = DateUtil.calculateBetween(endDate,startDate,solutions.getDataType());
+// if(cycle==-1){
+// throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏃ユ湡淇℃伅閿欒!");
+// }
+// return solutions.getPrice().multiply(new BigDecimal(cycle));
+// }
// public static void main(String[] args) {
// Date date1 = DateUtil.StringToDate("2023-03-01 00:00:00");
@@ -319,6 +543,21 @@
insuranceApply.setInsureNum(applyDetailMapper.selectCount(new QueryWrapper<ApplyDetail>().lambda().eq(ApplyDetail::getApplyId,insuranceApply.getId())
.eq(ApplyDetail::getIsdeleted,Constants.ZERO)));
+ //璁剧疆鍦ㄤ繚鏃堕暱锛堝ぉ鏁帮級
+ if(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())){
+ //濡傛灉褰撳墠鏃堕棿澶т簬缁撴潫鏃ユ湡 鍒欎娇鐢ㄧ粨鏉熸棩鏈熷姣斿紑濮嬫棩鏈�
+ if(DateUtil.compareDate(new Date(),insuranceApply.getEndTime())>=Constants.ZERO){
+ insuranceApply.setServiceDays(DateUtil.daysBetweenDates(insuranceApply.getEndTime(),insuranceApply.getStartTime()));
+ }else if(DateUtil.compareDate(insuranceApply.getStartTime(),new Date())>=Constants.ZERO){
+ //鏈紑濮�
+ insuranceApply.setServiceDays(Constants.ZERO);
+ }else{
+ insuranceApply.setServiceDays(DateUtil.daysBetweenDates(new Date(),insuranceApply.getStartTime()));
+ }
+ }
+
+
+
//鏌ヨ鎿嶄綔璁板綍
List<ApplyLog> applyLogList = applyLogJoinMapper.selectJoinList(ApplyLog.class,
new MPJLambdaWrapper<ApplyLog>()
@@ -369,8 +608,9 @@
if(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.CLOSE.getKey())){
throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"宸插叧闂紝璇峰嬁閲嶅鎿嶄綔");
}
- if(!(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.PLATFORM_AGREE.getKey())
- ||insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.PLATFORM_RETURN.getKey()))){
+ if(!(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey())
+ ||insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.SIGNATURE.getKey())
+ ||insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.PLATFORM_CHECK_PASS.getKey()))){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏁版嵁鐘舵�侀潪鍙敵璇烽��鍥�!");
}
}
--
Gitblit v1.9.3