package com.zy.asrs.service.impl;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.core.common.Cools;
|
import com.core.common.R;
|
import com.zy.asrs.domain.enums.TaskStatusType;
|
import com.zy.asrs.domain.enums.WorkNoType;
|
import com.zy.asrs.entity.*;
|
import com.zy.asrs.entity.param.CrnStatusParam;
|
import com.zy.asrs.entity.param.StationStatusParam;
|
import com.zy.asrs.entity.param.TaskCreateInParam;
|
import com.zy.asrs.entity.param.TaskCreateParam;
|
import com.zy.asrs.service.*;
|
import com.zy.asrs.utils.Utils;
|
import com.zy.common.service.CommonService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import java.util.*;
|
|
@Service
|
public class OpenServiceImpl implements OpenService {
|
|
@Autowired
|
private TaskWrkService taskWrkService;
|
@Autowired
|
private CommonService commonService;
|
@Autowired
|
private LocMastService locMastService;
|
@Autowired
|
private BasDevpService basDevpService;
|
@Autowired
|
private BasCrnpService basCrnpService;
|
@Autowired
|
private BasCrnErrorService basCrnErrorService;
|
|
@Override
|
public R taskCreate(TaskCreateParam param) {
|
TaskWrk taskWrk = taskWrkService.selectByTaskNo(param.getTaskNo());
|
if (taskWrk != null) {
|
return R.error(param.getTaskNo() + "任务已经生成!");
|
}
|
|
Date now = new Date();
|
taskWrk = new TaskWrk();
|
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", param.getStartPoint()));
|
int workNo1 = commonService.getWorkNo(WorkNoType.PAKOUT.type);//获取入库工作号
|
taskWrk.setTaskNo(param.getTaskNo());//任务号
|
taskWrk.setWrkNo(workNo1);
|
taskWrk.setStatus(TaskStatusType.RECEIVE.id);//任务状态:接收
|
taskWrk.setCreateTime(now);
|
taskWrk.setIoType(param.getIoType());//任务类型
|
taskWrk.setIoPri(param.getTaskPriority());//优先级
|
taskWrk.setBarcode(param.getBarcode());//条码
|
taskWrk.setCrnNo(locMast.getCrnNo());
|
if (param.getIoType() == 1) {
|
taskWrk.setWrkSts(1);
|
if (!Cools.isEmpty(param.getTargetPoint())) {
|
taskWrk.setTargetPoint(param.getTargetPoint());//终点
|
taskWrk.setOriginTargetPoint(param.getTargetPoint());
|
}
|
|
} else if (param.getIoType() == 2) {
|
taskWrk.setWrkSts(11);
|
if (!Cools.isEmpty(param.getStartPoint())) {
|
taskWrk.setStartPoint(param.getStartPoint());//起点
|
taskWrk.setTargetPoint(param.getTargetPoint());
|
}
|
taskWrk.setTargetPoint(param.getTargetPoint());
|
|
locMast.setLocSts("R");
|
locMast.setModiTime(new Date());
|
locMastService.updateById(locMast);
|
|
} else if (param.getIoType() == 3) {
|
taskWrk.setWrkSts(11);
|
if (!Cools.isEmpty(param.getStartPoint())) {
|
taskWrk.setStartPoint(param.getStartPoint());//起点
|
taskWrk.setTargetPoint(param.getTargetPoint());
|
}
|
|
locMast.setLocSts("R");
|
locMast.setModiTime(new Date());
|
locMastService.updateById(locMast);
|
|
LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", param.getTargetPoint()));
|
locMast2.setLocSts("S");
|
locMast2.setModiTime(new Date());
|
locMastService.updateById(locMast2);
|
}
|
|
if (!Cools.isEmpty(param.getMemo())) {
|
taskWrk.setMemo(param.getMemo());//备注
|
}
|
|
if (!taskWrkService.insert(taskWrk)) {
|
return R.error(param.getTaskNo() + "创建任务失败!");
|
}
|
return R.ok();
|
}
|
|
@Override
|
public R taskCreateIn(TaskCreateInParam param) {
|
TaskWrk taskWrk = taskWrkService.selectByTaskNo(param.getTaskNo());
|
if (taskWrk != null) {
|
return R.error(param.getTaskNo() + "任务已经生成!");
|
}
|
|
Date now = new Date();
|
taskWrk = new TaskWrk();
|
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", param.getTargetPoint()));
|
if (locMast == null) {
|
return R.error(param.getTaskNo() + "库位不存在!");
|
}
|
|
if (!locMast.getLocSts().equals("O")) {
|
return R.error(param.getTaskNo() + "库位不处于空库位!");
|
}
|
|
locMast.setLocSts("S");
|
locMast.setModiTime(new Date());
|
locMastService.updateById(locMast);
|
|
int workNo1 = commonService.getWorkNo(WorkNoType.PAKIN.type);//获取入库工作号
|
taskWrk.setTaskNo(param.getTaskNo());//任务号
|
taskWrk.setWrkNo(workNo1);
|
taskWrk.setStatus(TaskStatusType.RECEIVE.id);//任务状态:接收
|
taskWrk.setCreateTime(now);
|
taskWrk.setIoType(param.getIoType());//任务类型
|
taskWrk.setIoPri(param.getTaskPriority());//优先级
|
taskWrk.setBarcode(param.getBarcode());//条码
|
taskWrk.setCrnNo(locMast.getCrnNo());
|
taskWrk.setWrkSts(1);
|
taskWrk.setTargetPoint(param.getTargetPoint());//终点
|
taskWrk.setOriginTargetPoint(param.getTargetPoint());
|
if (!Cools.isEmpty(param.getMemo())) {
|
taskWrk.setMemo(param.getMemo());//备注
|
}
|
|
if (!taskWrkService.insert(taskWrk)) {
|
return R.error(param.getTaskNo() + "创建任务失败!");
|
}
|
return R.ok();
|
}
|
|
@Override
|
public List<StationStatusParam> getStationStatus() {
|
List<StationStatusParam> data = new ArrayList<>();
|
List<BasDevp> list = basDevpService.selectList(new EntityWrapper<BasDevp>()
|
.in("dev_no", 102, 104, 106, 108, 203, 206, 209, 212));
|
for (BasDevp basDevp : list) {
|
String taskNo = "";
|
String barcode = "";
|
if (basDevp.getWrkNo() > 0) {
|
TaskWrk taskWrk = taskWrkService.selectByWrkNo(basDevp.getWrkNo());
|
if (taskWrk != null) {
|
taskNo = taskWrk.getTaskNo();
|
barcode = taskWrk.getBarcode();
|
}
|
}
|
|
StationStatusParam param = new StationStatusParam();
|
param.setStaNo(basDevp.getDevNo());
|
param.setTaskNo(taskNo);
|
param.setLoading(basDevp.getLoading());
|
param.setBarcode(barcode);
|
|
data.add(param);
|
}
|
return data;
|
}
|
|
@Override
|
public List<CrnStatusParam> getCrnStatus() {
|
List<CrnStatusParam> crnStatusParams = new ArrayList<>();
|
List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<>());
|
for (BasCrnp basCrnp:basCrnps){
|
CrnStatusParam crnStatusParam=new CrnStatusParam();
|
crnStatusParam.setCrnNo(basCrnp.getCrnNo());
|
crnStatusParam.setCrnSts(basCrnp.getCrnSts());
|
crnStatusParam.setErrorCode(basCrnp.getCrnErr());
|
BasCrnError error=basCrnErrorService.selectOne(new EntityWrapper<BasCrnError>().eq("error_code",basCrnp.getCrnErr()));
|
if(Cools.isEmpty(error)){
|
crnStatusParam.setErrorMsg("");
|
}else {
|
crnStatusParam.setErrorMsg(error.getErrName());
|
}
|
crnStatusParams.add(crnStatusParam);
|
}
|
|
return crnStatusParams;
|
}
|
}
|