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 | 340 ++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 277 insertions(+), 63 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 ad61a06..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
@@ -12,12 +12,14 @@
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.*;
+import com.doumee.dao.business.dto.ApplyChangeCyclePriceDTO;
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.*;
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;
@@ -51,6 +53,8 @@
private ApplyChangeMapper applyChangeMapper;
@Autowired
+ private DuSolutionJoinMapper duSolutionJoinMapper;
+ @Autowired
private InsuranceApplyMapper insuranceApplyMapper;
@Autowired
@@ -81,6 +85,9 @@
@Autowired
private ApplyLogMapper applyLogMapper;
+
+ @Autowired
+ private ApplyLogJoinMapper applyLogJoinMapper;
@Autowired
private SolutionsMapper solutionsMapper;
@@ -440,7 +447,7 @@
|| Objects.isNull(applyChange.getApplyId())
|| Objects.isNull(applyChange.getValidTime())
|| Objects.isNull(applyChange.getType())
- || !(applyChange.getType().equals(Constants.ZERO) || applyChange.getType().equals(Constants.TWO))
+ || !(applyChange.getType().equals(Constants.ZERO) || applyChange.getType().equals(Constants.ONE))
) {
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
@@ -448,14 +455,16 @@
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);
}
- if (insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())) {
+ if (!Constants.equalsInteger(insuranceApply.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())) {
throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "淇濆崟鐘舵�侀敊璇�");
}
- if (DateUtil.compareDate(new Date(), insuranceApply.getEndTime()) >= Constants.ZERO
+ if (DateUtil.compareDate(insuranceApply.getEndTime(),new Date()) >= Constants.ZERO
) {
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "淇濆崟宸茶繃淇濓紝鏃犳硶杩涜璇ユ搷浣�");
}
@@ -473,62 +482,155 @@
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌浼佷笟鍒嗛厤淇濋櫓鏂规淇℃伅");
}
//鐢宠鏃堕棿蹇呴』澶勪簬淇濆崟鐨勬椂闂磋寖鍥村唴
- if (!(DateUtil.compareDate(applyChange.getValidTime(), insuranceApply.getStartTime()) >= Constants.ZERO
- && DateUtil.compareDate(insuranceApply.getEndTime(), applyChange.getValidTime()) >= Constants.ZERO)) {
+ 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.setCreateDate(new Date());
applyChange.setCreator(loginUserInfo.getId());
applyChange.setIsdeleted(Constants.ZERO);
+ applyChange.setApplyStartTime(applyChange.getValidTime());
applyChange.setStatus(Constants.ZERO);
applyChangeMapper.insert(applyChange);
+ this.dealApplyChangeData(applyChange,insuranceApply,companySolution,solutions,loginUserInfo,fee);
- List<DuSolution> duSolutionList = duSolutionMapper.selectList(new QueryWrapper<DuSolution>().lambda()
- .eq(DuSolution::getIsdeleted, Constants.ZERO)
- .eq(DuSolution::getStatus, Constants.ONE)
- .eq(DuSolution::getSolutionId, insuranceApply.getSolutionId()));
- if (!CollectionUtils.isNotEmpty(duSolutionList)) {
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鏁版嵁寮傚父锛氫繚闄╂柟妗堜笅鏈煡璇㈠埌娲鹃仯鍗曚綅");
+ 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)
+ .innerJoin(DispatchUnit.class,DispatchUnit::getId,DuSolution::getDispatchUnitId)
+ .eq(DispatchUnit::getCompanyId,insuranceApply.getCompanyId())
+ .eq(DispatchUnit::getIsdeleted,Constants.ZERO)
+ .eq(DispatchUnit::getUnitStatus,Constants.ONE)
+ .eq(DuSolution::getIsdeleted,Constants.ZERO)
+ .eq(DuSolution::getStatus,Constants.ONE)
+ .eq(DuSolution::getSolutionId,insuranceApply.getSolutionId()));
+ if(!CollectionUtils.isNotEmpty(duSolutionList)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏁版嵁寮傚父锛氫繚闄╂柟妗堜笅鏈煡璇㈠埌娲鹃仯鍗曚綅");
}
//鏌ヨ鎵�鏈夋淳閬e崟浣嶄笅鐨勫伐绉�
- List<Integer> duSolutionIdList = duSolutionList.stream().map(i -> i.getId()).collect(Collectors.toList());
+ List<Integer> duSolutionIdList = duSolutionList.stream().map(i->i.getId()).collect(Collectors.toList());
List<DuWorktype> duWorktypeList = duWorktypeMapper.selectList(new QueryWrapper<DuWorktype>().lambda()
- .eq(DuWorktype::getIsdeleted, Constants.ZERO)
- .eq(DuWorktype::getStatus, Constants.ONE)
- .in(DuWorktype::getDuSolutionId, duSolutionIdList));
+ .eq(DuWorktype::getIsdeleted,Constants.ZERO)
+ .eq(DuWorktype::getStatus,Constants.ONE)
+ .in(DuWorktype::getDuSolutionId,duSolutionIdList));
if (!CollectionUtils.isNotEmpty(duWorktypeList)) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鏁版嵁寮傚父锛氫繚闄╂柟妗堜笅鏈煡璇㈠埌宸ョ淇℃伅");
}
+
//鍔犱繚鏁版嵁
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);
}
//鍑忎繚鏁版嵁
List<ApplyChagneDetail> delDetailList = applyChange.getDelDetailList();
if (CollectionUtils.isNotEmpty(delDetailList)) {
if(companySolution.getCanReduce().equals(Constants.ZERO)){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ紒涓氬垎閰嶄繚闄╂柟妗堟棤娉曡繘琛屽姞淇�");
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ紒涓氬垎閰嶄繚闄╂柟妗堟棤娉曡繘琛屽噺淇�");
}
this.delChangeDetail(applyChange,delDetailList,insuranceApply,solutions,loginUserInfo);
+ fee = fee.add(delDetailList.stream().map(ApplyChagneDetail::getFee).reduce(BigDecimal.ZERO,BigDecimal::add));
}
+
//鎹㈠巶涓氬姟
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){
@@ -539,7 +641,11 @@
applyLog.setIsdeleted(Constants.ZERO);
applyLog.setApplyId(applyChange.getApplyId());
applyLog.setTitle(applyChangeLogStatus.getName());
- applyLog.setContent(content);
+ if(StringUtils.isNotBlank(content)){
+ applyLog.setContent(applyChangeLogStatus.getInfo().replace("${param}",content));
+ }else{
+ applyLog.setContent(applyChangeLogStatus.getInfo());
+ }
applyLog.setObjType(applyChangeLogStatus.getKey());
applyLog.setObjId( applyChange.getId());
applyLog.setStatus(applyChange.getStatus());
@@ -580,7 +686,7 @@
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍑忎繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戜繚鍗曚俊鎭紓甯革紝瀛樺湪澶氭潯鏁版嵁");
}
ApplyDetail applyDetail = applyDetailList.get(Constants.ZERO);
- if (applyChange.getValidTime().compareTo(applyDetail.getEndTime()) <= 0) {
+ if (applyChange.getValidTime().compareTo(applyDetail.getEndTime()) > 0) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍑忎繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戜繚鍗曚繚闅滄棩鏈熻嚦锛氥��" + applyDetail.getEndTime() + "銆戞棤娉曢�氳繃鏈鐢宠");
}
applyChagneDetail.setCreateDate(new Date());
@@ -588,9 +694,17 @@
applyChagneDetail.setIsdeleted(Constants.ZERO);
applyChagneDetail.setApplyChangeId(applyChange.getId());
applyChagneDetail.setType(Constants.ONE);
+
+ System.out.println(DateUtil.dateToString(applyDetail.getEndTime(),"yyyy-MM-dd"));
+ System.out.println(DateUtil.dateToString(applyDetail.getStartTime(),"yyyy-MM-dd"));
+ System.out.println(DateUtil.dateToString(applyChange.getValidTime(),"yyyy-MM-dd"));
+
+ BigDecimal sumFee = Constants.countDetailFee(solutions, applyDetail.getEndTime(),applyDetail.getStartTime());
+ BigDecimal useFee = Constants.countDetailFee(solutions, applyChange.getValidTime(),applyDetail.getStartTime());
+
applyChagneDetail.setFee(
Constants.countDetailFee(solutions, applyDetail.getEndTime(),applyDetail.getStartTime())
- .subtract(Constants.countDetailFee(solutions,applyChange.getValidTime(), applyDetail.getStartTime()))
+ .subtract(Constants.countDetailFee(solutions,applyChange.getValidTime(), applyDetail.getStartTime())).multiply(new BigDecimal(-1))
);
applyChagneDetailJoinMapper.insert(applyChagneDetail);
}
@@ -608,15 +722,51 @@
*/
public void addChangeDetail(ApplyChange applyChange ,List<ApplyChagneDetail> addDetailList,List<DuWorktype> duWorktypeList,List<DuSolution> duSolutionList,InsuranceApply insuranceApply,Solutions solutions,LoginUserInfo loginUserInfo){
for (ApplyChagneDetail applyChagneDetail : addDetailList) {
- if (Objects.isNull(applyChagneDetail.getMemberId())
- || Objects.isNull(applyChagneDetail.getDuId())
+ if ( Objects.isNull(applyChagneDetail.getDuId())
|| Objects.isNull(applyChagneDetail.getWorktypeId())
+ || StringUtils.isBlank(applyChagneDetail.getIdcardNo())
) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍔犱繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝繀濉」缂哄け");
}
- Member member = memberMapper.selectById(applyChagneDetail.getMemberId());
- if (Objects.isNull(member)) {
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍔犱繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戞湭鏌ヨ鍒扮郴缁熶汉鍛樹俊鎭�");
+
+
+ Member member = new Member();
+ if(Objects.isNull(applyChagneDetail.getMemberId())){
+ //鏌ヨ鏄惁瀛樺湪璇ョ敤鎴�
+ member = memberMapper.selectOne(new QueryWrapper<Member>().lambda()
+ .eq(Member::getCompanyId,insuranceApply.getCompanyId())
+ .eq(Member::getIsdeleted,Constants.ZERO)
+ .eq(Member::getIdcardNo,applyChagneDetail.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(applyChagneDetail.getMemberName());
+ member.setCompanyId(insuranceApply.getCompanyId());
+ member.setSex(Constants.getSexByIdCard(applyChagneDetail.getIdcardNo()));
+ member.setIdcardNo(applyChagneDetail.getIdcardNo());
+ member.setApplyId(insuranceApply.getId());
+ member.setDuId(applyChagneDetail.getDuId());
+ member.setWorktypeId(applyChagneDetail.getWorktypeId());
+ memberMapper.insert(member);
+ }else{
+ member.setApplyId(insuranceApply.getId());
+ member.setDuId(applyChagneDetail.getDuId());
+ member.setWorktypeId(applyChagneDetail.getWorktypeId());
+ memberMapper.updateById(member);
+ }
+ }else{
+ member = memberMapper.selectById(applyChagneDetail.getMemberId());
+ if(Objects.isNull(member)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍔犱繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戞湭鏌ヨ鍒扮郴缁熶汉鍛樹俊鎭�");
+ }
+ member.setApplyId(insuranceApply.getId());
+ member.setDuId(applyChagneDetail.getDuId());
+ member.setWorktypeId(applyChagneDetail.getWorktypeId());
+ memberMapper.updateById(member);
}
//鏌ヨ鍛樺伐鏄惁瀛樺湪 0寰呯缃� 1宸茬绔� 鐨勬绫讳笟鍔′繚鏁版嵁 鍚屼竴涓诲崟涓�
if (applyChagneDetailJoinMapper.selectJoinCount(
@@ -628,30 +778,31 @@
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍔犱繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝瓨鍦ㄧ敵璇蜂腑鐨勫姞鍑忎繚/鎹㈠巶鍗曟嵁");
}
//鏌ヨ鍛樺伐鏄湪涓诲崟涓� 鏄惁瀛樺湪鐢熸晥涓殑鏁版嵁
- if (applyDetailJoinMapper.selectCount(new QueryWrapper<ApplyDetail>().lambda()
- .eq(ApplyDetail::getApplyId, applyChange.getApplyId())
- .eq(ApplyDetail::getMemberId, applyChagneDetail.getMemberId())
- .le(ApplyDetail::getStartTime, "now()")
- .ge(ApplyDetail::getEndTime, "now()")
- ) > Constants.ZERO) {
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍔犱繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝瓨鍦ㄤ繚闅滀腑鐨勪繚鍗曚俊鎭紝鏃犳硶杩涜鍔犱繚");
+ if(!Objects.isNull(applyChagneDetail.getMemberId())){
+ if (applyDetailJoinMapper.selectCount(new QueryWrapper<ApplyDetail>().lambda()
+ .eq(ApplyDetail::getApplyId, applyChange.getApplyId())
+ .eq(ApplyDetail::getMemberId, applyChagneDetail.getMemberId())
+ .le(ApplyDetail::getStartTime, "now()")
+ .ge(ApplyDetail::getEndTime, "now()")
+ ) > Constants.ZERO) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍔犱繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝瓨鍦ㄤ繚闅滀腑鐨勪繚鍗曚俊鎭紝鏃犳硶杩涜鍔犱繚");
+ }
}
-
//楠岃瘉娲鹃仯鍗曚綅淇℃伅 涓庡伐绉嶄俊鎭� 鏄惁瀛樺湪
if (duSolutionList.stream().filter(d -> d.getDispatchUnitId().equals(applyChagneDetail.getDuId())).collect(Collectors.toList()).size() <= Constants.ZERO) {
throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "銆�" + applyChagneDetail.getMemberName() + "銆戝憳宸ユ淳閬e崟浣嶆湭鏌ヨ鍒帮紒");
}
- if (duWorktypeList.stream().filter(d -> d.getDuSolutionId().equals(applyChagneDetail.getDuId()) && d.getWorkTypeId().equals(applyChagneDetail.getWorktypeId()))
+ if (duWorktypeList.stream().filter(d -> d.getWorkTypeId().equals(applyChagneDetail.getWorktypeId()))
.collect(Collectors.toList()).size() <= Constants.ZERO) {
throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "銆�" + applyChagneDetail.getMemberName() + "銆戝憳宸ュ伐绉嶄俊鎭湭鏌ヨ鍒帮紒");
}
+ applyChagneDetail.setMemberId(member.getId());
applyChagneDetail.setCreateDate(new Date());
applyChagneDetail.setCreator(loginUserInfo.getId());
applyChagneDetail.setIsdeleted(Constants.ZERO);
applyChagneDetail.setApplyChangeId(applyChange.getId());
applyChagneDetail.setType(Constants.ZERO);
applyChagneDetail.setFee(
-
Constants.countDetailFee(solutions,insuranceApply.getEndTime(),applyChange.getValidTime())
);
applyChagneDetailJoinMapper.insert(applyChagneDetail);
@@ -694,20 +845,20 @@
List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectList(new QueryWrapper<ApplyDetail>().lambda()
.eq(ApplyDetail::getApplyId, applyChange.getApplyId())
.eq(ApplyDetail::getMemberId, applyChagneDetail.getMemberId())
- .le(ApplyDetail::getStartTime, "now()")
- .ge(ApplyDetail::getEndTime, "now()"));
+ .le(ApplyDetail::getStartTime, DateUtil.getDate(new Date(),"yyyy-MM-dd HH:mm:ss"))
+ .ge(ApplyDetail::getEndTime, DateUtil.getDate(new Date(),"yyyy-MM-dd HH:mm:ss")));
if(applyDetailList.size()>Constants.ONE){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戜繚鍗曚俊鎭紓甯革紝瀛樺湪澶氭潯鏁版嵁");
}
ApplyDetail applyDetail = applyDetailList.get(Constants.ZERO);
- if(applyChange.getValidTime().compareTo( applyDetail.getEndTime())<=0){
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戜繚鍗曚繚闅滄棩鏈熻嚦锛氥��"+applyDetail.getEndTime()+"銆戞棤娉曢�氳繃鏈鐢宠");
+ if(applyChange.getValidTime().compareTo( applyDetail.getEndTime())>0){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戜繚鍗曚繚闅滄棩鏈熻嚦锛氥��"+DateUtil.getDate(applyDetail.getEndTime(),"yyyy-MM-dd HH:mm:ss")+"銆戞棤娉曢�氳繃鏈鐢宠");
}
//楠岃瘉娲鹃仯鍗曚綅淇℃伅 涓庡伐绉嶄俊鎭� 鏄惁瀛樺湪
if (duSolutionList.stream().filter(d -> d.getDispatchUnitId().equals(applyChagneDetail.getDuId())).collect(Collectors.toList()).size() <= Constants.ZERO) {
throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝憳宸ユ淳閬e崟浣嶆湭鏌ヨ鍒帮紒");
}
- if (duWorktypeList.stream().filter(d -> d.getDuSolutionId().equals(applyChagneDetail.getDuId()) && d.getWorkTypeId().equals(applyChagneDetail.getWorktypeId()))
+ if (duWorktypeList.stream().filter(d -> d.getWorkTypeId().equals(applyChagneDetail.getWorktypeId()))
.collect(Collectors.toList()).size() <= Constants.ZERO) {
throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝憳宸ュ伐绉嶄俊鎭湭鏌ヨ鍒帮紒");
}
@@ -787,7 +938,10 @@
.leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId)
.leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
.eq(!Objects.isNull(model.getType()),ApplyChange::getType,model.getType())
- .eq(!Objects.isNull(model.getStatus()),ApplyChange::getStatus,model.getStatus())
+ .eq(!Objects.isNull(model.getStatus())&&!model.getStatus().equals(Constants.ApplyChangeStatus.RETURN_APPLY_UPLOAD.getKey()),ApplyChange::getStatus,model.getStatus())
+ .in(!Objects.isNull(model.getStatus())&&model.getStatus().equals(Constants.ApplyChangeStatus.RETURN_APPLY_UPLOAD.getKey()),ApplyChange::getStatus,
+ 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())
.ge(StringUtils.isNotBlank(model.getCreateDateS()),ApplyChange::getCreateDate, model.getCreateDateS()+" 00:00:00" )
@@ -821,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)
@@ -828,9 +983,13 @@
.leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId)
.leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
.eq(!Objects.isNull(model.getType()),ApplyChange::getType,model.getType())
- .eq(!Objects.isNull(model.getStatus()),ApplyChange::getStatus,model.getStatus())
+ .eq(!Objects.isNull(model.getStatus())&&!model.getStatus().equals(Constants.ApplyChangeStatus.RETURN_APPLY_UPLOAD.getKey()),ApplyChange::getStatus,model.getStatus())
+ .in(!Objects.isNull(model.getStatus())&&model.getStatus().equals(Constants.ApplyChangeStatus.RETURN_APPLY_UPLOAD.getKey()),ApplyChange::getStatus,
+ 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" );
@@ -868,16 +1027,24 @@
throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"鏁版嵁宸插垹闄�,鏃犳硶杩涜璇ユ搷浣�");
}
Constants.ApplyChangeLogStatus applyChangeLogStatus = Constants.ApplyChangeLogStatus.RETURN_APPLY;
- if(applyChangeOptDTO.getOptType().equals(Constants.ApplyChangeStatus.RETURN_APPLY_UPLOAD.getKey())
- ||applyChangeOptDTO.getOptType().equals(Constants.ApplyChangeStatus.RETURN_APPLY_SIGNATURE.getKey())){
+
+ if(applyChangeOptDTO.getOptType().equals(3)){
//鍙戣捣閫�鍥炵敵璇�
if(loginUserInfo.getType().equals(Constants.ONE)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炰紒涓氱鐢ㄦ埛鏃犳硶杩涜璇ユ搷浣�");
}
- if(!applyChange.getStatus().equals(Constants.ApplyChangeStatus.UPLOAD.getKey()) ){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏁版嵁鐘舵�侀敊璇棤娉曡繘琛岃鎿嶄綔!");
+ if(!(applyChange.getStatus().equals(Constants.ApplyChangeStatus.UPLOAD.getKey())
+ || applyChange.getStatus().equals(Constants.ApplyChangeStatus.SIGNATURE.getKey()))){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏁版嵁鐘舵�侀敊璇棤娉曡繘閫�鍥炵敵璇�!");
}
- }else if(applyChangeOptDTO.getOptType().equals(Constants.ApplyChangeStatus.PLATFORM_AGREE.getKey())){
+
+ if(applyChange.getStatus().equals(Constants.ApplyChangeStatus.UPLOAD.getKey())){
+ applyChange.setStatus(Constants.ApplyChangeStatus.RETURN_APPLY_UPLOAD.getKey());
+ }else{
+ applyChange.setStatus(Constants.ApplyChangeStatus.RETURN_APPLY_SIGNATURE.getKey());
+ }
+
+ }else if(applyChangeOptDTO.getOptType().equals(4)){
applyChangeLogStatus = Constants.ApplyChangeLogStatus.PLATFORM_AGREE;
//骞冲彴鍚屾剰閫�鍥�
if(loginUserInfo.getType().equals(Constants.ZERO)){
@@ -888,7 +1055,7 @@
)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏁版嵁鐘舵�侀敊璇棤娉曡繘琛岃鎿嶄綔!");
}
- }else if(applyChangeOptDTO.getOptType().equals(Constants.ApplyChangeStatus.UPLOAD.getKey())){
+ }else if(applyChangeOptDTO.getOptType().equals(5)){
applyChangeLogStatus = Constants.ApplyChangeLogStatus.PLATFORM_UN_AGREE;
//骞冲彴椹冲洖閫�鍥�
if(loginUserInfo.getType().equals(Constants.ZERO)){
@@ -899,21 +1066,29 @@
)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏁版嵁鐘舵�侀敊璇棤娉曡繘琛岃鎿嶄綔!");
}
- }else if(applyChangeOptDTO.getOptType().equals(Constants.ApplyChangeStatus.CLOSE.getKey())){
- applyChangeLogStatus = Constants.ApplyChangeLogStatus.CLOSE;
+ if(applyChange.getStatus().equals(Constants.ApplyChangeStatus.RETURN_APPLY_UPLOAD.getKey())){
+ applyChange.setStatus(Constants.ApplyChangeStatus.UPLOAD.getKey());
+ }else{
+ applyChange.setStatus(Constants.ApplyChangeStatus.SIGNATURE.getKey());
+ }
+ }else if(applyChangeOptDTO.getOptType().equals(6)){
//浼佷笟鍏抽棴
+ applyChangeLogStatus = Constants.ApplyChangeLogStatus.CLOSE;
if(loginUserInfo.getType().equals(Constants.ONE)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炰紒涓氱鐢ㄦ埛鏃犳硶杩涜璇ユ搷浣�");
}
if(!applyChange.getStatus().equals(Constants.ApplyChangeStatus.PLATFORM_AGREE.getKey())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏁版嵁鐘舵�侀敊璇棤娉曡繘琛岃鎿嶄綔!");
}
+ applyChange.setStatus(Constants.ApplyChangeStatus.CLOSE.getKey());
}else{
throw new BusinessException(ResponseStatus.BAD_REQUEST );
}
- applyChange.setStatus(applyChangeOptDTO.getOptType());
+ applyChange.setEditor(loginUserInfo.getId());
+ applyChange.setEditDate(new Date());
applyChangeMapper.updateById(applyChange);
-// //瀛樺偍鏃ュ織鏁版嵁
+
+ //瀛樺偍鏃ュ織鏁版嵁
this.saveApplyLog(applyChange,applyChangeLogStatus,applyChangeOptDTO.getOptIllustration());
}
@@ -933,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;
}
/**
@@ -1096,4 +1285,29 @@
}
+ @Override
+ public CountCyclePriceVO getChangeCountCyclePriceVO(ApplyChangeCyclePriceDTO applyChangeCyclePriceDTO){
+ if(Objects.isNull(applyChangeCyclePriceDTO)
+ || Objects.isNull(applyChangeCyclePriceDTO.getApplyId())
+ || Objects.isNull(applyChangeCyclePriceDTO.getValidTime())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+
+ InsuranceApply insuranceApply = insuranceApplyMapper.selectById(applyChangeCyclePriceDTO.getApplyId());
+ if(Objects.isNull(insuranceApply)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌淇濆崟");
+ }
+ Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId());
+ if(Objects.isNull(solutions)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈡柟妗堜俊鎭�");
+ }
+ CountCyclePriceVO countCyclePriceVO = new CountCyclePriceVO();
+ countCyclePriceVO.setCyclePrice(Constants.countDetailFee(solutions,insuranceApply.getEndTime(),applyChangeCyclePriceDTO.getValidTime()));
+ return countCyclePriceVO;
+
+ }
+
+
+
+
}
--
Gitblit v1.9.3