|  |  | 
 |  |  | 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; | 
 |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private SystemDictDataBiz systemDictDataBiz; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private NoticesMapper noticesMapper; | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     @Transactional(rollbackFor = {Exception.class,BusinessException.class}) | 
 |  |  |     public Integer checkWorktype(DispatchUnit param) { | 
 |  |  | 
 |  |  |         if(Constants.equalsInteger(param.getWorktypeStatus(),Constants.ONE)){ | 
 |  |  |             //审核通过,修改状态,产生历史版本 | 
 |  |  |             newVersionData(dispatchUnitMapper.selectById(param.getId()),update); | 
 |  |  |             //存储操作历史 | 
 |  |  |             this.saveDuLog(update,Constants.DispatchUnitLogType.WORK_TYPE_AUDIT_PASS,update.getCheckInfo()); | 
 |  |  |  | 
 |  |  |         }else{ | 
 |  |  |             //更新明细数据为审核失败 | 
 |  |  |             duSolutionMapper.update(null,new UpdateWrapper<DuSolution>().lambda() | 
 |  |  | 
 |  |  |                     .set(DuSolution::getCheckUserId,update.getCheckUserId()) | 
 |  |  |                     .set(DuSolution::getCheckInfo,update.getCheckInfo()) | 
 |  |  |                     .eq(DuSolution::getDispatchUnitId,update.getId())); | 
 |  |  |  | 
 |  |  |             duWorktypeMapper.update(null,new UpdateWrapper<DuWorktype>().lambda() | 
 |  |  |                     .set(DuWorktype::getStatus,Constants.TWO) | 
 |  |  |                     .set(DuWorktype::getCheckUserId,update.getCheckUserId()) | 
 |  |  |                     .set(DuWorktype::getCheckInfo,update.getCheckInfo()) | 
 |  |  |                     .set(DuWorktype::getCheckDate,new Date() ) | 
 |  |  |                     .eq(DuWorktype::getIsdeleted,Constants.ZERO) | 
 |  |  |                     .eq(DuWorktype::getStatus,Constants.ZERO) | 
 |  |  |                     .eq(DuWorktype::getDispatchUnitId,update.getId())); | 
 |  |  |             //存储操作历史 | 
 |  |  |             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; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |             //审核通过,修改状态,产生历史版本 | 
 |  |  |             newVersionData(dispatchUnit,update); | 
 |  |  |             //存储操作历史 | 
 |  |  |             this.saveDuLog(dispatchUnit,Constants.DispatchUnitLogType.AUDIT_PASS,null); | 
 |  |  |             this.saveDuLog(dispatchUnit,Constants.DispatchUnitLogType.AUDIT_PASS,update.getCheckInfo()); | 
 |  |  |         }else{ | 
 |  |  |             //更新明细数据为审核失败 | 
 |  |  |             duSolutionMapper.update(null,new UpdateWrapper<DuSolution>().lambda() | 
 |  |  | 
 |  |  |                     .set(DuSolution::getCheckInfo,update.getCheckInfo()) | 
 |  |  |                     .eq(DuSolution::getDispatchUnitId,update.getId())); | 
 |  |  |  | 
 |  |  |  | 
 |  |  |             List<DuSolution> solutions = duSolutionMapper.selectList(new QueryWrapper<DuSolution>().lambda() | 
 |  |  |                     .eq(DuSolution::getIsdeleted,Constants.ZERO) | 
 |  |  |                     .eq(DuSolution::getDispatchUnitId,model.getId())); | 
 |  |  |  | 
 |  |  |             if(solutions == null || solutions.size() ==0){ | 
 |  |  |                 throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该派遣单位未设置方案工种信息,审核通过失败!"); | 
 |  |  |             } | 
 |  |  |             for (DuSolution s : solutions){ | 
 |  |  |                 duWorktypeMapper.update(null,new UpdateWrapper<DuWorktype>().lambda() | 
 |  |  |                         .set(DuWorktype::getStatus,Constants.TWO) | 
 |  |  |                         .set(DuWorktype::getCheckUserId,update.getCheckUserId()) | 
 |  |  |                         .set(DuWorktype::getCheckInfo,update.getCheckInfo()) | 
 |  |  |                         .set(DuWorktype::getCheckDate,new Date() ) | 
 |  |  |                         .eq(DuWorktype::getIsdeleted,Constants.ZERO) | 
 |  |  |                         .eq(DuWorktype::getStatus,Constants.ZERO) | 
 |  |  |                         .eq(DuWorktype::getDuSolutionId,s.getId())); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             duWorktypeMapper.update(null,new UpdateWrapper<DuWorktype>().lambda() | 
 |  |  |                     .set(DuWorktype::getStatus,Constants.TWO) | 
 |  |  |                     .set(DuWorktype::getCheckUserId,update.getCheckUserId()) | 
 |  |  |                     .set(DuWorktype::getCheckInfo,update.getCheckInfo()) | 
 |  |  |                     .set(DuWorktype::getCheckDate,new Date() ) | 
 |  |  |                     .eq(DuWorktype::getIsdeleted,Constants.ZERO) | 
 |  |  |                     .eq(DuWorktype::getStatus,Constants.ZERO) | 
 |  |  |                     .eq(DuWorktype::getDispatchUnitId,update.getId())); | 
 |  |  |             //存储操作历史 | 
 |  |  |             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 | 
 |  |  | 
 |  |  |                 duWorktype.setDuSolutionId(duSolution.getId()); | 
 |  |  |                 duWorktype.setStatus(Constants.ZERO); | 
 |  |  |                 duWorktype.setSortnum(j); | 
 |  |  |                 duWorktype.setDispatchUnitId(dispatchUnit.getId()); | 
 |  |  |                 duWorktype.setWorkTypeId(saveDuWorkTypeDTO.getWorkTypeId()); | 
 |  |  |                 duWorktype.setVideoUrl(saveDuWorkTypeDTO.getVideoUrl()); | 
 |  |  |                 duWorktype.setStatus2(Constants.ZERO); | 
 |  |  |                 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(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |  | 
 |  |  | //        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(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |         //存储操作历史 | 
 |  |  |         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(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |                 duWorktype.setDuSolutionId(duSolution.getId()); | 
 |  |  |                 duWorktype.setStatus(Constants.ZERO); | 
 |  |  |                 duWorktype.setSortnum(duWorkTypeNum + j); | 
 |  |  |                 duWorktype.setDispatchUnitId(saveDispatchUnitDTO.getId()); | 
 |  |  |                 duWorktype.setWorkTypeId(saveDuWorkTypeDTO.getWorkTypeId()); | 
 |  |  |                 duWorktype.setVideoUrl(saveDuWorkTypeDTO.getVideoUrl()); | 
 |  |  |                 duWorktype.setStatus2(Constants.ZERO); | 
 |  |  | 
 |  |  |         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 List<DispatchUnit> findByDTO(DispatchUnitQueryDTO dispatchUnitQueryDTO) { | 
 |  |  |         LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
 |  |  | //        List<DispatchUnit> dispatchUnitList = dispatchUnitMapper.selectList(new QueryWrapper<DispatchUnit>().lambda() | 
 |  |  | //                .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()) | 
 |  |  | //                .apply(!Objects.isNull(dispatchUnitQueryDTO.getSolutionId()), " id in ( select d.dispatch_unit_id from du_solution d where d.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()+" " + | 
 |  |  | //                                " ad.du_id = t.id ") | 
 |  |  | //                .orderByAsc(DispatchUnit::getSortnum) | 
 |  |  | //        ); | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         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) | 
 |  |  |                         .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,dispatchUnitQueryDTO.getDataType()) | 
 |  |  |                         .eq(!Objects.isNull(dispatchUnitQueryDTO.getSolutionId()),DuSolution::getSolutionId,dispatchUnitQueryDTO.getSolutionId()) | 
 |  |  |                         .eq(DispatchUnit::getDataType,Constants.TWO) | 
 |  |  |                         .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()), | 
 |  |  |                                 " select 1 from apply_detail ad where ad.isdeleted = 0 and ad.apply_id = "+dispatchUnitQueryDTO.getApplyId()+" " + | 
 |  |  |                                         " ad.du_id = t.id ") | 
 |  |  |                                         " and ad.du_id = t.id ") | 
 |  |  |         ); | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         return dispatchUnitList; | 
 |  |  |     } |