From bd2d3096021fc03aecea16fccd2463ea424066a4 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期三, 24 一月 2024 18:12:48 +0800
Subject: [PATCH] 111
---
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java | 182 +++++++++++++++++++++++++++++++++++++--------
1 files changed, 150 insertions(+), 32 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 a3e4e19..4be1bc8 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
@@ -23,8 +23,10 @@
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.service.business.third.SignService;
import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.jzq.common.bean.sign.NotifyDataReq;
import io.swagger.models.auth.In;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
@@ -46,6 +48,8 @@
@Autowired
private InsuranceApplyMapper insuranceApplyMapper;
+ @Autowired
+ private ApplyChangeMapper applyChangeMapper;
@Autowired
private SystemDictDataBiz systemDictDataBiz;
@@ -59,6 +63,8 @@
@Autowired
private ApplyLogMapper applyLogMapper;
+ @Autowired
+ private SignService signService;
@Autowired
private MultifileMapper multifileMapper;
@@ -278,6 +284,73 @@
}
@Override
+ public String getSignLink(Integer id) {
+ if(id == null ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ InsuranceApply model = insuranceApplyMapper.selectById(id);
+ 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(!Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_WAIT_SIGNATURE.getKey())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
+ }
+ Company company = user.getCompany();
+ if(company== null || StringUtils.isBlank( company.getEmail()) || !Constants.equalsInteger(company.getSignStatus(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝浼佷笟灏氭湭鍏峰鍦ㄧ嚎绛剧珷鏉′欢锛岃鑱旂郴骞冲彴绠$悊鍛樼‘璁");
+ }
+
+ Multifile f = multifileMapper.selectOne(new QueryWrapper<Multifile>().lambda()
+ .eq(Multifile::getObjId,model.getId())
+ .eq(Multifile::getObjType,Constants.MultiFile.BD_APPLY_PDF.getKey())
+ .eq(Multifile::getIsdeleted,Constants.ZERO).last("limit 1"));
+ if(f == null || StringUtils.isBlank(f.getFileurl())){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇寰呯绔犳枃浠跺け璐ワ紝璇疯仈绯诲钩鍙扮鐞嗗憳纭鎶曚繚鍗曟槸鍚︽纭紒");
+ }
+ String url = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+systemDictDataBiz.queryByCode(Constants.OSS,Constants.APPLY_FILE).getCode()+f.getFileurl();
+ String notifyUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SIGN_DONE_NOTIFY_URL).getCode();
+ notifyUrl = notifyUrl.replace("${type}","0").replace("${id}",model.getId().toString());
+ String applyNo = signService.applySign(company.getName(),url,company.getName(),company.getCode(),company.getEmail(),null,company.getSignId(),notifyUrl);
+ if(StringUtils.isBlank(applyNo) ){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇鍦ㄧ嚎绛剧珷鍦板潃澶辫触锛岃绋嶅悗閲嶈瘯锛�");
+ }
+ String link = signService.signLink(applyNo,company.getEmail(),company.getCode());
+ if(StringUtils.isBlank(link) ){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇鍦ㄧ嚎绛剧珷鍦板潃澶辫触锛岃绋嶅悗閲嶈瘯锛�");
+ }
+ InsuranceApply update= new InsuranceApply();
+ update.setId(model.getId());
+ update.setEditor(user.getId());
+ update.setEditDate(new Date());
+ update.setSignApplyNo(applyNo);
+ insuranceApplyMapper.updateById(update);
+ return link;
+ }
+ @Override
+ public void dealSignResult(NotifyDataReq data){
+ if(data.getApplyNo() == null ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ InsuranceApply model = insuranceApplyMapper.selectOne(new QueryWrapper<InsuranceApply>().lambda().eq(InsuranceApply::getSignApplyNo,data.getApplyNo()).last("limit 1" ));
+ if(model != null ){
+ //-----------------TUDO--------瀹屽杽绛剧害瀹屾垚涓氬姟------
+
+ }else{
+ ApplyChange applyChange = applyChangeMapper.selectOne(new QueryWrapper<ApplyChange>().lambda().eq(ApplyChange::getSignApplyNo,data.getApplyNo()).last("limit 1" ));
+ if(applyChange == null){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"绯荤粺鏈壘鍒板尮閰嶅悎鍚屽彿!");
+ }
+ //-----------------TUDO-------瀹屽杽绛剧害瀹屾垚-------
+ }
+
+
+ }
+ @Override
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
public Integer uploadToubaodan(InsuranceApply insuranceApply) {
if(insuranceApply.getId() == null
@@ -415,40 +488,43 @@
if(!CollectionUtils.isNotEmpty(duWorktypeList)){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏁版嵁寮傚父锛氫繚闄╂柟妗堜笅鏈煡璇㈠埌宸ョ淇℃伅");
}
- for (int i = 0; i < applyDetailList.size(); i++) {
- ApplyDetail applyDetail = applyDetailList.get(i);
- if(Objects.isNull(applyDetail)
- ||Objects.isNull(applyDetail.getMemberId())
- ||Objects.isNull(applyDetail.getDuId())
- ||Objects.isNull(applyDetail.getWorktypeId())
- ){
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鎶曚繚鍛樺伐淇℃伅鏁版嵁缂哄け");
+ if(CollectionUtils.isNotEmpty(applyDetailList)){
+ for (int i = 0; i < applyDetailList.size(); i++) {
+ ApplyDetail applyDetail = applyDetailList.get(i);
+ if(Objects.isNull(applyDetail)
+ ||Objects.isNull(applyDetail.getMemberId())
+ ||Objects.isNull(applyDetail.getDuId())
+ ||Objects.isNull(applyDetail.getWorktypeId())
+ ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鎶曚繚鍛樺伐淇℃伅鏁版嵁缂哄け");
+ }
+ applyDetail.setCreateDate(new Date());
+ applyDetail.setCreator(loginUserInfo.getId());
+ applyDetail.setIsdeleted(Constants.ZERO);
+ applyDetail.setSortnum(i);
+ applyDetail.setApplyId(insuranceApply.getId());
+ if(Objects.isNull(applyDetail.getMemberId())){
+ throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"銆�"+applyDetail.getMemberName()+"銆戝憳宸ヤ俊鎭瓨鍦ㄥ紓甯告暟鎹紒");
+ }
+ Member member = memberMapper.selectById(applyDetail.getMemberId());
+ if(Objects.isNull(member)){
+ throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"銆�"+applyDetail.getMemberName()+"銆戝憳宸ヤ俊鎭瓨鍦ㄥ紓甯告暟鎹紒");
+ }
+ applyDetail.setIdcardNo(member.getIdcardNo());
+ applyDetail.setSex(member.getSex());
+ 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崟浣嶆湭鏌ヨ鍒帮紒");
+ }
+ if(duWorktypeList.stream().filter(d->d.getDuSolutionId().equals(applyDetail.getDuId())&&d.getWorkTypeId().equals(applyDetail.getWorktypeId()))
+ .collect(Collectors.toList()).size()<=Constants.ZERO){
+ throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"銆�"+applyDetail.getMemberName()+"銆戝憳宸ュ伐绉嶄俊鎭湭鏌ヨ鍒帮紒");
+ }
}
- applyDetail.setCreateDate(new Date());
- applyDetail.setCreator(loginUserInfo.getId());
- applyDetail.setIsdeleted(Constants.ZERO);
- applyDetail.setSortnum(i);
- applyDetail.setApplyId(insuranceApply.getId());
- if(Objects.isNull(applyDetail.getMemberId())){
- throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"銆�"+applyDetail.getMemberName()+"銆戝憳宸ヤ俊鎭瓨鍦ㄥ紓甯告暟鎹紒");
- }
- Member member = memberMapper.selectById(applyDetail.getMemberId());
- if(Objects.isNull(member)){
- throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"銆�"+applyDetail.getMemberName()+"銆戝憳宸ヤ俊鎭瓨鍦ㄥ紓甯告暟鎹紒");
- }
- applyDetail.setIdcardNo(member.getIdcardNo());
- applyDetail.setSex(member.getSex());
- 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崟浣嶆湭鏌ヨ鍒帮紒");
- }
- if(duWorktypeList.stream().filter(d->d.getDuSolutionId().equals(applyDetail.getDuId())&&d.getWorkTypeId().equals(applyDetail.getWorktypeId()))
- .collect(Collectors.toList()).size()<=Constants.ZERO){
- throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"銆�"+applyDetail.getMemberName()+"銆戝憳宸ュ伐绉嶄俊鎭湭鏌ヨ鍒帮紒");
- }
- applyDetailMapper.insert(applyDetail);
+ applyDetailJoinMapper.insertBatchSomeColumn(applyDetailList);
}
+
//瀛樺偍鏃ュ織鏁版嵁
this.saveApplyLog(insuranceApply,insuranceApplyStatus,null);
return insuranceApply.getId();
@@ -837,6 +913,48 @@
}
+ /**
+ * 鏇存柊淇濆崟瀹為檯閲戦
+ */
+ @Override
+ @Transactional(rollbackFor = {Exception.class})
+ public void updateApplyCurrentFee(){
+ List<InsuranceApply> insuranceApplyList = insuranceApplyMapper.selectList(new QueryWrapper<InsuranceApply>().lambda()
+ .eq(InsuranceApply::getIsdeleted,Constants.ZERO)
+ .eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())
+ .ge(InsuranceApply::getStartTime,DateUtil.getDate(new Date(),"yyyy-MM-dd") + " 00:00:00")
+ .le(InsuranceApply::getEndTime,DateUtil.getDate(new Date(),"yyyy-MM-dd") + " 23:59:59")
+ );
+
+ if(CollectionUtils.isNotEmpty(insuranceApplyList)){
+ for (InsuranceApply insuranceApply:insuranceApplyList) {
+ Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId());
+ if(Objects.isNull(solutions)){
+ continue;
+ }
+ BigDecimal sumAmount = BigDecimal.ZERO;
+ List<ApplyDetail> applyDetailList = applyDetailMapper.selectList(new QueryWrapper<ApplyDetail>().lambda().eq(ApplyDetail::getApplyId,insuranceApply.getId()));
+ if(CollectionUtils.isNotEmpty(applyDetailList)){
+ for (ApplyDetail applyDetail: applyDetailList) {
+ applyDetail.setCurrentFee(Constants.countDetailFee(solutions,new Date(),applyDetail.getStartTime()));
+ applyDetailMapper.updateById(applyDetail);
+ sumAmount = sumAmount.add(applyDetail.getCurrentFee());
+ }
+ }
+ insuranceApply.setCurrentFee(sumAmount);
+ insuranceApplyMapper.updateById(insuranceApply);
+ }
+ }
+
+
+
+
+
+
+ }
+
+
+
}
--
Gitblit v1.9.3