| | |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.*; |
| | | import com.doumee.dao.business.dto.*; |
| | | import com.doumee.dao.business.join.DispatchUnitJoinMapper; |
| | | import com.doumee.dao.business.join.DuLogJoinMapper; |
| | | import com.doumee.dao.business.join.DuSolutionJoinMapper; |
| | | import com.doumee.dao.business.join.DuWorkTypeJoinMapper; |
| | | import com.doumee.dao.business.join.*; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.system.model.SystemUser; |
| | | import com.doumee.service.business.DispatchUnitService; |
| | |
| | | |
| | | @Autowired |
| | | private DuSolutionMapper duSolutionMapper; |
| | | |
| | | @Autowired |
| | | private SolutionWorktypeJoinMapper solutionWorktypeJoinMapper; |
| | | |
| | | @Autowired |
| | | private DuWorktypeMapper duWorktypeMapper; |
| | |
| | | dispatchUnitMapper.updateById(update); |
| | | if(Constants.equalsInteger(param.getWorktypeStatus(),Constants.ONE)){ |
| | | //审核通过,修改状态,产生历史版本 |
| | | newVersionData(dispatchUnitMapper.selectById(param.getId()),update); |
| | | newVersionData(model,update,false); |
| | | //存储操作历史 |
| | | this.saveDuLog(update,Constants.DispatchUnitLogType.WORK_TYPE_AUDIT_PASS,update.getCheckInfo()); |
| | | |
| | | }else{ |
| | | //更新明细数据为审核失败 |
| | | duSolutionMapper.update(null,new UpdateWrapper<DuSolution>().lambda() |
| | |
| | | return 1; |
| | | } |
| | | |
| | | private void newVersionData(DispatchUnit model, DispatchUnit update) { |
| | | dispatchUnitMapper.update(null,new UpdateWrapper<DispatchUnit>().lambda() |
| | | .set(DispatchUnit::getDataType,Constants.ZERO) |
| | | .eq(DispatchUnit::getIsdeleted,Constants.ZERO) |
| | | .eq(DispatchUnit::getBaseId,model.getId())); |
| | | private void newVersionData(DispatchUnit model, DispatchUnit update,Boolean flag) { |
| | | DispatchUnit newVersion = new DispatchUnit(); |
| | | BeanUtils.copyProperties(model, newVersion); |
| | | newVersion.setWorktypeStatus(Constants.ONE); |
| | | newVersion.setCheckDate(update.getEditDate()); |
| | | newVersion.setCheckUserId(update.getCheckUserId()); |
| | | newVersion.setCheckInfo(update.getCheckInfo()); |
| | | newVersion.setCreateDate(update.getCreateDate()); |
| | | newVersion.setCreator(update.getEditor()); |
| | | newVersion.setBaseId(model.getBaseId()); |
| | | newVersion.setDataType(Constants.TWO); |
| | | dispatchUnitMapper.insert(newVersion); |
| | | |
| | | if(flag){ |
| | | dispatchUnitMapper.update(null,new UpdateWrapper<DispatchUnit>().lambda() |
| | | .set(DispatchUnit::getDataType,Constants.ZERO) |
| | | .eq(DispatchUnit::getIsdeleted,Constants.ZERO) |
| | | .eq(DispatchUnit::getBaseId,model.getId())); |
| | | BeanUtils.copyProperties(model, newVersion); |
| | | newVersion.setId(null); |
| | | newVersion.setWorktypeStatus(Constants.ONE); |
| | | newVersion.setCheckDate(update.getEditDate()); |
| | | newVersion.setCheckUserId(update.getCheckUserId()); |
| | | newVersion.setCheckInfo(update.getCheckInfo()); |
| | | newVersion.setStatus(Constants.ZERO); |
| | | newVersion.setCreateDate(update.getCreateDate()); |
| | | newVersion.setCreator(update.getEditor()); |
| | | newVersion.setBaseId(model.getId()); |
| | | newVersion.setDataType(Constants.TWO); |
| | | dispatchUnitMapper.insert(newVersion); |
| | | }else{ |
| | | newVersion = dispatchUnitMapper.selectOne(new QueryWrapper<DispatchUnit>().lambda() |
| | | .eq(DispatchUnit::getIsdeleted,Constants.ZERO) |
| | | .eq(DispatchUnit::getDataType,Constants.TWO) |
| | | .eq(DispatchUnit::getBaseId,model.getId()) |
| | | .last(" limit 1")); |
| | | } |
| | | if(Objects.isNull(newVersion)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到派遣单位最新版本"); |
| | | } |
| | | List<DuWorktype> newWorktypes = new ArrayList<>(); |
| | | List<DuSolution> solutions = duSolutionMapper.selectList(new QueryWrapper<DuSolution>().lambda() |
| | | .eq(DuSolution::getIsdeleted,Constants.ZERO) |
| | |
| | | ); |
| | | |
| | | |
| | | |
| | | if(solutions == null || solutions.size() ==0){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该派遣单位未设置方案工种信息,审核通过失败!"); |
| | | } |
| | | for (DuSolution s : solutions){ |
| | | DuSolution ns = new DuSolution(); |
| | | BeanUtils.copyProperties(s, ns); |
| | | ns.setId(null); |
| | | ns.setDispatchUnitId(newVersion.getId()); |
| | | ns.setCheckDate(update.getEditDate()); |
| | | ns.setStatus(Constants.ONE); |
| | |
| | | |
| | | |
| | | for (DuWorktype w : worktypes) { |
| | | if(Constants.equalsInteger(w.getStatus(),Constants.TWO)){ |
| | | continue; |
| | | } |
| | | DuWorktype nw = new DuWorktype(); |
| | | BeanUtils.copyProperties(w, nw); |
| | | nw.setId(null); |
| | | nw.setCreateDate(new Date()); |
| | | nw.setCheckDate(update.getEditDate()); |
| | | nw.setStatus(Constants.ONE); |
| | | nw.setDuSolutionId(ns.getId()); |
| | |
| | | } |
| | | if(newWorktypes!=null &&newWorktypes.size()>0){ |
| | | //批量查询工种关联记录 |
| | | duWorktypeMapper.insertBatchSomeColumn(newWorktypes); |
| | | duWorktypeMapper.insert(newWorktypes); |
| | | } |
| | | } |
| | | |
| | |
| | | DispatchUnit dispatchUnit = dispatchUnitMapper.selectById(param.getId()); |
| | | if(Constants.equalsInteger(param.getUnitStatus(),Constants.ONE)){ |
| | | //审核通过,修改状态,产生历史版本 |
| | | newVersionData(dispatchUnit,update); |
| | | newVersionData(dispatchUnit,update,true); |
| | | //存储操作历史 |
| | | this.saveDuLog(dispatchUnit,Constants.DispatchUnitLogType.AUDIT_PASS,update.getCheckInfo()); |
| | | }else{ |
| | |
| | | //删除其他待办 |
| | | noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,dispatchUnit.getId())); |
| | | |
| | | |
| | | return 1; |
| | | } |
| | | @Override |
| | |
| | | public Integer create(SaveDispatchUnitDTO saveDispatchUnitDTO) { |
| | | if(Objects.isNull(saveDispatchUnitDTO) |
| | | || StringUtils.isEmpty(saveDispatchUnitDTO.getName()) |
| | | || StringUtils.isEmpty(saveDispatchUnitDTO.getCode()) |
| | | || StringUtils.isEmpty(saveDispatchUnitDTO.getContent()) |
| | | || CollectionUtils.isEmpty(saveDispatchUnitDTO.getSaveDuSolutionDTOList()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | |
| | | .eq(DispatchUnit::getCompanyId,loginUserInfo.getCompanyId()) |
| | | .eq(DispatchUnit::getName,saveDispatchUnitDTO.getName()) |
| | | .eq(DispatchUnit::getIsdeleted,Constants.ZERO) |
| | | .eq(DispatchUnit::getDataType,Constants.ZERO) |
| | | )> Constants.ZERO){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"【派遣单位名称】已存在"); |
| | | }; |
| | | if(dispatchUnitMapper.selectCount(new QueryWrapper<DispatchUnit>().lambda() |
| | | .eq(DispatchUnit::getCompanyId,loginUserInfo.getCompanyId()) |
| | | .eq(DispatchUnit::getCode,saveDispatchUnitDTO.getCode()) |
| | | .eq(DispatchUnit::getIsdeleted,Constants.ZERO) |
| | | )> Constants.ZERO){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"【派遣单位信用代码】已存在"); |
| | | }; |
| | | // if(dispatchUnitMapper.selectCount(new QueryWrapper<DispatchUnit>().lambda() |
| | | // .eq(DispatchUnit::getCompanyId,loginUserInfo.getCompanyId()) |
| | | // .eq(DispatchUnit::getCode,saveDispatchUnitDTO.getCode()) |
| | | // .eq(DispatchUnit::getIsdeleted,Constants.ZERO) |
| | | // )> Constants.ZERO){ |
| | | // throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"【派遣单位信用代码】已存在"); |
| | | // }; |
| | | DispatchUnit dispatchUnit = new DispatchUnit(); |
| | | dispatchUnit.setCreateDate(new Date()); |
| | | dispatchUnit.setCreator(loginUserInfo.getId()); |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | //存储待办信息 |
| | | Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.DISPATCH_UNIT; |
| | | //删除其他待办 |
| | |
| | | } |
| | | if(dispatchUnitMapper.selectCount(new QueryWrapper<DispatchUnit>().lambda() |
| | | .ne(DispatchUnit::getId,saveDispatchUnitDTO.getId()) |
| | | .ne(DispatchUnit::getBaseId,saveDispatchUnitDTO.getId()) |
| | | .eq(DispatchUnit::getCompanyId,loginUserInfo.getCompanyId()) |
| | | .eq(DispatchUnit::getName,saveDispatchUnitDTO.getName()) |
| | | .eq(DispatchUnit::getIsdeleted,Constants.ZERO) |
| | | .eq(DispatchUnit::getDataType,Constants.ZERO) |
| | | )> Constants.ZERO){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"【派遣单位名称】已存在"); |
| | | }; |
| | | if(dispatchUnitMapper.selectCount(new QueryWrapper<DispatchUnit>().lambda() |
| | | .ne(DispatchUnit::getId,saveDispatchUnitDTO.getId()) |
| | | .eq(DispatchUnit::getCompanyId,loginUserInfo.getCompanyId()) |
| | | .eq(DispatchUnit::getCode,saveDispatchUnitDTO.getCode()) |
| | | .eq(DispatchUnit::getIsdeleted,Constants.ZERO) |
| | | )> Constants.ZERO){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"【派遣单位信用代码】已存在"); |
| | | } |
| | | dispatchUnit.setCode(saveDispatchUnitDTO.getCode()); |
| | | dispatchUnit.setContent(saveDispatchUnitDTO.getContent()); |
| | | dispatchUnit.setName(saveDispatchUnitDTO.getName()); |
| | |
| | | dispatchUnit.setEditor(loginUserInfo.getId()); |
| | | dispatchUnitMapper.updateById(dispatchUnit); |
| | | |
| | | dispatchUnitMapper.update(null,new UpdateWrapper<DispatchUnit>().lambda().set(DispatchUnit::getDataType,Constants.ONE).eq(DispatchUnit::getBaseId,dispatchUnit.getId()) |
| | | .eq(DispatchUnit::getDataType,Constants.TWO) |
| | | ); |
| | | |
| | | |
| | | //存储操作记录 |
| | | this.saveDuLog(dispatchUnit,Constants.DispatchUnitLogType.EDIT_UNIT,null); |
| | | |
| | | // this.dealDuData(saveDispatchUnitDTO,loginUserInfo); |
| | | |
| | | |
| | | //存储待办信息 |
| | | Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.DISPATCH_UNIT; |
| | |
| | | } |
| | | LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | DispatchUnit dispatchUnit = this.dispatchUnitMapper.selectById(saveDispatchUnitDTO.getId()); |
| | | if(!dispatchUnit.getUnitStatus().equals(Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"派遣单位未审批通过,无法进行该操作"); |
| | | } |
| | | dispatchUnit.setWorktypeStatus(Constants.ZERO); |
| | | dispatchUnit.setEditDate(new Date()); |
| | | dispatchUnit.setEditor(loginUserInfo.getId()); |
| | |
| | | DuSolution duSolution = duSolutionMapper.selectOne(new QueryWrapper<DuSolution>().lambda().eq(DuSolution::getDispatchUnitId,saveDispatchUnitDTO.getId()) |
| | | .eq(DuSolution::getIsdeleted,Constants.ZERO) |
| | | .eq(DuSolution::getSolutionId,saveDuSolutionDTO.getSolutionId()).last("limit 1")); |
| | | Integer duSolutionNum = duSolutionMapper.selectCount(new QueryWrapper<DuSolution>().lambda().eq(DuSolution::getDispatchUnitId,saveDuSolutionDTO.getId())); |
| | | Integer duSolutionNum = duSolutionMapper.selectCount(new QueryWrapper<DuSolution>().lambda().eq(DuSolution::getDispatchUnitId,saveDuSolutionDTO.getId())).intValue(); |
| | | if(Objects.isNull(duSolution)){ |
| | | duSolution = new DuSolution(); |
| | | duSolution.setCreateDate(new Date()); |
| | |
| | | if(Objects.isNull(saveDuWorkTypeDTO.getWorkTypeId())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"【"+saveDuSolutionDTO.getSolutionName()+"】该方案下"+saveDuWorkTypeDTO.getWorkTypeName()+"该工种信息异常"); |
| | | } |
| | | //验证方案与工种的关系 |
| | | if(solutionWorktypeJoinMapper.selectCount(new QueryWrapper<SolutionWorktype>().lambda().eq(SolutionWorktype::getSolutionId,saveDuSolutionDTO.getSolutionId()) |
| | | .eq(SolutionWorktype::getWorktypeId,saveDuWorkTypeDTO.getWorkTypeId()))<=0){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"【"+saveDuSolutionDTO.getSolutionName()+"】该方案下"+saveDuWorkTypeDTO.getWorkTypeName()+"该工种信息无绑定关系"); |
| | | }; |
| | | if(duWorktypeMapper.selectCount(new QueryWrapper<DuWorktype>() |
| | | .lambda().eq(DuWorktype::getDuSolutionId,duSolution.getId()) |
| | | .eq(DuWorktype::getIsdeleted,Constants.ZERO) |
| | | .eq(DuWorktype::getWorkTypeId,saveDuWorkTypeDTO.getWorkTypeId()))>0){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"【"+saveDuSolutionDTO.getSolutionName()+"】该方案下"+saveDuWorkTypeDTO.getWorkTypeName()+"该工种已存在"); |
| | | } |
| | | Integer duWorkTypeNum = duWorktypeMapper.selectCount(new QueryWrapper<DuWorktype>().lambda().eq(DuWorktype::getDuSolutionId,duSolution.getId())); |
| | | Integer duWorkTypeNum = duWorktypeMapper.selectCount(new QueryWrapper<DuWorktype>().lambda().eq(DuWorktype::getDuSolutionId,duSolution.getId())).intValue(); |
| | | DuWorktype duWorktype = new DuWorktype(); |
| | | duWorktype.setCreateDate(new Date()); |
| | | duWorktype.setCreator(loginUserInfo.getId()); |
| | |
| | | if(Objects.isNull(dispatchUnit)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"未查询到派遣单位信息"); |
| | | } |
| | | //派遣单位审批 |
| | | //派遣单位审核 |
| | | if(dispatchUnitAuditDTO.getAuditType().equals(Constants.ZERO)){ |
| | | if(dispatchUnit.getStatus().equals(Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"派遣单位信息已审核"); |
| | |
| | | |
| | | @Override |
| | | public void deleteById(Integer id) { |
| | | dispatchUnitMapper.deleteById(id); |
| | | LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | DispatchUnit dispatchUnit = dispatchUnitMapper.selectById(id); |
| | | if(Objects.isNull(dispatchUnit)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | if(dispatchUnit.getUnitStatus().equals(Constants.TWO)){ |
| | | dispatchUnitMapper.update(null,new UpdateWrapper<DispatchUnit>().lambda() |
| | | .set(DispatchUnit::getEditor,loginUserInfo.getId()) |
| | | .set(DispatchUnit::getEditDate,new Date()) |
| | | .set(DispatchUnit::getIsdeleted,Constants.ONE) |
| | | .eq(DispatchUnit::getId,id)); |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"当前派遣单位状态无法进行该操作"); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | |
| | | @Override |
| | | public void updateById(DispatchUnit dispatchUnit) { |
| | | dispatchUnitMapper.updateById(dispatchUnit); |
| | | //更新历史表状态 |
| | | if(Objects.nonNull(dispatchUnit.getId())&& Objects.nonNull(dispatchUnit.getStatus())){ |
| | | dispatchUnitMapper.update(null,new UpdateWrapper<DispatchUnit>().lambda() |
| | | .set(DispatchUnit::getStatus,dispatchUnit.getStatus()) |
| | | .eq(DispatchUnit::getDataType,Constants.TWO) |
| | | .eq(DispatchUnit::getBaseId,dispatchUnit.getId()) |
| | | ); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | |
| | | if (pageWrap.getModel().getBaseId() != null) { |
| | | queryWrapper.eq(DispatchUnit::getBaseId, pageWrap.getModel().getBaseId()); |
| | | } |
| | | for(PageWrap.SortData sortData: pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | } |
| | | } |
| | | queryWrapper.orderByAsc(DispatchUnit::getUnitStatus); |
| | | queryWrapper.orderByAsc(DispatchUnit::getWorktypeStatus); |
| | | queryWrapper.orderByDesc(DispatchUnit::getCreateDate); |
| | | // for(PageWrap.SortData sortData: pageWrap.getSorts()) { |
| | | // if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | // queryWrapper.orderByDesc(sortData.getProperty()); |
| | | // } else { |
| | | // queryWrapper.orderByAsc(sortData.getProperty()); |
| | | // } |
| | | // } |
| | | PageData<DispatchUnit> pageData = PageData.from(dispatchUnitJoinMapper.selectJoinPage(page,DispatchUnit.class, queryWrapper)); |
| | | return pageData; |
| | | } |
| | |
| | | .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)){ |
| | |
| | | LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | List<DispatchUnit> dispatchUnitList = dispatchUnitJoinMapper.selectJoinList(DispatchUnit.class, |
| | | new MPJLambdaWrapper<DispatchUnit>().selectAll(DispatchUnit.class) |
| | | .selectAs(DuSolution::getId,DispatchUnit::getDuSolutionId) |
| | | .leftJoin(DuSolution.class,DuSolution::getDispatchUnitId,DispatchUnit::getId) |
| | | .eq(DispatchUnit::getIsdeleted,Constants.ZERO) |
| | | .eq(loginUserInfo.getType().equals(Constants.ONE),DispatchUnit::getCompanyId,loginUserInfo.getCompanyId()) |
| | | .eq(DispatchUnit::getStatus,Constants.ZERO) |
| | | //.eq(DispatchUnit::getDataType,dispatchUnitQueryDTO.getDataType()) |
| | | .eq(DispatchUnit::getDataType,Constants.TWO) |
| | | .eq(!Objects.isNull(dispatchUnitQueryDTO.getSolutionId()),DuSolution::getSolutionId,dispatchUnitQueryDTO.getSolutionId()) |
| | | .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()), |
| | | "select b.id from du_solution b where b.isdeleted=0 and b.dispatch_unit_id=t.id and b.status = 1 and b.solution_id="+dispatchUnitQueryDTO.getSolutionId() ) |
| | | .exists(!Objects.isNull(dispatchUnitQueryDTO.getApplyId()), |
| | | " select 1 from apply_detail ad where ad.isdeleted = 0 and ad.apply_id = "+dispatchUnitQueryDTO.getApplyId()+" " + |
| | | " and ad.du_id = t.id ") |