From 617bbcea64a2e81fc4543250648725debfc1db3c Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 24 一月 2024 09:15:01 +0800
Subject: [PATCH] Mr.Shi
---
server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java | 447 ++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 385 insertions(+), 62 deletions(-)
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
index 3b6ae79..0203ee3 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,5 +1,6 @@
package com.doumee.service.business.impl;
+import com.alibaba.fastjson.JSONObject;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
@@ -62,6 +63,8 @@
private MemberMapper memberMapper;
@Autowired
+ private MultifileMapper multifileMapper;
+ @Autowired
private DuSolutionMapper duSolutionMapper;
@Autowired
private DuWorktypeMapper duWorktypeMapper;
@@ -71,6 +74,354 @@
@Autowired
private SolutionsMapper solutionsMapper;
+
+ /**
+ * 骞冲彴閫�鍥炴姇淇�
+ * @param param
+ * @return
+ */
+ @Override
+ @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+ public Integer back(ApplyChange param) {
+ if(param.getId() == null ||StringUtils.isBlank(param.getCheckInfo())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ ApplyChange model = applyChangeMapper.selectById(param.getId());
+
+ if(model == null ||!Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ if(Constants.equalsInteger(model.getStatus(),Constants.ApplyChangeStatus.UPLOAD.getKey())
+ ||Constants.equalsInteger(model.getStatus(),Constants.ApplyChangeStatus.APPROVE.getKey())){
+ //宸叉彁浜ゅ拰宸插畬鎴愮姸鎬佷笉鏀寔瀹℃牳涓嶉�氳繃
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
+ }
+ LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ ApplyChange update = new ApplyChange();
+ update.setEditDate(new Date());
+ update.setEditor(user.getId());
+ update.setStatus(Constants.ApplyChangeStatus.PALTFORM_CHECK_PASS_NO.getKey());
+ update.setCheckDate(update.getEditDate());
+ update.setCheckInfo(param.getCheckInfo());
+ update.setCheckUserId(user.getId());
+ update.setId(model.getId());
+ applyChangeMapper.updateById(update);
+
+ Constants.ApplyLogType applyLogType = Constants.ApplyLogType.CA_PLATFORM_CHECK_PASS_NO;
+ String info =applyLogType.getInfo();
+ info = info.replace("${param}", update.getCheckInfo());
+ ApplyLog log = new ApplyLog(update,applyLogType.getName(),info,update.getId(),applyLogType.getKey(), JSONObject.toJSONString(model), JSONObject.toJSONString(update));
+ applyLogMapper.insert(log);
+ return 1;
+
+ }
+
+ @Override
+ @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+ public Integer uploadPidan(ApplyChange param) {
+ if(param.getId() == null
+ || param.getValidCode() == null
+ || param.getApplyStartTime() == null
+ || param.getPidanFile() == null
+ ||StringUtils.isBlank( param.getPidanFile().getFileurl())
+ ||StringUtils.isBlank( param.getPidanFile() .getName())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+
+ ApplyChange model = applyChangeMapper.selectById(param.getId());
+ if(model == null ||!Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ if(!Constants.equalsInteger(model.getStatus(),Constants.ApplyChangeStatus.SIGNATURE.getKey())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
+ }
+
+ LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ ApplyChange update = new ApplyChange();
+ update.setEditDate(new Date());
+ update.setEditor(user.getId());
+ update.setStatus(Constants.ApplyChangeStatus.APPROVE.getKey());
+ update.setCheckDate(update.getEditDate());
+ update.setCheckInfo(param.getCheckInfo());
+ update.setCheckUserId(user.getId());
+ update.setId(model.getId());
+ update.setValidCode(param.getValidCode());
+ update.setApplyStartTime(model.getApplyStartTime());
+ applyChangeMapper.updateById(update);
+
+ param.getPidanFile().setIsdeleted(Constants.ZERO);
+ param.getPidanFile().setCreator(user.getId());
+ param.getPidanFile().setObjId(update.getId());
+ param.getPidanFile().setCreateDate(update.getEditDate());
+ param.getPidanFile().setObjType(Constants.MultiFile.CA_PD_PDF.getKey());
+ param.getPidanFile().setType(Constants.TWO);
+ multifileMapper.insert(param.getPidanFile());
+
+ update.setApplyId(model.getApplyId());
+ if(Constants.equalsInteger(model.getType(),Constants.ZERO)){
+ //濡傛灉鏄姞鍑忎繚鐢宠 澶勭悊鍔犲噺淇濇槑缁嗘暟鎹�
+ dealDetailsValidTime(update);
+ }else{
+ //濡傛灉鏄崲鍘傜敵璇� 澶勭悊鏄庣粏鏁版嵁
+ dealDetailsDUdata(update);
+ }
+
+
+ Constants.ApplyLogType applyLogType = Constants.ApplyLogType.CA_PLATFORM_APPROVE;
+ String info = "";
+ if(model.getValidTime()!=null && model.getValidTime().getTime()/1000!= param.getApplyStartTime().getTime()/1000){
+ info =applyLogType.getInfo();
+ info = info.replace("${param1}",DateUtil.getPlusTime2(model.getValidTime()));
+ info = info.replace("${param2}",DateUtil.getPlusTime2(param.getApplyStartTime()));
+ }
+ ApplyLog log = new ApplyLog(update,applyLogType.getName(), info,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
+ applyLogMapper.insert(log);
+
+ return 1;
+
+ }
+ @Override
+ @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+ public Integer editPidan(ApplyChange param) {
+ if(param.getId() == null
+ || param.getValidCode() == null
+ || param.getPidanFile() == null
+ || param.getCheckInfo() == null
+ ||StringUtils.isBlank( param.getPidanFile().getFileurl())
+ ||StringUtils.isBlank( param.getPidanFile() .getName())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+
+ ApplyChange model = applyChangeMapper.selectById(param.getId());
+ if(model == null ||!Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ if(!Constants.equalsInteger(model.getStatus(),Constants.ApplyChangeStatus.APPROVE.getKey())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇峰綋鍓嶄笉鏀寔璇ユ搷浣渵");
+ }
+
+ LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ ApplyChange update = new ApplyChange();
+ update.setEditDate(new Date());
+ update.setEditor(user.getId());
+ update.setCheckDate(update.getEditDate());
+ update.setCheckInfo(param.getCheckInfo());
+ update.setCheckUserId(user.getId());
+ update.setId(model.getId());
+ update.setValidCode(param.getValidCode());
+ applyChangeMapper.updateById(update);
+ //鍒犻櫎鍘熸湁鐨勪繚鍗曚俊鎭�
+ multifileMapper.delete(new UpdateWrapper<Multifile>().lambda()
+ .set(Multifile::getIsdeleted,Constants.ZERO)
+ .eq(Multifile::getIsdeleted,Constants.ZERO)
+ .eq(Multifile::getObjId,update.getId())
+ .eq(Multifile::getObjType,Constants.MultiFile.CA_PD_PDF.getKey())
+ );
+ param.getPidanFile().setIsdeleted(Constants.ZERO);
+ param.getPidanFile().setObjId(update.getId());
+ param.getPidanFile().setCreator(user.getId());
+ param.getPidanFile().setCreateDate(update.getEditDate());
+ param.getPidanFile().setObjType(Constants.MultiFile.CA_PD_PDF.getKey());
+ param.getPidanFile().setType(Constants.TWO);
+ multifileMapper.insert(param.getPidanFile());
+
+ Constants.ApplyLogType applyLogType = Constants.ApplyLogType.CA_PALTFORM_EDIT_PIDAN;
+ String info = applyLogType.getInfo();
+ info = info.replace("${param}",param.getCheckInfo());
+ ApplyLog log = new ApplyLog(update,applyLogType.getName(), info,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
+ applyLogMapper.insert(log);
+
+ return 1;
+
+ }
+
+ /**
+ * 澶勭悊鍔犲噺淇濇槑缁嗘暟鎹�
+ * @param update
+ */
+ private void dealDetailsDUdata(ApplyChange update ) {
+ List<ApplyChagneDetail> detailList = applyChagneDetailJoinMapper.selectJoinList(ApplyChagneDetail.class,
+ new MPJLambdaWrapper<ApplyChagneDetail>()
+ .selectAll(ApplyChagneDetail.class)
+ .selectAs(Solutions::getTimeUnit,ApplyChagneDetail::getSolutionTimeUnit)
+ .selectAs(Solutions::getPrice,ApplyChagneDetail::getSolutionPrice)
+ .leftJoin(ApplyChange.class, ApplyChange::getId, ApplyChagneDetail::getApplyChangeId)
+ .leftJoin(Solutions.class, Solutions::getId, ApplyChange::getSolutionsId)
+ .eq(ApplyChagneDetail::getApplyChangeId,update.getId())
+ .eq(ApplyChagneDetail::getIsdeleted,Constants.ZERO) );
+ if(detailList ==null || detailList.size()==0){
+ return;
+ }
+ for(ApplyChagneDetail detail : detailList){
+ //鏌ヨ鍛樺伐鏄湪涓诲崟涓� 鏄惁瀛樺湪鐢熸晥涓殑鏁版嵁
+ ApplyDetail oldModel = applyDetailJoinMapper.selectOne(new QueryWrapper<ApplyDetail>().lambda()
+ .eq(ApplyDetail::getApplyId, update.getApplyId())
+ .eq(ApplyDetail::getMemberId, detail.getMemberId())
+ .orderByDesc(ApplyDetail::getCreateDate)
+ .last("limit 1"));
+ if(oldModel == null ){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鐢ㄦ埛銆�"+detail.getMemberName()+"銆戝師淇濆崟淇℃伅鏈夎锛屽綋鍓嶇敵璇蜂笉鏀寔鍑忎繚澶勭悊锛�");
+ }
+ applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda()
+ .set(ApplyDetail::getEditor,update.getEditor())
+ .set(ApplyDetail::getWorktypeId,detail.getWorktypeId())
+ .set(ApplyDetail::getDuId,detail.getDuId())
+ .set(ApplyDetail::getEditDate,update.getEditDate())
+ .eq(ApplyDetail::getId,oldModel.getApplyId())
+ );
+
+ }
+ }
+ /**
+ * 澶勭悊鍔犲噺淇濇槑缁嗘暟鎹�
+ * @param update
+ */
+ private void dealDetailsValidTime(ApplyChange update ) {
+ List<ApplyChagneDetail> detailList = applyChagneDetailJoinMapper.selectJoinList(ApplyChagneDetail.class,
+ new MPJLambdaWrapper<ApplyChagneDetail>()
+ .selectAll(ApplyChagneDetail.class)
+ .selectAs(Solutions::getTimeUnit,ApplyChagneDetail::getSolutionTimeUnit)
+ .selectAs(Solutions::getPrice,ApplyChagneDetail::getSolutionPrice)
+ .leftJoin(ApplyChange.class, ApplyChange::getId, ApplyChagneDetail::getApplyChangeId)
+ .leftJoin(Solutions.class, Solutions::getId, ApplyChange::getSolutionsId)
+ .eq(ApplyChagneDetail::getApplyChangeId,update.getId())
+ .eq(ApplyChagneDetail::getIsdeleted,Constants.ZERO) );
+ 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);
+
+ for(ApplyChagneDetail detail : detailList){
+ if(Constants.equalsInteger(detail.getType(),Constants.ZERO)){
+ //鍔犱繚
+ ApplyDetail add = new ApplyDetail();
+ add.setApplyId(update.getApplyId());
+ add.setValidCode(update.getValidCode());
+ add.setFee(detail.getFee());
+ add.setIsdeleted(Constants.ZERO);
+ add.setCreator(update.getEditor());
+ add.setCreateDate(update.getEditDate());
+ add.setMemberId(detail.getMemberId());
+ add.setMemberName(detail.getMemberName());
+ add.setWorktypeId(detail.getWorktypeId());
+ add.setDuId(detail.getDuId());
+ add.setStartTime(update.getApplyStartTime());
+ add.setEndTime(detail.getEndTime());
+ add.setFee(Constants.countDetailFee(detail.getSolutionTimeUnit(),detail.getSolutionPrice(), add.getStartTime(),add.getEndTime()));
+ if(DateUtil.daysBetweenDates(add.getStartTime(),new Date() )>=0){
+ //濡傛灉宸蹭骇鐢熻垂鐢紝璁$畻宸蹭骇鐢熻垂鐢�
+ add.setCurrentFee(Constants.countDetailFee(detail.getSolutionTimeUnit(),detail.getSolutionPrice(), add.getStartTime(),new Date()));
+ }
+ addList.add(add);
+ totalFee.add(add.getFee());
+ currentFee.add(add.getCurrentFee());
+ }else{
+ //鍑忎繚鎿嶄綔
+ //鏌ヨ鍛樺伐鏄湪涓诲崟涓� 鏄惁瀛樺湪鐢熸晥涓殑鏁版嵁
+ ApplyDetail oldModel = applyDetailJoinMapper.selectOne(new QueryWrapper<ApplyDetail>().lambda()
+ .eq(ApplyDetail::getApplyId, update.getApplyId())
+ .eq(ApplyDetail::getMemberId, detail.getMemberId())
+ .orderByDesc(ApplyDetail::getCreateDate)
+ .last("limit 1"));
+ if(oldModel == null || oldModel.getStartTime()==null || oldModel.getStartTime().getTime() > update.getApplyStartTime().getTime()){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鐢ㄦ埛銆�"+detail.getMemberName()+"銆戝師淇濆崟淇℃伅鏈夎锛屽綋鍓嶇敵璇蜂笉鏀寔鍑忎繚澶勭悊锛�");
+ }
+ BigDecimal updateFee = (Constants.countDetailFee(detail.getSolutionTimeUnit(),detail.getSolutionPrice(), oldModel.getStartTime(),update.getApplyStartTime()));
+ BigDecimal updateCurrentFee = new BigDecimal(0);
+ if(DateUtil.daysBetweenDates(update.getApplyStartTime(),new Date() )>0){
+ //濡傛灉鐢熸晥鏃堕棿 鏄粖澶╀箣鍓嶏紝閫�鍥炲凡浜х敓璐圭敤锛岃绠楀凡浜х敓璐圭敤(鎬昏垂鐢�-宸蹭骇鐢熻垂鐢�)
+ updateCurrentFee = updateFee.subtract(oldModel.getCurrentFee());
+ }
+ applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda()
+ .setSql(" fee = ifnull(fee,0)+"+updateFee)
+ .setSql(" current_fee = "+updateFee)
+ .set(ApplyDetail::getEditor,update.getEditor())
+ .set(ApplyDetail::getEditDate,update.getEditDate())
+ .eq(ApplyDetail::getId,oldModel.getApplyId())
+ );
+ totalFee.add(updateFee);
+ currentFee.add(updateCurrentFee);
+
+ }
+ }
+ if(addList!=null && addList.size()>0){
+ applyChagneDetailJoinMapper.insertBatchSomeColumn(addList);
+ }
+ if(totalFee.compareTo(new BigDecimal(0)) != 0){
+ //濡傛灉淇濆崟閲戦鍙戠敓缂栫爜锛屾洿鏂版�讳繚鍗曢噾棰�
+ insuranceApplyMapper.update(null, new UpdateWrapper<InsuranceApply>().lambda()
+ .setSql(" fee = ifnull(fee,0)+"+totalFee)
+ .setSql(" current_fee = ifnull(current_fee,0)+"+currentFee)
+ .set(InsuranceApply::getEditor,update.getEditor())
+ .set(InsuranceApply::getEditDate,update.getEditDate())
+ .eq(InsuranceApply::getId,update.getApplyId())
+ );
+
+ }
+
+ }
+
+ /**
+ * 骞冲彴閫�鍥炴姇淇�
+ * @param param
+ * @return
+ */
+ @Override
+ @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+ public Integer dealBackApply(ApplyChange param) {
+ if(param.getId() == null ||StringUtils.isBlank(param.getCheckInfo())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ ApplyChange model = applyChangeMapper.selectById(param.getId());
+
+ if(model == null ||!Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+
+ LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ Constants.ApplyLogType applyLogType = null;
+ String info = "";
+ ApplyChange update = new ApplyChange();
+ if(param.getDealBackApply() ==1){
+ //濡傛灉鏄┏鍥�,鍙兘鍙┏鍥炲凡绛剧珷鐘舵�佷笅鐨勯��鍥炵敵璇风姸鎬佽繘琛屾搷浣�
+ if(!Constants.equalsInteger(model.getStatus(),Constants.ApplyChangeStatus.RETURN_APPLY_SIGNATURE.getKey())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
+ }
+ applyLogType = Constants.ApplyLogType.CA_PALTFORM_REFUSE_APPLY;
+ info = applyLogType.getInfo();
+ info = info.replace("${param}", param.getCheckInfo());
+ update.setStatus(Constants.ApplyChangeStatus.SIGNATURE.getKey());
+ }else{
+ //濡傛灉鏄悓鎰�,涓ょ鐢宠閫�鍥炵姸鎬侀兘鍙搷浣�
+ if(!(Constants.equalsInteger(model.getStatus(),Constants.ApplyChangeStatus.RETURN_APPLY_SIGNATURE.getKey())
+ ||Constants.equalsInteger(model.getStatus(),Constants.ApplyChangeStatus.RETURN_APPLY_UPLOAD.getKey()))){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
+ }
+ applyLogType = Constants.ApplyLogType.CA_PALTFORM_REFUSE_APPLY;
+ if( Constants.equalsInteger(model.getStatus(),Constants.ApplyChangeStatus.RETURN_APPLY_SIGNATURE.getKey())){
+ update.setStatus(Constants.ApplyChangeStatus.SIGNATURE.getKey());
+ }else if( Constants.equalsInteger(model.getStatus(),Constants.ApplyChangeStatus.RETURN_APPLY_UPLOAD.getKey())){
+ update.setStatus(Constants.ApplyChangeStatus.UPLOAD.getKey());
+ }
+ }
+ update.setEditDate(new Date());
+ update.setEditor(user.getId());
+ //鍚屾剰閫�鍥烇紝鐩存帴鍥炲埌鏈�鍒濈姸鎬侊紝濡傛灉椹冲洖閫�鍥炵敵璇凤紝鍒欎繚鍗曠姸鎬佸洖鍒板緟涓婁紶淇濋櫓鍗�
+ update.setCheckDate(update.getEditDate());
+ update.setCheckInfo(param.getCheckInfo());
+ update.setCheckUserId(user.getId());
+ update.setId(model.getId());
+ applyChangeMapper.updateById(update);
+
+ ApplyLog log = new ApplyLog(update,applyLogType.getName(),info,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
+ applyLogMapper.insert(log);
+ return 1;
+
+
+ }
@Override
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
@@ -165,7 +516,7 @@
applyLog.setTitle(applyChangeLogStatus.getName());
applyLog.setContent(content);
applyLog.setObjType(applyChangeLogStatus.getKey());
- applyLog.setObjId(Integer.toString(applyChange.getId()));
+ applyLog.setObjId( applyChange.getId());
applyLog.setStatus(applyChange.getStatus());
applyLogMapper.insert(applyLog);
}
@@ -199,13 +550,12 @@
List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectList(new QueryWrapper<ApplyDetail>().lambda()
.eq(ApplyDetail::getApplyId, applyChange.getApplyId())
.eq(ApplyDetail::getMemberId, applyChagneDetail.getMemberId())
- .le(ApplyDetail::getStartTime, "now()")
- .ge(ApplyDetail::getEndTime, "now()"));
+ .orderByDesc(ApplyDetail::getCreateDate));
if (applyDetailList.size() > Constants.ONE) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍑忎繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戜繚鍗曚俊鎭紓甯革紝瀛樺湪澶氭潯鏁版嵁");
}
ApplyDetail applyDetail = applyDetailList.get(Constants.ZERO);
- if (applyChange.getValidTime().compareTo(DateUtil.StringToDate(applyDetail.getEndTime())) <= 0) {
+ if (applyChange.getValidTime().compareTo(applyDetail.getEndTime()) <= 0) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍑忎繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戜繚鍗曚繚闅滄棩鏈熻嚦锛氥��" + applyDetail.getEndTime() + "銆戞棤娉曢�氳繃鏈鐢宠");
}
applyChagneDetail.setCreateDate(new Date());
@@ -214,8 +564,8 @@
applyChagneDetail.setApplyChangeId(applyChange.getId());
applyChagneDetail.setType(Constants.ONE);
applyChagneDetail.setFee(
- Constants.countDetailFee(solutions,DateUtil.stringToDate(applyDetail.getEndTime(),"yyyy-MM-dd HH:mm:ss"),DateUtil.stringToDate(applyDetail.getStartTime(),"yyyy-MM-dd HH:mm:ss"))
- .subtract(Constants.countDetailFee(solutions,applyChange.getValidTime(),DateUtil.stringToDate(applyDetail.getStartTime(),"yyyy-MM-dd HH:mm:ss")))
+ Constants.countDetailFee(solutions, applyDetail.getEndTime(),applyDetail.getStartTime())
+ .subtract(Constants.countDetailFee(solutions,applyChange.getValidTime(), applyDetail.getStartTime()))
);
applyChagneDetailJoinMapper.insert(applyChagneDetail);
}
@@ -325,7 +675,7 @@
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戜繚鍗曚俊鎭紓甯革紝瀛樺湪澶氭潯鏁版嵁");
}
ApplyDetail applyDetail = applyDetailList.get(Constants.ZERO);
- if(applyChange.getValidTime().compareTo(DateUtil.StringToDate(applyDetail.getEndTime()))<=0){
+ if(applyChange.getValidTime().compareTo( applyDetail.getEndTime())<=0){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戜繚鍗曚繚闅滄棩鏈熻嚦锛氥��"+applyDetail.getEndTime()+"銆戞棤娉曢�氳繃鏈鐢宠");
}
//楠岃瘉娲鹃仯鍗曚綅淇℃伅 涓庡伐绉嶄俊鎭� 鏄惁瀛樺湪
@@ -399,57 +749,25 @@
@Override
public PageData<ApplyChange> findPage(PageWrap<ApplyChange> pageWrap) {
IPage<ApplyChange> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
- QueryWrapper<ApplyChange> queryWrapper = new QueryWrapper<>();
+ MPJLambdaWrapper<ApplyChange> queryWrapper = new MPJLambdaWrapper<>();
Utils.MP.blankToNull(pageWrap.getModel());
- if (pageWrap.getModel().getId() != null) {
- queryWrapper.lambda().eq(ApplyChange::getId, pageWrap.getModel().getId());
- }
- if (pageWrap.getModel().getCreator() != null) {
- queryWrapper.lambda().eq(ApplyChange::getCreator, pageWrap.getModel().getCreator());
- }
- if (pageWrap.getModel().getCreateDate() != null) {
- queryWrapper.lambda().ge(ApplyChange::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
- queryWrapper.lambda().le(ApplyChange::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
- }
- if (pageWrap.getModel().getEditor() != null) {
- queryWrapper.lambda().eq(ApplyChange::getEditor, pageWrap.getModel().getEditor());
- }
- if (pageWrap.getModel().getEditDate() != null) {
- queryWrapper.lambda().ge(ApplyChange::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
- queryWrapper.lambda().le(ApplyChange::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
- }
- if (pageWrap.getModel().getIsdeleted() != null) {
- queryWrapper.lambda().eq(ApplyChange::getIsdeleted, pageWrap.getModel().getIsdeleted());
- }
- if (pageWrap.getModel().getRemark() != null) {
- queryWrapper.lambda().eq(ApplyChange::getRemark, pageWrap.getModel().getRemark());
- }
- if (pageWrap.getModel().getSortnum() != null) {
- queryWrapper.lambda().eq(ApplyChange::getSortnum, pageWrap.getModel().getSortnum());
- }
- if (pageWrap.getModel().getApplyId() != null) {
- queryWrapper.lambda().eq(ApplyChange::getApplyId, pageWrap.getModel().getApplyId());
- }
- if (pageWrap.getModel().getCode() != null) {
- queryWrapper.lambda().eq(ApplyChange::getCode, pageWrap.getModel().getCode());
- }
- if (pageWrap.getModel().getApplyStartTime() != null) {
- queryWrapper.lambda().ge(ApplyChange::getApplyStartTime, Utils.Date.getStart(pageWrap.getModel().getApplyStartTime()));
- queryWrapper.lambda().le(ApplyChange::getApplyStartTime, Utils.Date.getEnd(pageWrap.getModel().getApplyStartTime()));
- }
- if (pageWrap.getModel().getStatus() != null) {
- queryWrapper.lambda().eq(ApplyChange::getStatus, pageWrap.getModel().getStatus());
- }
- if (pageWrap.getModel().getValidTime() != null) {
- queryWrapper.lambda().ge(ApplyChange::getValidTime, Utils.Date.getStart(pageWrap.getModel().getValidTime()));
- queryWrapper.lambda().le(ApplyChange::getValidTime, Utils.Date.getEnd(pageWrap.getModel().getValidTime()));
- }
- if (pageWrap.getModel().getValidCode() != null) {
- queryWrapper.lambda().eq(ApplyChange::getValidCode, pageWrap.getModel().getValidCode());
- }
- if (pageWrap.getModel().getType() != null) {
- queryWrapper.lambda().eq(ApplyChange::getType, pageWrap.getModel().getType());
- }
+ ApplyChange model = pageWrap.getModel() ;
+ queryWrapper
+ .selectAll(ApplyChange.class)
+ .selectAs(InsuranceApply::getCode,ApplyChange::getApplyCode)
+ .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 0 )",ApplyChange::getAddNum)
+ .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 1 )",ApplyChange::getDelNum)
+ .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 2 )",ApplyChange::getChangeNum)
+ .select("( select ifnull(sum(ad.FEE),0) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID )",ApplyChange::getChangeMoney)
+ .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId)
+ .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
+ .eq(!Objects.isNull(model.getType()),ApplyChange::getType,model.getType())
+ .eq(!Objects.isNull(model.getStatus()),ApplyChange::getStatus,model.getStatus())
+ .eq(!Objects.isNull(model.getCompanyId()),InsuranceApply::getCompanyId,model.getCompanyId())
+ .eq(!Objects.isNull(model.getSolutionsId()),ApplyChange::getSolutionsId,model.getSolutionsId())
+ .ge(StringUtils.isNotBlank(model.getCreateDateS()),ApplyChange::getCreateDate, model.getCreateDateS()+" 00:00:00" )
+ .le(StringUtils.isNotBlank(model.getCreateDateE()),ApplyChange::getCreateDate, model.getCreateDateE()+" 23:59:59" );
+
for(PageWrap.SortData sortData: pageWrap.getSorts()) {
if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
queryWrapper.orderByDesc(sortData.getProperty());
@@ -457,7 +775,8 @@
queryWrapper.orderByAsc(sortData.getProperty());
}
}
- return PageData.from(applyChangeMapper.selectPage(page, queryWrapper));
+ PageData<ApplyChange> pageData = PageData.from(applyChangeJoinMapper.selectJoinPage(page,ApplyChange.class, queryWrapper));
+ return pageData;
}
@Override
@@ -524,8 +843,8 @@
throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"鏁版嵁宸插垹闄�,鏃犳硶杩涜璇ユ搷浣�");
}
Constants.ApplyChangeLogStatus applyChangeLogStatus = Constants.ApplyChangeLogStatus.RETURN_APPLY;
-
- if(applyChangeOptDTO.getOptType().equals(Constants.ApplyChangeStatus.RETURN_APPLY.getKey())){
+ if(applyChangeOptDTO.getOptType().equals(Constants.ApplyChangeStatus.RETURN_APPLY_UPLOAD.getKey())
+ ||applyChangeOptDTO.getOptType().equals(Constants.ApplyChangeStatus.RETURN_APPLY_SIGNATURE.getKey())){
//鍙戣捣閫�鍥炵敵璇�
if(loginUserInfo.getType().equals(Constants.ONE)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炰紒涓氱鐢ㄦ埛鏃犳硶杩涜璇ユ搷浣�");
@@ -539,7 +858,9 @@
if(loginUserInfo.getType().equals(Constants.ZERO)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炲钩鍙扮鐢ㄦ埛鏃犳硶杩涜璇ユ搷浣�");
}
- if(!applyChange.getStatus().equals(Constants.ApplyChangeStatus.RETURN_APPLY.getKey())){
+ if(!(applyChangeOptDTO.getOptType().equals(Constants.ApplyChangeStatus.RETURN_APPLY_UPLOAD.getKey())
+ ||applyChangeOptDTO.getOptType().equals(Constants.ApplyChangeStatus.RETURN_APPLY_SIGNATURE.getKey())
+ )){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏁版嵁鐘舵�侀敊璇棤娉曡繘琛岃鎿嶄綔!");
}
}else if(applyChangeOptDTO.getOptType().equals(Constants.ApplyChangeStatus.UPLOAD.getKey())){
@@ -548,7 +869,9 @@
if(loginUserInfo.getType().equals(Constants.ZERO)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炲钩鍙扮鐢ㄦ埛鏃犳硶杩涜璇ユ搷浣�");
}
- if(!applyChange.getStatus().equals(Constants.ApplyChangeStatus.RETURN_APPLY.getKey())){
+ if(!(applyChangeOptDTO.getOptType().equals(Constants.ApplyChangeStatus.RETURN_APPLY_UPLOAD.getKey())
+ ||applyChangeOptDTO.getOptType().equals(Constants.ApplyChangeStatus.RETURN_APPLY_SIGNATURE.getKey())
+ )){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏁版嵁鐘舵�侀敊璇棤娉曡繘琛岃鎿嶄綔!");
}
}else if(applyChangeOptDTO.getOptType().equals(Constants.ApplyChangeStatus.CLOSE.getKey())){
--
Gitblit v1.9.3