From c2cdc5a3def0fb52583cbb28788310afe679e4ee Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期四, 21 三月 2024 18:26:26 +0800
Subject: [PATCH] git ch
---
server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java | 4
server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java | 7
server/service/src/main/java/com/doumee/dao/business/model/UnionApply.java | 4
server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java | 2
server/service/src/main/java/com/doumee/dao/business/dto/UnionApplyBXDDDetailTO.java | 32 +++
server/service/src/main/java/com/doumee/dao/business/dto/UploadMultifileDTO.java | 25 ++
server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java | 338 +++++++++++++++++++++++++++++++++
server/service/src/main/java/com/doumee/dao/business/join/UnionApplyJoinMapper.java | 13 +
server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java | 6
server/service/src/main/java/com/doumee/core/utils/Constants.java | 14 +
server/service/src/main/java/com/doumee/service/business/UnionApplyService.java | 28 ++
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java | 13 +
server/company/src/main/java/com/doumee/api/system/SystemController.java | 1
server/service/src/main/java/com/doumee/dao/business/dto/UnionApplyBXDDTO.java | 43 ++++
server/service/src/main/java/com/doumee/dao/business/dto/InsuranceApplyQueryDTO.java | 4
server/service/src/main/java/com/doumee/dao/business/model/ApplyDetail.java | 10 +
16 files changed, 532 insertions(+), 12 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 2debb6c..59512ec 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
@@ -116,7 +116,7 @@
@ApiOperation("鏍规嵁ID鏌ヨ")
@GetMapping("/{id}")
@RequiresPermissions("business:applychange:query")
- public ApiResponse findById(@PathVariable Integer id) {
+ public ApiResponse<ApplyChange> findById(@PathVariable Integer id) {
return ApiResponse.success(applyChangeService.findDetail(id));
}
diff --git a/server/company/src/main/java/com/doumee/api/system/SystemController.java b/server/company/src/main/java/com/doumee/api/system/SystemController.java
index 85cb705..c6d61cb 100644
--- a/server/company/src/main/java/com/doumee/api/system/SystemController.java
+++ b/server/company/src/main/java/com/doumee/api/system/SystemController.java
@@ -68,6 +68,7 @@
subject.logout();
return ApiResponse.success(null);
}
+
@Trace(withRequestParameters = false)
@ApiOperation("淇敼褰撳墠鐢ㄦ埛瀵嗙爜")
@PostMapping("/updatePwd")
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 4efd1ab..c7962f9 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
@@ -439,6 +439,14 @@
CA_APPLY_JIAJIAN_SIGN(13, "鍔犲噺淇濈敵璇风绔犳枃浠�", "鍔犲噺淇濈敵璇风绔犳枃浠�"),
CA_APPLY_CHANGEUNIT_SIGN(14, "鎹㈠巶鐢宠绛剧珷鏂囦欢", "鎹㈠巶鐢宠绛剧珷鏂囦欢"),
+ HBD_BD_APPLY_PDF(15, "鍚堝苟鍗�-淇濆崟鐢宠琛≒DF ", "鍚堝苟鍗�-淇濆崟鐢宠琛≒DF "),
+ HBD_BD_SIGNED_PDF(16, "鍚堝苟鍗�-绛剧讲鍚庝繚鍗曠敵璇疯〃PDF", "鍚堝苟鍗�-绛剧讲鍚庝繚鍗曠敵璇疯〃PDF"),
+
+
+
+
+
+
;
// 鎴愬憳鍙橀噺
@@ -847,7 +855,11 @@
}
public enum UnionApplyStatus {
- UPLOAD(1, "寰呬笂浼犳姇淇濆崟","",0),
+ MERGE(1, "寰呬笂浼犱繚鍗�","",0),
+ WAIT_SIGNATURE(2, "寰呯缃�","",0),
+ UPLOAD_INSURANCE_POLICY(3, "寰呬笂浼犱繚鍗�","",0),
+ FINISH(4, "淇濋殰涓�","",0),
+ CLOSE(5, "鍏抽棴","",0),
;
// 鎴愬憳鍙橀噺
private String name;
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/InsuranceApplyQueryDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/InsuranceApplyQueryDTO.java
index 91ea1bb..532210b 100644
--- a/server/service/src/main/java/com/doumee/dao/business/dto/InsuranceApplyQueryDTO.java
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/InsuranceApplyQueryDTO.java
@@ -76,4 +76,8 @@
@ApiModelProperty(value = "鐘舵�� 0寰呭鏍� 1寰呭嚭鍗� 2淇濋殰涓� 3宸茶繃鏈� 4宸叉挙鍥� 5閫�鍥炵敵璇蜂腑 6宸插叧闂�", example = "1")
private Integer statusCollect;
+
+
+ @ApiModelProperty(value = "鐢熸晥涓� 0=鏄�")
+ private Integer isEffective;
}
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/UnionApplyBXDDDetailTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/UnionApplyBXDDDetailTO.java
new file mode 100644
index 0000000..0630205
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/UnionApplyBXDDDetailTO.java
@@ -0,0 +1,32 @@
+package com.doumee.dao.business.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/3/20 16:52
+ */
+@Data
+public class UnionApplyBXDDDetailTO {
+
+ @ApiModelProperty(value = "鎶曚繚鍗曚富閿� insurance_apply")
+ private Integer applyId;
+
+ @ApiModelProperty(value = "鏈嶅姟璐� 姣忎汉")
+ private BigDecimal serverMoney;
+
+ @ApiModelProperty(value = "淇濆崟鏂囦欢鍦板潃")
+ private String fileUrl;
+
+ @ApiModelProperty(value = "鏂囦欢鍚嶇О")
+ private String fileName;
+
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/UnionApplyBXDDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/UnionApplyBXDDTO.java
new file mode 100644
index 0000000..cf7aa4b
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/UnionApplyBXDDTO.java
@@ -0,0 +1,43 @@
+package com.doumee.dao.business.dto;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/3/20 16:52
+ */
+@Data
+public class UnionApplyBXDDTO {
+
+ @ApiModelProperty(value = "鍚堝苟鍗曚富閿�")
+ private Integer id;
+
+ @ApiModelProperty(value = "淇濆崟鍙�")
+ private String code;
+
+ @ApiModelProperty(value = "淇濋櫓鐢熸晥姝㈡湡")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date endTime;
+
+ @ApiModelProperty(value = "淇濋櫓鐢熸晥璧锋湡")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date startTime;
+
+ @ApiModelProperty(value = "淇濆崟鏂囦欢鍦板潃")
+ private String fileUrl;
+
+ @ApiModelProperty(value = "淇濆崟鏂囦欢鍚嶇О")
+ private String fileName;
+
+ @ApiModelProperty(value = "鍚堝苟鍗曟槑缁嗕繚鍗曚俊鎭�")
+ private List<UnionApplyBXDDDetailTO> unionApplyBXDDDetailTOList;
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/UploadMultifileDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/UploadMultifileDTO.java
new file mode 100644
index 0000000..1b472ca
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/UploadMultifileDTO.java
@@ -0,0 +1,25 @@
+package com.doumee.dao.business.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/3/19 16:52
+ */
+@Data
+public class UploadMultifileDTO {
+
+
+ @ApiModelProperty(value = "涓氬姟涓婚敭")
+ private Integer businessId;
+
+ @ApiModelProperty(value = "鏂囦欢璺緞")
+ private String filePath;
+
+ @ApiModelProperty(value = "鏂囦欢鍚嶇О")
+ private String fileName;
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/join/UnionApplyJoinMapper.java b/server/service/src/main/java/com/doumee/dao/business/join/UnionApplyJoinMapper.java
new file mode 100644
index 0000000..3a10f64
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/join/UnionApplyJoinMapper.java
@@ -0,0 +1,13 @@
+package com.doumee.dao.business.join;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.UnionApply;
+import com.github.yulichang.base.mapper.MPJJoinMapper;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/03/12 11:34
+ */
+public interface UnionApplyJoinMapper extends MPJJoinMapper<UnionApply> {
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java b/server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java
index d8a786d..39fd7bb 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java
@@ -151,6 +151,12 @@
@TableField(exist = false)
private String createDateE;
+ @ApiModelProperty(value = "鎵瑰崟鐢熸晥璧锋湡鏃堕棿")
+ private String applyStartS;
+
+ @ApiModelProperty(value = "鎵瑰崟姝㈡晥鏃堕棿")
+ private String applyStartE;
+
@ApiModelProperty(value = "淇濋櫓鏂规涓婚敭")
@TableField(exist = false)
private Integer solutionsId;
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/ApplyDetail.java b/server/service/src/main/java/com/doumee/dao/business/model/ApplyDetail.java
index f52f696..46a235c 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/ApplyDetail.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/ApplyDetail.java
@@ -72,8 +72,10 @@
@ApiModelProperty(value = "瀹為檯淇濋櫓鐢熸晥璧锋湡")
@ExcelColumn(name="淇濋櫓鐢熸晥璧锋湡",index =8,width = 12,dateFormat="yyyy-MM-dd HH:mm:ss")
private Date startTime;
+
@ApiModelProperty(value = "鍚堝苟鍗曠紪鐮侊紙鍏宠仈union_apply)", example = "1")
private Integer unionApplyId;
+
@ApiModelProperty(value = "韬唤璇佸彿鐮�")
@ExcelColumn(name="韬唤璇佸彿鐮�",index = 5,width = 12)
private String idcardNo;
@@ -89,6 +91,10 @@
@ApiModelProperty(value = "璐圭敤", example = "1")
@ExcelColumn(name="璐圭敤",index = 10,width = 5)
private BigDecimal fee;
+
+
+ @ApiModelProperty(value = "鍗曚环", example = "1")
+ private BigDecimal price;
@ApiModelProperty(value = "鎬у埆 0=鐢�;1=濂�", example = "1")
@ExcelColumn(name="鎬у埆",index =4,valueMapping = "0=鐢�;1=濂�;",width = 3)
@@ -119,6 +125,10 @@
@TableField(exist = false)
private String validCode;
+ @ApiModelProperty(value = "淇濋殰鐘舵�侊細0=淇濋殰涓紱1=涓嶅湪淇�")
+ @TableField(exist = false)
+ private Integer applyStatus;
+
@ApiModelProperty(value = "娲鹃仯鍗曚綅鍚嶇О")
@TableField(exist = false)
@ExcelColumn(name="娲鹃仯鍗曚綅",index = 6,width = 10)
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/UnionApply.java b/server/service/src/main/java/com/doumee/dao/business/model/UnionApply.java
index 0ec7761..b1f4ee3 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/UnionApply.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/UnionApply.java
@@ -103,4 +103,8 @@
@ExcelColumn(name="鍦ㄧ嚎绛剧珷鍚堝悓鍙�")
private String signApplyNo;
+ @ApiModelProperty(value = "鏂规缂栫爜锛堝叧鑱攕olutions锛�", example = "1")
+ @ExcelColumn(name="鏂规缂栫爜锛堝叧鑱攕olutions锛�")
+ private Integer solutionId;
+
}
diff --git a/server/service/src/main/java/com/doumee/service/business/UnionApplyService.java b/server/service/src/main/java/com/doumee/service/business/UnionApplyService.java
index 354081f..d62db04 100644
--- a/server/service/src/main/java/com/doumee/service/business/UnionApplyService.java
+++ b/server/service/src/main/java/com/doumee/service/business/UnionApplyService.java
@@ -3,6 +3,8 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.dto.SaveUnionApplyDTO;
+import com.doumee.dao.business.dto.UnionApplyBXDDTO;
+import com.doumee.dao.business.dto.UploadMultifileDTO;
import com.doumee.dao.business.model.UnionApply;
import java.util.List;
@@ -101,4 +103,30 @@
* @param saveUnionApplyDTO
*/
void merge(SaveUnionApplyDTO saveUnionApplyDTO);
+
+ /**
+ * 鍙栨秷鍚堝苟鍗�
+ * @param id
+ */
+ void cancelMerge(Integer id);
+
+ /**
+ * 涓婁紶鎶曚繚鍗�
+ * @param uploadMultifileDTO
+ */
+ void uploadToubaodan(UploadMultifileDTO uploadMultifileDTO);
+
+ /**
+ * 鍚堝苟鍗� 淇濆崟绛剧讲
+ * @param id
+ * @return
+ */
+ String getSignLink(Integer id);
+
+ /**
+ * 涓婁紶淇濋櫓鍗�
+ * @param unionApplyBXDDTO
+ */
+ void uploadBXD(UnionApplyBXDDTO unionApplyBXDDTO);
+
}
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 1398edb..d1411f1 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
@@ -1472,7 +1472,9 @@
.eq(!Objects.isNull(model.getApplyId()),ApplyChange::getApplyId,model.getApplyId())
.eq(!Objects.isNull(model.getBaseSolutionsId()),Solutions::getBaseId,model.getBaseSolutionsId())
.ge(StringUtils.isNotBlank(model.getCreateDateS()),ApplyChange::getCreateDate, model.getCreateDateS()+" 00:00:00" )
- .le(StringUtils.isNotBlank(model.getCreateDateE()),ApplyChange::getCreateDate, model.getCreateDateE()+" 23:59:59" );
+ .le(StringUtils.isNotBlank(model.getCreateDateE()),ApplyChange::getCreateDate, model.getCreateDateE()+" 23:59:59" )
+ .ge(StringUtils.isNotBlank(model.getApplyStartS()),ApplyChange::getApplyStartTime, model.getApplyStartS()+" 00:00:00" )
+ .le(StringUtils.isNotBlank(model.getApplyStartE()),ApplyChange::getApplyStartTime, model.getApplyStartE()+" 23:59:59" );
LoginUserInfo loginUserInfo =(LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
//浼佷笟浜哄憳鏌ョ湅鏈紒涓氭暟鎹�
if(loginUserInfo.getType().equals(Constants.ONE)){
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java
index 366e9f3..b62574e 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java
@@ -201,6 +201,7 @@
queryWrapper.selectAs(Member::getIdcardNo,ApplyDetail::getIdcardNo);
queryWrapper.selectAs(Member::getName,ApplyDetail::getMemberName);
queryWrapper.selectAs(Solutions::getName,ApplyDetail::getSolutionName);
+ queryWrapper.selectAs(InsuranceApply::getStatus,ApplyDetail::getSolutionName);
queryWrapper.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId);
queryWrapper.leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId);
queryWrapper.leftJoin(Member.class,Member::getId,ApplyDetail::getMemberId);
@@ -242,6 +243,12 @@
int num = 1;
for (ApplyDetail d : pageData.getRecords()){
d.setSortnum(num++);
+ if(d.getEndTime().compareTo(new Date())<0){
+ d.setApplyStatus(Constants.ONE);
+ }else{
+ d.setApplyStatus(Constants.ZERO);
+ }
+
}
}
return pageData;
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 e12b11b..901567a 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
@@ -251,8 +251,8 @@
}
return 1;
-
}
+
@Override
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
public Integer editBaoxiandan(InsuranceApply param) {
@@ -1290,8 +1290,9 @@
queryWrapper.selectAs(Company::getName,InsuranceApply::getCompanyName);
queryWrapper.selectAs(Solutions::getName,InsuranceApply::getSolutionsName);
queryWrapper.selectAs(Solutions::getType,InsuranceApply::getSolutionType);
- queryWrapper.select(" ( select sum(td.fee) from taxes ts inner join tax_detial td on ts.TAX_ID = ts.id where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id ) as taxesMoney ");
- queryWrapper.select(" ( select td.CREATE_DATE from taxes ts inner join tax_detial td on ts.TAX_ID = ts.id where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id order by td.CREATE_DATE desc limit 1 ) as taxesLast ");
+ queryWrapper.select(" ( select max(ac.APPLY_START_TIME) from apply_change ac where ac.apply_id = t.id and ac.status = 2 ) as lastChangeDate");
+ queryWrapper.select(" ( select sum(td.fee) from taxes ts inner join tax_detial td on td.TAX_ID = ts.id where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id ) as taxesMoney ");
+ queryWrapper.select(" ( select td.CREATE_DATE from taxes ts inner join tax_detial td on td.TAX_ID = ts.id where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id order by td.CREATE_DATE desc limit 1 ) as taxesLast ");
queryWrapper.leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId);
queryWrapper.leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId);
queryWrapper.eq(InsuranceApply::getIsdeleted,Constants.ZERO);
@@ -1341,6 +1342,12 @@
if (CollectionUtils.isNotEmpty(model.getIds())) {
queryWrapper.in(InsuranceApply::getId, model.getIds());
}
+ if (CollectionUtils.isNotEmpty(model.getIds())) {
+ queryWrapper.in(InsuranceApply::getId, model.getIds());
+ }
+ if (model.getIsEffective() != null && model.getIsEffective().equals(Constants.ZERO)) {
+ queryWrapper.ge(InsuranceApply::getEndTime,DateUtil.DateToStr(new Date(),"yyyy-MM-dd HH:mm:ss"));
+ }
List<InsuranceApply> list = insuranceApplyJoinMapper.selectJoinList(InsuranceApply.class, queryWrapper);
return list;
}
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 b9450d7..379f7bc 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
@@ -1,35 +1,48 @@
package com.doumee.service.business.impl;
+import com.alibaba.fastjson.JSONObject;
+import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.CompanyMapper;
+import com.doumee.dao.business.MultifileMapper;
+import com.doumee.dao.business.SolutionsMapper;
import com.doumee.dao.business.UnionApplyMapper;
import com.doumee.dao.business.dto.SaveUnionApplyDTO;
+import com.doumee.dao.business.dto.UnionApplyBXDDDetailTO;
+import com.doumee.dao.business.dto.UnionApplyBXDDTO;
+import com.doumee.dao.business.dto.UploadMultifileDTO;
+import com.doumee.dao.business.join.ApplyDetailJoinMapper;
import com.doumee.dao.business.join.InsuranceApplyJoinMapper;
-import com.doumee.dao.business.model.InsuranceApply;
-import com.doumee.dao.business.model.Solutions;
-import com.doumee.dao.business.model.UnionApply;
+import com.doumee.dao.business.join.UnionApplyJoinMapper;
+import com.doumee.dao.business.model.*;
import com.doumee.service.business.UnionApplyService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.service.business.third.SignService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.swagger.models.auth.In;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
+import java.util.stream.Collectors;
/**
* 鍚堝苟鎶曚繚鍗曚俊鎭〃Service瀹炵幇
@@ -43,7 +56,28 @@
private UnionApplyMapper unionApplyMapper;
@Autowired
+ private UnionApplyJoinMapper unionApplyJoinMapper;
+
+ @Autowired
+ private SolutionsMapper solutionsMapper;
+
+ @Autowired
+ private CompanyMapper companyMapper;
+
+ @Autowired
private InsuranceApplyJoinMapper insuranceApplyJoinMapper;
+
+ @Autowired
+ private ApplyDetailJoinMapper applyDetailJoinMapper;
+
+ @Autowired
+ private MultifileMapper multifileMapper;
+
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
+
+ @Autowired
+ private SignService signService;
@Override
public Integer create(UnionApply unionApply) {
@@ -222,10 +256,15 @@
unionApply.setStartTime(saveUnionApplyDTO.getStartDate());
unionApply.setEndTime(saveUnionApplyDTO.getEndDate());
unionApply.setCheckDate(new Date());
- unionApply.setStatus(Constants.UnionApplyStatus.UPLOAD.getKey());
+ unionApply.setStatus(Constants.UnionApplyStatus.MERGE.getKey());
unionApply.setCheckUserId(user.getId());
- unionApply.setFee(insuranceApplyList.stream().map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
unionApply.setCurrentFee(BigDecimal.ZERO);
+
+ Integer maxDays = DateUtil.calculateBetween(saveUnionApplyDTO.getStartDate(),saveUnionApplyDTO.getEndDate(),0);
+ List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectList(new QueryWrapper<ApplyDetail>().lambda().select(ApplyDetail::getPrice)
+ .in(ApplyDetail::getApplyId,saveUnionApplyDTO.getApplyIds()));
+ //unionApply.setFee(insuranceApplyList.stream().map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+ unionApply.setFee(applyDetailList.stream().map(i->i.getPrice().multiply(new BigDecimal(maxDays))).reduce(BigDecimal.ZERO,BigDecimal::add));
unionApplyMapper.insert(unionApply);
insuranceApplyJoinMapper.update(null,new UpdateWrapper<InsuranceApply>().lambda()
@@ -234,16 +273,303 @@
.set(InsuranceApply::getCheckUserId,user.getId())
.in(InsuranceApply::getId,saveUnionApplyDTO.getApplyIds()));
+ applyDetailJoinMapper.update(null,new UpdateWrapper<ApplyDetail>().lambda()
+ .set(ApplyDetail::getUnionApplyId,unionApply.getId())
+ .in(ApplyDetail::getApplyId,saveUnionApplyDTO.getApplyIds()));
+
}
+ /**
+ * 鍙栨秷淇濆崟鍚堝苟
+ * @param id
+ */
+ @Override
+ @Transactional(rollbackFor = {Exception.class,BusinessException.class})
public void cancelMerge(Integer id){
LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
if(user.getType().equals(Constants.TWO)){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炲晢鎴风敤鎴凤紝鏃犳硶杩涜璇ユ搷浣�");
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炲晢鎴风敤鎴凤紝鏃犳硶杩涜璇ユ搷浣滐紒");
+ }
+ UnionApply unionApply = unionApplyMapper.selectById(id);
+ if(Objects.isNull(unionApply)||!Constants.equalsInteger(unionApply.getIsdeleted(),Constants.ZERO)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ if(!unionApply.getCompanyId().equals(user.getCompanyId())){
+ throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"瀵逛笉璧烽潪鎮ㄧ殑鍚堝苟鍗曪紝鎮ㄦ棤娉曡繘琛屾搷浣滐紒");
+ }
+ if(unionApply.getStatus().equals(Constants.UnionApplyStatus.FINISH.getKey())){
+ throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"瀵逛笉璧凤紝鍚堝苟鍗曚笟鍔″凡瀹岀粨锛屾偍鏃犳硶杩涜璇ユ搷浣滐紒");
+ }
+ //鍚堝苟鍗曠姸鎬佸浜庡緟鎶曚繚
+ if(unionApply.getStatus().equals(Constants.UnionApplyStatus.UPLOAD_INSURANCE_POLICY.getKey())
+ || unionApply.getStatus().equals(Constants.UnionApplyStatus.WAIT_SIGNATURE.getKey())){
+ //TODO 鍒犻櫎浼佷笟鎶曚繚鍗曠殑 绛剧讲鏁版嵁
+
+ }
+ insuranceApplyJoinMapper.update(null,new UpdateWrapper<InsuranceApply>().lambda()
+ .set(InsuranceApply::getUnionApplyId,null)
+ .set(InsuranceApply::getCheckDate,new Date())
+ .set(InsuranceApply::getCheckUserId,user.getId())
+ .eq(InsuranceApply::getUnionApplyId,unionApply.getId()));
+
+
+ applyDetailJoinMapper.update(null,new UpdateWrapper<ApplyDetail>().lambda()
+ .set(ApplyDetail::getUnionApplyId,null)
+ .eq(ApplyDetail::getUnionApplyId,unionApply.getId()));
+
+
+ unionApplyMapper.update(null,new UpdateWrapper<UnionApply>().lambda()
+ .set(UnionApply::getCheckDate,new Date())
+ .set(UnionApply::getCheckUserId,user.getId())
+ .set(UnionApply::getStatus,Constants.UnionApplyStatus.CLOSE.getKey())
+ .eq(UnionApply::getId,unionApply.getId())
+ );
+ }
+
+
+ @Override
+ @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+ public void uploadToubaodan(UploadMultifileDTO uploadMultifileDTO){
+ if(uploadMultifileDTO.getBusinessId() == null
+ ||StringUtils.isBlank( uploadMultifileDTO.getFilePath())
+ ||StringUtils.isBlank( uploadMultifileDTO.getFileName())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ UnionApply unionApply = unionApplyMapper.selectById(uploadMultifileDTO.getBusinessId());
+ if(Objects.isNull(unionApply)||!Constants.equalsInteger(unionApply.getIsdeleted(),Constants.ZERO)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ if(!unionApply.getCompanyId().equals(user.getCompanyId())){
+ throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"瀵逛笉璧烽潪鎮ㄧ殑鍚堝苟鍗曪紝鎮ㄦ棤娉曡繘琛屾搷浣滐紒");
+ }
+ if(unionApply.getStatus().equals(Constants.UnionApplyStatus.FINISH.getKey())){
+ throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"瀵逛笉璧凤紝鍚堝苟鍗曚笟鍔″凡瀹岀粨锛屾偍鏃犳硶杩涜璇ユ搷浣滐紒");
+ }
+ if(unionApply.getStatus().equals(Constants.UnionApplyStatus.MERGE.getKey())){
+ throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"瀵逛笉璧凤紝鍚堝苟鍗曚笟鍔″凡娴佽浆锛屾偍鏃犳硶杩涜璇ユ搷浣滐紒");
}
+ unionApply.setCheckDate(new Date());
+ unionApply.setCheckUserId(user.getId());
+ unionApply.setStatus(Constants.UnionApplyStatus.WAIT_SIGNATURE.getKey());
+ unionApply.setEditor(user.getId());
+ unionApply.setEditDate(new Date());
+ unionApplyMapper.updateById(unionApply);
+
+ Multifile multifile = new Multifile();
+ multifile.setIsdeleted(Constants.ZERO);
+ multifile.setCreator(user.getId());
+ multifile.setCreateDate(new Date());
+ multifile.setObjId(uploadMultifileDTO.getBusinessId());
+ multifile.setCreateDate(new Date());
+ multifile.setObjType(Constants.MultiFile.HBD_BD_SIGNED_PDF.getKey());
+ multifile.setType(Constants.TWO);
+ multifile.setFileurl(uploadMultifileDTO.getFilePath());
+ multifile.setName(uploadMultifileDTO.getFileName());
+ multifileMapper.insert(multifile);
+
}
+ /**
+ * 鍚堝苟鍗� - 鎶曚繚鐢宠绛剧讲
+ * @param id
+ * @return
+ */
+ @Override
+ @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+ public String getSignLink(Integer id) {
+ if(id == null ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ UnionApply unionApply = unionApplyJoinMapper.selectById(id);
+ if(unionApply == null ||!Constants.equalsInteger(unionApply.getIsdeleted(),Constants.ZERO)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ Solutions solutions = solutionsMapper.selectById(unionApply.getSolutionId());
+ if(Objects.isNull(solutions)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈡柟妗堜俊鎭�");
+ }
+
+ if(!Constants.equalsInteger(unionApply.getStatus(),Constants.UnionApplyStatus.WAIT_SIGNATURE.getKey())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ュ悎骞跺崟鐘舵�佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
+ }
+ Multifile f = multifileMapper.selectOne(new QueryWrapper<Multifile>().lambda()
+ .eq(Multifile::getObjId,unionApply.getId())
+ .eq(Multifile::getObjType,Constants.MultiFile.HBD_BD_SIGNED_PDF.getKey())
+ .eq(Multifile::getIsdeleted,Constants.ZERO)
+ .last("limit 1"));
+ if(f == null || StringUtils.isBlank(f.getFileurl())){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇寰呯绔犳枃浠跺け璐ワ紝璇疯仈绯荤‘璁ゅ悎骞朵繚鍗曟槸鍚︽纭紒");
+ }
+
+ Company company = companyMapper.selectById(unionApply.getCompanyId());
+ if(company== null || StringUtils.isBlank( company.getEmail()) || !Constants.equalsInteger(company.getSignStatus(),Constants.THREE)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝鍟嗘埛灏氭湭鍏峰鍦ㄧ嚎绛剧珷鏉′欢锛岃鑱旂郴骞冲彴绠$悊鍛樼‘璁");
+ }
+
+ String url = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+systemDictDataBiz.queryByCode(Constants.OSS,Constants.APPLY_FILE).getCode()+f.getFileurl();
+ String notifyUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SIGN_DONE_NOTIFY_URL).getCode();
+ notifyUrl = notifyUrl.replace("${type}","0").replace("${id}", unionApply.getId().toString());
+
+ String applyNo = signService.applySign(company.getName(),url,company.getName(),company.getCode(),company.getEmail(),null,company.getSignId(),notifyUrl);
+
+ if(StringUtils.isBlank(applyNo) ){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇鍦ㄧ嚎绛剧珷鍦板潃澶辫触锛岃绋嶅悗閲嶈瘯锛�");
+ }
+ String link = signService.signLink(applyNo,company.getName(),company.getCode());
+ if(StringUtils.isBlank(link) ){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇鍦ㄧ嚎绛剧珷鍦板潃澶辫触锛岃绋嶅悗閲嶈瘯锛�");
+ }
+ UnionApply update= new UnionApply();
+ update.setId(unionApply.getId());
+ update.setEditor(user.getId());
+ update.setEditDate(new Date());
+ update.setSignApplyNo(applyNo);
+ unionApplyJoinMapper.updateById(update);
+ return link;
+ }
+
+
+
+ @Override
+ @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+ public void uploadBXD(UnionApplyBXDDTO unionApplyBXDDTO){
+ if(Objects.isNull(unionApplyBXDDTO)
+ || Objects.isNull(unionApplyBXDDTO.getId())
+ || Objects.isNull(unionApplyBXDDTO.getStartTime())
+ || Objects.isNull(unionApplyBXDDTO.getEndTime())
+ || StringUtils.isBlank(unionApplyBXDDTO.getCode())
+ || Objects.isNull(unionApplyBXDDTO.getUnionApplyBXDDDetailTOList())
+ ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ UnionApply unionApply = unionApplyJoinMapper.selectById(unionApplyBXDDTO.getId());
+ if(unionApply == null ||!Constants.equalsInteger(unionApply.getIsdeleted(),Constants.ZERO)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ if(unionApply.getStatus().equals(Constants.UnionApplyStatus.UPLOAD_INSURANCE_POLICY.getKey())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ュ悎骞跺崟鐘舵�佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
+ }
+ //鍔犱环鍙傛暟
+ List<UnionApplyBXDDDetailTO> unionApplyBXDDDetailTOList = unionApplyBXDDTO.getUnionApplyBXDDDetailTOList();
+
+ //鎵�鏈夋姇淇濈敵璇蜂繚鍗曟槑缁嗚
+ List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectList(new QueryWrapper<ApplyDetail>().lambda().select(ApplyDetail::getPrice)
+ .in(ApplyDetail::getUnionApplyId,unionApply.getId()));
+ //鎬诲ぉ鏁�
+ Integer maxDays = DateUtil.calculateBetween(unionApplyBXDDTO.getStartTime(),unionApplyBXDDTO.getEndTime(),0);
+ //瀹為檯宸茬粡浜х敓璐圭敤鐨勫ぉ鏁�
+ Integer useDays = 0 ;
+ if(unionApplyBXDDTO.getStartTime().compareTo(new Date()) <= 0 && unionApplyBXDDTO.getEndTime().compareTo(new Date()) >= 0 ){
+ //褰撳墠鏃ユ湡鍦ㄥ紑濮嬬粨鏉熸棩鏈熶箣鍐�
+ useDays = DateUtil.calculateBetween(unionApplyBXDDTO.getStartTime(),new Date(),0);
+ }else if(unionApplyBXDDTO.getStartTime().compareTo(new Date()) <= 0&&unionApplyBXDDTO.getEndTime().compareTo(new Date()) <= 0){
+ //褰撳墠鏃ユ湡鍦ㄧ粨鏉熸棩鏈熶箣鍚�
+ useDays = -1;
+ }
+
+ BigDecimal sumFee = BigDecimal.ZERO;
+ BigDecimal sumCurrFee = BigDecimal.ZERO;
+
+ for (UnionApplyBXDDDetailTO unionApplyBXDDDetailTO:unionApplyBXDDDetailTOList) {
+ InsuranceApply insuranceApply = insuranceApplyJoinMapper.selectById(unionApplyBXDDDetailTO.getApplyId());
+ if(Objects.isNull(insuranceApply)||!Constants.equalsInteger(insuranceApply.getIsdeleted(),Constants.ZERO)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ if(!insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.PLATFORM_CHECK_PASS.getKey())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ユ姇淇濆崟鐘舵�佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
+ }
+ List<ApplyDetail> applyDetails = applyDetailList.stream().filter(m->m.getApplyId().equals(unionApplyBXDDDetailTO.getApplyId())).collect(Collectors.toList());
+ if(CollectionUtils.isEmpty(applyDetails)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ //鎻愪氦鍚庣殑鏂颁环鏍� 鍔犱笂鏈嶅姟璐�
+ BigDecimal price = applyDetails.get(Constants.ZERO).getPrice().add(unionApplyBXDDDetailTO.getServerMoney());
+ //瀹為檯宸蹭骇鐢熻垂鐢�
+ BigDecimal currentFee = BigDecimal.ZERO;
+ if(useDays==-1){
+ currentFee = new BigDecimal(maxDays).multiply(price);
+ }else if(useDays>0){
+ currentFee = new BigDecimal(useDays).multiply(price);
+ }
+ //鏇存柊鎶曚繚鐢宠鍗�
+ insuranceApplyJoinMapper.update(null,new UpdateWrapper<InsuranceApply>().lambda()
+ .set(InsuranceApply::getFee,
+ new BigDecimal(applyDetails.size())
+ .multiply(price)
+ )
+ .set(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())
+ .set(InsuranceApply::getFee,price.multiply(new BigDecimal(applyDetails.size())).multiply(new BigDecimal(maxDays)))
+ .set(InsuranceApply::getCurrentFee,currentFee.multiply(new BigDecimal(applyDetails.size())))
+ .set(InsuranceApply::getStartTime,unionApplyBXDDTO.getStartTime())
+ .set(InsuranceApply::getEndTime,unionApplyBXDDTO.getEndTime())
+ .set(InsuranceApply::getEditDate,new Date())
+ .set(InsuranceApply::getEditor,user.getId())
+ .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::getCurrentFee,currentFee)
+ .set(ApplyDetail::getEditDate,new Date())
+ .set(ApplyDetail::getEditor,user.getId())
+ .set(ApplyDetail::getStartTime,unionApplyBXDDTO.getStartTime())
+ .set(ApplyDetail::getEndTime,unionApplyBXDDTO.getEndTime())
+ .in(ApplyDetail::getId,applyDetails.stream().map(m->m.getId()).collect(Collectors.toList()))
+ );
+ //涓婁紶淇濆崟淇℃伅
+ if(StringUtils.isNotBlank(unionApplyBXDDDetailTO.getFileUrl())){
+ Multifile multifile = new Multifile();
+ multifile.setIsdeleted(Constants.ZERO);
+ multifile.setCreator(user.getId());
+ multifile.setCreateDate(new Date());
+ multifile.setObjId(insuranceApply.getId());
+ multifile.setObjType(Constants.MultiFile.BD_APPLY_PDF.getKey());
+ multifile.setType(Constants.TWO);
+ multifile.setFileurl(unionApplyBXDDDetailTO.getFileUrl());
+ multifile.setName(unionApplyBXDDDetailTO.getFileName());
+ multifileMapper.insert(multifile);
+ }
+ sumFee = sumFee.add(price.multiply(new BigDecimal(applyDetails.size())).multiply(new BigDecimal(maxDays)));
+ sumCurrFee = sumCurrFee.add(currentFee.multiply(new BigDecimal(applyDetails.size())));
+ }
+ unionApplyMapper.update(null,new UpdateWrapper<UnionApply>()
+ .lambda()
+ .set(UnionApply::getStatus,Constants.UnionApplyStatus.FINISH)
+ .set(UnionApply::getEditDate,new Date())
+ .set(UnionApply::getEditor,user.getId())
+ .set(UnionApply::getStartTime,unionApplyBXDDTO.getStartTime())
+ .set(UnionApply::getEndTime,unionApplyBXDDTO.getEndTime())
+ .set(UnionApply::getFee,sumFee)
+ .set(UnionApply::getCurrentFee,sumCurrFee)
+ .eq(UnionApply::getId,unionApply.getId())
+ );
+ //鍚堝苟鍗� 鎬讳繚鍗�
+ if(StringUtils.isNotBlank(unionApplyBXDDTO.getFileUrl())){
+ Multifile multifile = new Multifile();
+ multifile.setIsdeleted(Constants.ZERO);
+ multifile.setCreator(user.getId());
+ multifile.setCreateDate(new Date());
+ multifile.setObjId(unionApply.getId());
+ multifile.setObjType(Constants.MultiFile.HBD_BD_APPLY_PDF.getKey());
+ multifile.setType(Constants.TWO);
+ multifile.setFileurl(unionApplyBXDDTO.getFileUrl());
+ multifile.setName(unionApplyBXDDTO.getFileName());
+ multifileMapper.insert(multifile);
+ }
+
+
+
+
+ }
+
+
+
+
+
}
--
Gitblit v1.9.3