|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 
|---|
|  |  |  | import com.zy.acs.framework.common.BaseRes; | 
|---|
|  |  |  | import com.zy.acs.framework.common.Cools; | 
|---|
|  |  |  | import com.zy.acs.framework.common.SnowflakeIdWorker; | 
|---|
|  |  |  | import com.zy.acs.framework.exception.CoolException; | 
|---|
|  |  |  | import com.zy.acs.manager.common.exception.BusinessException; | 
|---|
|  |  |  | import com.zy.acs.manager.manager.entity.FuncSta; | 
|---|
|  |  |  | import com.zy.acs.manager.manager.entity.Loc; | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<Map<String, Object>> selectStatByLastSevenDays() { | 
|---|
|  |  |  | return this.baseMapper.selectStatByLastSevenDays(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public void operateTaskSts(Integer taskId, Boolean finish) { | 
|---|
|  |  |  | public Boolean complete(Long taskId, Long userId) { | 
|---|
|  |  |  | Task task = this.getById(taskId); | 
|---|
|  |  |  | if (null == task) { | 
|---|
|  |  |  | return Boolean.FALSE; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.maintainLocSts(task, Boolean.TRUE); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | task.setTaskSts(TaskStsType.COMPLETE.val()); | 
|---|
|  |  |  | task.setUpdateTime(new Date()); | 
|---|
|  |  |  | task.setUpdateBy(userId); | 
|---|
|  |  |  | if (!this.updateById(task)) { | 
|---|
|  |  |  | throw new CoolException(BaseRes.ERROR); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return Boolean.TRUE; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public Boolean cancel(Long taskId, Long userId) { | 
|---|
|  |  |  | Task task = this.getById(taskId); | 
|---|
|  |  |  | if (null == task) { | 
|---|
|  |  |  | return Boolean.FALSE; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.maintainLocSts(task, Boolean.FALSE); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | task.setTaskSts(TaskStsType.CANCEL.val()); | 
|---|
|  |  |  | task.setUpdateTime(new Date()); | 
|---|
|  |  |  | task.setUpdateBy(userId); | 
|---|
|  |  |  | if (!this.updateById(task)) { | 
|---|
|  |  |  | throw new CoolException(BaseRes.ERROR); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return Boolean.TRUE; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public void maintainLocSts(Task task, Boolean complete) { | 
|---|
|  |  |  | Loc oriLoc = null; Loc destLoc = null; | 
|---|
|  |  |  | Sta oriSta = null; Sta destSta = null; | 
|---|
|  |  |  | Date now = new Date(); | 
|---|
|  |  |  | 
|---|
|  |  |  | oriLoc = locService.getById(task.getOriLoc()); | 
|---|
|  |  |  | destLoc = locService.getById(task.getDestLoc()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | oriLoc.setLocSts(finish?LocStsType.IDLE.val():LocStsType.STOCK.val()); | 
|---|
|  |  |  | oriLoc.setLocSts(complete?LocStsType.IDLE.val():LocStsType.STOCK.val()); | 
|---|
|  |  |  | oriLoc.setUpdateTime(now); | 
|---|
|  |  |  | if (!locService.updateById(oriLoc)) { | 
|---|
|  |  |  | throw new BusinessException("Loc [" + task.getOriLoc$() + "] 库位修改状态失败 !!!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | destLoc.setLocSts(finish?LocStsType.STOCK.val():LocStsType.IDLE.val()); | 
|---|
|  |  |  | destLoc.setLocSts(complete?LocStsType.STOCK.val():LocStsType.IDLE.val()); | 
|---|
|  |  |  | destLoc.setUpdateTime(now); | 
|---|
|  |  |  | if (!locService.updateById(destLoc)) { | 
|---|
|  |  |  | throw new BusinessException("Loc [" + task.getDestLoc$() + "] 库位修改状态失败 !!!"); | 
|---|
|  |  |  | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case LOC_TO_STA: | 
|---|
|  |  |  | oriLoc = locService.getById(task.getOriLoc()); | 
|---|
|  |  |  | oriLoc.setLocSts(finish?LocStsType.IDLE.val():LocStsType.STOCK.val()); | 
|---|
|  |  |  | oriLoc.setLocSts(complete?LocStsType.IDLE.val():LocStsType.STOCK.val()); | 
|---|
|  |  |  | oriLoc.setUpdateTime(now); | 
|---|
|  |  |  | if (!locService.updateById(oriLoc)) { | 
|---|
|  |  |  | throw new BusinessException("Loc [" + task.getOriLoc$() + "] 库位修改状态失败 !!!"); | 
|---|
|  |  |  | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case STA_TO_LOC: | 
|---|
|  |  |  | destLoc = locService.getById(task.getDestLoc()); | 
|---|
|  |  |  | destLoc.setLocSts(finish?LocStsType.STOCK.val():LocStsType.IDLE.val()); | 
|---|
|  |  |  | destLoc.setLocSts(complete?LocStsType.STOCK.val():LocStsType.IDLE.val()); | 
|---|
|  |  |  | destLoc.setUpdateTime(now); | 
|---|
|  |  |  | if (!locService.updateById(destLoc)) { | 
|---|
|  |  |  | throw new BusinessException("Loc [" + task.getDestLoc$() + "] 库位修改状态失败 !!!"); | 
|---|
|  |  |  | 
|---|
|  |  |  | case TO_CHARGE: | 
|---|
|  |  |  | case TO_STANDBY: | 
|---|
|  |  |  | FuncSta funcSta = funcStaService.getByCodeAndType(task.getDestCode(), FuncStaType.query(typeType).toString()); | 
|---|
|  |  |  | if (!finish) { | 
|---|
|  |  |  | if (!complete) { | 
|---|
|  |  |  | funcSta.setState(FuncStaStateType.IDLE.toString()); | 
|---|
|  |  |  | funcSta.setUpdateTime(now); | 
|---|
|  |  |  | if (!funcStaService.updateById(funcSta)) { | 
|---|
|  |  |  | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | task.setTaskSts(TaskStsType.COMPLETE.val()); | 
|---|
|  |  |  | task.setUpdateTime(now); | 
|---|
|  |  |  | if (!this.updateById(task)) { | 
|---|
|  |  |  | throw new BusinessException(task.getSeqNum() + "任务更新状态失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<Map<String, Object>> selectStatByLastSevenDays() { | 
|---|
|  |  |  | return this.baseMapper.selectStatByLastSevenDays(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|