|  |  | 
 |  |  | 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; | 
 |  |  | 
 |  |  |             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()); | 
 |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |             for (DuWorktype w : worktypes) { | 
 |  |  |                 if(Constants.equalsInteger(w.getStatus(),Constants.TWO)){ | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |                 DuWorktype nw = new DuWorktype(); | 
 |  |  |                 BeanUtils.copyProperties(w, nw); | 
 |  |  |                 nw.setCreateDate(new Date()); | 
 |  |  |                 nw.setCheckDate(update.getEditDate()); | 
 |  |  |                 nw.setStatus(Constants.ONE); | 
 |  |  |                 nw.setDuSolutionId(ns.getId()); | 
 |  |  | 
 |  |  |         //删除其他待办 | 
 |  |  |         noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,dispatchUnit.getId())); | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         return  1; | 
 |  |  |     } | 
 |  |  |     @Override | 
 |  |  | 
 |  |  |                 .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()) | 
 |  |  |                 .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(),"【派遣单位名称】已存在"); | 
 |  |  |         }; | 
 |  |  | 
 |  |  |         dispatchUnit.setEditDate(new Date()); | 
 |  |  |         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); | 
 |  |  | 
 |  |  |                 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) | 
 |  |  | 
 |  |  |  | 
 |  |  |     @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 | 
 |  |  | 
 |  |  |                 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" ) | 
 |  |  |                         .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.isNull(dispatchUnitQueryDTO.getDataType()),DispatchUnit::getDataType,Constants.TWO) | 
 |  |  |                         .eq(!Objects.isNull(dispatchUnitQueryDTO.getDataType()),DispatchUnit::getDataType,dispatchUnitQueryDTO.getDataType()) |