From 356a40aadb35fa3cf61bc0214e1d803956d98114 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 17 五月 2024 16:45:32 +0800
Subject: [PATCH] git ch
---
server/service/src/main/java/com/doumee/dao/business/model/Solutions.java | 6
server/service/pom.xml | 1
server/service/src/main/java/com/doumee/core/annotation/excel/ExcelToPdfToolNew.java | 4
server/service/src/main/java/com/doumee/dao/business/model/Member.java | 23
server/company/src/main/java/com/doumee/api/system/SystemDictController.java | 29
server/platform/src/main/java/com/doumee/api/business/UnionChangeController.java | 4
server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java | 30
server/service/src/main/java/com/doumee/dao/business/dto/UnionChangeBXDDTO.java | 6
server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java | 5
server/shop/src/main/java/com/doumee/api/system/SystemDictController.java | 30
server/service/src/main/java/com/doumee/dao/business/vo/CountCyclePriceVO.java | 6
server/company/src/main/java/com/doumee/api/business/SolutionsController.java | 25
server/service/src/main/java/com/doumee/service/business/SolutionsService.java | 11
server/service/src/main/java/com/doumee/dao/business/dto/SaveUnionChangeDTO.java | 6
server/service/src/main/java/com/doumee/core/utils/Constants.java | 364 +++++++++++
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java | 69 +
server/service/src/main/java/com/doumee/core/annotation/excel/ExcelImporter.java | 2
server/shop/src/main/java/com/doumee/api/business/ApplyChangeController.java | 7
server/platform/src/main/java/com/doumee/api/business/ApplyChangeController.java | 8
server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java | 517 ++++++++++------
server/platform/src/main/java/com/doumee/api/system/SystemDictController.java | 32 +
server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java | 4
server/service/src/main/java/com/doumee/config/shiro/ShiroConfig.java | 1
server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java | 3
server/company/src/main/resources/application.yml | 2
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 42 +
server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java | 58 +
server/service/src/main/java/com/doumee/core/utils/DateUtil.java | 39 +
server/shop/src/main/java/com/doumee/api/business/UnionApplyController.java | 12
server/platform/src/main/java/com/doumee/task/ScheduleTool.java | 2
server/pom.xml | 10
server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java | 438 ++++++++-----
server/shop/src/main/resources/application.yml | 2
server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java | 6
server/service/src/main/java/com/doumee/dao/business/dto/CountCyclePriceDTO.java | 4
server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java | 8
server/shop/src/main/java/com/doumee/api/business/UnionChangeController.java | 4
server/platform/src/main/resources/application.yml | 2
server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java | 4
server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java | 11
40 files changed, 1,380 insertions(+), 457 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 b879fd3..5b31c4e 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
@@ -8,6 +8,7 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
import com.doumee.dao.business.dto.*;
import com.doumee.dao.business.model.ApplyChange;
import com.doumee.dao.business.vo.CountCyclePriceVO;
@@ -21,6 +22,7 @@
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
/**
@@ -129,6 +131,7 @@
@ApiOperation("鍔犲噺淇濅笟鍔¤ˉ鍏呴噾棰�")
@PostMapping("/getChangeCountCyclePriceVO")
public ApiResponse<CountCyclePriceVO> getChangeCountCyclePriceVO (@RequestBody ApplyChangeCyclePriceDTO applyChangeCyclePriceDTO) {
+ applyChangeCyclePriceDTO.setValidTime(DateUtil.getMontageDate(new Date(),1));
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 d349490..b0d569d 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
@@ -162,8 +162,8 @@
@ApiOperation("娴嬭瘯瀹為檯閲戦")
@GetMapping("/testFee")
- public ApiResponse testFee(Integer id) {
- insuranceApplyService.updateApplyCurrentFee(id);
+ public ApiResponse testFee(Integer id,Integer unionId) {
+ insuranceApplyService.updateApplyCurrentFee(id, unionId);
return ApiResponse.success(null);
}
diff --git a/server/company/src/main/java/com/doumee/api/business/SolutionsController.java b/server/company/src/main/java/com/doumee/api/business/SolutionsController.java
index cccad8d..56f85a2 100644
--- a/server/company/src/main/java/com/doumee/api/business/SolutionsController.java
+++ b/server/company/src/main/java/com/doumee/api/business/SolutionsController.java
@@ -7,7 +7,9 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
import com.doumee.dao.business.model.Solutions;
+import com.doumee.dao.system.vo.BigDecimalVO;
import com.doumee.service.business.SolutionsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -16,7 +18,9 @@
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -122,4 +126,25 @@
return ApiResponse.success(solutionsService.findById(id));
}
+
+
+ @ApiOperation("testSolutionAddMoney")
+ @GetMapping("/testSolutionAddMoney")
+ public ApiResponse<BigDecimal> testSolutionAddMoney (Integer id, BigDecimal fee, String start, String end, String newDate, String newEndDate) {
+ return ApiResponse.success(solutionsService.testSolutionAddMoney(id,fee, DateUtil.StringToDate(start),DateUtil.StringToDate(end)
+ ,DateUtil.StringToDate(newDate),DateUtil.StringToDate(newEndDate)));
+ }
+
+ @ApiOperation("testSolutionReduceMoney")
+ @GetMapping("/testSolutionReduceMoney")
+ public ApiResponse<BigDecimal> testSolutionReduceMoney (Integer id, BigDecimal fee, String start, String end, String reduceStartTime,String reduceEndTime) {
+ return ApiResponse.success(solutionsService.testSolutionReduceMoney(id,fee, DateUtil.StringToDate(start),DateUtil.StringToDate(end) ,DateUtil.StringToDate(reduceStartTime),DateUtil.StringToDate(reduceEndTime)));
+ }
+
+ @ApiOperation("testSolutionProduceMoney")
+ @GetMapping("/testSolutionProduceMoney")
+ public ApiResponse<BigDecimal> testSolutionProduceMoney (Integer id, BigDecimal fee, String start, String end,String produceStart) {
+ return ApiResponse.success(solutionsService.testSolutionProduceMoney(id,fee, DateUtil.StringToDate(start),DateUtil.StringToDate(end),DateUtil.StringToDate(produceStart)));
+ }
+
}
diff --git a/server/company/src/main/java/com/doumee/api/system/SystemDictController.java b/server/company/src/main/java/com/doumee/api/system/SystemDictController.java
index 71a297a..1c12638 100644
--- a/server/company/src/main/java/com/doumee/api/system/SystemDictController.java
+++ b/server/company/src/main/java/com/doumee/api/system/SystemDictController.java
@@ -2,13 +2,16 @@
import com.doumee.api.BaseController;
import com.doumee.biz.system.SystemDictBiz;
+import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.constants.OperaType;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
import com.doumee.dao.system.dto.QuerySystemDictDTO;
import com.doumee.dao.system.model.SystemDict;
+import com.doumee.dao.system.model.SystemDictData;
import com.doumee.dao.system.vo.SystemDictListVO;
import com.doumee.service.system.SystemDictService;
import io.swagger.annotations.Api;
@@ -20,6 +23,7 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
/**
* @author Eva.Caesar Liu
@@ -79,4 +83,29 @@
public ApiResponse<PageData<SystemDictListVO>> findPage (@RequestBody PageWrap<QuerySystemDictDTO> pageWrap) {
return ApiResponse.success(systemDictService.findPage(pageWrap));
}
+
+
+
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
+
+ @ApiOperation("鏌ヨ瀛楀吀鍊�")
+ @PostMapping("/getAgreement")
+ public ApiResponse<List<String>> getAgreement() {
+ List<String> list = new ArrayList<>();
+ SystemDictData use = systemDictDataBiz.queryByCode(Constants.PROTOCOL,Constants.USE);
+ if(Objects.nonNull(use)){
+ list.add(use.getCode());
+ }else{
+ list.add("");
+ }
+ SystemDictData privacy = systemDictDataBiz.queryByCode(Constants.PROTOCOL,Constants.PRIVACY);
+ if(Objects.nonNull(privacy)){
+ list.add(privacy.getCode());
+ }else{
+ list.add("");
+ }
+ return ApiResponse.success(list);
+ }
+
}
diff --git a/server/company/src/main/resources/application.yml b/server/company/src/main/resources/application.yml
index dba634a..2107f6a 100644
--- a/server/company/src/main/resources/application.yml
+++ b/server/company/src/main/resources/application.yml
@@ -12,7 +12,7 @@
# application:git
# name: doumeemes
profiles:
- active: dev
+ active: pro
# JSON杩斿洖閰嶇疆
jackson:
diff --git a/server/platform/src/main/java/com/doumee/api/business/ApplyChangeController.java b/server/platform/src/main/java/com/doumee/api/business/ApplyChangeController.java
index 237d7d8..b7724da 100644
--- a/server/platform/src/main/java/com/doumee/api/business/ApplyChangeController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/ApplyChangeController.java
@@ -9,6 +9,7 @@
import com.doumee.dao.business.model.ApplyChange;
import com.doumee.dao.business.model.InsuranceApply;
import com.doumee.service.business.ApplyChangeService;
+import com.doumee.service.business.InsuranceApplyService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -30,6 +31,9 @@
@Autowired
private ApplyChangeService applyChangeService;
+
+ @Autowired
+ private InsuranceApplyService insuranceApplyService;
@PreventRepeat
@ApiOperation("鏂板缓")
@@ -57,7 +61,9 @@
@PostMapping("/uploadPidan")
@RequiresPermissions("business:applychange:uploadPidan")
public ApiResponse uploadPidan(@RequestBody ApplyChange applyChange) {
- return ApiResponse.success(applyChangeService.uploadPidan(applyChange));
+ Integer applyId = applyChangeService.uploadPidan(applyChange);
+ insuranceApplyService.updateApplyCurrentFee(applyId,null);
+ return ApiResponse.success(null);
}
@PreventRepeat
@ApiOperation("骞冲彴淇敼鎵瑰崟")
diff --git a/server/platform/src/main/java/com/doumee/api/business/UnionChangeController.java b/server/platform/src/main/java/com/doumee/api/business/UnionChangeController.java
index a473c24..73317e5 100644
--- a/server/platform/src/main/java/com/doumee/api/business/UnionChangeController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/UnionChangeController.java
@@ -11,6 +11,7 @@
import com.doumee.dao.business.dto.SmsCheckDTO;
import com.doumee.dao.business.dto.UnionChangeBXDDTO;
import com.doumee.dao.business.model.UnionChange;
+import com.doumee.service.business.InsuranceApplyService;
import com.doumee.service.business.UnionChangeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -33,6 +34,8 @@
@Autowired
private UnionChangeService unionChangeService;
+ @Autowired
+ private InsuranceApplyService insuranceApplyService;
@PreventRepeat
@ApiOperation("鏂板缓")
@@ -122,6 +125,7 @@
@RequiresPermissions("business:unionchange:uploadBXD")
public ApiResponse uploadBXD(@RequestBody UnionChangeBXDDTO unionChangeBXDDTO) {
unionChangeService.uploadBXD(unionChangeBXDDTO);
+ insuranceApplyService.updateApplyCurrentFee(null,unionChangeBXDDTO.getApplyId());
return ApiResponse.success(null);
}
diff --git a/server/platform/src/main/java/com/doumee/api/system/SystemDictController.java b/server/platform/src/main/java/com/doumee/api/system/SystemDictController.java
index 71a297a..169f85c 100644
--- a/server/platform/src/main/java/com/doumee/api/system/SystemDictController.java
+++ b/server/platform/src/main/java/com/doumee/api/system/SystemDictController.java
@@ -2,13 +2,16 @@
import com.doumee.api.BaseController;
import com.doumee.biz.system.SystemDictBiz;
+import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.constants.OperaType;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
import com.doumee.dao.system.dto.QuerySystemDictDTO;
import com.doumee.dao.system.model.SystemDict;
+import com.doumee.dao.system.model.SystemDictData;
import com.doumee.dao.system.vo.SystemDictListVO;
import com.doumee.service.system.SystemDictService;
import io.swagger.annotations.Api;
@@ -20,6 +23,7 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
/**
* @author Eva.Caesar Liu
@@ -35,6 +39,9 @@
@Autowired
private SystemDictBiz systemDictBiz;
+
+
+
@PreventRepeat
@ApiOperation("鏂板缓")
@@ -79,4 +86,29 @@
public ApiResponse<PageData<SystemDictListVO>> findPage (@RequestBody PageWrap<QuerySystemDictDTO> pageWrap) {
return ApiResponse.success(systemDictService.findPage(pageWrap));
}
+
+
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
+
+ @ApiOperation("鏌ヨ瀛楀吀鍊�")
+ @PostMapping("/getAgreement")
+ public ApiResponse<List<String>> getAgreement() {
+ List<String> list = new ArrayList<>();
+ SystemDictData use = systemDictDataBiz.queryByCode(Constants.PROTOCOL,Constants.USE);
+ if(Objects.nonNull(use)){
+ list.add(use.getCode());
+ }else{
+ list.add("");
+ }
+ SystemDictData privacy = systemDictDataBiz.queryByCode(Constants.PROTOCOL,Constants.PRIVACY);
+ if(Objects.nonNull(privacy)){
+ list.add(privacy.getCode());
+ }else{
+ list.add("");
+ }
+ return ApiResponse.success(list);
+ }
+
+
}
diff --git a/server/platform/src/main/java/com/doumee/task/ScheduleTool.java b/server/platform/src/main/java/com/doumee/task/ScheduleTool.java
index 694ce40..081395c 100644
--- a/server/platform/src/main/java/com/doumee/task/ScheduleTool.java
+++ b/server/platform/src/main/java/com/doumee/task/ScheduleTool.java
@@ -76,7 +76,7 @@
@Scheduled(cron = "0 5 00 * * ?")
public void updateApplyCurrentFee(){
log.info("==============瀹氭椂鏇存柊淇濆崟瀹為檯閲戦=======start======");
- insuranceApplyService.updateApplyCurrentFee(null);
+ insuranceApplyService.updateApplyCurrentFee(null,null);
log.info("==============瀹氭椂鏇存柊淇濆崟瀹為檯閲戦======end=======");
log.info("==============瀹氭椂鏇存柊鍚堝苟鍗曞疄闄呴噾棰�=======start======");
diff --git a/server/platform/src/main/resources/application.yml b/server/platform/src/main/resources/application.yml
index 368c575..781f762 100644
--- a/server/platform/src/main/resources/application.yml
+++ b/server/platform/src/main/resources/application.yml
@@ -11,7 +11,7 @@
# application:
# name: doumeemes
profiles:
- active: dev
+ active: pro
# JSON杩斿洖閰嶇疆
jackson:
diff --git a/server/pom.xml b/server/pom.xml
index 96b6768..258166e 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -37,6 +37,8 @@
<oshi.version>5.7.0</oshi.version>
<jna.version>5.7.0</jna.version>
<poi.version>5.0.0</poi.version>
+ <!-- hutool 宸ュ叿鐩稿叧-->
+ <hutool.version>5.5.8</hutool.version>
<!-- 寰俊灏忕▼搴� -->
<weixin-java-miniapp.version>4.1.0</weixin-java-miniapp.version>
</properties>
@@ -80,7 +82,12 @@
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
-
+ <!--hutool宸ュ叿-->
+ <dependency>
+ <groupId>cn.hutool</groupId>
+ <artifactId>hutool-all</artifactId>
+ <version>${hutool.version}</version>
+ </dependency>
<!-- swagger -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
@@ -227,6 +234,7 @@
<artifactId>jxl</artifactId>
<version>2.6.12</version>
</dependency>
+
</dependencies>
<repositories>
<repository>
diff --git a/server/service/pom.xml b/server/service/pom.xml
index 73e5822..56610c5 100644
--- a/server/service/pom.xml
+++ b/server/service/pom.xml
@@ -21,6 +21,7 @@
<artifactId>dianziqian</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
+
<!--jacob渚濊禆-->
<dependency>
<groupId>com.jacob</groupId>
diff --git a/server/service/src/main/java/com/doumee/config/shiro/ShiroConfig.java b/server/service/src/main/java/com/doumee/config/shiro/ShiroConfig.java
index 7078689..5a10b6a 100644
--- a/server/service/src/main/java/com/doumee/config/shiro/ShiroConfig.java
+++ b/server/service/src/main/java/com/doumee/config/shiro/ShiroConfig.java
@@ -97,6 +97,7 @@
map.put("/public/signNotify", "anon");
map.put("/public/testPdf", "anon");
map.put("/business/areas/*", "anon");
+ map.put("/system/dict/getAgreement", "anon");
// - 鏀捐swagger
map.put("/doc.html", "anon");
map.put("/webjars/**", "anon");
diff --git a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
index a78ff84..5d1254d 100644
--- a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
+++ b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
@@ -811,7 +811,7 @@
header2.createCell(5).setCellValue("");
header2.createCell(6).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getEndTime()));
header2.createCell(7).setCellValue("");
- header2.createCell(8).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getValidTime()));
+ header2.createCell(8).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getApplyStartTime()));
header2.createCell(9).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getDelValidTime()));
header2.createCell(10).setCellValue(data.getAddNum());
header2.createCell(11).setCellValue(data.getDelNum());
@@ -1255,7 +1255,7 @@
sheet.addMergedRegion(new CellRangeAddress(rowIndex ,rowIndex,0,5));
Row header7= sheet.createRow(rowIndex+1);
header7.setHeight((short) 3000);
- header7.createCell(0).setCellValue("鎶曚繚浼佷笟绛剧珷 锛� \n \n \n" +"鏃ユ湡锛� 骞� 鏈� 鏃� ");
+ header7.createCell(0).setCellValue("琚繚闄╀汉绛剧珷 锛� \n \n \n" +"鏃ユ湡锛� 骞� 鏈� 鏃� ");
for (int i =0; i < 6; i++) {
if(i>0){
header7.createCell(i).setCellValue("");
@@ -1650,9 +1650,10 @@
configFirstCell(sxssfWorkbook,header3.getCell(i));
}
sheet.addMergedRegion(new CellRangeAddress(3 ,3,1,8));
- Integer row = 4;
+ Integer row = 3;
List<ApplyChagneDetail> addChangeDetailList = data.getApplyChagneDetailList().stream().filter(i->i.getType().equals(Constants.ZERO)).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(addChangeDetailList)){
+ row = row + 1;
Row header4 = sheet.createRow(row);
header4.createCell(0).setCellValue("鍔犱繚浜哄憳");
for (int i = 0; i < 8; i++) {
@@ -1722,7 +1723,6 @@
row = row + 1 ;
for (int rowIndex = 0; rowIndex < reduceChangeDetailList.size(); rowIndex++) {
- row = row + rowIndex;
Row header6 = sheet.createRow(row);
ApplyChagneDetail applyChagneDetail = reduceChangeDetailList.get(rowIndex);
header6.createCell(0).setCellValue(rowIndex + 1);
@@ -1738,6 +1738,7 @@
configDataCell(sxssfWorkbook,header6.getCell(i));
}
sheet.addMergedRegion(new CellRangeAddress(row ,row,5,6));
+ row = row + 1;
}
}
@@ -1776,7 +1777,7 @@
byte [] bookByteAry = out.toByteArray();
InputStream in = new ByteArrayInputStream(bookByteAry);
String tempExcel = saveIsToFile(in);
- String tempPdf =System.getProperty("java.io.tmpdir")+File.separator+UUID.randomUUID().toString()+".pdf";
+ String tempPdf = System.getProperty("java.io.tmpdir")+File.separator+UUID.randomUUID().toString()+".pdf"; //"d:/1.docx";
// ExcelToPdfToolNew.excelToPdf(in,tempPdf);//杞琍DF
ExcelToPdfToolNew.excelToPdf(tempExcel,tempPdf);//杞琍DF
File f = new File(tempPdf);
diff --git a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelImporter.java b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelImporter.java
index b7e0631..71dddc0 100644
--- a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelImporter.java
+++ b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelImporter.java
@@ -143,7 +143,7 @@
* @return
*/
public int getDataRowNum(){
- return headerNum+1;
+ return headerNum;
}
/**
diff --git a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelToPdfToolNew.java b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelToPdfToolNew.java
index e658569..b1d574c 100644
--- a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelToPdfToolNew.java
+++ b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelToPdfToolNew.java
@@ -34,8 +34,8 @@
// 鑾峰彇椤甸潰璁剧疆
Dispatch pageSetup = Dispatch.get(currentSheet, "PageSetup") .toDispatch();
Dispatch.put(pageSetup, "Orientation", new Variant(2));
- Dispatch.put(pageSetup, "FitToPagesTall", new Variant(0));
- Dispatch.put(pageSetup, "FitToPagesWide", new Variant(1));
+ Dispatch.put(pageSetup, "FitToPagesTall", new Variant(false));
+ Dispatch.put(pageSetup, "FitToPagesWide", new Variant(false));
// 鑾峰彇椤甸潰璁剧疆
// Dispatch.put(pageSetup, "PaperSize", pageSize);
// 鍐呭缂╂斁
diff --git a/server/service/src/main/java/com/doumee/core/utils/Constants.java b/server/service/src/main/java/com/doumee/core/utils/Constants.java
index 93d9893..ccb4265 100644
--- a/server/service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -1,7 +1,9 @@
package com.doumee.core.utils;
+import cn.hutool.core.util.IdcardUtil;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
+import com.doumee.dao.business.dto.CountCyclePriceDTO;
import com.doumee.dao.business.model.Solutions;
import com.doumee.dao.business.vo.CountCyclePriceVO;
import io.swagger.models.auth.In;
@@ -13,6 +15,7 @@
import javax.servlet.ServletOutputStream;
import java.io.*;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.net.URL;
import java.net.URLDecoder;
import java.time.LocalDate;
@@ -49,6 +52,11 @@
public static final String WX_MIN_SECRET = "WX_MIN_SECRET";
public static final String SYSTEM ="SYSTEM";
+ public static final String PROTOCOL ="PROTOCOL";
+ public static final String PRIVACY ="PRIVACY";
+ public static final String USE ="USE";
+
+
public static final String GOODS_IMG_DIR ="GOODS_IMG_DIR";
public static final String CREDIT_CODE_REGEX = "[0-9A-HJ-NPQRTUWXY]{2}\\d{6}[0-9A-HJ-NPQRTUWXY]{10}";
@@ -175,31 +183,77 @@
}
+ public static CountCyclePriceVO getCountCyclePriceVO(CountCyclePriceDTO countCyclePriceDTO){
+ if(Objects.isNull(countCyclePriceDTO)
+ || Objects.isNull(countCyclePriceDTO.getSolutions())
+ || Objects.isNull(countCyclePriceDTO.getStartDate())
+ ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ return Constants.countPriceVO(countCyclePriceDTO.getStartDate(),countCyclePriceDTO.getSolutions());
+ }
public static CountCyclePriceVO countPriceVO(Date startDate, Solutions solutions){
CountCyclePriceVO countCyclePriceVO = new CountCyclePriceVO();
- if(solutions.getInsureCycleUnit().equals(Constants.ZERO)){
+ //澶�
+ if(solutions.getTimeUnit().equals(TimeUnit.DAY.getValue())){
countCyclePriceVO.setEndDate(
DateUtil.getMontageDate(
- DateUtil.afterDateByType(startDate,0,solutions.getInsureCycle()-1)
- ,2)
+ DateUtil.afterDateByType(startDate,0,0)
+ ,2)
);
- }else if(solutions.getInsureCycleUnit().equals(Constants.TWO)){
+ }else if(solutions.getTimeUnit().equals(TimeUnit.MONTH.getValue())){
//鑾峰彇褰撴湀澶╂暟
Integer monthDays = DateUtil.monthDays(startDate);
//鑾峰彇澶╂暟鍚庣殑鏃ユ湡
Date afterDate = DateUtil.afterDateByType(startDate,0,monthDays);
//璧嬪�� 姣忔棩缁撴潫鏃跺垎绉�
countCyclePriceVO.setEndDate(DateUtil.getMontageDate(afterDate,3));
- }else if(solutions.getInsureCycleUnit().equals(Constants.THREE)){
+ }else if(solutions.getTimeUnit().equals(TimeUnit.QUARTER.getValue())){
//鑾峰彇X骞村悗鏃ユ湡 澶氫簡涓�澶�
- Date afterDate = DateUtil.afterDateByType(startDate,2,solutions.getInsureCycle());
+ Date afterDate = DateUtil.afterDateByType(startDate,1,3);
+ //璧嬪�� 姣忔棩缁撴潫鏃跺垎绉� 鐒跺悗鍑忓皯涓�澶�
+ countCyclePriceVO.setEndDate(DateUtil.getMontageDate(afterDate,3));
+ }else if(solutions.getTimeUnit().equals(TimeUnit.HALF_YEAR.getValue())){
+ //鑾峰彇X骞村悗鏃ユ湡 澶氫簡涓�澶�
+ Date afterDate = DateUtil.afterDateByType(startDate,1,6);
+ //璧嬪�� 姣忔棩缁撴潫鏃跺垎绉� 鐒跺悗鍑忓皯涓�澶�
+ countCyclePriceVO.setEndDate(DateUtil.getMontageDate(afterDate,3));
+ }else if(solutions.getTimeUnit().equals(TimeUnit.YEAR.getValue())){
+ //鑾峰彇X骞村悗鏃ユ湡 澶氫簡涓�澶�
+ Date afterDate = DateUtil.afterDateByType(startDate,2,1);
//璧嬪�� 姣忔棩缁撴潫鏃跺垎绉� 鐒跺悗鍑忓皯涓�澶�
countCyclePriceVO.setEndDate(DateUtil.getMontageDate(afterDate,3));
}
- countCyclePriceVO.setCyclePrice(Constants.countDetailFee(solutions,countCyclePriceVO.getEndDate(),startDate));
+ countCyclePriceVO.setCyclePrice(solutions.getPrice());
return countCyclePriceVO;
}
+
+
+// public static CountCyclePriceVO countPriceVO(Date startDate, Solutions solutions){
+// CountCyclePriceVO countCyclePriceVO = new CountCyclePriceVO();
+// if(solutions.getInsureCycleUnit().equals(Constants.ZERO)){
+// countCyclePriceVO.setEndDate(
+// DateUtil.getMontageDate(
+// DateUtil.afterDateByType(startDate,0,solutions.getInsureCycle()-1)
+// ,2)
+// );
+// }else if(solutions.getInsureCycleUnit().equals(Constants.TWO)){
+// //鑾峰彇褰撴湀澶╂暟
+// Integer monthDays = DateUtil.monthDays(startDate);
+// //鑾峰彇澶╂暟鍚庣殑鏃ユ湡
+// Date afterDate = DateUtil.afterDateByType(startDate,0,monthDays);
+// //璧嬪�� 姣忔棩缁撴潫鏃跺垎绉�
+// countCyclePriceVO.setEndDate(DateUtil.getMontageDate(afterDate,3));
+// }else if(solutions.getInsureCycleUnit().equals(Constants.THREE)){
+// //鑾峰彇X骞村悗鏃ユ湡 澶氫簡涓�澶�
+// Date afterDate = DateUtil.afterDateByType(startDate,2,solutions.getInsureCycle());
+// //璧嬪�� 姣忔棩缁撴潫鏃跺垎绉� 鐒跺悗鍑忓皯涓�澶�
+// countCyclePriceVO.setEndDate(DateUtil.getMontageDate(afterDate,3));
+// }
+// countCyclePriceVO.setCyclePrice(Constants.countDetailFee(solutions,countCyclePriceVO.getEndDate(),startDate));
+// return countCyclePriceVO;
+// }
public static Integer getSexByIdCard(String idCard){
if(StringUtils.isBlank(idCard)){
@@ -579,7 +633,10 @@
public static void main(String[] args) {
- System.out.println("{\"companyName\":\"搴斿疂绉戞妧\",\"endtime\":\"2024-03-01 17:19:00\",\"erpId\":\"4D40185D5BC74A13821BE46EAF8B4179\",\"erpWithVisitDTOList\":[],\"faceImg\":\"20240304/1709518170325_742.jpg\",\"idcardNo\":\"342501199609300535\",\"idcardType\":0,\"name\":\"榛勬檵\",\"phone\":\"17756328697\",\"reason\":\"鎺㈤櫓\",\"receptMemberId\":\"E7E514BD7DE3F27CE0530B630A0AEAE0\",\"starttime\":\"2024-03-01 13:18:00\"}");
+ System.out.println(IdcardUtil.isValidCard("340621199310134818"));
+ System.out.println(IdcardUtil.isValidCard("341621199310134818"));
+
+// System.out.println("{\"companyName\":\"搴斿疂绉戞妧\",\"endtime\":\"2024-03-01 17:19:00\",\"erpId\":\"4D40185D5BC74A13821BE46EAF8B4179\",\"erpWithVisitDTOList\":[],\"faceImg\":\"20240304/1709518170325_742.jpg\",\"idcardNo\":\"342501199609300535\",\"idcardType\":0,\"name\":\"榛勬檵\",\"phone\":\"17756328697\",\"reason\":\"鎺㈤櫓\",\"receptMemberId\":\"E7E514BD7DE3F27CE0530B630A0AEAE0\",\"starttime\":\"2024-03-01 13:18:00\"}");
}
/**
* 鐢ㄦ埛绫诲瀷 0绯荤粺鐢ㄦ埛 1浼佷笟鐢ㄦ埛 2鏈嶅姟鏈烘瀯绠$悊鍛� 3鏈嶅姟鏈烘瀯瀛愯处鍙� 4缁煎悎鏈嶅姟鍗曚綅绠$悊鍛� 5缁煎悎鏈嶅姟鍗曚綅瀛愯处鍙� 6涓撳 7鍘垮尯鐢ㄦ埛 8甯傚眬鐢ㄦ埛
@@ -1000,6 +1057,128 @@
this.collectStatus = collectStatus;
}
}
+
+ /**
+ * 鏂规 鍛ㄦ湡鍗曚綅
+ * coefficient 浠ュ崐鏈堜负鏈�灏忛绮�
+ */
+ public enum TimeUnit {
+ DAY(0,"鏃�",0),
+ MONTH(2,"鏈�",2),
+ QUARTER(3,"瀛e害",6),
+ HALF_YEAR(4,"鍗婂勾",12),
+ YEAR(5,"骞�",24);
+ private Integer value;
+ private String des;
+ private Integer coefficient;
+
+
+ TimeUnit(Integer value, String des, Integer coefficient) {
+ this.value = value;
+ this.des = des;
+ this.coefficient = coefficient;
+ }
+
+ public Integer getValue() {
+ return value;
+ }
+
+ public void setValue(Integer value) {
+ this.value = value;
+ }
+
+ public String getDes() {
+ return des;
+ }
+
+ public void setDes(String des) {
+ this.des = des;
+ }
+
+ public Integer getCoefficient() {
+ return coefficient;
+ }
+
+ public void setCoefficient(Integer coefficient) {
+ this.coefficient = coefficient;
+ }
+
+ public static TimeUnit getTimeUnit(Integer value) {
+ for (TimeUnit c : TimeUnit.values()) {
+ if (Constants.equalsInteger(c.getValue() , value)) {
+ return c;
+ }
+ }
+ return null;
+ }
+ }
+
+ /**
+ * 鏂规 鍛ㄦ湡鍗曚綅 INSURE_CYCLE_UNIT
+ * coefficient 浠ュ崐鏈堜负鏈�灏忛绮�
+ */
+ public enum InsureCycleUnit {
+ DAY(0,"鏃�",new BigDecimal(1),0),
+ HALF_MONTH(1,"鍗婃湀",new BigDecimal(15.5),1),
+ MONTH(2,"鏈�",new BigDecimal(31),2),
+ QUARTER(3,"瀛e害",new BigDecimal(92),6),
+ HALF_YEAR(4,"鍗婂勾", new BigDecimal(184),12),
+ YEAR(5,"骞�", new BigDecimal(365),24);
+ private Integer value;
+ private String des;
+ private BigDecimal days;
+ private Integer coefficient;
+
+
+ public static InsureCycleUnit getInsureCycleUnit(Integer value) {
+ for (InsureCycleUnit c : InsureCycleUnit.values()) {
+ if (Constants.equalsInteger(c.getValue() , value)) {
+ return c;
+ }
+ }
+ return null;
+ }
+
+ InsureCycleUnit(Integer value, String des,BigDecimal days, Integer coefficient) {
+ this.value = value;
+ this.des = des;
+ this.days = days;
+ this.coefficient = coefficient;
+ }
+
+ public Integer getValue() {
+ return value;
+ }
+
+ public void setValue(Integer value) {
+ this.value = value;
+ }
+
+ public String getDes() {
+ return des;
+ }
+
+ public void setDes(String des) {
+ this.des = des;
+ }
+ public BigDecimal getDays() {
+ return days;
+ }
+
+ public void setDays(BigDecimal days) {
+ this.days = days;
+ }
+
+ public Integer getCoefficient() {
+ return coefficient;
+ }
+
+ public void setCoefficient(Integer coefficient) {
+ this.coefficient = coefficient;
+ }
+
+ }
+
@@ -1874,4 +2053,173 @@
}
}
}
+
+
+
+ /**
+ * 鍑忎繚 鎬昏垂鐢�
+ * @param solutions
+ * @param fee
+ * @param startTime
+ * @param endTime
+ * @param reduceStartTime
+ * @param reduceEndTime
+ * @return
+ */
+ public static BigDecimal reduceFee(Solutions solutions,BigDecimal fee,Date startTime ,Date endTime,Date reduceStartTime,Date reduceEndTime){
+ Integer days = DateUtil.daysBetweenDates(reduceEndTime, reduceStartTime) + 1;
+ Integer countDays = DateUtil.daysBetweenDates(endTime, startTime) + 1;
+ Constants.TimeUnit timeUnit = Constants.TimeUnit.getTimeUnit(solutions.getTimeUnit());
+ Constants.InsureCycleUnit insureCycleUnit = Constants.InsureCycleUnit.getInsureCycleUnit(solutions.getInsureCycleUnit());
+ if(solutions.getTimeUnit().equals(solutions.getInsureCycleUnit())){
+ return fee;
+ }else{
+ if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.DAY.getValue())){
+ //澶╀负鎵规敼鍗曚綅
+ return fee.multiply(new BigDecimal(days)).divide(new BigDecimal(countDays),2, RoundingMode.HALF_UP);
+ }else if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.HALF_MONTH.getValue())) {
+ //鍗婃湀涓烘壒鏀瑰崟浣�
+ BigDecimal cycle = new BigDecimal(days).divide(insureCycleUnit.getDays(),0,RoundingMode.CEILING);
+ //鏍规嵁鎶曚繚鍛ㄦ湡 瀹氫箟鐨� 姣忎釜鍛ㄦ湡 = X涓� 鍗婃湀鍛ㄦ湡 杩涜璁$畻
+ // 鎬婚噾棰� * 浜х敓璐圭敤鐨勫懆鏈� / 鎶曚繚鍛ㄦ湡瀹氫箟鐨� 鍗婃湀鍛ㄦ湡鏁�
+ return fee.multiply(cycle).divide(new BigDecimal(timeUnit.getCoefficient()),2, RoundingMode.HALF_UP);
+ }else if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.MONTH.getValue())) {
+ //鏈堜唤涓烘壒鏀瑰崟浣�
+ BigDecimal cycle = new BigDecimal(DateUtil.getDifferenceMonths(reduceEndTime,reduceStartTime));
+ // 鎬婚噾棰� * 浜х敓璐圭敤鐨勫懆鏈� / 鎶曚繚鍛ㄦ湡瀹氫箟鐨� 鍗婃湀鍛ㄦ湡鏁� * 2
+ return fee.multiply(cycle).multiply(new BigDecimal(2)).divide(new BigDecimal(timeUnit.getCoefficient()),2, RoundingMode.HALF_UP);
+
+ }else if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.QUARTER.getValue())) {
+ //瀛e害涓烘壒鏀瑰崟浣�
+ //鏌ヨ浜х敓璐圭敤鎬绘湀浠�
+ BigDecimal cycle = new BigDecimal(DateUtil.getDifferenceMonths(reduceEndTime,reduceStartTime));
+ //杞崲涓� 鎬诲搴�
+ cycle = cycle.divide(new BigDecimal(3),0,RoundingMode.CEILING);
+ // 鎬婚噾棰� * 浜х敓璐圭敤鐨勫懆鏈� / 鎶曚繚鍛ㄦ湡瀹氫箟鐨� 鍗婃湀鍛ㄦ湡鏁� * 6
+ return fee.multiply(cycle).multiply(new BigDecimal(6)).divide(new BigDecimal(timeUnit.getCoefficient()),2, RoundingMode.HALF_UP);
+ }else if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.HALF_YEAR.getValue())) {
+ //鍗婂勾涓烘壒鏀瑰崟浣�
+ //鏌ヨ浜х敓璐圭敤鎬绘湀浠�
+ BigDecimal cycle = new BigDecimal(DateUtil.getDifferenceMonths(reduceEndTime,reduceStartTime));
+ //杞崲涓� 鍗婂勾
+ cycle = cycle.divide(new BigDecimal(6),0,RoundingMode.CEILING);
+ // 鎬婚噾棰� * 浜х敓璐圭敤鐨勫懆鏈� / 鎶曚繚鍛ㄦ湡瀹氫箟鐨� 鍗婃湀鍛ㄦ湡鏁� * 6
+ return fee.multiply(cycle).multiply(new BigDecimal(12)).divide(new BigDecimal(timeUnit.getCoefficient()),2, RoundingMode.HALF_UP);
+ }else {
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏂规閰嶇疆閿欒");
+ }
+ }
+ }
+
+ /**
+ * 鍔犱繚涓氬姟 鏍规嵁鏂规璁$畻鎬昏垂鐢�
+ * @param solutions
+ * @param startTime
+ * @param endTime
+ * @param newStartTime
+ * @return
+ */
+ public static BigDecimal addFee(Solutions solutions,BigDecimal fee,Date startTime ,Date endTime,Date newStartTime,Date newEndTime){
+ Integer days = DateUtil.daysBetweenDates(newEndTime, newStartTime) + 1;
+ Integer countDays = DateUtil.daysBetweenDates(endTime, startTime) + 1;
+ Constants.TimeUnit timeUnit = Constants.TimeUnit.getTimeUnit(solutions.getTimeUnit());
+ Constants.InsureCycleUnit insureCycleUnit = Constants.InsureCycleUnit.getInsureCycleUnit(solutions.getInsureCycleUnit());
+ if(solutions.getTimeUnit().equals(solutions.getInsureCycleUnit())){
+ return fee;
+ }else{
+ if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.DAY.getValue())){
+ //澶╀负鎵规敼鍗曚綅
+ return fee.multiply(new BigDecimal(days)).divide(new BigDecimal(countDays),2, RoundingMode.HALF_UP);
+ }else if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.HALF_MONTH.getValue())) {
+ //鍗婃湀涓烘壒鏀瑰崟浣�
+ BigDecimal cycle = new BigDecimal(days).divide(insureCycleUnit.getDays(),0,RoundingMode.CEILING);
+ //鏍规嵁鎶曚繚鍛ㄦ湡 瀹氫箟鐨� 姣忎釜鍛ㄦ湡 = X涓� 鍗婃湀鍛ㄦ湡 杩涜璁$畻
+ // 鎬婚噾棰� * 浜х敓璐圭敤鐨勫懆鏈� / 鎶曚繚鍛ㄦ湡瀹氫箟鐨� 鍗婃湀鍛ㄦ湡鏁�
+ return fee.multiply(cycle).divide(new BigDecimal(timeUnit.getCoefficient()),2, RoundingMode.HALF_UP);
+ }else if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.MONTH.getValue())) {
+ //鏈堜唤涓烘壒鏀瑰崟浣�
+ BigDecimal cycle = new BigDecimal(DateUtil.getDifferenceMonths(newEndTime,newStartTime));
+ // 鎬婚噾棰� * 浜х敓璐圭敤鐨勫懆鏈� / 鎶曚繚鍛ㄦ湡瀹氫箟鐨� 鍗婃湀鍛ㄦ湡鏁� * 2
+ return fee.multiply(cycle).multiply(new BigDecimal(2)).divide(new BigDecimal(timeUnit.getCoefficient()),2, RoundingMode.HALF_UP);
+
+ }else if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.QUARTER.getValue())) {
+ //瀛e害涓烘壒鏀瑰崟浣�
+ //鏌ヨ浜х敓璐圭敤鎬绘湀浠�
+ BigDecimal cycle = new BigDecimal(DateUtil.getDifferenceMonths(newEndTime,newStartTime));
+ //杞崲涓� 鎬诲搴�
+ cycle = cycle.divide(new BigDecimal(3),0,RoundingMode.CEILING);
+ // 鎬婚噾棰� * 浜х敓璐圭敤鐨勫懆鏈� / 鎶曚繚鍛ㄦ湡瀹氫箟鐨� 鍗婃湀鍛ㄦ湡鏁� * 6
+ return fee.multiply(cycle).multiply(new BigDecimal(6)).divide(new BigDecimal(timeUnit.getCoefficient()),2, RoundingMode.HALF_UP);
+ }else if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.HALF_YEAR.getValue())) {
+ //鍗婂勾涓烘壒鏀瑰崟浣�
+ //鏌ヨ浜х敓璐圭敤鎬绘湀浠�
+ BigDecimal cycle = new BigDecimal(DateUtil.getDifferenceMonths(newEndTime,newStartTime));
+ //杞崲涓� 鍗婂勾
+ cycle = cycle.divide(new BigDecimal(6),0,RoundingMode.CEILING);
+ // 鎬婚噾棰� * 浜х敓璐圭敤鐨勫懆鏈� / 鎶曚繚鍛ㄦ湡瀹氫箟鐨� 鍗婃湀鍛ㄦ湡鏁� * 6
+ return fee.multiply(cycle).multiply(new BigDecimal(12)).divide(new BigDecimal(timeUnit.getCoefficient()),2, RoundingMode.HALF_UP);
+ }else {
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏂规閰嶇疆閿欒");
+ }
+ }
+ }
+
+
+
+ /**
+ * 璁$畻宸蹭骇鐢熻垂鐢�
+ * @param solutions
+ * @param fee
+ * @param startTime
+ * @param endTime
+ * @return
+ */
+ public static BigDecimal produceFee(Solutions solutions,BigDecimal fee,Date startTime ,Date endTime,Date produceStartTime){
+ //瓒呭嚭澶╂暟
+ Integer days = DateUtil.daysBetweenDates(DateUtil.getMontageDate(new Date(), 2), produceStartTime) + 1;
+ Integer countDays = DateUtil.daysBetweenDates(endTime, startTime) + 1;
+ Constants.TimeUnit timeUnit = Constants.TimeUnit.getTimeUnit(solutions.getTimeUnit());
+ Constants.InsureCycleUnit insureCycleUnit = Constants.InsureCycleUnit.getInsureCycleUnit(solutions.getInsureCycleUnit());
+ if(solutions.getTimeUnit().equals(solutions.getInsureCycleUnit())){
+ return fee;
+ }else{
+ if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.DAY.getValue())){
+ //澶╀负鎵规敼鍗曚綅
+ return fee.multiply(new BigDecimal(days)).divide(new BigDecimal(countDays),2, RoundingMode.HALF_UP);
+ }else if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.HALF_MONTH.getValue())) {
+ //鍗婃湀涓烘壒鏀瑰崟浣�
+ BigDecimal cycle = new BigDecimal(days).divide(insureCycleUnit.getDays(),0,RoundingMode.CEILING);
+ //鏍规嵁鎶曚繚鍛ㄦ湡 瀹氫箟鐨� 姣忎釜鍛ㄦ湡 = X涓� 鍗婃湀鍛ㄦ湡 杩涜璁$畻
+ // 鎬婚噾棰� * 浜х敓璐圭敤鐨勫懆鏈� / 鎶曚繚鍛ㄦ湡瀹氫箟鐨� 鍗婃湀鍛ㄦ湡鏁�
+ return fee.multiply(cycle).divide(new BigDecimal(timeUnit.getCoefficient()),2, RoundingMode.HALF_UP);
+ }else if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.MONTH.getValue())) {
+ //鏈堜唤涓烘壒鏀瑰崟浣�
+ BigDecimal cycle = new BigDecimal(DateUtil.getDifferenceMonths(new Date(),startTime));
+ // 鎬婚噾棰� * 浜х敓璐圭敤鐨勫懆鏈� / 鎶曚繚鍛ㄦ湡瀹氫箟鐨� 鍗婃湀鍛ㄦ湡鏁� * 2
+ return fee.multiply(cycle).multiply(new BigDecimal(2)).divide(new BigDecimal(timeUnit.getCoefficient()),2, RoundingMode.HALF_UP);
+
+ }else if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.QUARTER.getValue())) {
+ //瀛e害涓烘壒鏀瑰崟浣�
+ //鏌ヨ浜х敓璐圭敤鎬绘湀浠�
+ BigDecimal cycle = new BigDecimal(DateUtil.getDifferenceMonths(new Date(),startTime));
+ //杞崲涓� 鎬诲搴�
+ cycle = cycle.divide(new BigDecimal(3),0,RoundingMode.CEILING);
+ // 鎬婚噾棰� * 浜х敓璐圭敤鐨勫懆鏈� / 鎶曚繚鍛ㄦ湡瀹氫箟鐨� 鍗婃湀鍛ㄦ湡鏁� * 6
+ return fee.multiply(cycle).multiply(new BigDecimal(6)).divide(new BigDecimal(timeUnit.getCoefficient()),2, RoundingMode.HALF_UP);
+ }else if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.HALF_YEAR.getValue())) {
+ //鍗婂勾涓烘壒鏀瑰崟浣�
+ //鏌ヨ浜х敓璐圭敤鎬绘湀浠�
+ BigDecimal cycle = new BigDecimal(DateUtil.getDifferenceMonths(new Date(),startTime));
+ //杞崲涓� 鍗婂勾
+ cycle = cycle.divide(new BigDecimal(6),0,RoundingMode.CEILING);
+ // 鎬婚噾棰� * 浜х敓璐圭敤鐨勫懆鏈� / 鎶曚繚鍛ㄦ湡瀹氫箟鐨� 鍗婃湀鍛ㄦ湡鏁� * 6
+ return fee.multiply(cycle).multiply(new BigDecimal(12)).divide(new BigDecimal(timeUnit.getCoefficient()),2, RoundingMode.HALF_UP);
+ }else {
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏂规閰嶇疆閿欒");
+ }
+ }
+ }
+
+
+
}
diff --git a/server/service/src/main/java/com/doumee/core/utils/DateUtil.java b/server/service/src/main/java/com/doumee/core/utils/DateUtil.java
index 1acf22d..0c8a385 100644
--- a/server/service/src/main/java/com/doumee/core/utils/DateUtil.java
+++ b/server/service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -1,6 +1,8 @@
package com.doumee.core.utils;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.DateFormatSymbols;
@@ -8,6 +10,7 @@
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.Period;
+import java.time.ZoneId;
import java.util.Calendar;
import java.util.Date;
import java.util.Enumeration;
@@ -3186,8 +3189,17 @@
// );
- LocalDate startDate= LocalDate.of(2021,2,28);
- LocalDate endDate =LocalDate.of(2022,4,5);
+// System.out.println(
+// new BigDecimal(16).divide(new BigDecimal(15.5),0, RoundingMode.CEILING)
+// );
+ LocalDate startDate = DateUtil.StringToDate("2021-02-28 23:59:59").toInstant()
+ .atZone(ZoneId.systemDefault())
+ .toLocalDate();
+ LocalDate endDate = DateUtil.StringToDate("2022-04-05 23:59:59").toInstant()
+ .atZone(ZoneId.systemDefault())
+ .toLocalDate();
+// LocalDate startDate= LocalDate.of(2021,2,28);
+// LocalDate endDate =LocalDate.of(2022,4,5);
Period period = Period.between(startDate,endDate);
int months = period.getYears()* 12 + period.getMonths();
System.out.println("Months between the two dates: " + months);
@@ -3214,9 +3226,28 @@
//
// );
-
-
}
+ /**
+ * 鑾峰彇鐩稿樊鐨勬湀鏁�
+ * @param sDate
+ * @param eDate
+ * @return
+ */
+ public static Integer getDifferenceMonths(Date sDate ,Date eDate) {
+ LocalDate startDate = sDate.toInstant()
+ .atZone(ZoneId.systemDefault())
+ .toLocalDate();
+ LocalDate endDate = eDate.toInstant()
+ .atZone(ZoneId.systemDefault())
+ .toLocalDate();
+// LocalDate startDate= LocalDate.of(2021,2,28);
+// LocalDate endDate =LocalDate.of(2022,4,5);
+ Period period = Period.between(endDate,startDate);
+ int months = period.getYears()* 12 + period.getMonths();
+ return months + 1;
+ }
+
+
}
\ No newline at end of file
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/CountCyclePriceDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/CountCyclePriceDTO.java
index d997b60..8f737d1 100644
--- a/server/service/src/main/java/com/doumee/dao/business/dto/CountCyclePriceDTO.java
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/CountCyclePriceDTO.java
@@ -1,5 +1,6 @@
package com.doumee.dao.business.dto;
+import com.doumee.dao.business.model.Solutions;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -21,5 +22,8 @@
@ApiModelProperty(value = "鐢熸晥璧锋湡")
private Date startDate;
+ @ApiModelProperty(value = "鏂规", example = "1")
+ private Solutions solutions;
+
}
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/SaveUnionChangeDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/SaveUnionChangeDTO.java
index 0cd5caf..1e7789e 100644
--- a/server/service/src/main/java/com/doumee/dao/business/dto/SaveUnionChangeDTO.java
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/SaveUnionChangeDTO.java
@@ -22,9 +22,9 @@
@ApiModelProperty(value = "鍔犲噺淇�/鎹㈠巶鍗曟嵁涓婚敭 澶氫釜浠�,鍒嗗壊")
private List<Integer> applyIds;
-// @ApiModelProperty(value = "鎵瑰崟鏃ユ湡")
-// @JsonFormat(pattern = "yyyy-MM-dd")
-// private Date applyDate;
+ @ApiModelProperty(value = "鎵瑰崟鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date applyDate;
@ApiModelProperty(value = "涓氬姟绫诲瀷锛�0=鍔犲噺淇�;1=鎹㈠巶")
private Integer businessType;
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/UnionChangeBXDDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/UnionChangeBXDDTO.java
index 98c3fea..6be285d 100644
--- a/server/service/src/main/java/com/doumee/dao/business/dto/UnionChangeBXDDTO.java
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/UnionChangeBXDDTO.java
@@ -20,12 +20,16 @@
@ApiModelProperty(value = "鍚堝苟鍗曚富閿�")
private Integer id;
+ @ApiModelProperty(value = "鎶曚繚鐢宠鍗曞悎骞跺崟涓婚敭")
+ private Integer applyId;
+
@ApiModelProperty(value = "淇濆崟鍙�")
private String code;
- @ApiModelProperty(value = "鎵瑰崟鏃ユ湡")
+ @ApiModelProperty(value = "鎵瑰崟鏃ユ湡(鍔犱繚鎵瑰崟鏃ユ湡)")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date applyDate;
+
@ApiModelProperty(value = "鍑忎繚鎵瑰崟鏃ユ湡")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date delValidTime;
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java b/server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java
index 4113d79..fcb027b 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java
@@ -142,6 +142,11 @@
@TableField(exist = false)
private BigDecimal solutionPrice;
+ @ApiModelProperty(value = "鏈嶅姟璐�")
+ @TableField(exist = false)
+ private BigDecimal serverCost;
+
+
@ApiModelProperty(value = "淇濋櫓鏃堕棿鍗曚綅0澶� 1鍗婃湀 2鏈� 3骞�", example = "1")
@TableField(exist = false)
private Integer solutionTimeUnit;
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java b/server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java
index 65b1e31..4bce582 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java
@@ -147,6 +147,14 @@
@ExcelColumn(name="浜哄憳鍚嶅崟绛剧讲鍚堝悓鍙�")
private String signMemberListNo;
+
+ @ApiModelProperty(value = "鍛ㄦ湡缁撴潫鏃ユ湡 锛�2022-02-02 23:59:59锛�")
+ @ExcelColumn(name="鍛ㄦ湡缁撴潫鏃ユ湡 锛�2022-02-02 23:59:59锛�")
+// @DateTimeFormat(pattern = "yyyy-MM-dd")
+// @JsonFormat(pattern="yyyy-MM-dd")
+ private Date finalEndTime;
+
+
@ApiModelProperty(value = "浼佷笟鍚嶇О")
@TableField(exist = false)
private String companyName;
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/Member.java b/server/service/src/main/java/com/doumee/dao/business/model/Member.java
index beba41d..1fa8b42 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/Member.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/Member.java
@@ -9,6 +9,8 @@
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.math.BigDecimal;
import java.util.Date;
/**
@@ -111,4 +113,25 @@
@TableField(exist = false)
private Integer sn;
+
+ @ApiModelProperty(value = "淇濋櫓鏂规涓婚敭")
+ @TableField(exist = false)
+ private Integer solutionId;
+
+ @ApiModelProperty(value = "璐圭敤")
+ @TableField(exist = false)
+ private BigDecimal fee;
+
+ @ApiModelProperty(value = "淇濆崟鏄庣粏琛屽疄闄呭紑濮嬫棩鏈�")
+ @TableField(exist = false)
+ private Date detailStartTime;
+
+ @ApiModelProperty(value = "淇濆崟鏄庣粏琛屽疄闄呯粨鏉熸棩鏈�")
+ @TableField(exist = false)
+ private Date detailEndTime;
+
+ @ApiModelProperty(value = "淇濆崟鏄庣粏琛屾湇鍔¤垂")
+ @TableField(exist = false)
+ private BigDecimal detailServerCost;
+
}
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/Solutions.java b/server/service/src/main/java/com/doumee/dao/business/model/Solutions.java
index a67f42c..f9f9f57 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/Solutions.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/Solutions.java
@@ -89,11 +89,11 @@
@ExcelColumn(name="鏈�楂樺勾榫�")
private Integer maxAge;
- @ApiModelProperty(value = "淇濋櫓璐圭敤(浜�/澶╋級", example = "1")
+ @ApiModelProperty(value = "淇濋櫓璐圭敤锛堜汉锛� -- 淇濋櫓璐圭敤(浜�/澶╋級", example = "1")
@ExcelColumn(name="淇濋櫓璐圭敤(浜�/澶╋級")
private BigDecimal price;
- @ApiModelProperty(value = "淇濋櫓鏃堕棿鍗曚綅0澶� 1鍗婃湀 2鏈� 3骞�", example = "1")
+ @ApiModelProperty(value = " 鍛ㄦ湡鍗曚綅 0澶� 2鏈� 3瀛e害 4鍗婂勾 5骞� -- 淇濋櫓鏃堕棿鍗曚綅0澶� 1鍗婃湀 2鏈� 3骞�", example = "1")
@ExcelColumn(name="淇濋櫓鏃堕棿鍗曚綅0澶� 1鍗婃湀 2鏈� 3骞�")
private Integer timeUnit;
@@ -101,7 +101,7 @@
@ExcelColumn(name="鎶曚繚鍛ㄦ湡")
private Integer insureCycle;
- @ApiModelProperty(value = "鏈�灏忔姇淇濆懆鏈熸椂闂村崟浣�0澶� 1鍗婃湀 2鏈� 3骞�", example = "1")
+ @ApiModelProperty(value = "鎵规敼璁¤垂鍗曚綅 0澶� 1鍗婃湀 2鏈� 3瀛e害 4鍗婂勾 5骞� -- 鏈�灏忔姇淇濆懆鏈熸椂闂村崟浣�0澶� 1鍗婃湀 2鏈� 3骞�", example = "1")
@ExcelColumn(name="鏈�灏忔姇淇濆懆鏈熸椂闂村崟浣�0澶� 1鍗婃湀 2鏈� 3骞�")
private Integer insureCycleUnit;
diff --git a/server/service/src/main/java/com/doumee/dao/business/vo/CountCyclePriceVO.java b/server/service/src/main/java/com/doumee/dao/business/vo/CountCyclePriceVO.java
index 220b347..129928e 100644
--- a/server/service/src/main/java/com/doumee/dao/business/vo/CountCyclePriceVO.java
+++ b/server/service/src/main/java/com/doumee/dao/business/vo/CountCyclePriceVO.java
@@ -12,10 +12,14 @@
@Data
public class CountCyclePriceVO {
- @ApiModelProperty(value = "鎬婚噾棰�", example = "1")
+ @ApiModelProperty(value = "鍔犱繚浣跨敤閲戦", example = "1")
private BigDecimal cyclePrice;
@ApiModelProperty(value = "鐢熸晥姝㈡湡")
private Date endDate;
+
+ @ApiModelProperty(value = "鍔犱繚浣跨敤閲戦", example = "1")
+ private BigDecimal reducePrice;
+
}
diff --git a/server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java b/server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java
index 755231b..95286b8 100644
--- a/server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java
+++ b/server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java
@@ -117,13 +117,13 @@
Integer check(InsuranceApply insuranceApply);
- InsuranceApply findDetailForExport(InsuranceApply model);
+ InsuranceApply findDetailForExport(InsuranceApply model);
List<InsuranceApply> findListByDTO(InsuranceApplyQueryDTO model);
Integer editBaoxiandan(InsuranceApply param);
- void updateApplyCurrentFee(Integer id);
+ void updateApplyCurrentFee(Integer id,Integer unionId);
String getSignLink(Integer id);
diff --git a/server/service/src/main/java/com/doumee/service/business/SolutionsService.java b/server/service/src/main/java/com/doumee/service/business/SolutionsService.java
index 3d6d0de..6c3c81a 100644
--- a/server/service/src/main/java/com/doumee/service/business/SolutionsService.java
+++ b/server/service/src/main/java/com/doumee/service/business/SolutionsService.java
@@ -3,6 +3,9 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.Solutions;
+
+import java.math.BigDecimal;
+import java.util.Date;
import java.util.List;
/**
@@ -100,4 +103,12 @@
* @return long
*/
long count(Solutions solutions);
+
+
+ BigDecimal testSolutionAddMoney(Integer id, BigDecimal fee, Date start,Date end,Date newDate,Date newEndDate);
+
+ BigDecimal testSolutionReduceMoney(Integer id, BigDecimal fee, Date start,Date end,Date reduceStartTime,Date reduceEndTime);
+
+ BigDecimal testSolutionProduceMoney(Integer id, BigDecimal fee, Date start,Date end,Date produceStart);
+
}
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 151b5c5..d581e01 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
@@ -1,6 +1,8 @@
package com.doumee.service.business.impl;
+import cn.hutool.core.util.IdcardUtil;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.api.R;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.constants.ResponseStatus;
@@ -193,6 +195,26 @@
}
ApplyChange model = applyChangeMapper.selectById(param.getId());
+ InsuranceApply insuranceApply = insuranceApplyMapper.selectById(model.getApplyId());
+ if(Objects.isNull(insuranceApply)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌淇濆崟淇℃伅");
+ }
+ if(model.getType().equals(Constants.ZERO)){
+ if(param.getDelValidTime() == null){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ if(!(param.getApplyStartTime().getTime()>insuranceApply.getStartTime().getTime()&¶m.getApplyStartTime().getTime()<=insuranceApply.getEndTime().getTime())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎵瑰鏃ユ湡蹇呴』澶勪簬淇濆崟鐢宠鏃ユ湡鍐�");
+ }
+
+ if(!(param.getDelValidTime().getTime()>insuranceApply.getStartTime().getTime()&¶m.getDelValidTime().getTime()<=insuranceApply.getEndTime().getTime())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎵瑰噺鏃ユ湡蹇呴』澶勪簬淇濆崟鐢宠鏃ユ湡鍐�");
+ }
+ }else{
+ if(param.getApplyStartTime().getTime()<model.getApplyStartTime().getTime()){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎵瑰崟鏃ユ湡蹇呴』澶т簬鐢宠鏃ユ湡");
+ }
+ }
if(model == null ||!Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
@@ -204,10 +226,6 @@
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
}
- InsuranceApply insuranceApply = insuranceApplyMapper.selectById(model.getApplyId());
- if(Objects.isNull(insuranceApply)){
- throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌淇濆崟淇℃伅");
- }
LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
ApplyChange update = new ApplyChange();
@@ -268,7 +286,7 @@
applyLogMapper.insert(log);
- return 1;
+ return model.getApplyId();
}
@Override
@@ -388,86 +406,117 @@
if(oldModel == null ){
throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鐢ㄦ埛銆�"+detail.getMemberName()+"銆戝師淇濆崟淇℃伅鏈夎锛屾壒鍗曟棩鏈熸湭鍦ㄤ繚鍗曟棩鏈熷唴锛�");
}
- Date endDate = oldModel.getEndTime();
+
+ MemberInsurance memberInsurance = new MemberInsurance(detail,update,update.getEditor(),null,insuranceApply.getSolutionId());
+ memberInsurance.setSolutionId(detail.getSolutionId());
+ memberInsurance.setWorktypeName(detail.getWorkTypeName());
+ memberInsurance.setDuName(detail.getDuName());
+ memberInsurance.setApplyChangeId(detail.getApplyChangeId());
+ memberInsurance.setSolutionName(detail.getSolutionsName());
+ memberInsurance.setPdCode(update.getValidCode());
+ memberInsurance.setBdCode(insuranceApply.getCode());
+ memberInsurance.setRelationType(Constants.ONE);
+ memberInsurance.setStartTime(DateUtil.getMontageDate(update.getApplyStartTime(),1));
+ memberInsurance.setRelationId(oldModel.getId());
+ memberInsuranceJoinMapper.insert(memberInsurance);
+
+ applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda()
+ .set(ApplyDetail::getEditor,update.getEditor())
+ .set(ApplyDetail::getEditDate,update.getEditDate())
+ .set(ApplyDetail::getDuId,detail.getDuId())
+ .set(ApplyDetail::getWorktypeId,detail.getWorktypeId())
+ .eq(ApplyDetail::getId,oldModel.getId())
+ );
+ memberInsuranceJoinMapper.update(null,new UpdateWrapper<MemberInsurance>().lambda()
+ .eq(MemberInsurance::getApplyId,update.getApplyId())
+ .le(MemberInsurance::getStartTime,applyStartTime)
+ .ge(MemberInsurance::getEndTime,applyStartTime)
+ .set(insuranceApply.getStartTime().compareTo(update.getApplyStartTime())!=0,
+ MemberInsurance::getEndTime,DateUtil.getMontageDate(update.getApplyStartTime(), 3))
+ .set(insuranceApply.getStartTime().compareTo(update.getApplyStartTime())==0,
+ MemberInsurance::getEndTime,DateUtil.getMontageDate(update.getApplyStartTime(), 2))
+ .ne(MemberInsurance::getId,memberInsurance.getId())
+// .eq(MemberInsurance::getRelationId,oldModel.getId())
+ );
//濡傛灉瀹為檯鎵瑰崟鏃ユ湡 鍜� 鍘熻褰曟棩鏈熺浉绛� 鍒欑洿鎺ヤ慨鏀硅褰曟淳閬e崟浣嶄笌宸ョ淇℃伅
- if(applyStartTime.compareTo(oldModel.getStartTime())!=Constants.ZERO){
- //褰撳墠鏃ユ湡澶т簬鎵瑰崟鏃ユ湡 闇�瑕佸洖婊氭暟鎹疄闄呮暟鎹�
- Boolean flag = DateUtil.getMontageDate(new Date(),2).compareTo(DateUtil.getMontageDate(update.getApplyStartTime(),2))>0;
- //鎹㈠巶鍚庡巻鍙茶褰曠殑璐圭敤 fee
- Integer days = DateUtil.daysBetweenDates(DateUtil.getMontageDate(update.getApplyStartTime(),3),DateUtil.getMontageDate(oldModel.getStartTime(),1))+1;
- BigDecimal oldFee = this.getApplyPrice(update.getApplyId(),days);
- BigDecimal fee = oldModel.getFee();
- BigDecimal oldCurrentFee = oldModel.getCurrentFee();
-
- applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda()
- .set(ApplyDetail::getEditor,update.getEditor())
- .set(ApplyDetail::getEditDate,update.getEditDate())
- .set(ApplyDetail::getEndTime,DateUtil.getMontageDate(update.getApplyStartTime(),3))
- .set(ApplyDetail::getFee,oldFee)
- .set(flag,ApplyDetail::getCurrentFee,oldFee)
- .eq(ApplyDetail::getId,oldModel.getId())
- );
-
- //淇敼 鍛樺伐鎶曚繚鏄庣粏璁板綍 鍘嗗彶鏁版嵁
- memberInsuranceJoinMapper.update(null,new UpdateWrapper<MemberInsurance>().lambda()
- .set(MemberInsurance::getEndTime,update.getApplyStartTime())
- .set(MemberInsurance::getFee,oldFee)
- .eq(MemberInsurance::getRelationId,oldModel.getId())
- );
-
- ApplyDetail applyDetail = new ApplyDetail();
- applyDetail.setApplyId(oldModel.getApplyId());
- applyDetail.setCreateDate(new Date());
- applyDetail.setCreator(update.getEditor());
- applyDetail.setMemberId(oldModel.getMemberId());
- applyDetail.setIdcardNo(detail.getIdcardNo());
- applyDetail.setSex(Constants.getSexByIdCard(detail.getIdcardNo()));
- applyDetail.setMemberName(detail.getMemberName());
- applyDetail.setStartTime(DateUtil.getMontageDate(update.getApplyStartTime(),1));
- applyDetail.setEndTime(endDate);
- applyDetail.setDuId(detail.getDuId());
- applyDetail.setWorktypeId(detail.getWorktypeId());
- applyDetail.setIdcardNo(oldModel.getIdcardNo());
- applyDetail.setFee(fee.subtract(oldFee));
- applyDetail.setIsdeleted(Constants.ZERO);
- if(flag){
- applyDetail.setCurrentFee(oldCurrentFee.multiply(oldFee));
- }else{
- applyDetail.setCurrentFee(BigDecimal.ZERO);
- }
- applyDetail.setSex(oldModel.getSex());
- applyDetail.setMemberName(oldModel.getMemberName());
- applyDetail.setFromId(detail.getId());
- applyDetailJoinMapper.insert(applyDetail);
-
- MemberInsurance memberInsurance = new MemberInsurance(applyDetail,update.getId());
- memberInsurance.setSolutionId(detail.getSolutionId());
- memberInsurance.setWorktypeName(detail.getWorkTypeName());
- memberInsurance.setDuName(detail.getDuName());
- memberInsurance.setApplyChangeId(detail.getApplyChangeId());
- memberInsurance.setSolutionName(detail.getSolutionsName());
- memberInsurance.setPdCode(update.getValidCode());
- memberInsurance.setBdCode(insuranceApply.getCode());
- memberInsurance.setRelationType(Constants.ONE);
- memberInsuranceJoinMapper.insert(memberInsurance);
- }else{
- applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda()
- .set(ApplyDetail::getEditor,update.getEditor())
- .set(ApplyDetail::getEditDate,update.getEditDate())
- .set(ApplyDetail::getDuId,detail.getDuId())
- .set(ApplyDetail::getWorktypeId,detail.getWorktypeId())
- .eq(ApplyDetail::getId,oldModel.getId())
- );
- //鍛樺伐鎶曚繚鏄庣粏璁板綍 鍘嗗彶鏁版嵁
- memberInsuranceJoinMapper.update(null,new UpdateWrapper<MemberInsurance>().lambda()
- .set(MemberInsurance::getDuId,detail.getDuId())
- .set(MemberInsurance::getDuName,detail.getDuName())
- .set(MemberInsurance::getWorktypeId,detail.getWorktypeId())
- .set(MemberInsurance::getWorktypeName,detail.getWorkTypeName())
- .eq(MemberInsurance::getRelationId,oldModel.getId())
- );
- }
+// if(applyStartTime.compareTo(oldModel.getStartTime())!=Constants.ZERO){
+// //褰撳墠鏃ユ湡澶т簬鎵瑰崟鏃ユ湡 闇�瑕佸洖婊氭暟鎹疄闄呮暟鎹�
+// Boolean flag = DateUtil.getMontageDate(new Date(),2).compareTo(DateUtil.getMontageDate(update.getApplyStartTime(),2))>0;
+// //鎹㈠巶鍚庡巻鍙茶褰曠殑璐圭敤 fee
+// Integer days = DateUtil.daysBetweenDates(DateUtil.getMontageDate(update.getApplyStartTime(),3),DateUtil.getMontageDate(oldModel.getStartTime(),1))+1;
+// BigDecimal oldFee = this.getApplyPrice(update.getApplyId(),days);
+// BigDecimal fee = oldModel.getFee();
+// BigDecimal oldCurrentFee = oldModel.getCurrentFee();
+//
+// applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda()
+// .set(ApplyDetail::getEditor,update.getEditor())
+// .set(ApplyDetail::getEditDate,update.getEditDate())
+// .set(ApplyDetail::getEndTime,DateUtil.getMontageDate(update.getApplyStartTime(),3))
+// .set(ApplyDetail::getFee,oldFee)
+// .set(flag,ApplyDetail::getCurrentFee,oldFee)
+// .eq(ApplyDetail::getId,oldModel.getId())
+// );
+//
+// //淇敼 鍛樺伐鎶曚繚鏄庣粏璁板綍 鍘嗗彶鏁版嵁
+// memberInsuranceJoinMapper.update(null,new UpdateWrapper<MemberInsurance>().lambda()
+// .set(MemberInsurance::getEndTime,update.getApplyStartTime())
+// .set(MemberInsurance::getFee,oldFee)
+// .eq(MemberInsurance::getRelationId,oldModel.getId())
+// );
+//
+// ApplyDetail applyDetail = new ApplyDetail();
+// applyDetail.setApplyId(oldModel.getApplyId());
+// applyDetail.setCreateDate(new Date());
+// applyDetail.setCreator(update.getEditor());
+// applyDetail.setMemberId(oldModel.getMemberId());
+// applyDetail.setIdcardNo(detail.getIdcardNo());
+// applyDetail.setSex(Constants.getSexByIdCard(detail.getIdcardNo()));
+// applyDetail.setMemberName(detail.getMemberName());
+// applyDetail.setStartTime(DateUtil.getMontageDate(update.getApplyStartTime(),1));
+// applyDetail.setEndTime(endDate);
+// applyDetail.setDuId(detail.getDuId());
+// applyDetail.setWorktypeId(detail.getWorktypeId());
+// applyDetail.setIdcardNo(oldModel.getIdcardNo());
+// applyDetail.setFee(fee.subtract(oldFee));
+// applyDetail.setIsdeleted(Constants.ZERO);
+// if(flag){
+// applyDetail.setCurrentFee(oldCurrentFee.multiply(oldFee));
+// }else{
+// applyDetail.setCurrentFee(BigDecimal.ZERO);
+// }
+// applyDetail.setSex(oldModel.getSex());
+// applyDetail.setMemberName(oldModel.getMemberName());
+// applyDetail.setFromId(detail.getId());
+// applyDetailJoinMapper.insert(applyDetail);
+//
+// MemberInsurance memberInsurance = new MemberInsurance(applyDetail,update.getId());
+// memberInsurance.setSolutionId(detail.getSolutionId());
+// memberInsurance.setWorktypeName(detail.getWorkTypeName());
+// memberInsurance.setDuName(detail.getDuName());
+// memberInsurance.setApplyChangeId(detail.getApplyChangeId());
+// memberInsurance.setSolutionName(detail.getSolutionsName());
+// memberInsurance.setPdCode(update.getValidCode());
+// memberInsurance.setBdCode(insuranceApply.getCode());
+// memberInsurance.setRelationType(Constants.ONE);
+// memberInsuranceJoinMapper.insert(memberInsurance);
+// }else{
+// applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda()
+// .set(ApplyDetail::getEditor,update.getEditor())
+// .set(ApplyDetail::getEditDate,update.getEditDate())
+// .set(ApplyDetail::getDuId,detail.getDuId())
+// .set(ApplyDetail::getWorktypeId,detail.getWorktypeId())
+// .eq(ApplyDetail::getId,oldModel.getId())
+// );
+// //鍛樺伐鎶曚繚鏄庣粏璁板綍 鍘嗗彶鏁版嵁
+// memberInsuranceJoinMapper.update(null,new UpdateWrapper<MemberInsurance>().lambda()
+// .set(MemberInsurance::getDuId,detail.getDuId())
+// .set(MemberInsurance::getDuName,detail.getDuName())
+// .set(MemberInsurance::getWorktypeId,detail.getWorktypeId())
+// .set(MemberInsurance::getWorktypeName,detail.getWorkTypeName())
+// .eq(MemberInsurance::getRelationId,oldModel.getId())
+// );
+// }
Member member = memberMapper.selectById(detail.getMemberId());
if(Objects.isNull(member)){
@@ -476,8 +525,8 @@
member.setApplyId(update.getApplyId());
member.setDuId(detail.getDuId());
member.setWorktypeId(detail.getWorktypeId());
- member.setStartTime(detail.getStartTime());
- member.setEndTime(detail.getEndTime());
+// member.setStartTime(detail.getStartTime());
+// member.setEndTime(detail.getEndTime());
memberMapper.updateById(member);
applyChangeDetailJoinMapper.update(null,new UpdateWrapper<ApplyChagneDetail>().lambda()
@@ -513,39 +562,27 @@
if (detailList == null || detailList.size() == 0) {
return;
}
- List<ApplyDetail> addList = new ArrayList<>();
- List<Integer> reduceMembers = new ArrayList<>();
BigDecimal totalFee = new BigDecimal(0);
BigDecimal currentFee = new BigDecimal(0);
//鎶曚繚璁板綍 鍔犱繚鏁版嵁鍔犲叆鏂版暟鎹� 鍑忎繚鏁版嵁 淇敼鑰佹暟鎹�
List<MemberInsurance> memberInsuranceList = new ArrayList<>();
- //鍔犱繚涓氬姟 浣跨敤鐨勫姞淇濋噾棰�
- ApplyChangeCyclePriceDTO applyChangeCyclePriceDTO_add = new ApplyChangeCyclePriceDTO();
- applyChangeCyclePriceDTO_add.setApplyId(update.getApplyId());
- applyChangeCyclePriceDTO_add.setValidTime(DateUtil.getMontageDate(update.getApplyStartTime(), 1));
- //鍔犱繚 娣诲姞鐨勯噾棰�
- CountCyclePriceVO countCyclePriceVO_add = this.getChangeCountCyclePriceVO(applyChangeCyclePriceDTO_add);
-
Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId());
if(Objects.isNull(solutions)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌淇濋櫓鏂规");
}
- if(solutions.getDataType().equals(Constants.ONE)){
- solutions = solutionsMapper.selectOne(new QueryWrapper<Solutions>().lambda().eq(Solutions::getBaseId,solutions.getBaseId()).eq(Solutions::getDataType,Constants.TWO).last("limit 1"));
- if(Objects.isNull(solutions)){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌鏂规鏈�鏂扮増鏈俊鎭�");
- }
- }
-
-
+// if(solutions.getDataType().equals(Constants.ONE)){
+// solutions = solutionsMapper.selectOne(new QueryWrapper<Solutions>().lambda().eq(Solutions::getBaseId,solutions.getBaseId()).eq(Solutions::getDataType,Constants.TWO).last("limit 1"));
+// if(Objects.isNull(solutions)){
+// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌鏂规鏈�鏂扮増鏈俊鎭�");
+// }
+// }
for (ApplyChagneDetail detail : detailList) {
Member member = memberMapper.selectById(detail.getMemberId());
if(Objects.isNull(member)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鍛樺伐鏁版嵁");
}
if (Constants.equalsInteger(detail.getType(), Constants.ZERO)) {
-
//鏌ヨ鍔犱繚浜哄憳鏄惁瀛樺湪 鍐茬獊鐨� 淇濆崟鏄庣粏鏁版嵁
if(applyDetailJoinMapper.selectCount(new QueryWrapper<ApplyDetail>()
.lambda()
@@ -556,8 +593,6 @@
)>Constants.ZERO){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠淇濆崟涓嬶紝鍔犱繚浜哄憳銆�" + detail.getMemberName() + "銆戝瓨鍦ㄦ棩鏈熷啿绐佺殑鏁版嵁");
}
-
-
//鍔犱繚
ApplyDetail add = new ApplyDetail();
add.setApplyId(update.getApplyId());
@@ -573,17 +608,17 @@
add.setIdcardNo(detail.getIdcardNo());
add.setSex(Constants.getSexByIdCard(detail.getIdcardNo()));
add.setMemberName(detail.getMemberName());
+ add.setRemark(detail.getRemark());
add.setDuId(detail.getDuId());
- add.setStartTime(update.getApplyStartTime());
add.setStartTime(DateUtil.getMontageDate(update.getApplyStartTime(), 1));
add.setEndTime(DateUtil.getMontageDate(detail.getEndTime(), 2));
- add.setFee(countCyclePriceVO_add.getCyclePrice());
-
+ add.setFee(Constants.addFee(solutions,solutions.getPrice(),insuranceApply.getStartTime(),insuranceApply.getFinalEndTime(),update.getApplyStartTime(),insuranceApply.getEndTime()));
if(new Date().compareTo(DateUtil.getMontageDate(detail.getStartTime(), 2))>=0){
- Integer days = DateUtil.daysBetweenDates(DateUtil.getMontageDate(new Date(), 2), detail.getStartTime()) + 1;
- //濡傛灉宸插凡浜х敓璐圭敤锛岃绠楀凡宸蹭骇鐢熻垂鐢�
- add.setCurrentFee(this.getApplyPrice(update.getApplyId(), days));
+ //2024骞�5鏈�8鏃�17:37:23 淇敼 璁$畻浜х敓璐圭敤
+ add.setCurrentFee(
+ Constants.produceFee(solutions,add.getFee(),add.getStartTime(),add.getEndTime(),add.getStartTime())
+ );
}else{
add.setCurrentFee(BigDecimal.ZERO);
}
@@ -603,6 +638,10 @@
.eq(ApplyChagneDetail::getId,detail.getId())
);
+// if(1==1){
+// throw new BusinessException(ResponseStatus.SERVER_ERROR);
+// }
+
} else {
//鍑忎繚鎿嶄綔
//鏌ヨ鍛樺伐鏄湪涓诲崟涓� 鏄惁瀛樺湪鐢熸晥涓殑鏁版嵁
@@ -614,50 +653,61 @@
if (oldModel == null || oldModel.getStartTime() == null || oldModel.getStartTime().getTime() > update.getApplyStartTime().getTime()) {
throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝鐢ㄦ埛銆�" + detail.getMemberName() + "銆戝師淇濆崟淇℃伅鏈夎锛屽綋鍓嶇敵璇蜂笉鏀寔鍑忎繚澶勭悊锛�");
}
- //鍑忎繚涓氬姟 浣跨敤鐨勫噺淇濋噾棰�
- ApplyChangeCyclePriceDTO applyChangeCyclePriceDTO_reduce = new ApplyChangeCyclePriceDTO();
- applyChangeCyclePriceDTO_reduce.setApplyId(update.getApplyId());
- applyChangeCyclePriceDTO_reduce.setValidTime(DateUtil.getMontageDate(update.getApplyStartTime(), 2));
- //鍑忎繚 闇�瑕佸噺灏戠殑閲戦 鍗� 閫�淇濋渶瑕侀��鍥炵殑璐圭敤
- CountCyclePriceVO countCyclePriceVO_reduce = this.getChangeCountCyclePriceVO(applyChangeCyclePriceDTO_reduce);
- BigDecimal updateFee = countCyclePriceVO_reduce.getCyclePrice().multiply(new BigDecimal(-1));
- //褰撳鎵规椂闂� 澶т簬 鐢宠鐨勬椂闂存椂 璁$畻瀹為檯鍑忓皯閲戦 鍥犱负宸叉墸閲戦浼氬ぇ浜� 搴旀墸閲戦
- BigDecimal updateCurrentFee = BigDecimal.ZERO;
- if (DateUtil.daysBetweenDates(DateUtil.getMontageDate(new Date(), 2),update.getApplyStartTime()) > 0) {
- applyChangeCyclePriceDTO_reduce.setValidTime(DateUtil.getMontageDate(new Date(), 2));
- //鑾峰彇 澶т簬瀹℃壒鏃ユ湡瀵艰嚧 澶氬噺鐨勯噾棰�
- CountCyclePriceVO timeoutCountCyclePriceVOReduce = this.getChangeCountCyclePriceVO(applyChangeCyclePriceDTO_reduce);
- updateCurrentFee = timeoutCountCyclePriceVOReduce.getCyclePrice().subtract(countCyclePriceVO_reduce.getCyclePrice());
+ if(!(oldModel.getStartTime().getTime()<update.getDelValidTime().getTime()&& oldModel.getEndTime().getTime()>=update.getDelValidTime().getTime())){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝鐢ㄦ埛銆�" + detail.getMemberName() + "銆戝噺淇濇棩鏈熸湭鍦ㄤ繚鍗曡褰曟棩鏈熶腑锛�");
}
+ Date delValidTime = oldModel.getStartTime().compareTo(update.getDelValidTime())!=0?
+ DateUtil.getMontageDate(update.getDelValidTime(), 3):
+ DateUtil.getMontageDate(update.getDelValidTime(), 2);
+
+ BigDecimal sumFee = Objects.isNull(insuranceApply.getServerCost())?
+ solutions.getPrice():
+ solutions.getPrice().add(insuranceApply.getServerCost());
+ // 鍑忎繚鍚� 鎬昏垂鐢�
+ BigDecimal updateFee = Constants.reduceFee(
+ solutions,
+ sumFee
+ ,insuranceApply.getStartTime(),insuranceApply.getFinalEndTime(),oldModel.getStartTime(),delValidTime
+ ) ;
+ //褰撳鎵规椂闂� 澶т簬 鐢宠鐨勬椂闂存椂 璁$畻瀹為檯鍑忓皯閲戦 鍥犱负宸叉墸閲戦浼氬ぇ浜� 搴旀墸閲戦
+ BigDecimal updateCurrentFee = BigDecimal.ZERO;
+ if (DateUtil.daysBetweenDates(DateUtil.getMontageDate(new Date(), 2),oldModel.getStartTime()) > 0) {
+ //// 2024骞�5鏈�8鏃�17:37:23 淇敼 璁$畻浜х敓璐圭敤
+ updateCurrentFee = Constants.produceFee(solutions,sumFee,insuranceApply.getStartTime(),insuranceApply.getEndTime(),
+ oldModel.getStartTime()
+ );
+ }
applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda()
- .setSql(" fee = ifnull(fee,0)+" + updateFee)
+ .setSql(" fee = " + updateFee)
.setSql(" current_fee = " + updateCurrentFee)
- .set(insuranceApply.getStartTime().compareTo(update.getApplyStartTime())!=0,ApplyDetail::getEndTime, DateUtil.getMontageDate(update.getApplyStartTime(), 3))
- .set(insuranceApply.getStartTime().compareTo(update.getApplyStartTime())==0,ApplyDetail::getEndTime, DateUtil.getMontageDate(update.getApplyStartTime(), 2))
+ .set(ApplyDetail::getEndTime, delValidTime)
.set(ApplyDetail::getEditor, update.getEditor())
.set(ApplyDetail::getEditDate, update.getEditDate())
.eq(ApplyDetail::getId, oldModel.getId())
);
- totalFee = totalFee.add(updateFee);
+ totalFee = totalFee.add(updateFee).subtract(oldModel.getFee());
currentFee = currentFee.add(updateCurrentFee);
//淇敼 鍛樺伐鎶曚繚鏄庣粏璁板綍 鍘嗗彶鏁版嵁
memberInsuranceJoinMapper.update(null, new UpdateWrapper<MemberInsurance>().lambda()
- .setSql(" fee = ifnull(fee,0)+" + updateFee)
- .set(insuranceApply.getStartTime().compareTo(update.getApplyStartTime())!=0,MemberInsurance::getEndTime,DateUtil.getMontageDate(update.getApplyStartTime(), 3))
- .set(insuranceApply.getStartTime().compareTo(update.getApplyStartTime())==0,MemberInsurance::getEndTime,DateUtil.getMontageDate(update.getApplyStartTime(), 2))
- .set(MemberInsurance::getStartTime, update.getApplyStartTime())
+ .setSql(" fee = " + updateFee)
+ .set(MemberInsurance::getEndTime, delValidTime)
.eq(MemberInsurance::getRelationId, oldModel.getId())
);
//淇敼涓氬姟鏄庣粏琛屾暟鎹疄闄呮壒鍗曟棩鏈�
applyChangeDetailJoinMapper.update(null,new UpdateWrapper<ApplyChagneDetail>().lambda()
- .set(ApplyChagneDetail::getFee,updateFee)
- .set(ApplyChagneDetail::getEndTime,DateUtil.getMontageDate(update.getApplyStartTime(), 3))
+ .set(ApplyChagneDetail::getFee,updateFee.subtract(oldModel.getFee()))
+ .set( ApplyChagneDetail::getEndTime, delValidTime)
.eq(ApplyChagneDetail::getId,detail.getId())
);
+
+// if(1==1){
+// throw new BusinessException(ResponseStatus.SERVER_ERROR);
+// }
+
}
@@ -668,10 +718,11 @@
member.setEndTime(detail.getEndTime());
memberMapper.updateById(member);
- if (memberInsuranceList != null && memberInsuranceList.size() > 0) {
- memberInsuranceJoinMapper.insertBatchSomeColumn(memberInsuranceList);
- }
}
+ if (memberInsuranceList != null && memberInsuranceList.size() > 0) {
+ memberInsuranceJoinMapper.insertBatchSomeColumn(memberInsuranceList);
+ }
+
if (totalFee.compareTo(new BigDecimal(0)) != 0) {
//濡傛灉淇濆崟閲戦鍙戠敓缂栫爜锛屾洿鏂版�讳繚鍗曢噾棰�
insuranceApplyMapper.update(null, new UpdateWrapper<InsuranceApply>().lambda()
@@ -778,6 +829,11 @@
@Override
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
public Integer create(ApplyChange applyChange) {
+ if(applyChange.getType().equals(Constants.ZERO)){
+ //2024骞�5鏈�9鏃�14:59:24 淇敼 榛樿鍏ュ綋鍓嶅ぉ
+ applyChange.setValidTime(DateUtil.getMontageDate(new Date(),1));
+ }
+
if (Objects.isNull(applyChange)
|| Objects.isNull(applyChange.getApplyId())
|| Objects.isNull(applyChange.getValidTime())
@@ -809,14 +865,12 @@
if(Objects.isNull(solutions)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌淇濋櫓鏂规");
}
- if(solutions.getDataType().equals(Constants.ONE)){
- solutions = solutionsMapper.selectOne(new QueryWrapper<Solutions>().lambda().eq(Solutions::getBaseId,solutions.getBaseId()).eq(Solutions::getDataType,Constants.TWO).last("limit 1"));
- if(Objects.isNull(solutions)){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌鏂规鏈�鏂扮増鏈俊鎭�");
- }
- }
-
-
+// if(solutions.getDataType().equals(Constants.ONE)){
+// solutions = solutionsMapper.selectOne(new QueryWrapper<Solutions>().lambda().eq(Solutions::getBaseId,solutions.getBaseId()).eq(Solutions::getDataType,Constants.TWO).last("limit 1"));
+// if(Objects.isNull(solutions)){
+// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌鏂规鏈�鏂扮増鏈俊鎭�");
+// }
+// }
CompanySolution companySolution = companySolutionMapper.selectOne(new QueryWrapper<CompanySolution>().lambda()
.eq(CompanySolution::getCompanyId,loginUserInfo.getCompanyId())
.eq(CompanySolution::getSolutionBaseId,solutions.getBaseId())
@@ -840,27 +894,31 @@
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀛樺湪杩涜涓殑鍔犲噺淇�/鎹㈠巶鐢宠");
};
-
applyChange.setCreateDate(new Date());
applyChange.setCreator(loginUserInfo.getId());
applyChange.setEditor(loginUserInfo.getId());
applyChange.setEditDate(new Date());
applyChange.setIsdeleted(Constants.ZERO);
//鏍规嵁鐢宠鏃ユ湡 澶勭悊鍔犲噺淇濈殑 瀹為檯鐢熸晥鏃ユ湡
- if(Objects.nonNull(solutions.getAddValidDays())){
- applyChange.setApplyStartTime(
- DateUtil.afterDateByType(applyChange.getValidTime(),0,solutions.getAddValidDays())
- );
+ if(applyChange.getType().equals(Constants.ZERO)){
+ if(Objects.nonNull(solutions.getAddValidDays())){
+ applyChange.setApplyStartTime(
+ DateUtil.afterDateByType(applyChange.getValidTime(),0,solutions.getAddValidDays())
+ );
+ }else{
+ applyChange.setApplyStartTime(applyChange.getValidTime());
+ }
+ if(Objects.nonNull(solutions.getDelValidDays())){
+ applyChange.setDelValidTime(
+ DateUtil.afterDateByType(applyChange.getValidTime(),0,solutions.getDelValidDays())
+ );
+ }else{
+ applyChange.setDelValidTime(applyChange.getValidTime());
+ }
}else{
applyChange.setApplyStartTime(applyChange.getValidTime());
}
- if(Objects.nonNull(solutions.getDelValidDays())){
- applyChange.setDelValidTime(
- DateUtil.afterDateByType(applyChange.getValidTime(),0,solutions.getDelValidDays())
- );
- }else{
- applyChange.setDelValidTime(applyChange.getValidTime());
- }
+
applyChange.setStatus(Constants.ZERO);
applyChangeMapper.insert(applyChange);
@@ -874,7 +932,10 @@
Constants.ApplyLogType applyLogType = Constants.ApplyLogType.CA_COMPANY_COMMIT;
ApplyLog log = new ApplyLog(applyChange,applyLogType.getName(),"",applyChange.getId(),applyLogType.getKey(), null, null);
applyLogMapper.insert(log);
-
+
+// if(1==1){
+// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀛樺湪杩涜涓殑鍔犲噺淇�/鎹㈠巶鐢宠");
+// }
return applyChange.getId();
}
@@ -1028,12 +1089,16 @@
}
//鍔犱繚鏄庣粏鏁版嵁 璁$畻閲戦 鏍规嵁鎵瑰崟鏃堕棿 璁$畻
- applyChangeCyclePriceDTO.setValidTime(DateUtil.getMontageDate(applyChange.getValidTime(),1));
- CountCyclePriceVO countCyclePriceVO = this.getChangeCountCyclePriceVO(applyChangeCyclePriceDTO);
- BigDecimal detailFee = countCyclePriceVO.getCyclePrice();
+// applyChangeCyclePriceDTO.setValidTime(DateUtil.getMontageDate(applyChange.getValidTime(),1));
+// CountCyclePriceVO countCyclePriceVO = this.getChangeCountCyclePriceVO(applyChangeCyclePriceDTO);
+// BigDecimal detailFee = countCyclePriceVO.getCyclePrice();
+ BigDecimal sumPrice = Objects.isNull(insuranceApply.getServerCost())?solutions.getPrice():solutions.getPrice().add(insuranceApply.getServerCost());
+ BigDecimal detailFee = Constants.addFee(solutions,
+ sumPrice
+ ,insuranceApply.getStartTime(),insuranceApply.getFinalEndTime(),
+ applyChange.getApplyStartTime(),insuranceApply.getEndTime());
this.addChangeDetail(applyChange,addDetailList,duWorktypeList,duSolutionList,insuranceApply,solutions,loginUserInfo,detailFee);
-
fee = addDetailList.stream().map(ApplyChagneDetail::getFee).reduce(BigDecimal.ZERO,BigDecimal::add);
}
@@ -1051,21 +1116,14 @@
if(Objects.isNull(solutions.getCanReduce()) || solutions.getCanReduce().equals(Constants.ZERO)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ繚闄╂柟妗堟棤娉曡繘琛屽噺淇�");
}
-// if(companySolution.getCanReduce().equals(Constants.ZERO)){
-// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ紒涓氬垎閰嶄繚闄╂柟妗堟棤娉曡繘琛屽噺淇�");
-// }
- //鍑忎繚鏄庣粏鏁版嵁 璁$畻閲戦 鏍规嵁鎵瑰崟鏃堕棿 鍓嶄竴澶� 璁$畻
- applyChangeCyclePriceDTO.setValidTime(DateUtil.getMontageDate(applyChange.getValidTime(),3));
-
- CountCyclePriceVO countCyclePriceVO = this.getChangeCountCyclePriceVO(applyChangeCyclePriceDTO);
- BigDecimal detailFee = countCyclePriceVO.getCyclePrice();
- this.delChangeDetail(applyChange,delDetailList,insuranceApply,solutions,loginUserInfo,detailFee,applyChangeCyclePriceDTO.getValidTime());
+ this.delChangeDetail(applyChange,delDetailList,insuranceApply,solutions,loginUserInfo, BigDecimal.ZERO,
+ DateUtil.getMontageDate(applyChange.getDelValidTime(),3));
fee = fee.add(delDetailList.stream().map(ApplyChagneDetail::getFee).reduce(BigDecimal.ZERO,BigDecimal::add));
}
if(Objects.nonNull(solutions.getDelOnlyReplace())&& solutions.getDelOnlyReplace().equals(Constants.ONE)){
if(delDetailSize > addDetailSize){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ繚闄╂柟妗堜粎鏀寔鏇挎崲");
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ繚闄╂柟妗堜粎鏀寔鏇挎崲锛堝噺淇濅汉鏁颁笉寰楀ぇ浜庡姞淇濅汉鏁帮級");
}
}
@@ -1124,8 +1182,8 @@
.lambda()
.eq(ApplyDetail::getApplyId,applyChange.getApplyId())
.eq(ApplyDetail::getIdcardNo,applyChagneDetail.getIdcardNo())
- .le(ApplyDetail::getStartTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),1))
- .ge(ApplyDetail::getEndTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),3))
+ .le(ApplyDetail::getStartTime,DateUtil.getMontageDate(applyChange.getDelValidTime(),1))
+ .ge(ApplyDetail::getEndTime,DateUtil.getMontageDate(applyChange.getDelValidTime(),3))
)<=Constants.ZERO){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠淇濆崟涓嬶紝鍑忎繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戞湭鏌ヨ鍒扮鍚堟壒鍗曟棩鏈熺殑鏁版嵁");
}
@@ -1148,8 +1206,8 @@
List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectList(new QueryWrapper<ApplyDetail>().lambda()
.eq(ApplyDetail::getApplyId, applyChange.getApplyId())
.eq(ApplyDetail::getMemberId, applyChagneDetail.getMemberId())
- .le(ApplyDetail::getStartTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),1))
- .ge(ApplyDetail::getEndTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),3))
+ .le(ApplyDetail::getStartTime,DateUtil.getMontageDate(applyChange.getDelValidTime(),1))
+ .ge(ApplyDetail::getEndTime,DateUtil.getMontageDate(applyChange.getDelValidTime(),3))
.orderByDesc(ApplyDetail::getCreateDate));
if (applyDetailList.size() > Constants.ONE) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍑忎繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戜繚鍗曚俊鎭紓甯革紝瀛樺湪澶氭潯鏁版嵁");
@@ -1158,8 +1216,6 @@
if (applyChange.getValidTime().compareTo(applyDetail.getEndTime()) > 0) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍑忎繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戜繚鍗曚繚闅滄棩鏈熻嚦锛氥��" + applyDetail.getEndTime() + "銆戞棤娉曢�氳繃鏈鐢宠");
}
-
-
applyChagneDetail.setPrice(applyDetail.getPrice());
applyChagneDetail.setCreateDate(new Date());
applyChagneDetail.setCreator(loginUserInfo.getId());
@@ -1174,13 +1230,20 @@
member.setDuId(applyChagneDetail.getDuId());
member.setWorktypeId(applyChagneDetail.getWorktypeId());
member.setStartTime(applyChagneDetail.getStartTime());
- member.setEndTime(applyChagneDetail.getEndTime());
+ member.setEndTime(applyDetail.getEndTime());
memberMapper.updateById(member);
-
//鏌ヨ鍑忎繚鏃ユ湡
- Integer delDays = DateUtil.daysBetweenDates(applyDetail.getEndTime(),endTime);
-
- applyChagneDetail.setFee( new BigDecimal(delDays).multiply(applyDetail.getPrice()).multiply(new BigDecimal(-1)));
+// Integer delDays = DateUtil.daysBetweenDates(applyDetail.getEndTime(),endTime);
+// ;
+ applyChagneDetail.setFee(
+ Constants.reduceFee(solutions,
+ Objects.isNull(insuranceApply.getServerCost())?
+ solutions.getPrice():solutions.getPrice().add(insuranceApply.getServerCost()),
+ insuranceApply.getStartTime(),
+ insuranceApply.getFinalEndTime(),
+ applyDetail.getStartTime(),endTime)
+ .subtract(applyDetail.getFee()
+ ));
applyChagneDetailJoinMapper.insert(applyChagneDetail);
}
}
@@ -1248,6 +1311,9 @@
member.setName(applyChagneDetail.getMemberName());
member.setCompanyId(insuranceApply.getCompanyId());
member.setSex(Constants.getSexByIdCard(applyChagneDetail.getIdcardNo()));
+ if(!IdcardUtil.isValidCard(applyDetail.getIdcardNo())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鍔犱繚鍛樺伐淇℃伅韬唤璇佷俊鎭敊璇痆"+member.getName()+"]");
+ }
member.setIdcardNo(applyChagneDetail.getIdcardNo());
member.setApplyId(insuranceApply.getId());
member.setDuId(applyChagneDetail.getDuId());
@@ -1569,7 +1635,7 @@
}else if(pageWrap.getModel().getSolutionType()!=null && pageWrap.getModel().getSolutionType() ==1){
queryWrapper.eq(Solutions::getShopId,loginUserInfo.getCompanyId());
}else{
- queryWrapper.apply("((t1.type=0 and exists(select cs.id from company_solution cs where cs.isdeleted=0 AND cs.SOLUTION_ID = t1.SOLUTION_ID and cs.shop_id="+loginUserInfo.getCompanyId()+")) or (" +
+ queryWrapper.apply("((t2.type=0 and exists(select cs.id from company_solution cs where cs.isdeleted=0 AND cs.SOLUTION_ID = t1.SOLUTION_ID and cs.shop_id="+loginUserInfo.getCompanyId()+")) or (" +
"t2.type=1 and t2.shop_id="+loginUserInfo.getCompanyId()+"))") ;
}
}else{
@@ -2082,18 +2148,19 @@
&& DateUtil.compareDate( applyChangeCyclePriceDTO.getValidTime(),insuranceApply.getEndTime()) >= Constants.ZERO)) {
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鐢宠鏃ユ湡鏈浜庝繚鍗曟棩鏈熷唴锛屾棤娉曡繘琛岃鎿嶄綔");
}
- //鎬诲ぉ鏁�
- Integer sumDays = DateUtil.daysBetweenDates(insuranceApply.getEndTime(),insuranceApply.getStartTime()) + 1;
- //鍔犲噺淇� 鍒扮粨鏉熺殑澶╂暟
- Integer optDays = DateUtil.daysBetweenDates(insuranceApply.getEndTime(),applyChangeCyclePriceDTO.getValidTime()) + 1;
-
- CountCyclePriceVO countCyclePriceVO = Constants.countPriceVO(insuranceApply.getStartTime(),solutions);
- //鎬婚噾棰�
- BigDecimal sumPrice = countCyclePriceVO.getCyclePrice();
+ BigDecimal sumPrice = Objects.isNull(insuranceApply.getServerCost())?solutions.getPrice():solutions.getPrice().add(insuranceApply.getServerCost());
CountCyclePriceVO returnCountCyclePriceVO = new CountCyclePriceVO();
- //鍔犲噺淇濋噾棰�
-// returnCountCyclePriceVO.setCyclePrice(sumPrice.multiply(new BigDecimal(optDays)).divide(new BigDecimal(sumDays),2, RoundingMode.HALF_UP));
- returnCountCyclePriceVO.setCyclePrice(applyDetail.getPrice().multiply(new BigDecimal(optDays)).setScale(2, RoundingMode.HALF_UP));
+ returnCountCyclePriceVO.setCyclePrice(Constants.addFee(solutions,
+ sumPrice
+ ,insuranceApply.getStartTime(),insuranceApply.getFinalEndTime(),
+ DateUtil.afterDateByType(applyChangeCyclePriceDTO.getValidTime(),0,solutions.getAddValidDays()),insuranceApply.getEndTime()));
+ BigDecimal reducePrice = solutions.getPrice().subtract(Constants.reduceFee(solutions,
+ sumPrice
+ ,insuranceApply.getStartTime(),insuranceApply.getFinalEndTime()
+ ,insuranceApply.getStartTime(),
+ DateUtil.getMontageDate(
+ DateUtil.afterDateByType(applyChangeCyclePriceDTO.getValidTime(),0,solutions.getDelValidDays()),3)));
+ returnCountCyclePriceVO.setReducePrice(reducePrice);
return returnCountCyclePriceVO;
}
@@ -2300,4 +2367,62 @@
}
+
+
+
+// BigDecimal cycle1 = new BigDecimal(days).divide(insureCycleUnit.getDays(),0,RoundingMode.CEILING);
+//
+// if(solutions.getTimeUnit().equals(Constants.TimeUnit.MONTH.getValue())){
+// if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.HALF_MONTH.getValue())){
+// BigDecimal cycle = new BigDecimal(days).divide(Constants.InsureCycleUnit.HALF_MONTH.getDays(),0,RoundingMode.CEILING);
+// return fee.multiply(cycle).divide(new BigDecimal(2),2, RoundingMode.HALF_UP);
+// }else{
+// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏂规閰嶇疆閿欒");
+// }
+// }else if(solutions.getTimeUnit().equals(Constants.TimeUnit.QUARTER.getValue())){
+// if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.HALF_MONTH.getValue())){
+// BigDecimal cycle = new BigDecimal(days).divide(Constants.InsureCycleUnit.HALF_MONTH.getDays(),0,RoundingMode.CEILING);
+// return fee.multiply(cycle).divide(new BigDecimal(6),2, RoundingMode.HALF_UP);
+// }else if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.MONTH.getValue())){
+// BigDecimal cycle = new BigDecimal(DateUtil.getDifferenceMonths(new Date(),startTime));
+// return fee.multiply(cycle).divide(new BigDecimal(3),2, RoundingMode.HALF_UP);
+// }else{
+// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏂规閰嶇疆閿欒");
+// }
+// }else if(solutions.getTimeUnit().equals(Constants.TimeUnit.HALF_YEAR.getValue())){
+// if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.HALF_MONTH.getValue())){
+// BigDecimal cycle = new BigDecimal(days).divide(Constants.InsureCycleUnit.HALF_MONTH.getDays(),0,RoundingMode.CEILING);
+// return fee.multiply(cycle).divide(new BigDecimal(12),2, RoundingMode.HALF_UP);
+// }else if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.MONTH.getValue())){
+// BigDecimal cycle = new BigDecimal(DateUtil.getDifferenceMonths(new Date(),startTime));
+// return fee.multiply(cycle).divide(new BigDecimal(6),2, RoundingMode.HALF_UP);
+// }else if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.QUARTER.getValue())){
+// BigDecimal cycle = new BigDecimal(DateUtil.getDifferenceMonths(new Date(),startTime));
+// cycle = cycle.divide(new BigDecimal(3),0,RoundingMode.CEILING);
+// return fee.multiply(cycle).divide(new BigDecimal(2),2, RoundingMode.HALF_UP);
+// }else{
+// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏂规閰嶇疆閿欒");
+// }
+// }else if(solutions.getTimeUnit().equals(Constants.TimeUnit.YEAR.getValue())){
+// if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.HALF_MONTH.getValue())){
+// BigDecimal cycle = new BigDecimal(days).divide(Constants.InsureCycleUnit.HALF_MONTH.getDays(),0,RoundingMode.CEILING);
+// return fee.multiply(cycle).divide(new BigDecimal(24),2, RoundingMode.HALF_UP);
+// }else if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.MONTH.getValue())){
+// BigDecimal cycle = new BigDecimal(DateUtil.getDifferenceMonths(new Date(),startTime));
+// return fee.multiply(cycle).divide(new BigDecimal(12),2, RoundingMode.HALF_UP);
+// }else if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.QUARTER.getValue())){
+// BigDecimal cycle = new BigDecimal(DateUtil.getDifferenceMonths(new Date(),startTime));
+// cycle = cycle.divide(new BigDecimal(3),0,RoundingMode.CEILING);
+// return fee.multiply(cycle).divide(new BigDecimal(4),2, RoundingMode.HALF_UP);
+// }else if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.HALF_YEAR.getValue())){
+// BigDecimal cycle = new BigDecimal(DateUtil.getDifferenceMonths(new Date(),startTime));
+// cycle = cycle.divide(new BigDecimal(6),0,RoundingMode.CEILING);
+// return fee.multiply(cycle).divide(new BigDecimal(2),2, RoundingMode.HALF_UP);
+// }else{
+// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏂规閰嶇疆閿欒");
+// }
+// }else{
+// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏂规閰嶇疆閿欒");
+// }
+
}
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 3e7672d..874e23a 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
@@ -404,6 +404,7 @@
}
if(dispatchUnitMapper.selectCount(new QueryWrapper<DispatchUnit>().lambda()
.ne(DispatchUnit::getId,saveDispatchUnitDTO.getId())
+ .ne(DispatchUnit::getBaseId,saveDispatchUnitDTO.getId())
.eq(DispatchUnit::getCompanyId,loginUserInfo.getCompanyId())
.eq(DispatchUnit::getName,saveDispatchUnitDTO.getName())
.eq(DispatchUnit::getIsdeleted,Constants.ZERO)
@@ -418,6 +419,11 @@
dispatchUnit.setEditor(loginUserInfo.getId());
dispatchUnitMapper.updateById(dispatchUnit);
+ dispatchUnitMapper.update(null,new UpdateWrapper<DispatchUnit>().lambda().set(DispatchUnit::getDataType,Constants.ONE).eq(DispatchUnit::getBaseId,dispatchUnit.getId())
+ .eq(DispatchUnit::getDataType,Constants.TWO)
+ );
+
+
//瀛樺偍鎿嶄綔璁板綍
this.saveDuLog(dispatchUnit,Constants.DispatchUnitLogType.EDIT_UNIT,null);
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 a259e96..07136ac 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 cn.hutool.core.util.IdcardUtil;
import com.alibaba.fastjson.JSONObject;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.annotation.excel.ExcelExporter;
@@ -98,6 +99,8 @@
private DuSolutionJoinMapper duSolutionJoinMapper;
@Autowired
private DuWorktypeMapper duWorktypeMapper;
+ @Autowired
+ private DuWorkTypeJoinMapper duWorkTypeJoinMapper;
@Autowired
private NoticesMapper noticesMapper;
@@ -235,11 +238,17 @@
update.setCode(insuranceApply.getCode());
update.setEndTime(actEndTime);
update.setStartTime(insuranceApply.getStartTime());
+ CountCyclePriceDTO countCyclePriceDTO = new CountCyclePriceDTO();
+ countCyclePriceDTO.setSolutionsId(model.getSolutionId());
+ countCyclePriceDTO.setStartDate(insuranceApply.getStartTime());
+ update.setFinalEndTime(this.getCountCyclePriceVO(countCyclePriceDTO).getEndDate());
insuranceApplyMapper.updateById(update);
//淇敼鏄庣粏琛岀殑寮�濮嬬粨鏉熸棩鏈�
- applyDetailMapper.update(null,new UpdateWrapper<ApplyDetail>().lambda().set(ApplyDetail::getStartTime,insuranceApply.getStartTime())
- .set(ApplyDetail::getEndTime,actEndTime).eq(ApplyDetail::getApplyId,model.getId()));
+ applyDetailMapper.update(null,new UpdateWrapper<ApplyDetail>().lambda()
+ .set(ApplyDetail::getStartTime,insuranceApply.getStartTime())
+ .set(ApplyDetail::getEndTime,actEndTime)
+ .eq(ApplyDetail::getApplyId,model.getId()));
multifileMapper.update(null,new UpdateWrapper<Multifile>().lambda()
.eq(Multifile::getIsdeleted,Constants.ZERO)
@@ -313,6 +322,7 @@
memberInsuranceJoinMapper.insertBatchSomeColumn(memberInsuranceList);
}
+ this.updateApplyCurrentFee(insuranceApply.getId(),null);
return 1;
}
@@ -1596,18 +1606,18 @@
insuranceApply.setCheckUserId(loginUserInfo.getId());
insuranceApply.setStatus(insuranceApplyStatus.getKey());
insuranceApply.setUnionApplyTbdStatus(Constants.ZERO);
-
CountCyclePriceDTO countCyclePriceDTO = new CountCyclePriceDTO();
countCyclePriceDTO.setSolutionsId(insuranceApply.getSolutionId());
countCyclePriceDTO.setStartDate(insuranceApply.getStartTime());
CountCyclePriceVO countCyclePriceVO = this.getCountCyclePriceVO(countCyclePriceDTO);
insuranceApply.setApplyEndTime(countCyclePriceVO.getEndDate());
insuranceApply.setEndTime(countCyclePriceVO.getEndDate());
+ insuranceApply.setFinalEndTime(countCyclePriceVO.getEndDate());
insuranceApplyMapper.insert(insuranceApply);
//澶勭悊涓嬬骇鏁版嵁
- this.dealApplyDetailData(insuranceApply,solutions,applyDetailList,loginUserInfo,countCyclePriceVO);
+ this.dealApplyDetailData(insuranceApply,solutions,applyDetailList,loginUserInfo,countCyclePriceVO,true);
InsuranceApply updBean = new InsuranceApply();
updBean.setId(insuranceApply.getId());
updBean.setFee(applyDetailList.stream().map(ApplyDetail::getFee).reduce(BigDecimal.ZERO,BigDecimal::add));
@@ -1643,7 +1653,6 @@
noticesMapper.insert(shopNotices);
}
}
-
return insuranceApply.getId();
}
@@ -1709,7 +1718,7 @@
}
//澶勭悊涓嬬骇鏁版嵁
- this.dealApplyDetailData(insuranceApply,solutions,applyDetailList,loginUserInfo,countCyclePriceVO);
+ this.dealApplyDetailData(insuranceApply,solutions,applyDetailList,loginUserInfo,countCyclePriceVO,false);
insuranceApply.setFee(applyDetailList.stream().map(ApplyDetail::getFee).reduce(BigDecimal.ZERO,BigDecimal::add));
insuranceApplyMapper.updateById(insuranceApply);
//瀛樺偍鏃ュ織鏁版嵁
@@ -1735,7 +1744,8 @@
- public void dealApplyDetailData(InsuranceApply insuranceApply,Solutions solutions,List<ApplyDetail> applyDetailList,LoginUserInfo loginUserInfo,CountCyclePriceVO countCyclePriceVO){
+ public void dealApplyDetailData(InsuranceApply insuranceApply,Solutions solutions,List<ApplyDetail> applyDetailList,
+ LoginUserInfo loginUserInfo,CountCyclePriceVO countCyclePriceVO,Boolean checkNewData){
//鏌ヨ淇濋櫓鏂规涓嬬殑鎵�鏈夋淳閬e崟浣�
List<DuSolution> duSolutionList = duSolutionJoinMapper.selectJoinList(DuSolution.class,new MPJLambdaWrapper<DuSolution>()
.selectAll(DuSolution.class)
@@ -1744,16 +1754,22 @@
.eq(DispatchUnit::getIsdeleted,Constants.ZERO)
.eq(DispatchUnit::getUnitStatus,Constants.ONE)
.eq(DuSolution::getIsdeleted,Constants.ZERO)
+ .eq(checkNewData,DispatchUnit::getDataType,Constants.TWO)
.eq(DuSolution::getStatus,Constants.ONE)
- .eq(DuSolution::getSolutionId,insuranceApply.getSolutionId()));
+ .eq(DuSolution::getSolutionId,insuranceApply.getSolutionId())
+ .apply(" t1.BASE_ID in ( select du.id from dispatch_unit du where du.STATUS = 0 and du.ISDELETED = 0 ) ")
+ );
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<DuWorktype> duWorktypeList = duWorktypeMapper.selectList(new QueryWrapper<DuWorktype>().lambda()
+ List<DuWorktype> duWorktypeList = duWorkTypeJoinMapper.selectJoinList(DuWorktype.class,new MPJLambdaWrapper<DuWorktype>()
+ .selectAll(DuWorktype.class)
+ .innerJoin(Worktype.class,Worktype::getId,DuWorktype::getWorkTypeId)
.eq(DuWorktype::getIsdeleted,Constants.ZERO)
.eq(DuWorktype::getStatus,Constants.ONE)
+ .eq(checkNewData,Worktype::getDataType,Constants.TWO)
.in(DuWorktype::getDuSolutionId,duSolutionIdList));
if(!CollectionUtils.isNotEmpty(duWorktypeList)){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏁版嵁寮傚父锛氫繚闄╂柟妗堜笅鏈煡璇㈠埌宸ョ淇℃伅");
@@ -1794,12 +1810,16 @@
member.setName(applyDetail.getMemberName());
member.setCompanyId(insuranceApply.getCompanyId());
member.setSex(Constants.getSexByIdCard(applyDetail.getIdcardNo()));
+ if(!IdcardUtil.isValidCard(applyDetail.getIdcardNo())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鎶曚繚鍛樺伐淇℃伅韬唤璇佷俊鎭敊璇痆"+member.getName()+"]");
+ }
member.setIdcardNo(applyDetail.getIdcardNo());
member.setApplyId(insuranceApply.getId());
member.setStartTime(applyDetail.getStartTime());
member.setEndTime(applyDetail.getEndTime());
member.setDuId(applyDetail.getDuId());
member.setWorktypeId(applyDetail.getWorktypeId());
+
memberMapper.insert(member);
}else{
member.setApplyId(insuranceApply.getId());
@@ -2516,38 +2536,38 @@
*/
@Override
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
- public void updateApplyCurrentFee(Integer id){
+ public void updateApplyCurrentFee(Integer id,Integer unionId){
List<InsuranceApply> insuranceApplyList = insuranceApplyJoinMapper.selectJoinList(InsuranceApply.class,new MPJLambdaWrapper<InsuranceApply>()
.selectAll(InsuranceApply.class)
.eq(InsuranceApply::getIsdeleted,Constants.ZERO)
.in(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey(),Constants.InsuranceApplyStatus.WTB_DONE.getKey())
.eq(!Objects.isNull(id),InsuranceApply::getId,id)
+ .eq(!Objects.isNull(unionId),InsuranceApply::getUnionApplyId,unionId)
.le(InsuranceApply::getStartTime,DateUtil.getDate(new Date(),"yyyy-MM-dd") + " 00:00:00")
.ge(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;
-// }
+ 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) {
- //2024-1-30 10:04:24 淇敼 鏍规嵁瀹為檯澶╂暟杩涜璁$畻 褰撳墠璐圭敤 鎬婚噾棰�/鎬诲ぉ鏁�*瀹為檯澶╂暟
-// Integer maxDays = DateUtil.calculateBetween(applyDetail.getStartTime(),applyDetail.getEndTime(),0);
- BigDecimal fee = applyDetail.getFee();
+ BigDecimal fee = Objects.isNull(insuranceApply.getServerCost())?
+ solutions.getPrice():
+ solutions.getPrice().add(insuranceApply.getServerCost());
+ //鍦ㄥ紑濮嬬粨鏉熸棩鏈熶箣闂�
if(applyDetail.getStartTime().compareTo(new Date()) <= 0 && applyDetail.getEndTime().compareTo(new Date()) >= 0 ){
- Integer days = DateUtil.calculateBetween(applyDetail.getStartTime(),new Date(),0);
- applyDetail.setCurrentFee(new BigDecimal(days).multiply(applyDetail.getPrice()));
- //applyDetail.setCurrentFee(fee.divide(BigDecimal.valueOf(maxDays),2, BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(days)));
+ applyDetail.setCurrentFee(Constants.produceFee(solutions,fee,insuranceApply.getStartTime(),insuranceApply.getFinalEndTime(),applyDetail.getStartTime()));
applyDetailMapper.updateById(applyDetail);
- }else if(applyDetail.getStartTime().compareTo(new Date()) <= 0&&applyDetail.getEndTime().compareTo(new Date()) <= 0){
- applyDetail.setCurrentFee(fee);
+ }else if(applyDetail.getStartTime().compareTo(new Date()) <= 0&&applyDetail.getEndTime().compareTo(new Date()) <= 0){
+ //鍦ㄧ粨鏉熸棩鏈熶箣鍚�
+ applyDetail.setCurrentFee(applyDetail.getFee());
applyDetailMapper.updateById(applyDetail);
}
sumAmount = sumAmount.add(applyDetail.getCurrentFee());
@@ -2557,6 +2577,9 @@
insuranceApplyMapper.updateById(insuranceApply);
}
}
+// if(1==1){
+// throw new BusinessException(ResponseStatus.NOT_ALLOWED);
+// }
}
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 1fb46bc..33a8f2a 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
@@ -1,5 +1,6 @@
package com.doumee.service.business.impl;
+import cn.hutool.core.util.IdcardUtil;
import com.doumee.core.annotation.excel.ExcelImporter;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
@@ -10,6 +11,7 @@
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.MemberMapper;
+import com.doumee.dao.business.SolutionsMapper;
import com.doumee.dao.business.WorktypeMapper;
import com.doumee.dao.business.dto.MemberImport;
import com.doumee.dao.business.dto.MemberQueryDTO;
@@ -31,6 +33,7 @@
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
+import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@@ -53,6 +56,9 @@
@Autowired
private WorktypeMapper worktypeMapper;
+
+ @Autowired
+ private SolutionsMapper solutionsMapper;
@Override
public Integer create(Member member) {
@@ -297,10 +303,19 @@
" and ad.member_id = t.id ") ;
if(!Objects.isNull(memberQueryDTO.getInsuranceApplyId())){
lambdaWrapper = new MPJLambdaWrapper<Member>()
- .selectAll(Member.class)
+ .select(Member::getId,Member::getName,Member::getIdcardNo)
+ .selectAs(Worktype::getId,Member::getWorktypeId)
+ .selectAs(DispatchUnit::getId,Member::getDuId)
.selectAs(DispatchUnit::getName,Member::getDuName)
.selectAs(Worktype::getName,Member::getWorkTypeName)
.selectAs(Company::getName,Member::getCompanyName)
+ .selectAs(InsuranceApply::getStartTime,Member::getStartTime)
+ .selectAs(InsuranceApply::getFinalEndTime,Member::getEndTime)
+ .selectAs(InsuranceApply::getSolutionId,Member::getSolutionId)
+ .selectAs(ApplyDetail::getStartTime,Member::getDetailStartTime)
+ .selectAs(ApplyDetail::getEndTime,Member::getDetailEndTime)
+ .selectAs(ApplyDetail::getFee,Member::getFee)
+ .selectAs(InsuranceApply::getServerCost,Member::getDetailServerCost)
.leftJoin(ApplyDetail.class,ApplyDetail::getMemberId,Member::getId)
.leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId)
.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId)
@@ -316,6 +331,26 @@
" and ad.member_id = t.id ");
}
List<Member> memberList = memberJoinMapper.selectJoinList(Member.class,lambdaWrapper);
+ if(!Objects.isNull(memberQueryDTO.getInsuranceApplyId())&&Objects.isNull(memberQueryDTO.getValidTime())){
+ if(CollectionUtils.isNotEmpty(memberList)){
+ Solutions solutions = solutionsMapper.selectById(memberList.get(Constants.ZERO).getSolutionId());
+ Date reduceEndTime = DateUtil.getMontageDate(
+ DateUtil.afterDateByType(new Date(),0,solutions.getDelValidDays()),3);
+ memberList = memberList.stream().filter(member->member.getDetailStartTime().getTime()<=reduceEndTime.getTime()
+ &&member.getDetailEndTime().getTime()>=reduceEndTime.getTime()).collect(Collectors.toList());
+ for (Member member:memberList) {
+ //鍑忎繚涓氬姟 浣跨敤 閫夋嫨浜哄憳 鏍规嵁鏃ユ湡瀹炴椂鏌ヨ
+ member.setFee(
+ Constants.reduceFee(solutions,
+ Objects.isNull(member.getDetailServerCost())?
+ solutions.getPrice():solutions.getPrice().add(member.getDetailServerCost()),member.getStartTime(),member.getEndTime(),member.getDetailStartTime(),
+ reduceEndTime).subtract(member.getFee()));
+ }
+ }
+
+
+
+ }
return memberList;
}
@@ -338,7 +373,7 @@
ExcelImporter ie = null;
List<MemberImport> dataList =null;
try {
- ie = new ExcelImporter(file,0,0);
+ ie = new ExcelImporter(file,1,0);
dataList = ie.getDataList(MemberImport.class,null);
} catch (Exception e) {
e.printStackTrace();
@@ -381,6 +416,9 @@
if(StringUtils.isBlank(model.getIdCard())||model.getIdCard().length()!=18){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+index+"琛屾暟鎹韩浠借瘉淇℃伅寮傚父锛�");
}
+ if(!IdcardUtil.isValidCard(model.getIdCard())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+index+"琛屾暟鎹韩浠借瘉淇℃伅寮傚父锛�");
+ }
if(StringUtils.isBlank(model.getName())){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+index+"琛屾暟鎹鍚嶄俊鎭紓甯革紒");
}
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
index 84e20a6..0fb0948 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
@@ -488,13 +488,14 @@
if (pageWrap.getModel().getBaseId() != null) {
queryWrapper.eq(Solutions::getBaseId, pageWrap.getModel().getBaseId());
}
- for(PageWrap.SortData sortData: pageWrap.getSorts()) {
- if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
- queryWrapper.orderByDesc(sortData.getProperty());
- } else {
- queryWrapper.orderByAsc(sortData.getProperty());
- }
- }
+ queryWrapper.orderByDesc(Solutions::getCreateDate);
+// for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+// if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+// queryWrapper.orderByDesc(sortData.getProperty());
+// } else {
+// queryWrapper.orderByAsc(sortData.getProperty());
+// }
+// }
PageData<Solutions> pageData = PageData.from(solutionsJoinMapper.selectJoinPage(page,Solutions.class, queryWrapper));
return pageData;
@@ -546,7 +547,7 @@
.eq(Company::getStatus,Constants.ZERO)
.eq(Insurance::getIsdeleted,Constants.ZERO)
.eq(Insurance::getStatus,Constants.ZERO)
- .orderByAsc(Solutions::getSortnum)
+ .orderByDesc(Solutions::getCreateDate)
);
return solutionsList;
}
@@ -585,5 +586,18 @@
}
+ @Override
+ public BigDecimal testSolutionAddMoney(Integer id, BigDecimal fee, Date start,Date end,Date newDate,Date newEndTime){
+ return Constants.addFee(solutionsMapper.selectById(id),fee,start,end,newDate,newEndTime);
+ }
+ @Override
+ public BigDecimal testSolutionReduceMoney(Integer id, BigDecimal fee, Date start,Date end,Date reduceStartTime,Date reduceEndTime){
+ return Constants.reduceFee(solutionsMapper.selectById(id),fee,start,end,reduceStartTime,reduceEndTime);
+ }
+
+ @Override
+ public BigDecimal testSolutionProduceMoney(Integer id, BigDecimal fee, Date start,Date end,Date produceStart){
+ return Constants.produceFee(solutionsMapper.selectById(id),fee,start,end,produceStart);
+ }
}
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java
index 6f0308e..041d2e8 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java
@@ -156,7 +156,7 @@
.selectAs(Solutions::getOrtherInfo,UnionApply::getOrtherInfo)
.selectAs(Solutions::getSpecialAgreement,UnionApply::getSpecialAgreement)
.selectAs(Solutions::getSpecialInfo,UnionApply::getSpecialInfo);
- queryWrapper.select("(select count(b.id) from apply_detail b where b.isdeleted=0 and b.union_apply_id=t.id) as insureNum ");
+ queryWrapper.select("(select count(distinct(b.MEMBER_ID)) from apply_detail b where b.isdeleted=0 and b.union_apply_id=t.id) as insureNum ");
if(pageWrap.getModel().getQueryFlag() == 1){
queryWrapper.select("(select count(1) from apply_change a inner join insurance_apply b on a.apply_id = b.id where b.union_apply_id=t.id " +
@@ -246,7 +246,8 @@
}
if (pageWrap.getModel().getSignApplyNo() != null) {
queryWrapper.eq(UnionApply::getSignApplyNo, pageWrap.getModel().getSignApplyNo());
- }if(pageWrap.getSorts().size() == 0){
+ }
+ if(pageWrap.getSorts().size() == 0){
queryWrapper.orderByDesc(UnionApply::getCreateDate );
}else {
for(PageWrap.SortData sortData: pageWrap.getSorts()) {
@@ -416,6 +417,14 @@
if(solutions == null){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝鏂规淇℃伅鏈夎锛岃鍒锋柊椤甸潰閲嶈瘯");
}
+ //鏍规嵁鏂规鏌ヨ瀵瑰簲鐨勭粨鏉熸棩鏈�
+ CountCyclePriceDTO countCyclePriceDTO = new CountCyclePriceDTO();
+ countCyclePriceDTO.setSolutions(solutions);
+ countCyclePriceDTO.setStartDate(saveUnionApplyDTO.getStartDate());
+ Date endTime = Constants.getCountCyclePriceVO(countCyclePriceDTO).getEndDate();
+ if(saveUnionApplyDTO.getEndDate().getTime()>endTime.getTime()) {
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝缁撴潫鏃ユ湡瓒呭嚭鏂规鍙厑璁告棩鏈熷懆鏈燂紝璇锋洿鏀瑰悗閲嶈瘯锛�");
+ }
List<InsuranceApply> insuranceApplyList = insuranceApplyJoinMapper.selectJoinList(InsuranceApply.class,
new MPJLambdaWrapper<InsuranceApply>()
.selectAll(InsuranceApply.class)
@@ -458,8 +467,9 @@
}
BigDecimal fee = BigDecimal.ZERO;
for (ApplyDetail applyDetail:applyDetailList) {
- Integer oldDays = DateUtil.calculateBetween(applyDetail.getStartTime(),applyDetail.getEndTime(),0);
- fee =fee.add(new BigDecimal(maxDays).multiply( applyDetail.getFee()).divide(new BigDecimal(oldDays),2,RoundingMode.HALF_UP));
+ fee =fee.add(
+ Constants.reduceFee(solutions,solutions.getPrice(),applyDetail.getStartTime(),applyDetail.getEndTime(),saveUnionApplyDTO.getStartDate(),saveUnionApplyDTO.getEndDate())
+ );
}
unionApply.setFee(fee);
@@ -752,6 +762,18 @@
if(!unionApply.getStatus().equals(Constants.UnionApplyStatus.UPLOAD_INSURANCE_POLICY.getKey())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ュ悎骞跺崟鐘舵�佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
}
+ Solutions solutions = solutionsMapper.selectById(unionApply.getSolutionId());
+ if(Objects.isNull(solutions)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌鏂规淇℃伅");
+ }
+ //鏍规嵁鏂规鏌ヨ瀵瑰簲鐨勭粨鏉熸棩鏈�
+ CountCyclePriceDTO countCyclePriceDTO = new CountCyclePriceDTO();
+ countCyclePriceDTO.setSolutions(solutions);
+ countCyclePriceDTO.setStartDate(unionApplyBXDDTO.getStartTime());
+ Date endTime = Constants.getCountCyclePriceVO(countCyclePriceDTO).getEndDate();
+ if(unionApplyBXDDTO.getEndTime().getTime()>endTime.getTime()) {
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝缁撴潫鏃ユ湡瓒呭嚭鏂规鍙厑璁告棩鏈熷懆鏈燂紝璇锋洿鏀瑰悗閲嶈瘯锛�");
+ }
//鍔犱环鍙傛暟
List<UnionApplyBXDDetailDTO> unionApplyBXDDetailDTOList = unionApplyBXDDTO.getUnionApplyBXDDDetailDTOList();
@@ -794,16 +816,12 @@
continue;
}
BigDecimal price = Constants.formatBigdecimal(applyDetails.get(Constants.ZERO).getPrice());
-
Optional<UnionApplyBXDDetailDTO> unionApplyBXDDDetailTO= unionApplyBXDDetailDTOList.stream().filter(
m->m.getApplyId().equals(insuranceApply.getId())).findFirst();
BigDecimal serverCost = BigDecimal.ZERO;
if(unionApplyBXDDDetailTO.isPresent()){
UnionApplyBXDDetailDTO unionApplyBXDDetailDTO = unionApplyBXDDDetailTO.get();
serverCost = unionApplyBXDDetailDTO.getServerMoney();
- BigDecimal dayServerMoney = unionApplyBXDDetailDTO.getServerMoney().divide(new BigDecimal(maxDays),6, RoundingMode.HALF_UP);
-
- price = Constants.formatBigdecimal(price).add(Constants.formatBigdecimal(dayServerMoney));
//涓婁紶淇濆崟淇℃伅
if(StringUtils.isNotBlank(unionApplyBXDDetailDTO.getFileUrl())){
Multifile multifile = new Multifile();
@@ -824,9 +842,12 @@
//瀹為檯宸蹭骇鐢熻垂鐢紙鍗曚汉锛�
BigDecimal currentFee = BigDecimal.ZERO;
if(useDays==-1){
- currentFee = new BigDecimal(maxDays).multiply(price);
+ currentFee = solutions.getPrice().add(serverCost);
}else if(useDays>0){
- currentFee = new BigDecimal(useDays).multiply(price);
+ currentFee = Constants.produceFee(solutions,solutions.getPrice().add(serverCost)
+ ,unionApplyBXDDTO.getStartTime(),unionApplyBXDDTO.getEndTime(),
+ unionApplyBXDDTO.getStartTime()
+ );
}
//鐢熸垚鎶曚繚璁板綍
if(CollectionUtils.isNotEmpty(applyDetailList)){
@@ -834,7 +855,7 @@
for (ApplyDetail applyDetail:applyDetailList.stream()
.filter(m->Constants.equalsInteger(m.getApplyId(),(insuranceApply.getId()))).collect(Collectors.toList())) {
applyDetail.setPrice(price);
- applyDetail.setFee(price.multiply(new BigDecimal(maxDays)));
+ applyDetail.setFee(price.multiply(new BigDecimal(maxDays)).add(serverCost));
applyDetail.setStartTime(unionApplyBXDDTO.getStartTime());
applyDetail.setEndTime(unionApplyBXDDTO.getEndTime());
MemberInsurance memberInsurance = new MemberInsurance(applyDetail,user.getId());
@@ -854,12 +875,18 @@
}
memberInsuranceJoinMapper.insertBatchSomeColumn(memberInsuranceList);
}
+ BigDecimal detailFee = Constants.reduceFee(solutions,solutions.getPrice().add(serverCost),insuranceApply.getStartTime(),insuranceApply.getFinalEndTime(),
+ unionApplyBXDDTO.getStartTime(),unionApplyBXDDTO.getEndTime());
+
+ BigDecimal applyFee = detailFee.multiply(new BigDecimal(applyDetails.size()));
+
+ Date finalEndTime = endTime;
//鏇存柊鎶曚繚鐢宠鍗�
insuranceApplyJoinMapper.update(null,new UpdateWrapper<InsuranceApply>().lambda()
.set(InsuranceApply::getUnionApplyTbdStatus,Constants.THREE)
.set(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.WTB_DONE.getKey())
- .set(InsuranceApply::getFee,price.multiply(new BigDecimal(applyDetails.size())).multiply(new BigDecimal(maxDays)))
+ .set(InsuranceApply::getFee,applyFee)
.set(InsuranceApply::getCurrentFee,currentFee.multiply(new BigDecimal(applyDetails.size())))
.set(InsuranceApply::getStartTime,unionApplyBXDDTO.getStartTime())
.set(InsuranceApply::getEndTime,unionApplyBXDDTO.getEndTime())
@@ -867,11 +894,12 @@
.set(InsuranceApply::getEditor,user.getId())
.set(InsuranceApply::getServerCost,serverCost)
.set(InsuranceApply::getCode,unionApplyBXDDTO.getCode())
+ .set(InsuranceApply::getFinalEndTime,finalEndTime)
.eq(InsuranceApply::getId,insuranceApply.getId()));
//鏇存柊鎶曚繚鍗曟槑缁嗛噾棰�
applyDetailJoinMapper.update(null,new UpdateWrapper<ApplyDetail>().lambda()
.set(ApplyDetail::getPrice,price)
- .set(ApplyDetail::getFee, price.multiply(new BigDecimal(maxDays)))
+ .set(ApplyDetail::getFee, detailFee)
.set(ApplyDetail::getCurrentFee,currentFee)
.set(ApplyDetail::getEditDate,new Date())
.set(ApplyDetail::getEditor,user.getId())
@@ -879,7 +907,7 @@
.set(ApplyDetail::getEndTime,unionApplyBXDDTO.getEndTime())
.in(ApplyDetail::getId,applyDetails.stream().map(m->m.getId()).collect(Collectors.toList()))
);
- sumFee = sumFee.add(price.multiply(new BigDecimal(applyDetails.size())).multiply(new BigDecimal(maxDays)));
+ sumFee = sumFee.add(applyFee);
sumCurrFee = sumCurrFee.add(currentFee.multiply(new BigDecimal(applyDetails.size())));
}
@@ -931,7 +959,7 @@
List<UnionApply> unionApplyList = unionApplyJoinMapper.selectJoinList(UnionApply.class,new MPJLambdaWrapper<UnionApply>()
.selectAll(UnionApply.class)
.eq(UnionApply::getIsdeleted,Constants.ZERO)
- .eq(UnionApply::getStatus,Constants.UnionApplyStatus.FINISH)
+ .eq(UnionApply::getStatus,Constants.UnionApplyStatus.FINISH.getKey())
.eq(!Objects.isNull(id),UnionApply::getId,id)
.le(UnionApply::getStartTime,DateUtil.getDate(new Date(),"yyyy-MM-dd") + " 00:00:00")
.ge(UnionApply::getEndTime,DateUtil.getDate(new Date(),"yyyy-MM-dd") + " 23:59:59")
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java
index 1efb65a..ef47549 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java
@@ -167,7 +167,6 @@
.eq(UnionChange::getId,id)
.last(" limit 1 ")
);
-
if(!Objects.isNull(unionChange)){
//鏌ヨ鍔犲噺淇濇槑缁嗘暟鎹�
List<ApplyChagneDetail> applyChangeList = applyChagneDetailJoinMapper
@@ -176,18 +175,18 @@
.eq(ApplyChagneDetail::getIsdeleted,Constants.ZERO)
.ne(ApplyChagneDetail::getType,Constants.TWO)
.eq(ApplyChagneDetail::getUnionChangeId,unionChange.getId()));
- BigDecimal fee = BigDecimal.ZERO;
- for (ApplyChagneDetail applyChagneDetail:applyChangeList) {
- Integer maxDays = DateUtil.calculateBetween(unionChange.getApplyStartTime(),applyChagneDetail.getEndTime(),0);
- if(applyChagneDetail.getType().equals(Constants.ONE)){
- maxDays = DateUtil.daysBetweenDates(applyChagneDetail.getEndTime(),DateUtil.getMontageDate(unionChange.getApplyStartTime(),3));
- }
- if(applyChagneDetail.getType().equals(Constants.ZERO)){
- fee = fee.add(new BigDecimal(maxDays).multiply(applyChagneDetail.getPrice()));
- }else{
- fee = fee.subtract(new BigDecimal(maxDays).multiply(applyChagneDetail.getPrice())).add(applyChagneDetail.getFee());
- }
- }
+ BigDecimal fee = applyChangeList.stream().map(m->m.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add);
+// for (ApplyChagneDetail applyChagneDetail:applyChangeList) {
+// Integer maxDays = DateUtil.calculateBetween(unionChange.getApplyStartTime(),applyChagneDetail.getEndTime(),0);
+// if(applyChagneDetail.getType().equals(Constants.ONE)){
+// maxDays = DateUtil.daysBetweenDates(applyChagneDetail.getEndTime(),DateUtil.getMontageDate(unionChange.getApplyStartTime(),3));
+// }
+// if(applyChagneDetail.getType().equals(Constants.ZERO)){
+// fee = fee.add(new BigDecimal(maxDays).multiply(applyChagneDetail.getPrice()));
+// }else{
+// fee = fee.subtract(new BigDecimal(maxDays).multiply(applyChagneDetail.getPrice())).add(applyChagneDetail.getFee());
+// }
+// }
unionChange.setFee(fee.setScale(2, RoundingMode.HALF_UP));
//鏌ヨ鎿嶄綔璁板綍
List<ApplyLog> applyLogList = applyLogJoinMapper.selectJoinList(ApplyLog.class,
@@ -324,13 +323,18 @@
if (pageWrap.getModel().getSignApplyNo() != null) {
queryWrapper.eq(UnionChange::getSignApplyNo, pageWrap.getModel().getSignApplyNo());
}
- for(PageWrap.SortData sortData: pageWrap.getSorts()) {
- if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
- queryWrapper.orderByDesc(sortData.getProperty());
- } else {
- queryWrapper.orderByAsc(sortData.getProperty());
+ if(pageWrap.getSorts().size() == 0){
+ queryWrapper.orderByDesc(UnionChange::getCreateDate );
+ }else {
+ for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+ if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+ queryWrapper.orderByDesc(sortData.getProperty());
+ } else {
+ queryWrapper.orderByAsc(sortData.getProperty());
+ }
}
}
+
PageData<UnionChange> pageData = PageData.from(unionChangeJoinMapper.selectJoinPage(page,UnionChange.class, queryWrapper));
return pageData;
}
@@ -350,10 +354,13 @@
if(!user.getType().equals(Constants.TWO)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炲晢鎴风敤鎴凤紝鏃犳硶杩涜璇ユ搷浣�");
}
+ if(saveUnionChangeDTO.getBusinessType().equals(Constants.ZERO)){
+ //2024骞�5鏈�9鏃�14:59:24 淇敼 榛樿鍏ュ綋鍓嶅ぉ
+ saveUnionChangeDTO.setApplyDate(DateUtil.getMontageDate(new Date(),1));
+ }
if(Objects.isNull(saveUnionChangeDTO)
|| Objects.isNull(saveUnionChangeDTO.getApplyIds())
- || Objects.isNull(saveUnionChangeDTO.getAddValidDate())
- || Objects.isNull(saveUnionChangeDTO.getDelValidDate())
+ || Objects.isNull(saveUnionChangeDTO.getApplyDate())
|| Objects.isNull(saveUnionChangeDTO.getUnionApplyId())
|| Objects.isNull(saveUnionChangeDTO.getBusinessType())
){
@@ -364,16 +371,44 @@
if(Objects.isNull(unionApply)){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌鍚堝苟淇濆崟鏁版嵁");
}
- //鍒ゆ柇鎵瑰崟鏃ユ湡 鍚堝苟鍗曠殑鎵瑰崟鐢熸晥鏈熷湪涓� 淇濆崟璧锋湡鐨勬鏃� 鍒颁繚鍗曟鏈�
- //鑾峰彇寮�濮嬫棩鏈熸鏃�
- if(saveUnionChangeDTO.getAddValidDate().getTime()<DateUtil.afterDateByType(unionApply.getStartTime(),0,1).getTime()
- || saveUnionChangeDTO.getAddValidDate().getTime()> unionApply.getEndTime().getTime()){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍚堝苟鍗曠殑鎵瑰崟鍔犱繚鐢熸晥鏈熼敊璇�");
+ Solutions solutions = solutionsMapper.selectById(unionApply.getSolutionId());
+ if(Objects.isNull(solutions)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌淇濋櫓鏂规");
}
- if(saveUnionChangeDTO.getDelValidDate().getTime()<DateUtil.afterDateByType(unionApply.getStartTime(),0,1).getTime()
- || saveUnionChangeDTO.getDelValidDate().getTime()> unionApply.getEndTime().getTime()){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍚堝苟鍗曠殑鎵瑰崟鍔犱繚鐢熸晥鏈熼敊璇�");
+ if(saveUnionChangeDTO.getBusinessType().equals(Constants.ZERO)){
+ //鏍规嵁鐢宠鏃ユ湡 澶勭悊鍔犲噺淇濈殑 瀹為檯鐢熸晥鏃ユ湡
+ if(Objects.nonNull(solutions.getAddValidDays())){
+ saveUnionChangeDTO.setAddValidDate(
+ DateUtil.afterDateByType(saveUnionChangeDTO.getApplyDate(),0,solutions.getAddValidDays())
+ );
+ }else{
+ saveUnionChangeDTO.setAddValidDate(saveUnionChangeDTO.getApplyDate());
+ }
+ if(Objects.nonNull(solutions.getDelValidDays())){
+ saveUnionChangeDTO.setDelValidDate(
+ DateUtil.afterDateByType(saveUnionChangeDTO.getApplyDate(),0,solutions.getDelValidDays())
+ );
+ }else{
+ saveUnionChangeDTO.setDelValidDate(saveUnionChangeDTO.getApplyDate());
+ }
+ //鍒ゆ柇鎵瑰崟鏃ユ湡 鍚堝苟鍗曠殑鎵瑰崟鐢熸晥鏈熷湪涓� 淇濆崟璧锋湡鐨勬鏃� 鍒颁繚鍗曟鏈�
+ //鑾峰彇寮�濮嬫棩鏈熸鏃�
+ if(saveUnionChangeDTO.getAddValidDate().getTime()<unionApply.getStartTime().getTime()
+ || saveUnionChangeDTO.getAddValidDate().getTime()> unionApply.getEndTime().getTime()){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍚堝苟鍗曠殑鎵瑰崟鍔犱繚鐢熸晥鏈熼敊璇�");
+ }
+ if(saveUnionChangeDTO.getDelValidDate().getTime()<unionApply.getStartTime().getTime()
+ || saveUnionChangeDTO.getDelValidDate().getTime()> unionApply.getEndTime().getTime()){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍚堝苟鍗曠殑鎵瑰崟鍔犱繚鐢熸晥鏈熼敊璇�");
+ }
+ }else{
+ if(saveUnionChangeDTO.getApplyDate().getTime()<DateUtil.afterDateByType(unionApply.getStartTime(),0,1).getTime()
+ || saveUnionChangeDTO.getApplyDate().getTime()> unionApply.getEndTime().getTime()){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍚堝苟鍗曠殑鎹㈠巶鐢熸晥鏈熼敊璇�");
+ }
+ saveUnionChangeDTO.setAddValidDate(saveUnionChangeDTO.getApplyDate());
}
+
List<ApplyChange> applyChangeList = applyChangeJoinMapper.selectJoinList(ApplyChange.class,
new MPJLambdaWrapper<ApplyChange>()
@@ -637,6 +672,7 @@
unionChangeBXDDTO.getDelValidTime() == null ){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
+ unionChangeBXDDTO.setApplyId(unionChange.getUnionApplyId());
unionChange.setStatus(Constants.formatIntegerNum(unionChange.getStatus()));
unionChange.setShopId(Constants.formatIntegerNum(unionChange.getShopId()));
if(!unionChange.getShopId().equals(user.getCompanyId())){
@@ -655,17 +691,26 @@
if(Objects.isNull(unionApply)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鍚堝苟淇濆崟淇℃伅");
}
- //鍒ゆ柇鎵瑰崟鏃ユ湡 鍚堝苟鍗曠殑鎵瑰崟鐢熸晥鏈熷湪涓� 淇濆崟璧锋湡鐨勬鏃� 鍒颁繚鍗曟鏈�
- //鑾峰彇寮�濮嬫棩鏈熸鏃�
- if(unionChangeBXDDTO.getApplyDate().getTime()<DateUtil.afterDateByType(unionApply.getStartTime(),0,1).getTime()
- || unionChangeBXDDTO.getApplyDate().getTime()> unionApply.getEndTime().getTime()){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍚堝苟鍗曠殑鎵瑰崟鍔犱繚鐢熸晥鏈熼敊璇�");
+ Solutions solutions = solutionsMapper.selectById(unionApply.getSolutionId());
+ if(Objects.isNull(solutions)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌淇濋櫓鏂规");
}
- if(unionChangeBXDDTO.getDelValidTime().getTime()<DateUtil.afterDateByType(unionApply.getStartTime(),0,1).getTime()
- || unionChangeBXDDTO.getDelValidTime().getTime()> unionApply.getEndTime().getTime()){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍚堝苟鍗曠殑鎵瑰崟鍑忎繚鐢熸晥鏈熼敊璇�");
+ if(unionChange.getType().equals(Constants.ZERO)){
+ //鍒ゆ柇鎵瑰崟鏃ユ湡 鍚堝苟鍗曠殑鎵瑰崟鐢熸晥鏈熷湪涓� 淇濆崟璧锋湡鐨勬鏃� 鍒颁繚鍗曟鏈�
+ //鑾峰彇寮�濮嬫棩鏈熸鏃�
+ if(unionChangeBXDDTO.getApplyDate().getTime()<unionApply.getStartTime().getTime()
+ || unionChangeBXDDTO.getApplyDate().getTime()> unionApply.getEndTime().getTime()){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍚堝苟鍗曠殑鎵瑰崟鍔犱繚鐢熸晥鏈熼敊璇�");
+ }
+ if(unionChangeBXDDTO.getDelValidTime().getTime()<unionApply.getStartTime().getTime()
+ || unionChangeBXDDTO.getDelValidTime().getTime()> unionApply.getEndTime().getTime()){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍚堝苟鍗曠殑鎵瑰崟鍑忎繚鐢熸晥鏈熼敊璇�");
+ }
+ }else{
+ if(unionChangeBXDDTO.getApplyDate().getTime()<unionChange.getApplyStartTime().getTime()){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎵瑰崟鏃ユ湡蹇呴』澶т簬鐢宠鏃ユ湡");
+ }
}
-
List<ApplyChange> applyChangeList = applyChangeJoinMapper.selectJoinList(ApplyChange.class,
new MPJLambdaWrapper<ApplyChange>()
@@ -741,6 +786,7 @@
.selectAs(Member::getName, ApplyChagneDetail::getMemberName)
.selectAs(Solutions::getName,ApplyChagneDetail::getSolutionsName)
.selectAs(InsuranceApply::getCode,ApplyChagneDetail::getApplyCode)
+ .selectAs(InsuranceApply::getServerCost,ApplyChagneDetail::getServerCost)
.leftJoin(ApplyChange.class, ApplyChange::getId, ApplyChagneDetail::getApplyChangeId)
.leftJoin(Member.class, Member::getId, ApplyChagneDetail::getMemberId)
.leftJoin(InsuranceApply.class, InsuranceApply::getId, ApplyChange::getApplyId)
@@ -748,7 +794,7 @@
.leftJoin(Worktype.class, Worktype::getId, ApplyChagneDetail::getWorktypeId)
.leftJoin(DispatchUnit.class, DispatchUnit::getId, ApplyChagneDetail::getDuId)
.eq(ApplyChagneDetail::getApplyChangeId,applyChange.getId()));
- this.dealApplyChangeDetail(applyChange,allList);
+ this.dealApplyChangeDetail(applyChange,allList,solutions);
applyChangeJoinMapper.updateById(applyChange);
//瀛樺偍鎵瑰崟瀹屾垚淇℃伅
@@ -789,37 +835,34 @@
- public void dealApplyChangeDetail(ApplyChange applyChange,List<ApplyChagneDetail> applyChagneDetailList){
+ public void dealApplyChangeDetail(ApplyChange applyChange,List<ApplyChagneDetail> applyChagneDetailList,Solutions solutions){
BigDecimalVO bigDecimalVO = new BigDecimalVO();
bigDecimalVO.setTotalFee(BigDecimal.ZERO);
bigDecimalVO.setCurrentFee(BigDecimal.ZERO);
+ InsuranceApply insuranceApply = insuranceApplyMapper.selectById(applyChange.getApplyId());
for (ApplyChagneDetail detail:applyChagneDetailList) {
Member member = memberMapper.selectById(detail.getMemberId());
if(Objects.isNull(member)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鍛樺伐鏁版嵁");
}
if (Constants.equalsInteger(detail.getType(), Constants.ZERO)) {
- this.addChangeDetailData(applyChange,detail,bigDecimalVO);
+ this.addChangeDetailData(applyChange,detail,insuranceApply,solutions,bigDecimalVO);
}else if(Constants.equalsInteger(detail.getType(),Constants.ONE)){
- this.reduceChangeDetailData(applyChange,detail,bigDecimalVO);
+ this.reduceChangeDetailData(applyChange,detail,insuranceApply,solutions,bigDecimalVO);
}else{
- this.otherChangeDetailData(applyChange,detail);
+ this.otherChangeDetailData(applyChange,detail,insuranceApply);
}
}
-
- if (bigDecimalVO.getTotalFee().compareTo(new BigDecimal(0)) != 0) {
- //濡傛灉淇濆崟閲戦鍙戠敓缂栫爜锛屾洿鏂版�讳繚鍗曢噾棰�
- insuranceApplyMapper.update(null, new UpdateWrapper<InsuranceApply>().lambda()
- .setSql(" fee = ifnull(fee,0)+" + bigDecimalVO.getTotalFee())
- .setSql(" current_fee = ifnull(current_fee,0)+" + bigDecimalVO.getCurrentFee())
- .set(InsuranceApply::getEditor, applyChange.getEditor())
- .set(InsuranceApply::getEditDate, applyChange.getEditDate())
- .eq(InsuranceApply::getId, applyChange.getApplyId())
- );
- applyChange.setFee(bigDecimalVO.getTotalFee());
- }
-
+ //濡傛灉淇濆崟閲戦鍙戠敓缂栫爜锛屾洿鏂版�讳繚鍗曢噾棰�
+ insuranceApplyMapper.update(null, new UpdateWrapper<InsuranceApply>().lambda()
+ .setSql(bigDecimalVO.getTotalFee().compareTo(new BigDecimal(0)) != 0," fee = ifnull(fee,0)+" + bigDecimalVO.getTotalFee())
+ .setSql(bigDecimalVO.getCurrentFee().compareTo(new BigDecimal(0)) != 0," current_fee = ifnull(current_fee,0)+" + bigDecimalVO.getCurrentFee())
+ .set(InsuranceApply::getEditor, applyChange.getEditor())
+ .set(InsuranceApply::getEditDate, applyChange.getEditDate())
+ .eq(InsuranceApply::getId, applyChange.getApplyId())
+ );
+ applyChange.setFee(bigDecimalVO.getTotalFee());
}
@@ -828,7 +871,7 @@
* @param applyChange
* @param detail
*/
- public void addChangeDetailData(ApplyChange applyChange, ApplyChagneDetail detail
+ public void addChangeDetailData(ApplyChange applyChange, ApplyChagneDetail detail,InsuranceApply insuranceApply,Solutions solutions
, BigDecimalVO bigDecimalVO){
//鏌ヨ鍔犱繚浜哄憳鏄惁瀛樺湪 鍐茬獊鐨� 淇濆崟鏄庣粏鏁版嵁
if(applyDetailJoinMapper.selectCount(new QueryWrapper<ApplyDetail>()
@@ -840,26 +883,24 @@
)>Constants.ZERO){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠淇濆崟涓嬶紝鍔犱繚浜哄憳銆�" + detail.getMemberName() + "銆戝瓨鍦ㄦ棩鏈熷啿绐佺殑鏁版嵁");
}
- //鎬诲ぉ鏁�
- Integer countDays = DateUtil.calculateBetween(applyChange.getApplyStartTime(),DateUtil.getMontageDate(detail.getEndTime(), 2),0);
-
//鍔犱繚
ApplyDetail add = new ApplyDetail();
- if(new Date().compareTo(DateUtil.getMontageDate(applyChange.getApplyStartTime(), 2))>=0){
- Integer days = DateUtil.calculateBetween(applyChange.getApplyStartTime(),DateUtil.getMontageDate(new Date(), 2),0);
+ BigDecimal fee = Objects.isNull(insuranceApply.getServerCost())?
+ solutions.getPrice():
+ solutions.getPrice().add(insuranceApply.getServerCost());
-
-
- //濡傛灉宸插凡浜х敓璐圭敤锛岃绠楀凡宸蹭骇鐢熻垂鐢�
- add.setCurrentFee(new BigDecimal(days).multiply(detail.getPrice()));
+ add.setFee(Constants.addFee
+ (solutions,fee,insuranceApply.getStartTime(),insuranceApply.getFinalEndTime(),applyChange.getApplyStartTime(),insuranceApply.getEndTime()));
+ if(new Date().compareTo(DateUtil.getMontageDate(applyChange.getApplyStartTime(), 1))>=0){
+ add.setCurrentFee(
+ Constants.produceFee(solutions,fee,insuranceApply.getStartTime(),insuranceApply.getEndTime(),DateUtil.getMontageDate(applyChange.getApplyStartTime(), 1))
+ );
}else{
add.setCurrentFee(BigDecimal.ZERO);
}
-
add.setPrice(detail.getPrice());
add.setApplyId(applyChange.getApplyId());
add.setValidCode(applyChange.getValidCode());
- add.setFee(detail.getFee());
add.setIsdeleted(Constants.ZERO);
add.setCreator(applyChange.getEditor());
add.setCreateDate(applyChange.getEditDate());
@@ -873,7 +914,8 @@
add.setDuId(detail.getDuId());
add.setStartTime(DateUtil.getMontageDate(applyChange.getApplyStartTime(), 1));
add.setEndTime(DateUtil.getMontageDate(detail.getEndTime(), 2));
- add.setFee(new BigDecimal(countDays).multiply(detail.getPrice()));
+ add.setRemark(detail.getRemark());
+ add.setUnionApplyId(insuranceApply.getUnionApplyId());
applyDetailJoinMapper.insert(add);
detail.setFee(add.getFee());
@@ -901,6 +943,9 @@
.eq(Member::getId, memberInsurance.getMemberId())
);
+// if(1==1){
+// throw new BusinessException(ResponseStatus.NOT_ALLOWED);
+// }
}
/**
@@ -908,59 +953,62 @@
* @param applyChange
* @param detail
*/
- public void reduceChangeDetailData(ApplyChange applyChange,ApplyChagneDetail detail,BigDecimalVO bigDecimalVO){
+ public void reduceChangeDetailData(ApplyChange applyChange,ApplyChagneDetail detail,InsuranceApply insuranceApply,Solutions solutions
+ ,BigDecimalVO bigDecimalVO){
//鏌ヨ鍛樺伐鏄湪涓诲崟涓� 鏄惁瀛樺湪鐢熸晥涓殑鏁版嵁
ApplyDetail oldModel = applyDetailJoinMapper.selectOne(new QueryWrapper<ApplyDetail>().lambda()
.eq(ApplyDetail::getApplyId, applyChange.getApplyId())
.eq(ApplyDetail::getMemberId, detail.getMemberId())
.orderByDesc(ApplyDetail::getCreateDate)
.last("limit 1"));
- if (oldModel == null || oldModel.getStartTime() == null || oldModel.getStartTime().getTime() > applyChange.getApplyStartTime().getTime()) {
- throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝鐢ㄦ埛銆�" + detail.getMemberName() + "銆戝師淇濆崟淇℃伅鏈夎锛屽綋鍓嶇敵璇蜂笉鏀寔鍑忎繚澶勭悊锛�");
+ if (oldModel == null || oldModel.getStartTime() == null || oldModel.getStartTime().getTime() > applyChange.getDelValidTime().getTime()) {
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝鐢ㄦ埛銆�" + detail.getMemberName() + "銆戝綋鍓嶆壒鍑忔棩鏈熶笉鏀寔鍑忎繚鎿嶄綔锛�");
}
- //璁$畻宸茬敓鏁堝ぉ鏁�
- //褰撳鎵规椂闂� 灏忎簬 褰撳墠鏃堕棿 璁$畻瀹為檯鍑忓皯閲戦 鍥犱负宸叉墸閲戦浼氬ぇ浜� 搴旀墸閲戦
+ if(oldModel.getStartTime().getTime()>applyChange.getDelValidTime().getTime()||oldModel.getEndTime().getTime()<applyChange.getDelValidTime().getTime()){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝鎵瑰噺鏃ユ湡鏈湪鐢ㄦ埛銆�" + detail.getMemberName() + "銆戠殑淇濆崟鏃ユ湡鍐咃紒");
+ }
+ BigDecimal fee = Objects.isNull(insuranceApply.getServerCost())?
+ solutions.getPrice():
+ solutions.getPrice().add(insuranceApply.getServerCost());
+
+ Date reduceDate = oldModel.getStartTime().compareTo(applyChange.getDelValidTime())!=0?
+ DateUtil.getMontageDate(applyChange.getDelValidTime(), 3):
+ DateUtil.getMontageDate(applyChange.getDelValidTime(), 2);
+ //鍑忎繚璁板綍鎿嶄綔鍚庣殑鎬昏垂鐢�
+ BigDecimal reduceFee = Constants.reduceFee(
+ solutions,fee,insuranceApply.getStartTime(),insuranceApply.getFinalEndTime(),oldModel.getStartTime(),reduceDate) ;
BigDecimal pullFee = BigDecimal.ZERO;
- //鍑忎繚鍑忓皯鐨勯噾棰�
- BigDecimal reduceFee = BigDecimal.ZERO;
- Date reduceDate = DateUtil.getMontageDate(applyChange.getApplyStartTime(),3);
- if (reduceDate.getTime() < DateUtil.getMontageDate(new Date(), 2).getTime()) {
- //璁$畻澶氭墸閲戦
- Integer days = DateUtil.calculateBetween(reduceDate,DateUtil.getMontageDate(new Date(), 2),0);
- pullFee = new BigDecimal(days).multiply(detail.getPrice()).multiply(new BigDecimal(-1));
+ if (DateUtil.getMontageDate(new Date(), 2).getTime()>oldModel.getStartTime().getTime()) {
+ //// 2024骞�5鏈�8鏃�17:37:23 淇敼 璁$畻浜х敓璐圭敤
+ pullFee = Constants.produceFee(solutions,fee,insuranceApply.getStartTime(),insuranceApply.getFinalEndTime(),oldModel.getStartTime());
+ if(pullFee.compareTo(reduceFee)>0){
+ pullFee = reduceFee;
+ }
}
- //璁$畻鎶曚繚鏄庣粏搴斿噺灏戠殑澶╂暟
- Integer reduceDays = DateUtil.daysBetweenDates(oldModel.getEndTime(),reduceDate);
- if(reduceDays>0){
- reduceFee = new BigDecimal(reduceDays).multiply(detail.getPrice()).multiply(new BigDecimal(-1));
- }
+
+ bigDecimalVO.setTotalFee(bigDecimalVO.getTotalFee().add(reduceFee).subtract(oldModel.getFee()));
+ bigDecimalVO.setCurrentFee(bigDecimalVO.getCurrentFee().add(pullFee).subtract(oldModel.getCurrentFee()));
+
applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda()
- .setSql(" fee = ifnull(fee,0)+" + reduceFee)
- .setSql(" current_fee = ifnull(current_fee,0)+" + pullFee)
- .set(oldModel.getStartTime().compareTo(reduceDate)!=0,ApplyDetail::getEndTime, reduceDate)
- .set(oldModel.getStartTime().compareTo(reduceDate)==0,ApplyDetail::getEndTime, DateUtil.getMontageDate(applyChange.getApplyStartTime(), 2))
+ .setSql(" fee = " + reduceFee)
+ .setSql(" current_fee = " + pullFee)
+ .set(ApplyDetail::getEndTime, reduceDate)
.set(ApplyDetail::getEditor, applyChange.getEditor())
.set(ApplyDetail::getEditDate, applyChange.getEditDate())
.eq(ApplyDetail::getId, oldModel.getId())
);
- bigDecimalVO.setTotalFee(bigDecimalVO.getTotalFee().add(reduceFee));
- bigDecimalVO.setCurrentFee(bigDecimalVO.getCurrentFee().add(pullFee));
-
//淇敼 鍛樺伐鎶曚繚鏄庣粏璁板綍 鍘嗗彶鏁版嵁
memberInsuranceJoinMapper.update(null, new UpdateWrapper<MemberInsurance>().lambda()
- .setSql(" fee = ifnull(fee,0)+" + reduceFee)
- .set(oldModel.getStartTime().compareTo(reduceDate)!=0,MemberInsurance::getEndTime,reduceDate)
- .set(oldModel.getStartTime().compareTo(reduceDate)==0,MemberInsurance::getEndTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(), 2))
+ .setSql(" fee = " + reduceFee)
+ .set(MemberInsurance::getEndTime,reduceDate)
.eq(MemberInsurance::getRelationId, oldModel.getId())
);
-
memberMapper.update(null,new UpdateWrapper<Member>()
.lambda()
.set(Member::getStartTime,oldModel.getStartTime())
- .set(oldModel.getStartTime().compareTo(reduceDate)!=0,Member::getEndTime,reduceDate)
- .set(oldModel.getStartTime().compareTo(reduceDate)==0,Member::getEndTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(), 2))
+ .set(Member::getEndTime,reduceDate)
.set(Member::getDuId,oldModel.getDuId())
.set(Member::getWorktypeId,oldModel.getWorktypeId())
.eq(Member::getId, oldModel.getMemberId())
@@ -969,13 +1017,13 @@
//淇敼涓氬姟鏄庣粏琛屾暟鎹疄闄呮壒鍗曟棩鏈�
applyChagneDetailJoinMapper.update(null,new UpdateWrapper<ApplyChagneDetail>().lambda()
// .setSql(" fee = ifnull(fee,0)+" + reduceFee)
- .set(ApplyChagneDetail::getFee,reduceFee)
+ .set(ApplyChagneDetail::getFee,reduceFee.subtract(oldModel.getFee()))
.set(ApplyChagneDetail::getEndTime,reduceDate)
.eq(ApplyChagneDetail::getId,detail.getId())
);
}
- public void otherChangeDetailData(ApplyChange applyChange,ApplyChagneDetail detail){
+ public void otherChangeDetailData(ApplyChange applyChange,ApplyChagneDetail detail,InsuranceApply insuranceApply){
//瀹為檯鎵瑰崟鐢熸晥鏃ユ湡
Date applyStartTime = DateUtil.getMontageDate(applyChange.getApplyStartTime(),1);
//鏌ヨ鍑忎繚浜哄憳鏄惁瀛樺湪 鍐茬獊鐨� 淇濆崟鏄庣粏鏁版嵁
@@ -1000,86 +1048,128 @@
if(oldModel == null ){
throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鐢ㄦ埛銆�"+detail.getMemberName()+"銆戝師淇濆崟淇℃伅鏈夎锛屾壒鍗曟棩鏈熸湭鍦ㄤ繚鍗曟棩鏈熷唴锛�");
}
- //濡傛灉瀹為檯鎵瑰崟鏃ユ湡 鍜� 鍘熻褰曟棩鏈熺浉绛� 鍒欑洿鎺ヤ慨鏀硅褰曟淳閬e崟浣嶄笌宸ョ淇℃伅
- if(applyStartTime.compareTo(oldModel.getStartTime())!=Constants.ZERO){
- //褰撳墠鏃ユ湡澶т簬鎵瑰崟鏃ユ湡 闇�瑕佸洖婊氭暟鎹疄闄呮暟鎹�
- Boolean flag = DateUtil.getMontageDate(new Date(),2).compareTo(DateUtil.getMontageDate(applyStartTime,2))>0;
- //鎹㈠巶鍚庡巻鍙茶褰曠殑璐圭敤 fee
- Integer days = DateUtil.calculateBetween(DateUtil.getMontageDate(applyStartTime,3),DateUtil.getMontageDate(oldModel.getStartTime(),1),0);
- BigDecimal oldFee = new BigDecimal(days).multiply(detail.getPrice());
- BigDecimal fee = oldModel.getFee();
- BigDecimal oldCurrentFee = oldModel.getCurrentFee();
- applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda()
- .set(ApplyDetail::getEditor,applyChange.getEditor())
- .set(ApplyDetail::getEditDate,applyChange.getEditDate())
- .set(ApplyDetail::getEndTime,DateUtil.getMontageDate(applyStartTime,3))
- .set(ApplyDetail::getFee,oldFee)
- .set(flag,ApplyDetail::getCurrentFee,oldFee)
- .eq(ApplyDetail::getId,oldModel.getId())
- );
+ MemberInsurance memberInsurance = new MemberInsurance(detail,applyChange,applyChange.getEditor(),null,insuranceApply.getSolutionId());
+ memberInsurance.setSolutionId(detail.getSolutionId());
+ memberInsurance.setWorktypeName(detail.getWorkTypeName());
+ memberInsurance.setDuName(detail.getDuName());
+ memberInsurance.setApplyChangeId(detail.getApplyChangeId());
+ memberInsurance.setSolutionName(detail.getSolutionsName());
+ memberInsurance.setPdCode(applyChange.getValidCode());
+ memberInsurance.setBdCode(insuranceApply.getCode());
+ memberInsurance.setRelationType(Constants.ONE);
+ memberInsurance.setStartTime(DateUtil.getMontageDate(applyChange.getApplyStartTime(),1));
+ memberInsurance.setEndTime(oldModel.getEndTime());
- //淇敼 鍛樺伐鎶曚繚鏄庣粏璁板綍 鍘嗗彶鏁版嵁
- memberInsuranceJoinMapper.update(null,new UpdateWrapper<MemberInsurance>().lambda()
- .set(MemberInsurance::getEndTime,DateUtil.getMontageDate(applyStartTime,3))
- .set(MemberInsurance::getFee,oldFee)
- .eq(MemberInsurance::getRelationId,oldModel.getId())
- );
+ applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda()
+ .set(ApplyDetail::getEditor,applyChange.getEditor())
+ .set(ApplyDetail::getEditDate,applyChange.getEditDate())
+ .set(ApplyDetail::getDuId,detail.getDuId())
+ .set(ApplyDetail::getWorktypeId,detail.getWorktypeId())
+ .eq(ApplyDetail::getId,oldModel.getId())
+ );
- ApplyDetail add = new ApplyDetail();
- add.setApplyId(oldModel.getApplyId());
- add.setCreateDate(new Date());
- add.setCreator(applyChange.getEditor());
- add.setMemberId(oldModel.getMemberId());
- add.setIdcardNo(detail.getIdcardNo());
- add.setSex(Constants.getSexByIdCard(detail.getIdcardNo()));
- add.setMemberName(detail.getMemberName());
- add.setStartTime(DateUtil.getMontageDate(applyStartTime,1));
- add.setEndTime(oldModel.getEndTime());
- add.setDuId(detail.getDuId());
- add.setWorktypeId(detail.getWorktypeId());
- add.setIdcardNo(oldModel.getIdcardNo());
- add.setFee(fee.subtract(oldFee));
- add.setIsdeleted(Constants.ZERO);
- if(flag){
- add.setCurrentFee(oldCurrentFee.multiply(oldFee));
- }else{
- add.setCurrentFee(BigDecimal.ZERO);
- }
- add.setSex(oldModel.getSex());
- add.setMemberName(oldModel.getMemberName());
- add.setFromId(detail.getId());
- applyDetailJoinMapper.insert(add);
+// memberInsuranceJoinMapper.update(null,new UpdateWrapper<MemberInsurance>().lambda()
+// .set(MemberInsurance::getEndTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),3))
+// .eq(MemberInsurance::getRelationId,oldModel.getId())
+// );
- MemberInsurance memberInsurance = new MemberInsurance(add,applyChange.getId());
- memberInsurance.setSolutionId(detail.getSolutionId());
- memberInsurance.setWorktypeName(detail.getWorkTypeName());
- memberInsurance.setDuName(detail.getDuName());
- memberInsurance.setApplyChangeId(detail.getApplyChangeId());
- memberInsurance.setSolutionName(detail.getSolutionsName());
- memberInsurance.setPdCode(applyChange.getValidCode());
- memberInsurance.setBdCode(applyChange.getApplyCode());
- memberInsurance.setRelationType(Constants.ONE);
- memberInsuranceJoinMapper.insert(memberInsurance);
+ memberInsuranceJoinMapper.update(null,new UpdateWrapper<MemberInsurance>().lambda()
+ .eq(MemberInsurance::getApplyId,applyChange.getApplyId())
+ .eq(MemberInsurance::getMemberId,detail.getMemberId())
+ .le(MemberInsurance::getStartTime,applyStartTime)
+ .ge(MemberInsurance::getEndTime,applyStartTime)
+ .set(insuranceApply.getStartTime().compareTo(applyChange.getApplyStartTime())!=0,
+ MemberInsurance::getEndTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(), 3))
+ .set(insuranceApply.getStartTime().compareTo(applyChange.getApplyStartTime())==0,
+ MemberInsurance::getEndTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(), 2))
+// .ne(MemberInsurance::getId,memberInsurance.getId())
+// .eq(MemberInsurance::getRelationId,oldModel.getId())
+ );
- }else{
- applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda()
- .set(ApplyDetail::getEditor,applyChange.getEditor())
- .set(ApplyDetail::getEditDate,applyChange.getEditDate())
- .set(ApplyDetail::getDuId,detail.getDuId())
- .set(ApplyDetail::getWorktypeId,detail.getWorktypeId())
- .eq(ApplyDetail::getId,oldModel.getId())
- );
- //鍛樺伐鎶曚繚鏄庣粏璁板綍 鍘嗗彶鏁版嵁
- memberInsuranceJoinMapper.update(null,new UpdateWrapper<MemberInsurance>().lambda()
- .set(MemberInsurance::getDuId,detail.getDuId())
- .set(MemberInsurance::getDuName,detail.getDuName())
- .set(MemberInsurance::getWorktypeId,detail.getWorktypeId())
- .set(MemberInsurance::getWorktypeName,detail.getWorkTypeName())
- .eq(MemberInsurance::getRelationId,oldModel.getId())
- );
+ memberInsuranceJoinMapper.insert(memberInsurance);
- }
+
+// //濡傛灉瀹為檯鎵瑰崟鏃ユ湡 鍜� 鍘熻褰曟棩鏈熺浉绛� 鍒欑洿鎺ヤ慨鏀硅褰曟淳閬e崟浣嶄笌宸ョ淇℃伅
+// if(applyStartTime.compareTo(oldModel.getStartTime())!=Constants.ZERO){
+// //褰撳墠鏃ユ湡澶т簬鎵瑰崟鏃ユ湡 闇�瑕佸洖婊氭暟鎹疄闄呮暟鎹�
+// Boolean flag = DateUtil.getMontageDate(new Date(),2).compareTo(DateUtil.getMontageDate(applyStartTime,2))>0;
+// //鎹㈠巶鍚庡巻鍙茶褰曠殑璐圭敤 fee
+// Integer days = DateUtil.calculateBetween(DateUtil.getMontageDate(applyStartTime,3),DateUtil.getMontageDate(oldModel.getStartTime(),1),0);
+// BigDecimal oldFee = new BigDecimal(days).multiply(detail.getPrice());
+// BigDecimal fee = oldModel.getFee();
+// BigDecimal oldCurrentFee = oldModel.getCurrentFee();
+//
+// applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda()
+// .set(ApplyDetail::getEditor,applyChange.getEditor())
+// .set(ApplyDetail::getEditDate,applyChange.getEditDate())
+// .set(ApplyDetail::getEndTime,DateUtil.getMontageDate(applyStartTime,3))
+// .set(ApplyDetail::getFee,oldFee)
+// .set(flag,ApplyDetail::getCurrentFee,oldFee)
+// .eq(ApplyDetail::getId,oldModel.getId())
+// );
+//
+// //淇敼 鍛樺伐鎶曚繚鏄庣粏璁板綍 鍘嗗彶鏁版嵁
+// memberInsuranceJoinMapper.update(null,new UpdateWrapper<MemberInsurance>().lambda()
+// .set(MemberInsurance::getEndTime,DateUtil.getMontageDate(applyStartTime,3))
+// .set(MemberInsurance::getFee,oldFee)
+// .eq(MemberInsurance::getRelationId,oldModel.getId())
+// );
+//
+// ApplyDetail add = new ApplyDetail();
+// add.setApplyId(oldModel.getApplyId());
+// add.setCreateDate(new Date());
+// add.setCreator(applyChange.getEditor());
+// add.setMemberId(oldModel.getMemberId());
+// add.setIdcardNo(detail.getIdcardNo());
+// add.setSex(Constants.getSexByIdCard(detail.getIdcardNo()));
+// add.setMemberName(detail.getMemberName());
+// add.setStartTime(DateUtil.getMontageDate(applyStartTime,1));
+// add.setEndTime(oldModel.getEndTime());
+// add.setDuId(detail.getDuId());
+// add.setWorktypeId(detail.getWorktypeId());
+// add.setIdcardNo(oldModel.getIdcardNo());
+// add.setFee(fee.subtract(oldFee));
+// add.setIsdeleted(Constants.ZERO);
+// if(flag){
+// add.setCurrentFee(oldCurrentFee.multiply(oldFee));
+// }else{
+// add.setCurrentFee(BigDecimal.ZERO);
+// }
+// add.setSex(oldModel.getSex());
+// add.setMemberName(oldModel.getMemberName());
+// add.setFromId(detail.getId());
+// applyDetailJoinMapper.insert(add);
+//
+// MemberInsurance memberInsurance = new MemberInsurance(add,applyChange.getId());
+// memberInsurance.setSolutionId(detail.getSolutionId());
+// memberInsurance.setWorktypeName(detail.getWorkTypeName());
+// memberInsurance.setDuName(detail.getDuName());
+// memberInsurance.setApplyChangeId(detail.getApplyChangeId());
+// memberInsurance.setSolutionName(detail.getSolutionsName());
+// memberInsurance.setPdCode(applyChange.getValidCode());
+// memberInsurance.setBdCode(applyChange.getApplyCode());
+// memberInsurance.setRelationType(Constants.ONE);
+// memberInsuranceJoinMapper.insert(memberInsurance);
+//
+// }else{
+// applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda()
+// .set(ApplyDetail::getEditor,applyChange.getEditor())
+// .set(ApplyDetail::getEditDate,applyChange.getEditDate())
+// .set(ApplyDetail::getDuId,detail.getDuId())
+// .set(ApplyDetail::getWorktypeId,detail.getWorktypeId())
+// .eq(ApplyDetail::getId,oldModel.getId())
+// );
+// //鍛樺伐鎶曚繚鏄庣粏璁板綍 鍘嗗彶鏁版嵁
+// memberInsuranceJoinMapper.update(null,new UpdateWrapper<MemberInsurance>().lambda()
+// .set(MemberInsurance::getDuId,detail.getDuId())
+// .set(MemberInsurance::getDuName,detail.getDuName())
+// .set(MemberInsurance::getWorktypeId,detail.getWorktypeId())
+// .set(MemberInsurance::getWorktypeName,detail.getWorkTypeName())
+// .eq(MemberInsurance::getRelationId,oldModel.getId())
+// );
+//
+// }
Member member = memberMapper.selectById(detail.getMemberId());
if(Objects.isNull(member)){
diff --git a/server/shop/src/main/java/com/doumee/api/business/ApplyChangeController.java b/server/shop/src/main/java/com/doumee/api/business/ApplyChangeController.java
index 12b3293..f4ac097 100644
--- a/server/shop/src/main/java/com/doumee/api/business/ApplyChangeController.java
+++ b/server/shop/src/main/java/com/doumee/api/business/ApplyChangeController.java
@@ -10,6 +10,7 @@
import com.doumee.dao.business.model.ApplyChange;
import com.doumee.dao.business.model.InsuranceApply;
import com.doumee.service.business.ApplyChangeService;
+import com.doumee.service.business.InsuranceApplyService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -31,6 +32,8 @@
@Autowired
private ApplyChangeService applyChangeService;
+ @Autowired
+ private InsuranceApplyService insuranceApplyService;
@PreventRepeat
@ApiOperation("鏂板缓")
@@ -58,7 +61,9 @@
@PostMapping("/uploadPidan")
@RequiresPermissions("business:applychange:uploadPidan")
public ApiResponse uploadPidan(@RequestBody ApplyChange applyChange) {
- return ApiResponse.success(applyChangeService.uploadPidan(applyChange));
+ Integer applyId = applyChangeService.uploadPidan(applyChange);
+ insuranceApplyService.updateApplyCurrentFee(applyId,null);
+ return ApiResponse.success(null);
}
@PreventRepeat
@ApiOperation("骞冲彴淇敼鎵瑰崟")
diff --git a/server/shop/src/main/java/com/doumee/api/business/UnionApplyController.java b/server/shop/src/main/java/com/doumee/api/business/UnionApplyController.java
index 2ca7485..d9f5a0d 100644
--- a/server/shop/src/main/java/com/doumee/api/business/UnionApplyController.java
+++ b/server/shop/src/main/java/com/doumee/api/business/UnionApplyController.java
@@ -9,6 +9,7 @@
import com.doumee.dao.business.dto.*;
import com.doumee.dao.business.model.InsuranceApply;
import com.doumee.dao.business.model.UnionApply;
+import com.doumee.service.business.InsuranceApplyService;
import com.doumee.service.business.UnionApplyService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -31,6 +32,8 @@
@Autowired
private UnionApplyService unionApplyService;
+ @Autowired
+ private InsuranceApplyService insuranceApplyService;
@PreventRepeat
@ApiOperation("鏂板缓")
@@ -135,8 +138,17 @@
@RequiresPermissions("business:unionapply:uploadBXD")
public ApiResponse uploadBXD(@RequestBody UnionApplyBXDDTO unionApplyBXDDTO) {
unionApplyService.uploadBXD(unionApplyBXDDTO);
+ insuranceApplyService.updateApplyCurrentFee(null,unionApplyBXDDTO.getId());
+ unionApplyService.updateUnionApplyCurrentFee(unionApplyBXDDTO.getId());
return ApiResponse.success(null);
}
+ @ApiOperation("娴嬭瘯鍚堝苟鍗曞疄闄呴噾棰�")
+ @GetMapping("/testFee")
+ public ApiResponse testFee(Integer id) {
+ unionApplyService.updateUnionApplyCurrentFee(id);
+ return ApiResponse.success(null);
+ }
+
}
diff --git a/server/shop/src/main/java/com/doumee/api/business/UnionChangeController.java b/server/shop/src/main/java/com/doumee/api/business/UnionChangeController.java
index f9581af..04a7479 100644
--- a/server/shop/src/main/java/com/doumee/api/business/UnionChangeController.java
+++ b/server/shop/src/main/java/com/doumee/api/business/UnionChangeController.java
@@ -12,6 +12,7 @@
import com.doumee.dao.business.dto.UnionChangeBXDDTO;
import com.doumee.dao.business.model.UnionApply;
import com.doumee.dao.business.model.UnionChange;
+import com.doumee.service.business.InsuranceApplyService;
import com.doumee.service.business.UnionChangeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -34,6 +35,8 @@
@Autowired
private UnionChangeService unionChangeService;
+ @Autowired
+ private InsuranceApplyService insuranceApplyService;
@PreventRepeat
@ApiOperation("鏂板缓")
@@ -123,6 +126,7 @@
@RequiresPermissions("business:unionchange:uploadBXD")
public ApiResponse uploadBXD(@RequestBody UnionChangeBXDDTO unionChangeBXDDTO) {
unionChangeService.uploadBXD(unionChangeBXDDTO);
+ insuranceApplyService.updateApplyCurrentFee(null,unionChangeBXDDTO.getApplyId());
return ApiResponse.success(null);
}
diff --git a/server/shop/src/main/java/com/doumee/api/system/SystemDictController.java b/server/shop/src/main/java/com/doumee/api/system/SystemDictController.java
index 71a297a..575d338 100644
--- a/server/shop/src/main/java/com/doumee/api/system/SystemDictController.java
+++ b/server/shop/src/main/java/com/doumee/api/system/SystemDictController.java
@@ -2,13 +2,16 @@
import com.doumee.api.BaseController;
import com.doumee.biz.system.SystemDictBiz;
+import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.constants.OperaType;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
import com.doumee.dao.system.dto.QuerySystemDictDTO;
import com.doumee.dao.system.model.SystemDict;
+import com.doumee.dao.system.model.SystemDictData;
import com.doumee.dao.system.vo.SystemDictListVO;
import com.doumee.service.system.SystemDictService;
import io.swagger.annotations.Api;
@@ -20,6 +23,7 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
/**
* @author Eva.Caesar Liu
@@ -79,4 +83,30 @@
public ApiResponse<PageData<SystemDictListVO>> findPage (@RequestBody PageWrap<QuerySystemDictDTO> pageWrap) {
return ApiResponse.success(systemDictService.findPage(pageWrap));
}
+
+
+
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
+
+ @ApiOperation("鏌ヨ瀛楀吀鍊�")
+ @PostMapping("/getAgreement")
+ public ApiResponse<List<String>> getAgreement() {
+ List<String> list = new ArrayList<>();
+ SystemDictData use = systemDictDataBiz.queryByCode(Constants.PROTOCOL,Constants.USE);
+ if(Objects.nonNull(use)){
+ list.add(use.getCode());
+ }else{
+ list.add("");
+ }
+ SystemDictData privacy = systemDictDataBiz.queryByCode(Constants.PROTOCOL,Constants.PRIVACY);
+ if(Objects.nonNull(privacy)){
+ list.add(privacy.getCode());
+ }else{
+ list.add("");
+ }
+ return ApiResponse.success(list);
+ }
+
+
}
diff --git a/server/shop/src/main/resources/application.yml b/server/shop/src/main/resources/application.yml
index 0252e02..b5c9b1e 100644
--- a/server/shop/src/main/resources/application.yml
+++ b/server/shop/src/main/resources/application.yml
@@ -12,7 +12,7 @@
# application:git
# name: doumeemes
profiles:
- active: dev
+ active: pro
# JSON杩斿洖閰嶇疆
jackson:
--
Gitblit v1.9.3