|  |  |  | 
|---|
|  |  |  | import com.doumee.core.model.PageWrap; | 
|---|
|  |  |  | import com.doumee.core.utils.Constants; | 
|---|
|  |  |  | import com.doumee.core.utils.Utils; | 
|---|
|  |  |  | import com.doumee.dao.business.DispatchUnitMapper; | 
|---|
|  |  |  | import com.doumee.dao.business.DuLogMapper; | 
|---|
|  |  |  | import com.doumee.dao.business.DuSolutionMapper; | 
|---|
|  |  |  | import com.doumee.dao.business.DuWorktypeMapper; | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | 
|---|
|  |  |  | private DuSolutionMapper duSolutionMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SolutionWorktypeJoinMapper solutionWorktypeJoinMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private DuWorktypeMapper    duWorktypeMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SystemDictDataBiz systemDictDataBiz; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private NoticesMapper noticesMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) | 
|---|
|  |  |  | 
|---|
|  |  |  | 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() | 
|---|
|  |  |  | 
|---|
|  |  |  | //存储操作历史 | 
|---|
|  |  |  | this.saveDuLog(update,Constants.DispatchUnitLogType.WORK_TYPE_AUDIT_UN_PASS,update.getCheckInfo()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //存储待办信息 | 
|---|
|  |  |  | Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.DISPATCH_UNIT; | 
|---|
|  |  |  | //删除其他待办 | 
|---|
|  |  |  | noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,model.getId())); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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.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{ | 
|---|
|  |  |  | 
|---|
|  |  |  | //存储操作历史 | 
|---|
|  |  |  | this.saveDuLog(dispatchUnit,Constants.DispatchUnitLogType.AUDIT_UN_PASS,update.getCheckInfo()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //存储待办信息 | 
|---|
|  |  |  | Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.DISPATCH_UNIT; | 
|---|
|  |  |  | //删除其他待办 | 
|---|
|  |  |  | 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()); | 
|---|
|  |  |  | 
|---|
|  |  |  | duWorktypeMapper.insert(duWorktype); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //存储待办信息 | 
|---|
|  |  |  | Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.DISPATCH_UNIT; | 
|---|
|  |  |  | //删除其他待办 | 
|---|
|  |  |  | noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,dispatchUnit.getId())); | 
|---|
|  |  |  | Notices notices = new Notices(noticeObjectType,Constants.ZERO,dispatchUnit.getId(),dispatchUnit.getName(), | 
|---|
|  |  |  | dispatchUnit.getCompanyId(), Constants.NoticeType.ZERO); | 
|---|
|  |  |  | noticesMapper.insert(notices); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return dispatchUnit.getId(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | //删除其他待办 | 
|---|
|  |  |  | noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,dispatchUnit.getId())); | 
|---|
|  |  |  | Notices notices = new Notices(noticeObjectType,Constants.ZERO,dispatchUnit.getId(),dispatchUnit.getName(), | 
|---|
|  |  |  | dispatchUnit.getCompanyId(), Constants.NoticeType.ZERO); | 
|---|
|  |  |  | noticesMapper.insert(notices); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return dispatchUnit.getId(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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()); | 
|---|
|  |  |  | 
|---|
|  |  |  | //存储操作历史 | 
|---|
|  |  |  | this.saveDuLog(dispatchUnit,Constants.DispatchUnitLogType.ADD_WORK_TYPE,null); | 
|---|
|  |  |  | this.dealDuData(saveDispatchUnitDTO,loginUserInfo); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //存储待办信息 | 
|---|
|  |  |  | Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.DISPATCH_UNIT; | 
|---|
|  |  |  | //删除其他待办 | 
|---|
|  |  |  | noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,dispatchUnit.getId())); | 
|---|
|  |  |  | Notices notices = new Notices(noticeObjectType,Constants.ZERO,dispatchUnit.getId(),dispatchUnit.getName(), | 
|---|
|  |  |  | dispatchUnit.getCompanyId(), Constants.NoticeType.ONE); | 
|---|
|  |  |  | noticesMapper.insert(notices); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return dispatchUnit.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 ") | 
|---|