From 851ad4d20985885ab84eabf0635d3398268b9fa4 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期三, 31 一月 2024 14:20:25 +0800
Subject: [PATCH] 111
---
server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java | 135 ++++++++++++++++++++++++++++++++++++++------
1 files changed, 116 insertions(+), 19 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 3370231..25d9b37 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
@@ -16,12 +16,10 @@
import com.doumee.dao.business.dto.ApplyChangeOptDTO;
import com.doumee.dao.business.dto.CountCyclePriceDTO;
import com.doumee.dao.business.dto.InsuranceApplyOptDTO;
-import com.doumee.dao.business.join.ApplyChagneDetailJoinMapper;
-import com.doumee.dao.business.join.ApplyChangeJoinMapper;
-import com.doumee.dao.business.join.ApplyDetailJoinMapper;
-import com.doumee.dao.business.join.DuSolutionJoinMapper;
+import com.doumee.dao.business.join.*;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.vo.CountCyclePriceVO;
+import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.ApplyChangeService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -87,6 +85,9 @@
@Autowired
private ApplyLogMapper applyLogMapper;
+
+ @Autowired
+ private ApplyLogJoinMapper applyLogJoinMapper;
@Autowired
private SolutionsMapper solutionsMapper;
@@ -454,11 +455,12 @@
if (!loginUserInfo.getType().equals(Constants.ONE)) {
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鐢ㄦ埛绫诲瀷閿欒锛氶潪浼佷笟鐢ㄦ埛鏃犳硶杩涜璇ユ搷浣�");
}
+ BigDecimal fee = BigDecimal.ZERO;
+
InsuranceApply insuranceApply = insuranceApplyMapper.selectById(applyChange.getApplyId());
if (Objects.isNull(insuranceApply)) {
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
- System.out.println(Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey());
if (!Constants.equalsInteger(insuranceApply.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())) {
throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "淇濆崟鐘舵�侀敊璇�");
}
@@ -491,6 +493,90 @@
applyChange.setStatus(Constants.ZERO);
applyChangeMapper.insert(applyChange);
+ this.dealApplyChangeData(applyChange,insuranceApply,companySolution,solutions,loginUserInfo,fee);
+
+ ApplyChange applyChangeFee = new ApplyChange();
+ applyChangeFee.setId(applyChange.getId());
+ applyChangeFee.setFee(fee);
+ applyChangeMapper.updateById(applyChangeFee);
+
+ this.saveApplyLog(applyChange,Constants.ApplyChangeLogStatus.UPLOAD,null);
+ return applyChange.getId();
+ }
+
+
+
+
+ @Override
+ @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+ public Integer update(ApplyChange applyChange) {
+ if (Objects.isNull(applyChange)
+ || Objects.isNull(applyChange.getId())
+ || Objects.isNull(applyChange.getApplyId())
+ || Objects.isNull(applyChange.getValidTime())
+ || Objects.isNull(applyChange.getType())
+ || !(applyChange.getType().equals(Constants.ZERO) || applyChange.getType().equals(Constants.ONE))
+ ) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ if (!loginUserInfo.getType().equals(Constants.ONE)) {
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鐢ㄦ埛绫诲瀷閿欒锛氶潪浼佷笟鐢ㄦ埛鏃犳硶杩涜璇ユ搷浣�");
+ }
+ ApplyChange dbApplyChange = applyChangeMapper.selectById(applyChange.getId());
+ if(Objects.isNull(dbApplyChange)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ if(!dbApplyChange.getStatus().equals(Constants.ApplyChangeStatus.PLATFORM_AGREE.getKey())){
+ throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "涓氬姟淇濈敵璇峰崟鐘舵�侀敊璇�");
+ }
+
+ InsuranceApply insuranceApply = insuranceApplyMapper.selectById(applyChange.getApplyId());
+ if (Objects.isNull(insuranceApply)) {
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ if (!Constants.equalsInteger(insuranceApply.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())) {
+ throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "淇濆崟鐘舵�侀敊璇�");
+ }
+ if (DateUtil.compareDate(insuranceApply.getEndTime(),new Date()) >= Constants.ZERO
+ ) {
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "淇濆崟宸茶繃淇濓紝鏃犳硶杩涜璇ユ搷浣�");
+ }
+ Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId());
+ if(Objects.isNull(solutions)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌淇濋櫓鏂规");
+ }
+ CompanySolution companySolution = companySolutionMapper.selectOne(new QueryWrapper<CompanySolution>().lambda()
+ .eq(CompanySolution::getCompanyId,loginUserInfo.getCompanyId())
+ .eq(CompanySolution::getSolutionBaseId,solutions.getId())
+ .eq(CompanySolution::getIsdeleted,Constants.ZERO)
+ .last(" limit 1 ")
+ );
+ if(Objects.isNull(companySolution)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌浼佷笟鍒嗛厤淇濋櫓鏂规淇℃伅");
+ }
+ //鐢宠鏃堕棿蹇呴』澶勪簬淇濆崟鐨勬椂闂磋寖鍥村唴
+ if (!(DateUtil.compareDate( insuranceApply.getStartTime(),applyChange.getValidTime()) >= Constants.ZERO
+ && DateUtil.compareDate( applyChange.getValidTime(),insuranceApply.getEndTime()) >= Constants.ZERO)) {
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鐢宠鏃ユ湡鏈浜庝繚鍗曟棩鏈熷唴锛屾棤娉曡繘琛岃鎿嶄綔");
+ }
+
+
+ applyChange.setEditDate(new Date());
+ applyChange.setEditor(loginUserInfo.getId());
+ applyChange.setStatus(Constants.ZERO);
+ BigDecimal fee = BigDecimal.ZERO;
+ this.dealApplyChangeData(applyChange,insuranceApply,companySolution,solutions,loginUserInfo,fee);
+ applyChange.setFee(fee);
+ applyChangeMapper.updateById(applyChange);
+ this.saveApplyLog(applyChange,Constants.ApplyChangeLogStatus.UPLOAD,null);
+ return applyChange.getId();
+ }
+
+
+ public void dealApplyChangeData(ApplyChange applyChange,InsuranceApply insuranceApply,CompanySolution companySolution,Solutions solutions,LoginUserInfo loginUserInfo,BigDecimal fee){
+
+
//鏌ヨ淇濋櫓鏂规涓嬬殑鎵�鏈夋淳閬e崟浣�
List<DuSolution> duSolutionList = duSolutionJoinMapper.selectJoinList(DuSolution.class,new MPJLambdaWrapper<DuSolution>()
.selectAll(DuSolution.class)
@@ -514,17 +600,16 @@
if (!CollectionUtils.isNotEmpty(duWorktypeList)) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鏁版嵁寮傚父锛氫繚闄╂柟妗堜笅鏈煡璇㈠埌宸ョ淇℃伅");
}
- BigDecimal fee = BigDecimal.ZERO;
+
//鍔犱繚鏁版嵁
List<ApplyChagneDetail> addDetailList = applyChange.getAddDetailList();
if (CollectionUtils.isNotEmpty(addDetailList)) {
- if(companySolution.getCanAdd().equals(Constants.ZERO)){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ紒涓氬垎閰嶄繚闄╂柟妗堟棤娉曡繘琛屽姞淇�");
- }
+ if(companySolution.getCanAdd().equals(Constants.ZERO)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ紒涓氬垎閰嶄繚闄╂柟妗堟棤娉曡繘琛屽姞淇�");
+ }
this.addChangeDetail(applyChange,addDetailList,duWorktypeList,duSolutionList,insuranceApply,solutions,loginUserInfo);
fee = addDetailList.stream().map(ApplyChagneDetail::getFee).reduce(BigDecimal.ZERO,BigDecimal::add);
-
}
//鍑忎繚鏁版嵁
@@ -533,23 +618,19 @@
if(companySolution.getCanReduce().equals(Constants.ZERO)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ紒涓氬垎閰嶄繚闄╂柟妗堟棤娉曡繘琛屽噺淇�");
}
- this.delChangeDetail(applyChange,delDetailList,insuranceApply,solutions,loginUserInfo);
+ this.delChangeDetail(applyChange,delDetailList,insuranceApply,solutions,loginUserInfo);
fee = fee.add(delDetailList.stream().map(ApplyChagneDetail::getFee).reduce(BigDecimal.ZERO,BigDecimal::add));
}
- ApplyChange applyChangeFee = new ApplyChange();
- applyChangeFee.setId(applyChange.getId());
- applyChangeFee.setFee(fee);
- applyChangeMapper.updateById(applyChangeFee);
//鎹㈠巶涓氬姟
List<ApplyChagneDetail> changeDetailList = applyChange.getChangeDetailList();
if (CollectionUtils.isNotEmpty(changeDetailList)) {
this.changeDetail(applyChange,changeDetailList,duWorktypeList,duSolutionList,loginUserInfo);
}
-
- this.saveApplyLog(applyChange,Constants.ApplyChangeLogStatus.UPLOAD,null);
- return applyChange.getId();
}
+
+
+
public void saveApplyLog(ApplyChange applyChange,Constants.ApplyChangeLogStatus applyChangeLogStatus,String content){
@@ -894,6 +975,7 @@
queryWrapper
.selectAll(ApplyChange.class)
.selectAs(InsuranceApply::getCode,ApplyChange::getApplyCode)
+ .selectAs(Solutions::getName,ApplyChange::getSolutionsName)
.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)
@@ -906,7 +988,8 @@
Constants.ApplyChangeStatus.RETURN_APPLY_UPLOAD.getKey(),
Constants.ApplyChangeStatus.RETURN_APPLY_SIGNATURE.getKey())
.eq(!Objects.isNull(model.getCompanyId()),InsuranceApply::getCompanyId,model.getCompanyId())
- .eq(!Objects.isNull(model.getSolutionsId()),ApplyChange::getSolutionsId,model.getSolutionsId())
+// .eq(!Objects.isNull(model.getSolutionsId()),ApplyChange::getSolutionsId,model.getSolutionsId())
+ .eq(!Objects.isNull(model.getBaseSolutionsId()),Solutions::getBaseId,model.getBaseSolutionsId())
.ge(StringUtils.isNotBlank(model.getCreateDateS()),ApplyChange::getCreateDate, model.getCreateDateS()+" 00:00:00" )
.le(StringUtils.isNotBlank(model.getCreateDateE()),ApplyChange::getCreateDate, model.getCreateDateE()+" 23:59:59" );
@@ -1025,6 +1108,20 @@
.leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
.eq(ApplyChange::getId,id);
ApplyChange applyChange = applyChangeJoinMapper.selectOne(queryWrapper);
+
+ //鏌ヨ鎿嶄綔璁板綍
+ List<ApplyLog> applyLogList = applyLogJoinMapper.selectJoinList(ApplyLog.class,
+ new MPJLambdaWrapper<ApplyLog>()
+ .selectAll(ApplyLog.class)
+ .selectAs(SystemUser::getRealname,ApplyLog::getCreatorName)
+ .selectAs(Company::getName,ApplyLog::getCompanyName)
+ .leftJoin(SystemUser.class,SystemUser::getId,ApplyLog::getCreator)
+ .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId)
+ .eq(ApplyLog::getObjId,applyChange.getId())
+ .orderByAsc(ApplyLog::getCreateDate)
+ );
+ applyChange.setApplyLogList(applyLogList);
+
return applyChange;
}
/**
--
Gitblit v1.9.3