From 3970ecc4f079b2acd840d876044eb6facc25ba6a Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期二, 30 一月 2024 20:07:44 +0800
Subject: [PATCH] 111
---
server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java | 179 +++++++++++++++++++++++++++--------
server/service/src/main/java/com/doumee/service/business/ApplyChangeService.java | 4
server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java | 5 +
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java | 17 +++
server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java | 3
server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java | 3
server/service/src/main/java/com/doumee/dao/business/dto/MemberQueryDTO.java | 5
server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java | 8 +
server/service/src/main/java/com/doumee/dao/business/dto/ApplyChangeCyclePriceDTO.java | 25 +++++
server/service/src/main/java/com/doumee/service/business/impl/WorktypeServiceImpl.java | 1
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 25 ++++
11 files changed, 226 insertions(+), 49 deletions(-)
diff --git a/server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java b/server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java
index b8b2d70..e0c12bf 100644
--- a/server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java
+++ b/server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java
@@ -6,9 +6,12 @@
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
+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.model.ApplyChange;
+import com.doumee.dao.business.vo.CountCyclePriceVO;
import com.doumee.service.business.ApplyChangeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -122,5 +125,10 @@
return ApiResponse.success("鎿嶄綔鎴愬姛");
}
+ @ApiOperation("鍔犲噺淇濅笟鍔¤ˉ鍏呴噾棰�")
+ @PostMapping("/getChangeCountCyclePriceVO")
+ public ApiResponse<CountCyclePriceVO> getChangeCountCyclePriceVO (@RequestBody ApplyChangeCyclePriceDTO applyChangeCyclePriceDTO) {
+ return ApiResponse.success("鎿嶄綔鎴愬姛",applyChangeService.getChangeCountCyclePriceVO(applyChangeCyclePriceDTO));
+ }
}
diff --git a/server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java b/server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java
index be8ece9..657a943 100644
--- a/server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java
+++ b/server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java
@@ -136,6 +136,9 @@
}
+
+
+
@ApiOperation("娴嬭瘯瀹為檯閲戦")
@GetMapping("/testFee")
public ApiResponse testFee(@RequestParam Integer id) {
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/ApplyChangeCyclePriceDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/ApplyChangeCyclePriceDTO.java
new file mode 100644
index 0000000..c5f13be
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/ApplyChangeCyclePriceDTO.java
@@ -0,0 +1,25 @@
+package com.doumee.dao.business.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * @author RenKang
+ */
+@Data
+public class ApplyChangeCyclePriceDTO {
+
+ @ApiModelProperty(value = "淇濆崟涓婚敭", example = "1")
+ private Integer applyId;
+
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @JsonFormat(pattern="yyyy-MM-dd")
+ @ApiModelProperty(value = "鎵瑰崟鏃ユ湡")
+ private Date validTime;
+
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/MemberQueryDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/MemberQueryDTO.java
index bb8c8cf..47bbb54 100644
--- a/server/service/src/main/java/com/doumee/dao/business/dto/MemberQueryDTO.java
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/MemberQueryDTO.java
@@ -26,7 +26,10 @@
@ApiModelProperty(value = "闇�杩囨护鏁版嵁闆嗗悎")
private List<Integer> memberIds;
- @ApiModelProperty(value = "杩囨护淇濆崟涓婚敭涓嬫暟鎹�")
+ @ApiModelProperty(value = "杩囨护淇濆崟涓婚敭涓嬫暟鎹�" ,notes = "鍔犱繚鐢宠")
+ private Integer notInInsuranceApplyId;
+
+ @ApiModelProperty(value = "淇濆崟涓婚敭涓嬫暟鎹�" , notes = "鍑忎繚鐢宠/鎹㈠巶鐢宠")
private Integer insuranceApplyId;
@ApiModelProperty(value = "浼佷笟涓婚敭")
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java b/server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java
index 558bf6a..a5ad527 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java
@@ -11,6 +11,7 @@
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
@@ -93,6 +94,10 @@
private String signApplyNo;
@ApiModelProperty(value = "鏈熸湜淇濋櫓鐢熸晥璧锋湡")
@ExcelColumn(name="鏈熸湜淇濋櫓鐢熸晥璧锋湡")
+ //鍏ュ弬
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ //鍑哄弬
+ @JsonFormat(pattern="yyyy-MM-dd")
private Date validTime;
@ApiModelProperty(value = "鎵瑰崟鍙�")
diff --git a/server/service/src/main/java/com/doumee/service/business/ApplyChangeService.java b/server/service/src/main/java/com/doumee/service/business/ApplyChangeService.java
index 46f3def..df79445 100644
--- a/server/service/src/main/java/com/doumee/service/business/ApplyChangeService.java
+++ b/server/service/src/main/java/com/doumee/service/business/ApplyChangeService.java
@@ -2,9 +2,11 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.dto.ApplyChangeCyclePriceDTO;
import com.doumee.dao.business.dto.ApplyChangeOptDTO;
import com.doumee.dao.business.model.ApplyChange;
import com.doumee.dao.business.model.InsuranceApply;
+import com.doumee.dao.business.vo.CountCyclePriceVO;
import java.util.List;
@@ -116,4 +118,6 @@
String getSignLinkJiajiabao(ApplyChange model);
String getSignLinkChangeUnit(ApplyChange model);
+
+ CountCyclePriceVO getChangeCountCyclePriceVO(ApplyChangeCyclePriceDTO applyChangeCyclePriceDTO);
}
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 d74064d..3370231 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,16 @@
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.DuSolutionJoinMapper;
import com.doumee.dao.business.model.*;
+import com.doumee.dao.business.vo.CountCyclePriceVO;
import com.doumee.service.business.ApplyChangeService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -50,6 +54,8 @@
@Autowired
private ApplyChangeMapper applyChangeMapper;
+ @Autowired
+ private DuSolutionJoinMapper duSolutionJoinMapper;
@Autowired
private InsuranceApplyMapper insuranceApplyMapper;
@@ -440,7 +446,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);
}
@@ -452,10 +458,11 @@
if (Objects.isNull(insuranceApply)) {
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
- if (insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())) {
+ 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(), "淇濆崟鐘舵�侀敊璇�");
}
- 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,34 +480,41 @@
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);
-
- 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(), "鏁版嵁寮傚父锛氫繚闄╂柟妗堜笅鏈煡璇㈠埌娲鹃仯鍗曚綅");
+ //鏌ヨ淇濋櫓鏂规涓嬬殑鎵�鏈夋淳閬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(), "鏁版嵁寮傚父锛氫繚闄╂柟妗堜笅鏈煡璇㈠埌宸ョ淇℃伅");
}
+ BigDecimal fee = BigDecimal.ZERO;
//鍔犱繚鏁版嵁
List<ApplyChagneDetail> addDetailList = applyChange.getAddDetailList();
if (CollectionUtils.isNotEmpty(addDetailList)) {
@@ -508,16 +522,25 @@
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);
+ 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)) {
@@ -537,7 +560,11 @@
applyLog.setIsdeleted(Constants.ZERO);
applyLog.setApplyId(applyChange.getApplyId());
applyLog.setTitle(applyChangeLogStatus.getName());
- applyLog.setContent(applyChangeLogStatus.getInfo().replace("${param}",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());
@@ -578,7 +605,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());
@@ -586,9 +613,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);
}
@@ -606,15 +641,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(
@@ -626,30 +697,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);
@@ -692,20 +764,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() + "銆戝憳宸ュ伐绉嶄俊鎭湭鏌ヨ鍒帮紒");
}
@@ -1116,4 +1188,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;
+
+ }
+
+
+
+
}
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
index e88c688..078c04e 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
@@ -856,7 +856,8 @@
.eq(DispatchUnit::getIsdeleted,Constants.ZERO)
.eq(loginUserInfo.getType().equals(Constants.ONE),DispatchUnit::getCompanyId,loginUserInfo.getCompanyId())
.eq(DispatchUnit::getStatus,Constants.ZERO)
- .eq(DispatchUnit::getDataType,dispatchUnitQueryDTO.getDataType())
+ //.eq(DispatchUnit::getDataType,dispatchUnitQueryDTO.getDataType())
+ .eq(DispatchUnit::getDataType,Constants.TWO)
.eq(!Objects.isNull(dispatchUnitQueryDTO.getSolutionId()),DuSolution::getSolutionId,dispatchUnitQueryDTO.getSolutionId())
.exists(!Objects.isNull(dispatchUnitQueryDTO.getApplyId()),
" select 1 from apply_detail ad where ad.isdeleted = 0 and ad.apply_id = "+dispatchUnitQueryDTO.getApplyId()+" " +
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 b3c53e3..d9c548e 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
@@ -17,6 +17,7 @@
import com.doumee.dao.business.dto.InsuranceApplyQueryDTO;
import com.doumee.dao.business.join.ApplyDetailJoinMapper;
import com.doumee.dao.business.join.ApplyLogJoinMapper;
+import com.doumee.dao.business.join.DuSolutionJoinMapper;
import com.doumee.dao.business.join.InsuranceApplyJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.vo.CountCyclePriceVO;
@@ -86,6 +87,8 @@
private MemberMapper memberMapper;
@Autowired
private DuSolutionMapper duSolutionMapper;
+ @Autowired
+ private DuSolutionJoinMapper duSolutionJoinMapper;
@Autowired
private DuWorktypeMapper duWorktypeMapper;
@@ -704,7 +707,12 @@
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌鏂规淇℃伅");
}
//鏌ヨ淇濋櫓鏂规涓嬬殑鎵�鏈夋淳閬e崟浣�
- List<DuSolution> duSolutionList = duSolutionMapper.selectList(new QueryWrapper<DuSolution>().lambda()
+ 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()));
@@ -1044,7 +1052,7 @@
MPJLambdaWrapper wrapper= new MPJLambdaWrapper<InsuranceApply>()
.selectAll(InsuranceApply.class)
.selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
- .selectAs(Company::getName,ApplyLog::getCompanyName)
+ .selectAs(Company::getName,InsuranceApply::getCompanyName)
.select(" ( select count(1) from apply_detail ad where ad.apply_id = t.id ) as insureNum")
.leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
.leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
@@ -1056,6 +1064,11 @@
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
+ if(insuranceApply.getStartTime().compareTo(new Date())<0 && insuranceApply.getEndTime().compareTo(new Date()) > 0 ){
+ insuranceApply.setLoseEfficacyDays(DateUtil.daysBetweenDates(insuranceApply.getEndTime(),new Date()));
+ }
+
+
initApplyStatus(insuranceApply);
//鏌ヨ闄勪欢鏁版嵁
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index f5ec6a9..a81f8fe 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -219,7 +219,8 @@
@Override
public List<Member> findListByDTO(MemberQueryDTO memberQueryDTO) {
- List<Member> memberList = memberJoinMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
+
+ MPJLambdaWrapper<Member> lambdaWrapper = new MPJLambdaWrapper<Member>()
.selectAll(Member.class)
.selectAs(DispatchUnit::getName,Member::getDuName)
.selectAs(Worktype::getName,Member::getWorkTypeName)
@@ -229,9 +230,25 @@
.eq(!Objects.isNull(memberQueryDTO.getCompanyId()),Member::getCompanyId,memberQueryDTO.getCompanyId())
.eq(Member::getIsdeleted, Constants.ZERO)
.like(StringUtils.isNotBlank(memberQueryDTO.getName()),Member::getName, memberQueryDTO.getName())
- .notExists(!Objects.isNull(memberQueryDTO.getInsuranceApplyId()),
- " select 1 from apply_detail ad where ad.applyId = "+memberQueryDTO.getInsuranceApplyId()+" and ad.END_TIME > now() and ad.isdeleted = 0 " +
- " and ad.member_id = t.id ")
+ .notExists(!Objects.isNull(memberQueryDTO.getNotInInsuranceApplyId()),
+ " select 1 from apply_detail ad where ad.apply_id = "+memberQueryDTO.getNotInInsuranceApplyId()+" and ad.END_TIME > now() and ad.isdeleted = 0 " +
+ " and ad.member_id = t.id ");
+ if(!Objects.isNull(memberQueryDTO.getInsuranceApplyId())){
+ lambdaWrapper = new MPJLambdaWrapper<Member>()
+ .selectAll(Member.class)
+ .selectAs(DispatchUnit::getName,Member::getDuName)
+ .selectAs(Worktype::getName,Member::getWorkTypeName)
+ .leftJoin(ApplyDetail.class,ApplyDetail::getMemberId,Member::getId)
+ .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId)
+ .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId)
+ .leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId)
+ .eq(Member::getIsdeleted, Constants.ZERO)
+ .eq(InsuranceApply::getId,memberQueryDTO.getInsuranceApplyId())
+ .exists(!Objects.isNull(memberQueryDTO.getInsuranceApplyId()),
+ " select 1 from apply_detail ad where ad.apply_id = "+memberQueryDTO.getInsuranceApplyId()+" and ad.END_TIME > now() and ad.isdeleted = 0 " +
+ " and ad.member_id = t.id ");
+ }
+ List<Member> memberList = memberJoinMapper.selectJoinList(Member.class,lambdaWrapper
);
return memberList;
}
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/WorktypeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/WorktypeServiceImpl.java
index ec13e9d..d1adcf4 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/WorktypeServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/WorktypeServiceImpl.java
@@ -102,6 +102,7 @@
public List<Worktype> findListByDTO(WorkTypeQueryDTO workTypeQueryDTO){
List<Worktype> list = worktypeMapper.selectList(new QueryWrapper<Worktype>().lambda()
.eq(Worktype::getIsdeleted,Constants.ZERO)
+ .eq(Worktype::getDataType,Constants.TWO)
.apply(workTypeQueryDTO.getQueryType().equals(Constants.ZERO),
"id in ( select sw.worktype_id from solution_worktype sw where sw.SOLUTION_ID = "+workTypeQueryDTO.getId()+" )")
.apply(workTypeQueryDTO.getQueryType().equals(Constants.ONE),
--
Gitblit v1.9.3