server/company/src/main/java/com/doumee/api/business/SmsEmailController.java
@@ -38,6 +38,15 @@ return ApiResponse.success(smsEmailService.create(smsEmail)); } @PreventRepeat @ApiOperation("发送短信验证码") @PostMapping("/sendSms") // @RequiresPermissions("business:smsemail:sendSms") public ApiResponse sendSms(@RequestBody SmsEmail smsEmail) { return ApiResponse.success(smsEmailService.sendSms(smsEmail)); } @ApiOperation("根据ID删除") @GetMapping("/delete/{id}") @RequiresPermissions("business:smsemail:delete") server/company/src/main/java/com/doumee/api/business/SolutionsController.java
@@ -46,6 +46,14 @@ return ApiResponse.success(null); } @ApiOperation("禁用启用") @PostMapping("/updateStatus") @RequiresPermissions("business:solutions:update") public ApiResponse updateStatus(@RequestBody Solutions solutions) { solutionsService.updateStatus(solutions); return ApiResponse.success(null); } @ApiOperation("批量删除") @GetMapping("/delete/batch") @RequiresPermissions("business:solutions:delete") server/service/src/main/java/com/doumee/config/shiro/ShiroConfig.java
@@ -89,6 +89,7 @@ Map<String, String> map = new LinkedHashMap<>(); // 路径拦截配置 map.put("/system/login", "anon"); map.put("/system/loginByPhone", "anon"); map.put("/system/logout", "anon"); map.put("/common/captcha", "anon"); map.put("/business/smsEmail/sendSms", "anon"); server/service/src/main/java/com/doumee/dao/business/model/CompanySolution.java
@@ -82,4 +82,10 @@ @TableField(exist = false) private String solutionName ; @ApiModelProperty(value = "方案主键(关联solutions)", example = "1") @ExcelColumn(name="方案主键(关联solutions)") private Integer solutionId; } server/service/src/main/java/com/doumee/dao/business/model/Member.java
@@ -55,11 +55,11 @@ @ApiModelProperty(value = "实际保险生效止期") @ExcelColumn(name="保险生效止期",index = 9) private String endTime; private Date endTime; @ApiModelProperty(value = "实际保险生效起期") @ExcelColumn(name="保险生效起期",index = 8) private String startTime; private Date startTime; @ApiModelProperty(value = "身份证号码") @ExcelColumn(name="身份证号",index = 3) server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
@@ -171,6 +171,7 @@ update.setStatus(Constants.ApplyChangeStatus.APPROVE.getKey()); update.setCheckDate(update.getEditDate()); update.setCheckInfo(param.getCheckInfo()); update.setApplyId(model.getApplyId()); update.setCheckUserId(user.getId()); update.setId(model.getId()); update.setValidCode(param.getValidCode()); @@ -347,6 +348,17 @@ MemberInsurance memberInsurance = new MemberInsurance(applyDetail,update.getId()); memberInsuranceJoinMapper.insert(memberInsurance); Member member = memberMapper.selectById(detail.getMemberId()); if(Objects.isNull(member)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到员工数据"); } member.setApplyId(update.getApplyId()); member.setDuId(detail.getDuId()); member.setWorktypeId(detail.getWorktypeId()); member.setStartTime(detail.getStartTime()); member.setEndTime(detail.getEndTime()); memberMapper.updateById(member); } } /** @@ -389,6 +401,10 @@ for (ApplyChagneDetail detail : detailList) { Member member = memberMapper.selectById(detail.getMemberId()); if(Objects.isNull(member)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到员工数据"); } if (Constants.equalsInteger(detail.getType(), Constants.ZERO)) { //加保 ApplyDetail add = new ApplyDetail(); @@ -450,7 +466,7 @@ applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda() .setSql(" fee = ifnull(fee,0)+" + updateFee) .setSql(" current_fee = " + updateCurrentFee) .set(ApplyDetail::getEndTime, update.getApplyStartTime()) .set(ApplyDetail::getEndTime, DateUtil.getMontageDate(update.getApplyStartTime(), 3)) .set(ApplyDetail::getEditor, update.getEditor()) .set(ApplyDetail::getEditDate, update.getEditDate()) .eq(ApplyDetail::getId, oldModel.getId()) @@ -466,8 +482,16 @@ ); } member.setApplyId(update.getApplyId()); member.setDuId(detail.getDuId()); member.setWorktypeId(detail.getWorktypeId()); member.setStartTime(detail.getStartTime()); member.setEndTime(detail.getEndTime()); memberMapper.updateById(member); if (memberInsuranceList != null && memberInsuranceList.size() > 0) { memberInsuranceJoinMapper.insertBatchSomeColumn(memberInsuranceList); } } if (totalFee.compareTo(new BigDecimal(0)) != 0) { //如果保单金额发生编码,更新总保单金额 @@ -478,9 +502,6 @@ .set(InsuranceApply::getEditDate, update.getEditDate()) .eq(InsuranceApply::getId, update.getApplyId()) ); } } } @@ -613,6 +634,8 @@ } applyChange.setCreateDate(new Date()); applyChange.setCreator(loginUserInfo.getId()); applyChange.setEditor(loginUserInfo.getId()); applyChange.setEditDate(new Date()); applyChange.setIsdeleted(Constants.ZERO); applyChange.setApplyStartTime(applyChange.getValidTime()); applyChange.setStatus(Constants.ZERO); @@ -856,6 +879,13 @@ applyChagneDetail.setStartTime(applyDetail.getStartTime()); applyChagneDetail.setEndTime(DateUtil.getMontageDate(applyChange.getApplyStartTime(),3)); member.setApplyId(insuranceApply.getId()); member.setDuId(applyChagneDetail.getDuId()); member.setWorktypeId(applyChagneDetail.getWorktypeId()); member.setStartTime(applyChagneDetail.getStartTime()); member.setEndTime(applyChagneDetail.getEndTime()); memberMapper.updateById(member); applyChagneDetail.setFee( detailFee.multiply(new BigDecimal(-1))); applyChagneDetailJoinMapper.insert(applyChagneDetail); } @@ -880,6 +910,13 @@ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "加保人员【" + applyChagneDetail.getMemberName() + "】必填项缺失"); } applyChagneDetail.setCreateDate(new Date()); applyChagneDetail.setCreator(loginUserInfo.getId()); applyChagneDetail.setIsdeleted(Constants.ZERO); applyChagneDetail.setApplyChangeId(applyChange.getId()); applyChagneDetail.setStartTime(DateUtil.getMontageDate(applyChange.getApplyStartTime(),1)); applyChagneDetail.setEndTime(DateUtil.getMontageDate(insuranceApply.getEndTime(),2)); applyChagneDetail.setType(Constants.ZERO); Member member = new Member(); if(Objects.isNull(applyChagneDetail.getMemberId())){ //查询是否存在该用户 @@ -901,11 +938,15 @@ member.setApplyId(insuranceApply.getId()); member.setDuId(applyChagneDetail.getDuId()); member.setWorktypeId(applyChagneDetail.getWorktypeId()); member.setStartTime(applyChagneDetail.getStartTime()); member.setEndTime(applyChagneDetail.getEndTime()); memberMapper.insert(member); }else{ member.setApplyId(insuranceApply.getId()); member.setDuId(applyChagneDetail.getDuId()); member.setWorktypeId(applyChagneDetail.getWorktypeId()); member.setStartTime(applyChagneDetail.getStartTime()); member.setEndTime(applyChagneDetail.getEndTime()); memberMapper.updateById(member); } }else{ @@ -916,8 +957,19 @@ member.setApplyId(insuranceApply.getId()); member.setDuId(applyChagneDetail.getDuId()); member.setWorktypeId(applyChagneDetail.getWorktypeId()); member.setStartTime(applyChagneDetail.getStartTime()); member.setEndTime(applyChagneDetail.getEndTime()); memberMapper.updateById(member); } //根据员工身份证进行判断年龄 long age = Constants.getAgeByIdCard(member.getIdcardNo()); if(Objects.isNull(age) || age > solutions.getMaxAge() || age < solutions.getMinAge()){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"【"+applyChagneDetail.getMemberName()+"】员工年龄超出方案配置 方案配置【"+solutions.getMinAge()+" - "+solutions.getMaxAge()+"】存在异常数据!"); } //查询员工是否存在 0待签署 1已签章 的此类业务保数据 同一主单下 if (applyChagneDetailJoinMapper.selectJoinCount( new MPJLambdaWrapper<ApplyChagneDetail>() @@ -928,6 +980,8 @@ ) > Constants.ZERO) { throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "加保人员【" + applyChagneDetail.getMemberName() + "】存在申请中的加减保/换厂单据"); } //查询员工是在主单下 是否存在生效中的数据 if(!Objects.isNull(applyChagneDetail.getMemberId())){ if (applyDetailJoinMapper.selectCount(new QueryWrapper<ApplyDetail>().lambda() @@ -948,13 +1002,6 @@ throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "【" + applyChagneDetail.getMemberName() + "】员工工种信息未查询到!"); } applyChagneDetail.setMemberId(member.getId()); applyChagneDetail.setCreateDate(new Date()); applyChagneDetail.setCreator(loginUserInfo.getId()); applyChagneDetail.setIsdeleted(Constants.ZERO); applyChagneDetail.setApplyChangeId(applyChange.getId()); applyChagneDetail.setStartTime(DateUtil.getMontageDate(applyChange.getApplyStartTime(),1)); applyChagneDetail.setEndTime(DateUtil.getMontageDate(insuranceApply.getEndTime(),2)); applyChagneDetail.setType(Constants.ZERO); applyChagneDetail.setFee(detailFee); applyChagneDetailJoinMapper.insert(applyChagneDetail); } @@ -1019,7 +1066,18 @@ applyChagneDetail.setIsdeleted(Constants.ZERO); applyChagneDetail.setApplyChangeId(applyChange.getId()); applyChagneDetail.setType(Constants.TWO); applyChagneDetail.setStartTime(applyDetail.getStartTime()); applyChagneDetail.setEndTime(applyDetail.getEndTime()); applyChagneDetailJoinMapper.insert(applyChagneDetail); member.setApplyId(applyChange.getApplyId()); member.setDuId(applyChagneDetail.getDuId()); member.setWorktypeId(applyChagneDetail.getWorktypeId()); member.setStartTime(applyChagneDetail.getStartTime()); member.setEndTime(applyChagneDetail.getEndTime()); memberMapper.updateById(member); } } server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
@@ -894,10 +894,12 @@ List<DispatchUnit> dispatchUnitList = dispatchUnitJoinMapper.selectJoinList(DispatchUnit.class, new MPJLambdaWrapper<DispatchUnit>().selectAll(DispatchUnit.class) .eq(DispatchUnit::getIsdeleted,Constants.ZERO) .eq(DispatchUnit::getStatus,Constants.ZERO) .select("(select b.id from du_solution b where b.isdeleted=0 and b.dispatch_unit_id=t.id and b.solution_id="+dispatchUnitQueryDTO.getSolutionId()+" limit 1) as du_solution_id" ) .eq(loginUserInfo.getType().equals(Constants.ONE),DispatchUnit::getCompanyId,loginUserInfo.getCompanyId()) .eq(DispatchUnit::getStatus,Constants.ZERO) .eq(DispatchUnit::getDataType,Constants.TWO) .eq(Objects.isNull(dispatchUnitQueryDTO.getDataType()),DispatchUnit::getDataType,Constants.TWO) .eq(!Objects.isNull(dispatchUnitQueryDTO.getDataType()),DispatchUnit::getDataType,dispatchUnitQueryDTO.getDataType()) .exists(!Objects.isNull(dispatchUnitQueryDTO.getSolutionId()), "select b.id from du_solution b where b.isdeleted=0 and b.dispatch_unit_id=t.id and b.solution_id="+dispatchUnitQueryDTO.getSolutionId() ) .exists(!Objects.isNull(dispatchUnitQueryDTO.getApplyId()), server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
@@ -785,6 +785,9 @@ if(Objects.isNull(solutions)){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"未查询到方案信息"); } if(!(solutions.getIsdeleted().equals(Constants.ZERO)||solutions.getStatus().equals(Constants.ZERO))){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"方案信息已被禁用"); } List<ApplyDetail> applyDetailList = insuranceApply.getApplyDetailList(); //判断是否存在重复信息 List<String> idCardList = applyDetailList.stream().map(i->i.getIdcardNo()).collect(Collectors.toList()); @@ -987,6 +990,8 @@ member.setSex(Constants.getSexByIdCard(applyDetail.getIdcardNo())); member.setIdcardNo(applyDetail.getIdcardNo()); member.setApplyId(insuranceApply.getId()); member.setStartTime(applyDetail.getStartTime()); member.setEndTime(applyDetail.getEndTime()); member.setDuId(applyDetail.getDuId()); member.setWorktypeId(applyDetail.getWorktypeId()); memberMapper.insert(member); @@ -994,6 +999,8 @@ member.setApplyId(insuranceApply.getId()); member.setDuId(applyDetail.getDuId()); member.setWorktypeId(applyDetail.getWorktypeId()); member.setStartTime(applyDetail.getStartTime()); member.setEndTime(applyDetail.getEndTime()); memberMapper.updateById(member); } }else{ @@ -1004,8 +1011,18 @@ member.setApplyId(insuranceApply.getId()); member.setDuId(applyDetail.getDuId()); member.setWorktypeId(applyDetail.getWorktypeId()); member.setStartTime(applyDetail.getStartTime()); member.setEndTime(applyDetail.getEndTime()); memberMapper.updateById(member); } //根据员工身份证进行判断年龄 long age = Constants.getAgeByIdCard(member.getIdcardNo()); if(Objects.isNull(age) || age > solutions.getMaxAge() || age < solutions.getMinAge()){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"【"+applyDetail.getMemberName()+"】员工年龄超出方案配置,方案配置【"+solutions.getMinAge()+" - "+solutions.getMaxAge()+"】!"); } applyDetail.setMemberId(member.getId()); applyDetail.setIdcardNo(member.getIdcardNo()); applyDetail.setSex(member.getSex()); server/service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
@@ -6,6 +6,7 @@ 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.SmsEmailMapper; import com.doumee.dao.business.model.SmsEmail; @@ -94,11 +95,20 @@ if(StringUtils.isBlank(smsEmail.getPhone())){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } String nowDate = DateUtil.getFomartDate(new Date(),"yyyy-MM-dd HH:mm:ss"); if(smsEmailMapper.selectCount(new QueryWrapper<SmsEmail>().lambda() .eq(SmsEmail::getPhone,smsEmail.getPhone()) .eq(SmsEmail::getType,Constants.ZERO) .between(SmsEmail::getCreateDate, DateUtil.getFomartDate(DateUtil.afterMinutesDate(-5),"yyyy-MM-dd HH:mm:ss"),nowDate) )>=3){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"对不起,超出发送次数,请稍后重试!"); } String code = Constants.getRandom6Num(); boolean result= emayService.sendSingleSms(smsEmail.getPhone(),code); if(!result){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"对不起,短信验证码发送失败,请稍后重试!"); } smsEmail.setRemark(code); smsEmail.setIsdeleted(Constants.ZERO); smsEmail.setCreateDate(new Date()); server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
@@ -192,7 +192,7 @@ .set(Solutions::getDataType,Constants.ONE) .set(StringUtils.isNotBlank(solutions.getSignKeyword()),Solutions::getSignKeyword,solutions.getSignKeyword()) ); //处理工作信息,新增最新的,同时产生历史版本 //处理工种信息,新增最新的,同时产生历史版本 dealWorkType(solutions,newModel,solutions.getWorktypeIdList(),false); } @@ -262,6 +262,7 @@ @Override public List<Solutions> findList(Solutions solutions) { solutions.setIsdeleted(Constants.ZERO); solutions.setStatus(Constants.ZERO); if(solutions.getDataType() == null){ solutions.setDataType(Constants.TWO); } server/service/src/main/java/com/doumee/service/business/impl/WorktypeServiceImpl.java
@@ -11,6 +11,7 @@ import com.doumee.dao.business.WorktypeMapper; import com.doumee.dao.business.dto.WorkTypeQueryDTO; import com.doumee.dao.business.dto.WorktypeImport; import com.doumee.dao.business.model.DispatchUnit; import com.doumee.dao.business.model.Worktype; import com.doumee.service.business.WorktypeService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -94,6 +95,7 @@ @Override public List<Worktype> findList(Worktype worktype) { worktype.setIsdeleted(Constants.ZERO); worktype.setStatus(Constants.ZERO); QueryWrapper<Worktype> wrapper = new QueryWrapper<>(worktype); return worktypeMapper.selectList(wrapper); }