server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java
@@ -8,10 +8,7 @@ import com.doumee.core.model.PageWrap; import com.doumee.core.model.PageData; import com.doumee.core.utils.Constants; import com.doumee.dao.business.dto.ApplyChangeCyclePriceDTO; import com.doumee.dao.business.dto.ApplyChangeOptDTO; import com.doumee.dao.business.dto.CountCyclePriceDTO; import com.doumee.dao.business.dto.InsuranceApplyOptDTO; import com.doumee.dao.business.dto.*; import com.doumee.dao.business.model.ApplyChange; import com.doumee.dao.business.vo.CountCyclePriceVO; import com.doumee.service.business.ApplyChangeService; @@ -134,10 +131,10 @@ } @ApiOperation("投保确认书签章业务") @GetMapping("/getChangeMemberListOnlineSignLink/{id}") @PostMapping("/getChangeMemberListOnlineSignLink") @RequiresPermissions("business:applychange:query") public ApiResponse<String> getChangeMemberListOnlineSignLink(@PathVariable Integer id) { return ApiResponse.success(applyChangeService.getChangeMemberListOnlineSignLink(id)); public ApiResponse<String> getChangeMemberListOnlineSignLink(@RequestBody SmsCheckDTO smsCheckDTO) { return ApiResponse.success(applyChangeService.getChangeMemberListOnlineSignLink(smsCheckDTO)); } } server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -449,6 +449,7 @@ WTB_BD_DONE_PDF(21, "委托投保单 - 合并单最终保单", "委托保 - 合并单保单"), COMPANY_TBD_SIGNED_PDF(22, "合并单-投保单-商户提交(企业签署)PDF", "合并单-投保单-商户提交(企业签署)PDF"), WTB_CA_DONE_PDF(23, "委托加减保/换厂业务 - 合并单最终保单", "委托加减保/换厂业务 - 合并单最终保单"), ; // 成员变量 server/service/src/main/java/com/doumee/dao/business/dto/UnionChangeBXDDTO.java
@@ -1,5 +1,6 @@ package com.doumee.dao.business.dto; import com.doumee.dao.business.model.Multifile; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -27,9 +28,12 @@ private Date applyDate; @ApiModelProperty(value = "保单文件地址") private String fileUrl; private String fileurl; @ApiModelProperty(value = "保单文件名称") private String fileName; private String name; @ApiModelProperty(value = "加减保 保单文件数据") private List<Multifile> applyChangeBXDList; } server/service/src/main/java/com/doumee/service/business/ApplyChangeService.java
@@ -4,6 +4,7 @@ import com.doumee.core.model.PageWrap; import com.doumee.dao.business.dto.ApplyChangeCyclePriceDTO; import com.doumee.dao.business.dto.ApplyChangeOptDTO; import com.doumee.dao.business.dto.SmsCheckDTO; import com.doumee.dao.business.model.ApplyChange; import com.doumee.dao.business.model.InsuranceApply; import com.doumee.dao.business.vo.CountCyclePriceVO; @@ -125,9 +126,9 @@ /** * 委托保 人员名单签署 * @param applyChangeId * @param smsCheckDTO * @return */ String getChangeMemberListOnlineSignLink(Integer applyChangeId); String getChangeMemberListOnlineSignLink(SmsCheckDTO smsCheckDTO); } server/service/src/main/java/com/doumee/service/business/UnionApplyService.java
@@ -3,6 +3,7 @@ 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.SmsCheckDTO; import com.doumee.dao.business.dto.UnionApplyBXDDTO; import com.doumee.dao.business.dto.UploadMultifileDTO; import com.doumee.dao.business.model.UnionApply; @@ -118,10 +119,10 @@ /** * 合并单 保单签署 * @param id * @param smsCheckDTO * @return */ String getSignLink(Integer id); String getSignLink(SmsCheckDTO smsCheckDTO); /** * 上传保险单 server/service/src/main/java/com/doumee/service/business/UnionChangeService.java
@@ -3,6 +3,7 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.dto.SaveUnionChangeDTO; import com.doumee.dao.business.dto.SmsCheckDTO; import com.doumee.dao.business.dto.UnionChangeBXDDTO; import com.doumee.dao.business.model.UnionChange; import java.util.List; @@ -113,10 +114,10 @@ /** * 合并单(加减保/换厂) - 投保申请签署 * @param id * @param smsCheckDTO * @return */ String getSignLink(Integer id); String getSignLink(SmsCheckDTO smsCheckDTO); /** @@ -125,5 +126,10 @@ */ void uploadBXD(UnionChangeBXDDTO unionChangeBXDDTO); /** * 查询详情 * @param id * @return */ UnionChange getDetail(Integer id); } server/service/src/main/java/com/doumee/service/business/impl/ApplyChagneDetailServiceImpl.java
@@ -189,6 +189,7 @@ MPJLambdaWrapper<ApplyChagneDetail> queryWrapper = new MPJLambdaWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); queryWrapper.selectAll(ApplyChagneDetail.class); queryWrapper.selectAs(Company::getName,ApplyChagneDetail::getCompanyName); queryWrapper.select("t2.name",ApplyChagneDetail::getWorkTypeName); queryWrapper.select("t3.name",ApplyChagneDetail::getDuName); queryWrapper.select("t4.name",ApplyChagneDetail::getOldWorkTypeName); @@ -201,6 +202,7 @@ queryWrapper.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyChagneDetail::getDuId); queryWrapper.leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getOldWorktypeId); queryWrapper.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyChagneDetail::getOldDuId); queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); ApplyDetailPageDTO applyDetailPageDTO = pageWrap.getModel(); queryWrapper.exists(!Objects.isNull(applyDetailPageDTO.getApplyId()), " select 1 from apply_change ac where ac.isdeleted = 0 and ac.status in (1,2) and ac.apply_id = "+applyDetailPageDTO.getApplyId()+" and ac.id = t.apply_change_id "); server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
@@ -12,10 +12,7 @@ import com.doumee.core.utils.DateUtil; import com.doumee.core.utils.Utils; import com.doumee.dao.business.*; import com.doumee.dao.business.dto.ApplyChangeCyclePriceDTO; import com.doumee.dao.business.dto.ApplyChangeOptDTO; import com.doumee.dao.business.dto.CountCyclePriceDTO; import com.doumee.dao.business.dto.InsuranceApplyOptDTO; import com.doumee.dao.business.dto.*; import com.doumee.dao.business.join.*; import com.doumee.dao.business.model.*; import com.doumee.dao.business.vo.CountCyclePriceVO; @@ -25,6 +22,7 @@ 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.SmsEmailService; import com.doumee.service.business.third.SignService; import com.github.xiaoymin.knife4j.core.util.CollectionUtils; import com.github.yulichang.wrapper.MPJLambdaWrapper; @@ -104,6 +102,8 @@ @Autowired private SolutionsMapper solutionsMapper; @Autowired private SmsEmailService smsEmailService; @Autowired private NoticesMapper noticesMapper; /** @@ -1967,8 +1967,18 @@ * 人员名单签章 */ @Override public String getChangeMemberListOnlineSignLink(Integer applyChangeId) { ApplyChange model = this.queryApplyChangeData(applyChangeId); public String getChangeMemberListOnlineSignLink(SmsCheckDTO smsCheckDTO) { if(Objects.isNull(smsCheckDTO) || Objects.isNull(smsCheckDTO.getBusinessId()) || StringUtils.isBlank(smsCheckDTO.getCode()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } //验证 验证码 if(!debugModel){ smsEmailService.validateCode(smsCheckDTO.getCode()); } ApplyChange model = this.queryApplyChangeData(smsCheckDTO.getBusinessId()); if(Objects.isNull(model)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询加减保信息"); } server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
@@ -2196,7 +2196,6 @@ .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) .eq(InsuranceApply::getId,smsCheckDTO.getBusinessId()) .last("limit 1"); InsuranceApply model = insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class,wrapper); if(model == null ||!Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java
@@ -14,14 +14,12 @@ 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.dto.*; import com.doumee.dao.business.join.ApplyDetailJoinMapper; import com.doumee.dao.business.join.InsuranceApplyJoinMapper; import com.doumee.dao.business.join.UnionApplyJoinMapper; import com.doumee.dao.business.model.*; import com.doumee.service.business.SmsEmailService; import com.doumee.service.business.UnionApplyService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -33,6 +31,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.github.xiaoymin.knife4j.core.util.CollectionUtils; @@ -78,6 +77,12 @@ @Autowired private SignService signService; @Autowired private SmsEmailService smsEmailService; @Value("${debug_model}") private boolean debugModel; @Override public Integer create(UnionApply unionApply) { @@ -473,15 +478,22 @@ */ @Override @Transactional(rollbackFor = {Exception.class,BusinessException.class}) public String getSignLink(Integer id) { if(id == null ){ public String getSignLink(SmsCheckDTO smsCheckDTO) { if(Objects.isNull(smsCheckDTO) || Objects.isNull(smsCheckDTO.getBusinessId()) || StringUtils.isBlank(smsCheckDTO.getCode()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } //验证 验证码 if(!debugModel){ smsEmailService.validateCode(smsCheckDTO.getCode()); } LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(!user.getType().equals(Constants.TWO)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"非商户用户,无法进行该操作!"); } UnionApply unionApply = unionApplyJoinMapper.selectById(id); UnionApply unionApply = unionApplyJoinMapper.selectById(smsCheckDTO.getBusinessId()); if(unionApply == null ||!Constants.equalsInteger(unionApply.getIsdeleted(),Constants.ZERO)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java
@@ -13,10 +13,12 @@ import com.doumee.dao.business.*; import com.doumee.dao.business.dto.SaveUnionApplyDTO; import com.doumee.dao.business.dto.SaveUnionChangeDTO; import com.doumee.dao.business.dto.SmsCheckDTO; import com.doumee.dao.business.dto.UnionChangeBXDDTO; import com.doumee.dao.business.join.*; import com.doumee.dao.business.model.*; import com.doumee.dao.business.vo.CountCyclePriceVO; import com.doumee.service.business.SmsEmailService; import com.doumee.service.business.UnionChangeService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -28,6 +30,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -82,6 +85,13 @@ @Autowired private InsuranceApplyMapper insuranceApplyMapper; @Value("${debug_model}") private boolean debugModel; @Autowired private SmsEmailService smsEmailService; @Autowired private MultifileMapper multifileMapper; @Override public Integer create(UnionChange unionChange) { unionChangeMapper.insert(unionChange); @@ -126,6 +136,31 @@ public UnionChange findById(Integer id) { return unionChangeMapper.selectById(id); } @Override public UnionChange getDetail(Integer id){ UnionChange unionChange = unionChangeJoinMapper.selectJoinOne(UnionChange.class, new MPJLambdaWrapper<UnionChange>() .selectAll(UnionChange.class) .selectAs(UnionApply::getCode,UnionChange::getApplyCode) .selectAs(Solutions::getName,UnionChange::getSolutionsName) .selectAs(UnionApply::getStartTime,UnionChange::getStartTime) .selectAs(UnionApply::getEndTime,UnionChange::getEndTime) .selectAs(Company::getName,UnionChange::getShopName) .select("( select count(1) from apply_chagne_detail ad where t.id = ad.UNION_CHANGE_ID and ad.TYPE = 0 )",UnionChange::getAddNum) .select("( select count(1) from apply_chagne_detail ad where t.id = ad.UNION_CHANGE_ID and ad.TYPE = 1 )",UnionChange::getDelNum) .select("( select count(1) from apply_chagne_detail ad where t.id = ad.UNION_CHANGE_ID and ad.TYPE = 2 )",UnionChange::getChangeNum) .leftJoin(UnionApply.class,UnionApply::getId,UnionChange::getUnionApplyId) .leftJoin(Solutions.class,Solutions::getId,UnionApply::getSolutionId) .leftJoin(Company.class,Company::getId,UnionChange::getShopId) .eq(UnionChange::getId,id) .last(" limit 1 ") ); return unionChange; } @Override public UnionChange findOne(UnionChange unionChange) { @@ -389,17 +424,24 @@ /** * 合并单(加减保/换厂) - 投保申请签署 * @param id * @param smsCheckDTO * @return */ @Override @Transactional(rollbackFor = {Exception.class,BusinessException.class}) public String getSignLink(Integer id) { if(id == null ){ public String getSignLink(SmsCheckDTO smsCheckDTO) { if(Objects.isNull(smsCheckDTO) || Objects.isNull(smsCheckDTO.getBusinessId()) || StringUtils.isBlank(smsCheckDTO.getCode()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } //验证 验证码 if(!debugModel){ smsEmailService.validateCode(smsCheckDTO.getCode()); } LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); UnionChange unionChange = this.unionChangeDetail(id); UnionChange unionChange = this.unionChangeDetail(smsCheckDTO.getBusinessId()); if(Objects.isNull(unionChange)||!Constants.equalsInteger(unionChange.getIsdeleted(),Constants.ZERO)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } @@ -454,8 +496,8 @@ if(Objects.isNull(unionChangeBXDDTO) || Objects.isNull(unionChangeBXDDTO.getId()) || Objects.isNull(unionChangeBXDDTO.getApplyDate()) || StringUtils.isBlank(unionChangeBXDDTO.getFileName()) || StringUtils.isBlank(unionChangeBXDDTO.getFileUrl()) || StringUtils.isBlank(unionChangeBXDDTO.getName()) || StringUtils.isBlank(unionChangeBXDDTO.getFileurl()) || StringUtils.isBlank(unionChangeBXDDTO.getCode()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); @@ -485,14 +527,60 @@ .selectAs(InsuranceApply::getCode,ApplyChange::getApplyCode) .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId) .eq(ApplyChange::getUnionChangeId,unionChange.getId())); //存储合并单保险单 Multifile multifile = new Multifile(); multifile.setIsdeleted(Constants.ZERO); multifile.setCreator(user.getId()); multifile.setCreateDate(new Date()); multifile.setObjId(unionChangeBXDDTO.getId()); multifile.setCreateDate(new Date()); multifile.setObjType(Constants.MultiFile.WTB_CA_DONE_PDF.getKey()); multifile.setType(Constants.TWO); multifile.setFileurl(unionChangeBXDDTO.getFileurl()); multifile.setName(unionChangeBXDDTO.getName()); multifileMapper.insert(multifile); if(CollectionUtils.isNotEmpty(unionChangeBXDDTO.getApplyChangeBXDList())){ //查询是否不存在当前合并单的数据 if(applyChangeJoinMapper.selectCount(new QueryWrapper<ApplyChange>() .lambda().ne(ApplyChange::getUnionChangeId,unionChangeBXDDTO.getId()) .in(ApplyChange::getId, unionChangeBXDDTO.getApplyChangeBXDList().stream().map(m->m.getObjId()).collect(Collectors.toList()) ) )>Constants.ZERO){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"批单明细记录存在非本合并单数据"); }; for (Multifile m:unionChangeBXDDTO.getApplyChangeBXDList()) { if(Objects.isNull(m.getObjId()) ||StringUtils.isBlank(m.getFileurl()) ||StringUtils.isBlank(m.getName()) ){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"加减保/换厂业务批单文件信息缺失"); } multifile.setIsdeleted(Constants.ZERO); multifile.setCreator(user.getId()); multifile.setCreateDate(new Date()); multifile.setCreateDate(new Date()); multifile.setObjType(Constants.MultiFile.CA_PD_PDF.getKey()); multifile.setType(Constants.TWO); multifileMapper.insert(multifile); } } if(CollectionUtils.isNotEmpty(applyChangeList)){ for (ApplyChange applyChange:applyChangeList) { applyChange.setApplyStartTime(unionChangeBXDDTO.getApplyDate()); applyChange.setValidTime(unionChangeBXDDTO.getApplyDate()); applyChange.setEditDate(new Date()); applyChange.setEditor(user.getId()); applyChange.setStatus(Constants.ApplyChangeStatus.APPROVE.getKey()); List<ApplyChagneDetail> allList = applyChagneDetailJoinMapper.selectList(new QueryWrapper<ApplyChagneDetail>().lambda().eq(ApplyChagneDetail::getApplyChangeId,applyChange.getId())); this.dealApplyChangeDetail(applyChange,allList); applyChange.setCode(unionChangeBXDDTO.getCode()); applyChange.setCheckUserId(user.getId()); applyChangeJoinMapper.updateById(applyChange); } } unionChangeMapper.update(null,new UpdateWrapper<UnionChange>().lambda() server/shop/src/main/java/com/doumee/api/business/UnionApplyController.java
@@ -7,6 +7,7 @@ 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.SmsCheckDTO; import com.doumee.dao.business.dto.UnionApplyBXDDTO; import com.doumee.dao.business.dto.UploadMultifileDTO; import com.doumee.dao.business.model.UnionApply; @@ -119,10 +120,10 @@ } @ApiOperation("签署申请单") @GetMapping("/getSignLink") @PostMapping("/getSignLink") @RequiresPermissions("business:unionapply:query") public ApiResponse getSignLink(@RequestParam Integer id) { unionApplyService.getSignLink(id); public ApiResponse getSignLink(@RequestBody SmsCheckDTO smsCheckDTO) { unionApplyService.getSignLink(smsCheckDTO); return ApiResponse.success(null); } server/shop/src/main/java/com/doumee/api/business/UnionChangeController.java
@@ -7,6 +7,7 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.dto.SaveUnionChangeDTO; 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.UnionChangeService; @@ -87,7 +88,7 @@ @GetMapping("/{id}") @RequiresPermissions("business:unionchange:query") public ApiResponse findById(@PathVariable Integer id) { return ApiResponse.success(unionChangeService.findById(id)); return ApiResponse.success(unionChangeService.getDetail(id)); } @PreventRepeat @@ -109,10 +110,10 @@ @ApiOperation("签署申请单") @GetMapping("/getSignLink") @PostMapping("/getSignLink") @RequiresPermissions("business:unionchange:query") public ApiResponse getSignLink(@RequestParam Integer id) { unionChangeService.getSignLink(id); public ApiResponse getSignLink(@RequestBody SmsCheckDTO smsCheckDTO) { unionChangeService.getSignLink(smsCheckDTO); return ApiResponse.success(null); }