| | |
| | | # application:git |
| | | # name: doumeemes |
| | | profiles: |
| | | active: dev |
| | | active: pro |
| | | |
| | | # JSON返回配置 |
| | | jackson: |
| | |
| | | # application: |
| | | # name: doumeemes |
| | | profiles: |
| | | active: dev |
| | | active: pro |
| | | |
| | | # JSON返回配置 |
| | | jackson: |
| | |
| | | import com.baomidou.mybatisplus.extension.api.R; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.annotation.excel.ExcelExporter; |
| | | import com.doumee.core.annotation.excel.Reflections; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.model.LoginUserInfo; |
| | |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.checkerframework.checker.units.qual.A; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | } |
| | | //查询人员信息是否存在相同的方案下是否存在 冲突数据 |
| | | InsuranceApplyServiceImpl.checkStaticMemberSolution(solutions.getBaseId(), |
| | | member.getIdcardNo(),member.getName(),detail.getStartTime(),detail.getEndTime(), |
| | | member.getId(),member.getIdcardNo(),member.getName(),detail.getStartTime(),detail.getEndTime(), |
| | | applyDetailJoinMapper); |
| | | |
| | | //查询加保人员是否存在 冲突的 保单明细数据 |
| | |
| | | } |
| | | } |
| | | |
| | | private static Logger logger = LoggerFactory.getLogger(ApplyChangeServiceImpl.class); |
| | | |
| | | public BigDecimal dealApplyChangeData(ApplyChange applyChange,InsuranceApply insuranceApply |
| | | ,CompanySolution companySolution,Solutions solutions,LoginUserInfo loginUserInfo,BigDecimal fee){ |
| | | Long start = System.currentTimeMillis(); |
| | | logger.error("处理加减保保单数据开始时间:=========================>"+start); |
| | | if(Constants.equalsInteger(applyChange.getType(),Constants.ZERO)){ |
| | | if(Objects.nonNull(solutions.getDelOnlyReplace())&& solutions.getDelOnlyReplace().equals(Constants.ONE)){ |
| | | if(applyChange.getDelDetailList().size() > applyChange.getAddDetailList().size()){ |
| | |
| | | fee = fee.add(delDetailList.stream().map(ApplyChagneDetail::getFee).reduce(BigDecimal.ZERO,BigDecimal::add)); |
| | | } |
| | | |
| | | |
| | | |
| | | //换厂业务 |
| | | List<ApplyChagneDetail> changeDetailList = applyChange.getChangeDetailList(); |
| | | if (CollectionUtils.isNotEmpty(changeDetailList)) { |
| | |
| | | |
| | | this.changeDetail(applyChange,changeDetailList,duSolutionList,loginUserInfo,solutions,worktypeIdList); |
| | | } |
| | | Long end = System.currentTimeMillis(); |
| | | logger.error("处理加减保保单数据结束时间:=========================>"+end +";单条耗时:====》"+(end-start)); |
| | | return fee; |
| | | } |
| | | |
| | |
| | | ) { |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "加保人员【" + applyChagneDetail.getMemberName() + "】必填项缺失"); |
| | | } |
| | | //查询人员信息是否存在相同的方案下是否存在 冲突数据 |
| | | InsuranceApplyServiceImpl.checkStaticMemberSolution(solutions.getBaseId(), |
| | | applyChagneDetail.getIdcardNo(),applyChagneDetail.getMemberName(),applyChange.getApplyStartTime(),insuranceApply.getEndTime(), |
| | | applyDetailJoinMapper); |
| | | |
| | | //查询加保人员是否存在 冲突的 保单明细数据 |
| | | if(applyDetailJoinMapper.selectCount(new QueryWrapper<ApplyDetail>() |
| | |
| | | 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); |
| | | } |
| | | applyChagneDetail.setMemberId(member.getId()); |
| | | }else{ |
| | | member = memberMapper.selectById(applyChagneDetail.getMemberId()); |
| | | if(Objects.isNull(member)){ |
| | |
| | | memberMapper.updateById(member); |
| | | } |
| | | |
| | | //查询人员信息是否存在相同的方案下是否存在 冲突数据 |
| | | InsuranceApplyServiceImpl.checkStaticMemberSolution(solutions.getBaseId(), |
| | | applyChagneDetail.getMemberId(),applyChagneDetail.getIdcardNo(),applyChagneDetail.getMemberName(),applyChange.getApplyStartTime(),insuranceApply.getEndTime(), |
| | | applyDetailJoinMapper); |
| | | |
| | | //根据员工身份证进行判断年龄 |
| | | long age = Constants.getAgeByIdCard(member.getIdcardNo()); |
| | | if(Objects.isNull(age) |
| | |
| | | .selectAll(DuSolution.class) |
| | | .selectAs(Solutions::getName,DuSolution::getSolutionName) |
| | | .leftJoin(Solutions.class,Solutions::getId,DuSolution::getSolutionId) |
| | | .leftJoin(CompanySolution.class,CompanySolution::getSolutionId,Solutions::getId) |
| | | .eq(DuSolution::getDispatchUnitId,dispatchUnit.getId()) |
| | | .eq(CompanySolution::getCompanyId,dispatchUnit.getCompanyId()) |
| | | .orderByAsc(DuSolution::getSortnum) |
| | | ); |
| | | if(CollectionUtils.isNotEmpty(duSolutionList)){ |
| | |
| | | .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()+" order by b.CHECK_DATE desc limit 1) as du_solution_id" ) |
| | | .eq(loginUserInfo.getType().equals(Constants.ONE),DispatchUnit::getCompanyId,loginUserInfo.getCompanyId()) |
| | | .eq(Objects.nonNull(dispatchUnitQueryDTO.getCompanyId()),DispatchUnit::getCompanyId,dispatchUnitQueryDTO.getCompanyId()) |
| | | .eq(Objects.isNull(dispatchUnitQueryDTO.getDataType()),DispatchUnit::getDataType,Constants.TWO) |
| | | .eq(!Objects.isNull(dispatchUnitQueryDTO.getDataType()),DispatchUnit::getDataType,dispatchUnitQueryDTO.getDataType()) |
| | | .exists(!Objects.isNull(dispatchUnitQueryDTO.getSolutionId()), |
| | |
| | | import io.swagger.models.auth.In; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | if(!Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该申请状态已流转,当前不支持该操作~"); |
| | | } |
| | | Company company = user.getCompany(); |
| | | Company company = user.getShowCompany(); |
| | | if(debugModel){ |
| | | company = companyMapper.selectById(model.getCompanyId()); |
| | | } |
| | |
| | | |
| | | |
| | | |
| | | |
| | | private static Logger logger = LoggerFactory.getLogger(InsuranceApplyServiceImpl.class); |
| | | |
| | | public void dealApplyDetailData(InsuranceApply insuranceApply,Solutions solutions,List<ApplyDetail> applyDetailList, |
| | | LoginUserInfo loginUserInfo,CountCyclePriceVO countCyclePriceVO,Boolean checkNewData){ |
| | | Long start = System.currentTimeMillis(); |
| | | logger.error("处理保单数据开始时间:=========================>"+start); |
| | | //2024年11月6日15:01:34 加入 方案配置了有派遣单位 才会去验证派遣单位数据 |
| | | List<DuSolution> duSolutionList = new ArrayList<>(); |
| | | List<DuWorktype> duWorktypeList = new ArrayList<>(); |
| | |
| | | } |
| | | memberList.addAll(addMemberList); |
| | | for (int i = 0; i < applyDetailList.size(); i++) { |
| | | Long singlStart = System.currentTimeMillis(); |
| | | logger.error("处理保单单条数据开始时间:=========================>"+singlStart); |
| | | ApplyDetail applyDetail = applyDetailList.get(i); |
| | | if(Objects.isNull(applyDetail) |
| | | ||StringUtils.isBlank(applyDetail.getIdcardNo()) |
| | |
| | | .collect(Collectors.toList()).size()<=Constants.ZERO){ |
| | | throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"【"+applyDetail.getMemberName()+applyDetail.getIdcardNo()+"】员工工种信息未查询到!"); |
| | | } |
| | | // if(duWorktypeList.stream().filter(d->d.getWorkTypeId().equals(applyDetail.getWorktypeId())) |
| | | // .collect(Collectors.toList()).size()<=Constants.ZERO){ |
| | | // throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"【"+applyDetail.getMemberName()+applyDetail.getIdcardNo()+"】员工工种信息未查询到!"); |
| | | // } |
| | | Long singlEnd = System.currentTimeMillis(); |
| | | logger.error("处理保单单条数据结束时间:=========================>"+singlEnd+";耗时:====》"+(singlStart-singlEnd)); |
| | | } |
| | | Long end = System.currentTimeMillis(); |
| | | logger.error("处理单数据结束时间:=========================>"+end +";耗时:====》"+(end-start)); |
| | | applyDetailJoinMapper.insertBatchSomeColumn(applyDetailList); |
| | | } |
| | | } |
| | |
| | | }; |
| | | } |
| | | |
| | | public static void checkStaticMemberSolution(Integer solutionId,String idCode,String memberName,Date startTime, |
| | | public static void checkStaticMemberSolution(Integer solutionId,Integer memberId,String memberIdCard,String memberName,Date startTime, |
| | | Date endTime,ApplyDetailJoinMapper applyDetailJoinMapper){ |
| | | List<ApplyDetail> applyDetailList = new ArrayList<ApplyDetail>(); |
| | | try { |
| | |
| | | .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId) |
| | | .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) |
| | | .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) |
| | | .eq(ApplyDetail::getIdcardNo,idCode) |
| | | .eq(ApplyDetail::getIdcardNo,memberIdCard) |
| | | .eq(Solutions::getBaseId,solutionId) |
| | | .eq(ApplyDetail::getIsdeleted,Constants.ZERO) |
| | | .notIn(InsuranceApply::getStatus |
| | |
| | | } |
| | | if(applyDetailList.size() >Constants.ZERO){ |
| | | String companyName = applyDetailList.get(Constants.ZERO).getCompanyName(); |
| | | String idCode = applyDetailList.get(Constants.ZERO).getIdcardNo(); |
| | | if(StringUtils.isNotBlank(companyName)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"该员工【"+memberName+" "+idCode+"】已在【"+companyName+"】存在保险,请联系客服确认"); |
| | | }else{ |
| | |
| | | if(!Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WTB_UPLOAD.getKey())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该申请状态已流转,当前不支持该操作~"); |
| | | } |
| | | Company company = user.getCompany(); |
| | | Company company = user.getShowCompany(); |
| | | if(debugModel){ |
| | | company = companyMapper.selectById(model.getCompanyId()); |
| | | } |
| | |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,该申请状态已流转,当前不支持签章操作!"); |
| | | } |
| | | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | Company company = user.getCompany(); |
| | | Company company = user.getShowCompany(); |
| | | if(debugModel){ |
| | | company = companyMapper.selectById(model.getCompanyId()); |
| | | } |
| | |
| | | if(!Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WTB_TOUBAOING.getKey())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该申请状态已流转,当前不支持该操作~"); |
| | | } |
| | | Company company = user.getCompany(); |
| | | Company company = user.getShowCompany(); |
| | | if(debugModel){ |
| | | company = companyMapper.selectById(model.getCompanyId()); |
| | | } |
| | |
| | | .eq(ApplyDetail::getApplyId,insuranceApply.getId()) |
| | | .eq(ApplyDetail::getIdcardNo,model.getIdCard()) |
| | | /* .le(ApplyDetail::getStartTime,DateUtil.getMontageDate(new Date(),1))*/ |
| | | .ge(ApplyDetail::getEndTime,DateUtil.getMontageDate(new Date(),3))); |
| | | .ge(ApplyDetail::getEndTime,DateUtil.getMontageDate(new Date(),3)) |
| | | .orderByAsc(ApplyDetail::getEndTime) |
| | | .last(" limit 1 ") |
| | | ); |
| | | if(detail == null){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "当前保单下,员工【" + model.getName()+model.getIdCard() + "】非在保人员,无法进行该操作"); |
| | | } |
| | |
| | | solutions.setDataType(Constants.ZERO); |
| | | solutions.setStatus(Constants.ZERO); |
| | | solutions.setCorrectWarnTime(solutionsBase.getCorrectWarnTime()); |
| | | solutions.setDelOnlyReplace(solutionsBase.getDelOnlyReplace()); |
| | | //2024年6月17日15:56:18 仅支持替换模式下,批增日期 等于 批减日期 |
| | | if(Constants.equalsInteger(solutions.getDelOnlyReplace(),Constants.ONE)){ |
| | | solutions.setAddValidDays(solutions.getDelValidDays()); |
| | |
| | | for (ApplyDetail applyDetail:applyDetailList) { |
| | | //查询人员信息是否存在相同的方案下是否存在 冲突数据 |
| | | InsuranceApplyServiceImpl.checkStaticMemberSolution(solutions.getBaseId(), |
| | | applyDetail.getIdcardNo(),applyDetail.getMemberName(),unionApply.getStartTime(),unionApply.getEndTime(), |
| | | applyDetail.getMemberId(),applyDetail.getIdcardNo(),applyDetail.getMemberName(),unionApply.getStartTime(),unionApply.getEndTime(), |
| | | applyDetailJoinMapper); |
| | | fee =fee.add( |
| | | Constants.reduceFee(solutions,solutions.getPrice(),applyDetail.getStartTime(),applyDetail.getEndTime(),saveUnionApplyDTO.getStartDate(),saveUnionApplyDTO.getEndDate()) |
| | |
| | | |
| | | //查询人员信息是否存在相同的方案下是否存在 冲突数据 |
| | | InsuranceApplyServiceImpl.checkStaticMemberSolution(solutions.getBaseId(), |
| | | applyDetail.getIdcardNo(),applyDetail.getMemberName(),unionApply.getStartTime(),unionApply.getEndTime(), |
| | | applyDetail.getMemberId(),applyDetail.getIdcardNo(),applyDetail.getMemberName(),unionApply.getStartTime(),unionApply.getEndTime(), |
| | | applyDetailJoinMapper); |
| | | |
| | | applyDetail.setPrice(price); |
| | |
| | | , BigDecimalVO bigDecimalVO,List<ApplyChagneDetail> reduceList,Integer i){ |
| | | //查询人员信息是否存在相同的方案下是否存在 冲突数据 |
| | | InsuranceApplyServiceImpl.checkStaticMemberSolution(solutions.getBaseId(), |
| | | detail.getIdcardNo(),detail.getMemberName(),DateUtil.getMontageDate(applyChange.getApplyStartTime(),1),DateUtil.getMontageDate(detail.getEndTime(),2), |
| | | detail.getMemberId(),detail.getIdcardNo(),detail.getMemberName(),DateUtil.getMontageDate(applyChange.getApplyStartTime(),1),DateUtil.getMontageDate(detail.getEndTime(),2), |
| | | applyDetailJoinMapper); |
| | | |
| | | //加保 |
| | |
| | | spring: |
| | | # 数据源配置 |
| | | datasource: |
| | | url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/yunyibao?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8 |
| | | url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/yunyibao1?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8 |
| | | username: doumee |
| | | password: rtjgfEr@&0c0m |
| | | driver-class-name: com.mysql.cj.jdbc.Driver |
| | |
| | | mail: |
| | | host: smtp.exmail.qq.com |
| | | username: jp@doumee.com |
| | | password: 2Jz9HFW2U7vRnCRu |
| | | password: p7iKUE8VvQQpY58S |
| | | default-encoding: UTF-8 |
| | | properties: |
| | | mail: |
| | |
| | | mail: |
| | | default-encoding: UTF-8 |
| | | host: smtp.exmail.qq.com |
| | | username: wx@yyb.red |
| | | password: U7id5wLg6XsTmmKn |
| | | username: service@yyb.red |
| | | password: yyb@2025 |
| | | port: 587 |
| | | properties: |
| | | mail: |
| | |
| | | # application:git |
| | | # name: doumeemes |
| | | profiles: |
| | | active: dev |
| | | active: pro |
| | | |
| | | # JSON返回配置 |
| | | jackson: |