|  |  |  | 
|---|
|  |  |  | 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.dao.business.*; | 
|---|
|  |  |  | import com.doumee.dao.business.dto.InsuranceApplyOptDTO; | 
|---|
|  |  |  | import com.doumee.dao.business.dto.InsuranceApplyQueryDTO; | 
|---|
|  |  |  | import com.doumee.dao.business.join.ApplyDetailJoinMapper; | 
|---|
|  |  |  | import com.doumee.dao.business.join.ApplyLogJoinMapper; | 
|---|
|  |  |  | import com.doumee.dao.business.join.InsuranceApplyJoinMapper; | 
|---|
|  |  |  | import com.doumee.dao.business.model.*; | 
|---|
|  |  |  | 
|---|
|  |  |  | private InsuranceApplyMapper insuranceApplyMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SystemDictDataBiz systemDictDataBiz; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private InsuranceApplyJoinMapper insuranceApplyJoinMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private ApplyDetailMapper applyDetailMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private ApplyDetailJoinMapper applyDetailJoinMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private ApplyLogMapper applyLogMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private MultifileMapper multifileMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private ApplyLogJoinMapper applyLogJoinMapper; | 
|---|
|  |  |  | 
|---|
|  |  |  | if(model == null ||!Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.DATA_EMPTY); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.UPLOAD.getKey())){ | 
|---|
|  |  |  | if(Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该申请状态已流转,当前不支持该操作~"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|---|
|  |  |  | 
|---|
|  |  |  | update.setId(model.getId()); | 
|---|
|  |  |  | insuranceApplyMapper.updateById(update); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return  null; | 
|---|
|  |  |  | Constants.ApplyLogType applyLogType = Constants.ApplyLogType.PLATFORM_RETURN; | 
|---|
|  |  |  | 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 uploadBaoxiandan(InsuranceApply insuranceApply) { | 
|---|
|  |  |  | return  null; | 
|---|
|  |  |  | if(insuranceApply.getId() == null | 
|---|
|  |  |  | || insuranceApply.getCode() == null | 
|---|
|  |  |  | || insuranceApply.getStartTime() == null | 
|---|
|  |  |  | || insuranceApply.getBaoxiandanFile() == null | 
|---|
|  |  |  | ||StringUtils.isBlank( insuranceApply.getBaoxiandanFile() .getFileurl()) | 
|---|
|  |  |  | ||StringUtils.isBlank( insuranceApply.getBaoxiandanFile() .getName())){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.BAD_REQUEST); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | InsuranceApply model = insuranceApplyMapper.selectById(insuranceApply.getId()); | 
|---|
|  |  |  | if(model == null ||!Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.DATA_EMPTY); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(!Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.SIGNATURE.getKey())){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该申请状态已流转,当前不支持该操作~"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(insuranceApply.getApplyEndTime()== null || insuranceApply.getStartTime().getTime()>insuranceApply.getApplyEndTime().getTime() ){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该申请生效周期时间不符合要求,请确认后修改重试~"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|---|
|  |  |  | InsuranceApply update = new InsuranceApply(); | 
|---|
|  |  |  | update.setEditDate(new Date()); | 
|---|
|  |  |  | update.setEditor(user.getId()); | 
|---|
|  |  |  | update.setStatus(Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()); | 
|---|
|  |  |  | update.setCheckDate(update.getEditDate()); | 
|---|
|  |  |  | update.setCheckInfo(insuranceApply.getCheckInfo()); | 
|---|
|  |  |  | update.setCheckUserId(user.getId()); | 
|---|
|  |  |  | update.setId(model.getId()); | 
|---|
|  |  |  | update.setCode(insuranceApply.getCode()); | 
|---|
|  |  |  | update.setEndTime(model.getApplyEndTime()); | 
|---|
|  |  |  | update.setStartTime(insuranceApply.getStartTime()); | 
|---|
|  |  |  | insuranceApplyMapper.updateById(update); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | insuranceApply.getBaoxiandanFile().setIsdeleted(Constants.ZERO); | 
|---|
|  |  |  | insuranceApply.getBaoxiandanFile().setCreator(user.getId()); | 
|---|
|  |  |  | insuranceApply.getBaoxiandanFile().setCreateDate(update.getEditDate()); | 
|---|
|  |  |  | insuranceApply.getBaoxiandanFile().setObjType(Constants.MultiFile.BD_DONE_PDF.getKey()); | 
|---|
|  |  |  | insuranceApply.getBaoxiandanFile().setType(Constants.TWO); | 
|---|
|  |  |  | multifileMapper.insert(insuranceApply.getBaoxiandanFile()); | 
|---|
|  |  |  | update.setBaoxiandanFile(insuranceApply.getBaoxiandanFile()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Constants.ApplyLogType applyLogType = Constants.ApplyLogType.UPLOAD_INSURANCE; | 
|---|
|  |  |  | String info = ""; | 
|---|
|  |  |  | if(model.getApplyStartTime()!=null && model.getApplyStartTime().getTime()/1000!= insuranceApply.getStartTime().getTime()/1000){ | 
|---|
|  |  |  | info =applyLogType.getInfo(); | 
|---|
|  |  |  | info = info.replace("${param1}",DateUtil.getPlusTime2(model.getApplyEndTime())); | 
|---|
|  |  |  | info = info.replace("${param2}",DateUtil.getPlusTime2(insuranceApply.getStartTime())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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 refuseBackApply(InsuranceApply insuranceApply) { | 
|---|
|  |  |  | return  null; | 
|---|
|  |  |  | public Integer dealBackApply(InsuranceApply insuranceApply) { | 
|---|
|  |  |  | if(insuranceApply.getId() == null ||StringUtils.isBlank(insuranceApply.getCheckInfo())){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.BAD_REQUEST); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | InsuranceApply model = insuranceApplyMapper.selectById(insuranceApply.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 = ""; | 
|---|
|  |  |  | InsuranceApply update = new InsuranceApply(); | 
|---|
|  |  |  | if(insuranceApply.getDealBackApply() ==1){ | 
|---|
|  |  |  | //如果是驳回,只能可驳回已签章状态下的退回申请状态进行操作 | 
|---|
|  |  |  | if(!Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_SIGNATURE.getKey())){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该申请状态已流转,当前不支持该操作~"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | applyLogType = Constants.ApplyLogType.PLATFORM_UN_AGREE_BACK; | 
|---|
|  |  |  | info = applyLogType.getInfo(); | 
|---|
|  |  |  | info = info.replace("${param}", insuranceApply.getCheckInfo()); | 
|---|
|  |  |  | update.setStatus(Constants.InsuranceApplyStatus.SIGNATURE.getKey()); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | //如果是同意,两种申请退回状态都可操作 | 
|---|
|  |  |  | if(!(Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_SIGNATURE.getKey()) | 
|---|
|  |  |  | ||Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_WAIT_SIGNATURE.getKey()) | 
|---|
|  |  |  | ||Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_UPLOAD.getKey()))){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该申请状态已流转,当前不支持该操作~"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | applyLogType = Constants.ApplyLogType.PLATFORM_AGREE_BACK; | 
|---|
|  |  |  | if( Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_SIGNATURE.getKey())){ | 
|---|
|  |  |  | update.setStatus(Constants.InsuranceApplyStatus.SIGNATURE.getKey()); | 
|---|
|  |  |  | }else if( Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_WAIT_SIGNATURE.getKey())){ | 
|---|
|  |  |  | update.setStatus(Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey()); | 
|---|
|  |  |  | }else if(  Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_UPLOAD.getKey())){ | 
|---|
|  |  |  | update.setStatus(Constants.InsuranceApplyStatus.UPLOAD.getKey()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | update.setEditDate(new Date()); | 
|---|
|  |  |  | update.setEditor(user.getId()); | 
|---|
|  |  |  | //同意退回,直接回到最初状态,如果驳回退回申请,则保单状态回到待上传保险单 | 
|---|
|  |  |  | update.setStatus(insuranceApply.getDealBackApply() ==0?Constants.InsuranceApplyStatus.UPLOAD.getKey():Constants.InsuranceApplyStatus.SIGNATURE.getKey()); | 
|---|
|  |  |  | update.setCheckDate(update.getEditDate()); | 
|---|
|  |  |  | update.setCheckInfo(insuranceApply.getCheckInfo()); | 
|---|
|  |  |  | update.setCheckUserId(user.getId()); | 
|---|
|  |  |  | update.setId(model.getId()); | 
|---|
|  |  |  | insuranceApplyMapper.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}) | 
|---|
|  |  |  | public Integer uploadToubaodan(InsuranceApply insuranceApply) { | 
|---|
|  |  |  | return  null; | 
|---|
|  |  |  | if(insuranceApply.getId() == null | 
|---|
|  |  |  | || insuranceApply.getToubaodanFile() == null | 
|---|
|  |  |  | ||StringUtils.isBlank( insuranceApply.getToubaodanFile() .getFileurl()) | 
|---|
|  |  |  | ||StringUtils.isBlank( insuranceApply.getToubaodanFile() .getName())){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.BAD_REQUEST); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | InsuranceApply model = insuranceApplyMapper.selectById(insuranceApply.getId()); | 
|---|
|  |  |  | if(model == null ||!Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.DATA_EMPTY); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(!(Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.UPLOAD.getKey()) | 
|---|
|  |  |  | || Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.PLATFORM_CHECK_PASS.getKey()))){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该申请状态已流转,当前不支持该操作~"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|---|
|  |  |  | InsuranceApply update = new InsuranceApply(); | 
|---|
|  |  |  | update.setEditDate(new Date()); | 
|---|
|  |  |  | update.setEditor(user.getId()); | 
|---|
|  |  |  | update.setStatus(Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey()); | 
|---|
|  |  |  | update.setCheckDate(update.getEditDate()); | 
|---|
|  |  |  | update.setCheckInfo(insuranceApply.getCheckInfo()); | 
|---|
|  |  |  | update.setCheckUserId(user.getId()); | 
|---|
|  |  |  | update.setId(model.getId()); | 
|---|
|  |  |  | insuranceApplyMapper.updateById(update); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | insuranceApply.getToubaodanFile().setIsdeleted(Constants.ZERO); | 
|---|
|  |  |  | insuranceApply.getToubaodanFile().setCreator(user.getId()); | 
|---|
|  |  |  | insuranceApply.getToubaodanFile().setCreateDate(update.getEditDate()); | 
|---|
|  |  |  | insuranceApply.getToubaodanFile().setObjType(Constants.MultiFile.BD_APPLY_PDF.getKey()); | 
|---|
|  |  |  | insuranceApply.getToubaodanFile().setType(Constants.TWO); | 
|---|
|  |  |  | multifileMapper.insert(insuranceApply.getToubaodanFile()); | 
|---|
|  |  |  | update.setToubaodanFile(insuranceApply.getToubaodanFile()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Constants.ApplyLogType applyLogType = Constants.ApplyLogType.WAIT_SIGNATURE; | 
|---|
|  |  |  | String info =applyLogType.getInfo(); | 
|---|
|  |  |  | info = info.replace("${param}", update.getCheckInfo()); | 
|---|
|  |  |  | ApplyLog log = new ApplyLog(update,applyLogType.getName(),StringUtils.isNotBlank(update.getCheckInfo())?info:"",update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update)); | 
|---|
|  |  |  | applyLogMapper.insert(log); | 
|---|
|  |  |  | return  1; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 审核通过 | 
|---|
|  |  |  | * @param insuranceApply | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) | 
|---|
|  |  |  | public Integer check(InsuranceApply insuranceApply) { | 
|---|
|  |  |  | return  null; | 
|---|
|  |  |  | if(insuranceApply.getId() == null ||StringUtils.isBlank(insuranceApply.getCheckInfo())){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.BAD_REQUEST); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | InsuranceApply model = insuranceApplyMapper.selectById(insuranceApply.getId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(model == null ||!Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.DATA_EMPTY); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(!Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.UPLOAD.getKey())){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该申请状态已流转,当前不支持该操作~"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|---|
|  |  |  | InsuranceApply update = new InsuranceApply(); | 
|---|
|  |  |  | update.setEditDate(new Date()); | 
|---|
|  |  |  | update.setEditor(user.getId()); | 
|---|
|  |  |  | update.setStatus(Constants.InsuranceApplyStatus.PLATFORM_CHECK_PASS.getKey()); | 
|---|
|  |  |  | update.setCheckDate(update.getEditDate()); | 
|---|
|  |  |  | update.setCheckInfo(insuranceApply.getCheckInfo()); | 
|---|
|  |  |  | update.setCheckUserId(user.getId()); | 
|---|
|  |  |  | update.setId(model.getId()); | 
|---|
|  |  |  | insuranceApplyMapper.updateById(update); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Constants.ApplyLogType applyLogType = Constants.ApplyLogType.PLATFORM_CHECK_PASS; | 
|---|
|  |  |  | ApplyLog log = new ApplyLog(update,applyLogType.getName(),null,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update)); | 
|---|
|  |  |  | applyLogMapper.insert(log); | 
|---|
|  |  |  | return  1; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | applyLog.setTitle(insuranceApplyStatus.getName()); | 
|---|
|  |  |  | applyLog.setContent(content); | 
|---|
|  |  |  | applyLog.setObjType(insuranceApplyStatus.getKey()); | 
|---|
|  |  |  | applyLog.setObjId(Integer.toString(insuranceApply.getId())); | 
|---|
|  |  |  | applyLog.setObjId( insuranceApply.getId()); | 
|---|
|  |  |  | applyLog.setStatus(insuranceApply.getStatus()); | 
|---|
|  |  |  | applyLogMapper.insert(applyLog); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public InsuranceApply findDetail(Integer id) { | 
|---|
|  |  |  | InsuranceApply insuranceApply = insuranceApplyMapper.selectById(id); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | MPJLambdaWrapper wrapper=  new MPJLambdaWrapper<InsuranceApply>() | 
|---|
|  |  |  | .selectAll(InsuranceApply.class) | 
|---|
|  |  |  | .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) | 
|---|
|  |  |  | .selectAs(Company::getName,ApplyLog::getCompanyName) | 
|---|
|  |  |  | .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) | 
|---|
|  |  |  | .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) | 
|---|
|  |  |  | .eq(InsuranceApply::getId,id) | 
|---|
|  |  |  | .last("limit 1"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | InsuranceApply insuranceApply = insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class,wrapper); | 
|---|
|  |  |  | if(Objects.isNull(insuranceApply)){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.DATA_EMPTY); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //查询附件数据 | 
|---|
|  |  |  | initImgData(insuranceApply); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //查询操作记录 | 
|---|
|  |  |  | List<ApplyLog> applyLogList = applyLogJoinMapper.selectJoinList(ApplyLog.class, | 
|---|
|  |  |  | 
|---|
|  |  |  | .orderByAsc(ApplyLog::getCreateDate) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | insuranceApply.setApplyLogList(applyLogList); | 
|---|
|  |  |  | return insuranceApply; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private void initImgData(InsuranceApply model) { | 
|---|
|  |  |  | List<Multifile> multifiles = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda() | 
|---|
|  |  |  | .eq(Multifile::getObjId,model.getId()) | 
|---|
|  |  |  | .in(Multifile::getObjType,Arrays.asList(new Integer[]{Constants.MultiFile.BD_APPLY_PDF.getKey() | 
|---|
|  |  |  | ,Constants.MultiFile.BD_SIGNED_PDF.getKey() | 
|---|
|  |  |  | ,Constants.MultiFile.BD_DONE_PDF.getKey()})) | 
|---|
|  |  |  | .eq(Multifile::getIsdeleted,Constants.ZERO)); | 
|---|
|  |  |  | if(multifiles!=null){ | 
|---|
|  |  |  | String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode() | 
|---|
|  |  |  | +systemDictDataBiz.queryByCode(Constants.OSS,Constants.APPLY_FILE).getCode(); | 
|---|
|  |  |  | for(Multifile f : multifiles){ | 
|---|
|  |  |  | if(StringUtils.isBlank(f.getFileurl())){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | f.setFileurlFull(path+f.getFileurl()); | 
|---|
|  |  |  | if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.BD_APPLY_PDF.getKey())){ | 
|---|
|  |  |  | //签署前的投保单 | 
|---|
|  |  |  | model.setBaoxiandanFile(f); | 
|---|
|  |  |  | }else if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.BD_SIGNED_PDF.getKey())){ | 
|---|
|  |  |  | //签署后的投保单 | 
|---|
|  |  |  | model.setToubaodanSignedFile(f); | 
|---|
|  |  |  | }else if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.BD_DONE_PDF.getKey())){ | 
|---|
|  |  |  | //最終保险单 | 
|---|
|  |  |  | model.setBaoxiandanFile(f); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public  InsuranceApply  findDetailForExport(InsuranceApply model){ | 
|---|
|  |  |  | MPJLambdaWrapper wrapper=  new MPJLambdaWrapper<InsuranceApply>() | 
|---|
|  |  |  | .selectAll(InsuranceApply.class) | 
|---|
|  |  |  | .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) | 
|---|
|  |  |  | .selectAs(Company::getName,ApplyLog::getCompanyName) | 
|---|
|  |  |  | .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) | 
|---|
|  |  |  | .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) | 
|---|
|  |  |  | .eq(InsuranceApply::getId,model.getId()) | 
|---|
|  |  |  | .last("limit 1"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | InsuranceApply insuranceApply = insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class,wrapper); | 
|---|
|  |  |  | if(Objects.isNull(insuranceApply)){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.DATA_EMPTY); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | MPJLambdaWrapper wrapper1=  new MPJLambdaWrapper<ApplyDetail>() | 
|---|
|  |  |  | .selectAll(ApplyDetail.class) | 
|---|
|  |  |  | .selectAs(Worktype::getName,ApplyDetail::getWorkTypeName) | 
|---|
|  |  |  | .selectAs(DispatchUnit::getName,ApplyDetail::getDuName) | 
|---|
|  |  |  | .leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId) | 
|---|
|  |  |  | .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId) | 
|---|
|  |  |  | .eq(InsuranceApply::getId,model.getId()); | 
|---|
|  |  |  | //查询明细 | 
|---|
|  |  |  | List<ApplyDetail> detailList =applyDetailJoinMapper.selectJoinList(ApplyDetail.class,wrapper1); | 
|---|
|  |  |  | if(detailList!=null){ | 
|---|
|  |  |  | insuranceApply.setInsureNum(detailList.size()); | 
|---|
|  |  |  | insuranceApply.setApplyDetailList(detailList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | insuranceApply.setRemark(model.getRemark()); | 
|---|
|  |  |  | return insuranceApply; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | if(insuranceApply.getIsdeleted().equals(Constants.ONE)){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"数据已删除,无法进行该操作"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Constants.InsuranceApplyStatus insuranceApplyStatus =  Constants.InsuranceApplyStatus.COMPANY_APPLY_RETURN; | 
|---|
|  |  |  | //-----TODU-------RJ-------完善退回状态分开标记------------------ | 
|---|
|  |  |  | Constants.InsuranceApplyStatus insuranceApplyStatus =  Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_SIGNATURE; | 
|---|
|  |  |  | if(insuranceApplyOptDTO.getOptType().equals(Constants.ONE)){ | 
|---|
|  |  |  | if(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.COMPANY_APPLY_RETURN.getKey())){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"退回申请中,请勿重复操作"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(!(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.UPLOAD.getKey()) | 
|---|
|  |  |  | ||insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey()) | 
|---|
|  |  |  | ||insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.SIGNATURE.getKey()))){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"数据状态非可申请退回!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.UPLOAD.getKey())){ | 
|---|
|  |  |  | insuranceApplyStatus =  Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_UPLOAD; | 
|---|
|  |  |  | }else   if(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey())){ | 
|---|
|  |  |  | insuranceApplyStatus =  Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_WAIT_SIGNATURE; | 
|---|
|  |  |  | }else  if(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.SIGNATURE.getKey())){ | 
|---|
|  |  |  | insuranceApplyStatus =  Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_SIGNATURE; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else if(insuranceApplyOptDTO.getOptType().equals(Constants.TWO)){ | 
|---|
|  |  |  | insuranceApplyStatus =  Constants.InsuranceApplyStatus.CLOSE; | 
|---|
|  |  |  | if(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.CLOSE.getKey())){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"已关闭,请勿重复操作"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(!(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.PLATFORM_AGREE.getKey()) | 
|---|
|  |  |  | ||insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.PLATFORM_RETURN.getKey()))){ | 
|---|
|  |  |  | if(!(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey()) | 
|---|
|  |  |  | ||insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.SIGNATURE.getKey()) | 
|---|
|  |  |  | ||insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.PLATFORM_CHECK_PASS.getKey()))){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"数据状态非可申请退回!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | insuranceApply.setCheckUserId(loginUserInfo.getId()); | 
|---|
|  |  |  | insuranceApplyMapper.updateById(insuranceApply); | 
|---|
|  |  |  | //存储日志数据 | 
|---|
|  |  |  | this.saveApplyLog(insuranceApply,insuranceApplyStatus,null); | 
|---|
|  |  |  | Constants.ApplyLogType applyLogType = Constants.ApplyLogType.COMPANY_APPLY_RETURN; | 
|---|
|  |  |  | String info =applyLogType.getInfo(); | 
|---|
|  |  |  | info = info.replace("${param}", insuranceApplyOptDTO.getOptIllustration()); | 
|---|
|  |  |  | ApplyLog log = new ApplyLog(insuranceApply,applyLogType.getName(),info,insuranceApply.getId(),applyLogType.getKey(),JSONObject.toJSONString(insuranceApply), JSONObject.toJSONString(insuranceApply)); | 
|---|
|  |  |  | applyLogMapper.insert(log); | 
|---|
|  |  |  | //        this.saveApplyLog(insuranceApply,insuranceApplyStatus,null); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|