fix:MES叫料
This commit is contained in:
@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
@@ -53,6 +54,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.nl.common.utils.ValidationUtil.assertNotBlankJson;
|
||||
import static org.nl.wms.warehouse_manage.enums.IOSEnum.GROUP_PLATE_STATUS;
|
||||
@@ -121,6 +123,9 @@ public class MesToWmsServiceImpl implements MesToWmsService {
|
||||
@Autowired
|
||||
private ISysDictService dictService;
|
||||
|
||||
@Autowired
|
||||
private ISchBaseTaskService taskService;
|
||||
|
||||
/**
|
||||
* 任务工厂服务
|
||||
*/
|
||||
@@ -148,6 +153,10 @@ public class MesToWmsServiceImpl implements MesToWmsService {
|
||||
throw new BadRequestException("设备【" + pointCode + "】不存在!");
|
||||
}
|
||||
|
||||
if(StringUtils.isBlank(outPoint.getVehicle_code())){
|
||||
throw new BadRequestException("设备【" + pointCode + "】不存在料桶,请核对!");
|
||||
}
|
||||
|
||||
if(!"1".equals(outPoint.getPoint_type())){
|
||||
throw new BadRequestException("设备【" + dto.getStruct_code() + "】有误,请传入作业区设备!");
|
||||
}
|
||||
@@ -158,6 +167,13 @@ public class MesToWmsServiceImpl implements MesToWmsService {
|
||||
throw new BadRequestException("仓位【" + dto.getStruct_code() + "】不存在!");
|
||||
}
|
||||
|
||||
List<SchBaseTask> taskList = taskService.list(new QueryWrapper<SchBaseTask>().lambda()
|
||||
.eq(SchBaseTask::getExt_task_code, dto.getTask_code()));
|
||||
|
||||
if (CollectionUtils.isNotEmpty(taskList)) {
|
||||
throw new BadRequestException("task_code" + dto.getTask_code() + "已存在,请勿重复提交!");
|
||||
}
|
||||
|
||||
//1、单独上料,2、下空桶上满料
|
||||
if("1".equals(dto.getTask_type())){
|
||||
log.info("单独上料叫料,请求参数:【{}】", JSONObject.toJSONString(dto));
|
||||
|
||||
@@ -27,6 +27,7 @@ public class SchBaseTask implements Serializable {
|
||||
|
||||
private String task_code;
|
||||
|
||||
private String ext_task_code;
|
||||
|
||||
private String task_status;
|
||||
|
||||
|
||||
@@ -65,10 +65,9 @@ public class BackInTask extends AbstractTask {
|
||||
SchBaseTask task = new SchBaseTask();
|
||||
task.setTask_id(IdUtil.getStringId());
|
||||
if(json.containsKey("task_code")){
|
||||
task.setTask_code(json.getString("task_code"));
|
||||
} else {
|
||||
task.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
|
||||
task.setExt_task_code(json.getString("task_code"));
|
||||
}
|
||||
task.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
|
||||
task.setTask_status(TaskStatus.CREATE.getCode());
|
||||
task.setConfig_code(json.getString("config_code"));
|
||||
task.setPoint_code1(json.getString("point_code1"));
|
||||
@@ -175,7 +174,8 @@ public class BackInTask extends AbstractTask {
|
||||
JSONObject jsonObject=new JSONObject();
|
||||
jsonObject.put("status",200);
|
||||
jsonObject.put("message","成功");
|
||||
wmsToMesService.uploadMes(jsonObject);
|
||||
jsonObject.put("task_code",taskObj.getExt_task_code());
|
||||
// wmsToMesService.uploadMes(jsonObject);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -198,7 +198,8 @@ public class BackInTask extends AbstractTask {
|
||||
JSONObject jsonObject=new JSONObject();
|
||||
jsonObject.put("status",400);
|
||||
jsonObject.put("message","任务被取消");
|
||||
wmsToMesService.uploadMes(jsonObject);
|
||||
jsonObject.put("task_code",taskObj.getExt_task_code());
|
||||
// wmsToMesService.uploadMes(jsonObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -173,7 +173,8 @@ public class VehicleInTask extends AbstractTask {
|
||||
JSONObject jsonObject=new JSONObject();
|
||||
jsonObject.put("status",200);
|
||||
jsonObject.put("message","成功");
|
||||
wmsToMesService.uploadMes(jsonObject);
|
||||
jsonObject.put("task_code",taskObj.getExt_task_code());
|
||||
// wmsToMesService.uploadMes(jsonObject);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -196,7 +197,8 @@ public class VehicleInTask extends AbstractTask {
|
||||
JSONObject jsonObject=new JSONObject();
|
||||
jsonObject.put("status",400);
|
||||
jsonObject.put("message","任务被取消");
|
||||
wmsToMesService.uploadMes(jsonObject);
|
||||
jsonObject.put("task_code",taskObj.getExt_task_code());
|
||||
// wmsToMesService.uploadMes(jsonObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
||||
@@ -19,6 +20,7 @@ import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch_manage.service.util.AbstractTask;
|
||||
import org.nl.wms.sch_manage.service.util.AcsTaskDto;
|
||||
import org.nl.wms.sch_manage.service.util.TaskType;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSConstant;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.IInBillService;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDis;
|
||||
@@ -30,7 +32,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
|
||||
;
|
||||
|
||||
@@ -79,7 +81,10 @@ public class DownEmptyUpFullTask extends AbstractTask {
|
||||
public String create(JSONObject json) {
|
||||
SchBaseTask task = new SchBaseTask();
|
||||
task.setTask_id(IdUtil.getStringId());
|
||||
task.setTask_code(json.getString("task_code"));
|
||||
task.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
|
||||
if(json.containsKey("task_code")){
|
||||
task.setExt_task_code(json.getString("task_code"));
|
||||
}
|
||||
task.setTask_status(TaskStatus.CREATE.getCode());
|
||||
task.setConfig_code(json.getString("task_type"));
|
||||
task.setPoint_code1(json.getString("point_code1"));
|
||||
@@ -209,6 +214,8 @@ public class DownEmptyUpFullTask extends AbstractTask {
|
||||
}
|
||||
//如果是序列2
|
||||
else{
|
||||
rawAssistIStorService.taskFinish(taskObj);
|
||||
|
||||
//点位2
|
||||
pointService.update(new LambdaUpdateWrapper<SchBasePoint>()
|
||||
.set(SchBasePoint::getVehicle_code, null)
|
||||
@@ -229,7 +236,7 @@ public class DownEmptyUpFullTask extends AbstractTask {
|
||||
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code2()));
|
||||
//点位4
|
||||
pointService.update(new LambdaUpdateWrapper<SchBasePoint>()
|
||||
.set(SchBasePoint::getVehicle_code, taskObj.getVehicle_code2())
|
||||
.set(SchBasePoint::getVehicle_code, null)
|
||||
.set(SchBasePoint::getPoint_status, "1")
|
||||
.set(SchBasePoint::getVehicle_qty, 0)
|
||||
.set(SchBasePoint::getUpdate_id, SecurityUtils.getCurrentUserId())
|
||||
@@ -246,14 +253,16 @@ public class DownEmptyUpFullTask extends AbstractTask {
|
||||
.set(Structattr::getUpdate_time, DateUtil.now())
|
||||
.eq(Structattr::getStruct_code, taskObj.getPoint_code4()));
|
||||
|
||||
rawAssistIStorService.taskFinish(taskObj);
|
||||
//删除
|
||||
iMdPbGroupplateService.delete(Collections.singleton(taskObj.getGroup_id()));
|
||||
|
||||
//反馈到MES系统
|
||||
if("自动".equals(taskObj.getCreate_mode())){
|
||||
JSONObject jsonObject=new JSONObject();
|
||||
jsonObject.put("status",200);
|
||||
jsonObject.put("message","成功");
|
||||
wmsToMesService.uploadMes(jsonObject);
|
||||
jsonObject.put("task_code",taskObj.getExt_task_code());
|
||||
// wmsToMesService.uploadMes(jsonObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -273,6 +282,8 @@ public class DownEmptyUpFullTask extends AbstractTask {
|
||||
List<IOStorInvDis> ioStorInvDisList = ioStorInvDisMapper.selectList(new LambdaUpdateWrapper<>(IOStorInvDis.class)
|
||||
.eq(IOStorInvDis::getTask_id, taskObj.getTask_id()));
|
||||
|
||||
List<JSONObject> updateIvtList = new ArrayList<>();
|
||||
|
||||
for(IOStorInvDis ioStorInvDis:ioStorInvDisList){
|
||||
//库存表解锁 lock_type inv_type inv_id inv_code
|
||||
//解锁库位
|
||||
@@ -286,11 +297,23 @@ public class DownEmptyUpFullTask extends AbstractTask {
|
||||
iStructattrService.updateStatusByCode("2", finish_map);
|
||||
|
||||
|
||||
//更新组盘表 status 20->10
|
||||
//更新组盘表 status 10->20
|
||||
iMdPbGroupplateService.update(new LambdaUpdateWrapper<>(GroupPlate.class)
|
||||
.set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("组盘"))
|
||||
.set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))
|
||||
.eq(GroupPlate::getStoragevehicle_code,ioStorInvDis.getStoragevehicle_code()));
|
||||
|
||||
//更新库存 减冻结加可用
|
||||
JSONObject jsonIvt = new JSONObject();
|
||||
jsonIvt.put("type", IOSConstant.UPDATE_IVT_TYPE_SUB_FROZEN_ADD_CANUSE);
|
||||
jsonIvt.put("storagevehicle_code", ioStorInvDis.getStoragevehicle_code());
|
||||
jsonIvt.put("material_id", ioStorInvDis.getMaterial_id());
|
||||
jsonIvt.put("pcsn", ioStorInvDis.getPcsn());
|
||||
jsonIvt.put("qty_unit_id", ioStorInvDis.getQty_unit_id());
|
||||
jsonIvt.put("qty_unit_name", ioStorInvDis.getQty_unit_name());
|
||||
jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty());
|
||||
updateIvtList.add(jsonIvt);
|
||||
}
|
||||
iMdPbGroupplateService.updateIvt(updateIvtList);
|
||||
|
||||
//分配表清除任务
|
||||
ioStorInvDisMapper.update(new IOStorInvDis(),new LambdaUpdateWrapper<>(IOStorInvDis.class)
|
||||
@@ -311,7 +334,8 @@ public class DownEmptyUpFullTask extends AbstractTask {
|
||||
JSONObject jsonObject=new JSONObject();
|
||||
jsonObject.put("status",400);
|
||||
jsonObject.put("message","任务被取消");
|
||||
wmsToMesService.uploadMes(jsonObject);
|
||||
jsonObject.put("task_code",taskObj.getExt_task_code());
|
||||
// wmsToMesService.uploadMes(jsonObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,10 +5,12 @@ import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||
import org.nl.wms.ext_manage.service.WmsToMesService;
|
||||
import org.nl.wms.sch_manage.enums.TaskStatus;
|
||||
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||
@@ -18,6 +20,7 @@ import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch_manage.service.util.AbstractTask;
|
||||
import org.nl.wms.sch_manage.service.util.AcsTaskDto;
|
||||
import org.nl.wms.sch_manage.service.util.TaskType;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSConstant;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.IInBillService;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDis;
|
||||
@@ -28,6 +31,7 @@ import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
;
|
||||
@@ -76,7 +80,10 @@ public class SeparateMaterialTask extends AbstractTask {
|
||||
public String create(JSONObject json) {
|
||||
SchBaseTask task = new SchBaseTask();
|
||||
task.setTask_id(IdUtil.getStringId());
|
||||
task.setTask_code(json.getString("task_code"));
|
||||
task.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
|
||||
if(json.containsKey("task_code")){
|
||||
task.setExt_task_code(json.getString("task_code"));
|
||||
}
|
||||
task.setTask_status(TaskStatus.CREATE.getCode());
|
||||
task.setConfig_code(json.getString("task_type"));
|
||||
task.setPoint_code1(json.getString("point_code1"));
|
||||
@@ -166,6 +173,7 @@ public class SeparateMaterialTask extends AbstractTask {
|
||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||
taskObj.setRemark("已完成");
|
||||
taskService.updateById(taskObj);
|
||||
rawAssistIStorService.taskFinish(taskObj);
|
||||
|
||||
//更改点位的托盘信息,空托盘的点位 2为空托盘放置点位
|
||||
pointService.update(new LambdaUpdateWrapper<SchBasePoint>()
|
||||
@@ -177,14 +185,22 @@ public class SeparateMaterialTask extends AbstractTask {
|
||||
.set(SchBasePoint::getUpdate_time, DateUtil.now())
|
||||
.eq(SchBasePoint::getPoint_code, taskObj.getPoint_code2()));
|
||||
|
||||
rawAssistIStorService.taskFinish(taskObj);
|
||||
//点位1
|
||||
iStructattrService.update(new LambdaUpdateWrapper<Structattr>()
|
||||
.set(Structattr::getStoragevehicle_code, null)
|
||||
.set(Structattr::getOccupancy_state, "1")
|
||||
.set(Structattr::getUpdate_id, SecurityUtils.getCurrentUserId())
|
||||
.set(Structattr::getUpdate_name, SecurityUtils.getCurrentNickName())
|
||||
.set(Structattr::getUpdate_time, DateUtil.now())
|
||||
.eq(Structattr::getStruct_code, taskObj.getPoint_code1()));
|
||||
|
||||
//反馈到MES系统
|
||||
if("自动".equals(taskObj.getCreate_mode())){
|
||||
JSONObject jsonObject=new JSONObject();
|
||||
jsonObject.put("status",200);
|
||||
jsonObject.put("message","成功");
|
||||
wmsToMesService.uploadMes(jsonObject);
|
||||
jsonObject.put("task_code",taskObj.getExt_task_code());
|
||||
// wmsToMesService.uploadMes(jsonObject);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -203,6 +219,8 @@ public class SeparateMaterialTask extends AbstractTask {
|
||||
List<IOStorInvDis> ioStorInvDisList = ioStorInvDisMapper.selectList(new LambdaUpdateWrapper<>(IOStorInvDis.class)
|
||||
.eq(IOStorInvDis::getTask_id, taskObj.getTask_id()));
|
||||
|
||||
List<JSONObject> updateIvtList = new ArrayList<>();
|
||||
|
||||
for(IOStorInvDis ioStorInvDis:ioStorInvDisList){
|
||||
//库存表解锁 lock_type inv_type inv_id inv_code
|
||||
//解锁库位
|
||||
@@ -218,10 +236,23 @@ public class SeparateMaterialTask extends AbstractTask {
|
||||
|
||||
//更新组盘表 status 20->10
|
||||
iMdPbGroupplateService.update(new LambdaUpdateWrapper<>(GroupPlate.class)
|
||||
.set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("组盘"))
|
||||
.set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))
|
||||
.eq(GroupPlate::getStoragevehicle_code,ioStorInvDis.getStoragevehicle_code()));
|
||||
|
||||
//更新库存 减冻结加可用
|
||||
JSONObject jsonIvt = new JSONObject();
|
||||
jsonIvt.put("type", IOSConstant.UPDATE_IVT_TYPE_SUB_FROZEN_ADD_CANUSE);
|
||||
jsonIvt.put("storagevehicle_code", ioStorInvDis.getStoragevehicle_code());
|
||||
jsonIvt.put("material_id", ioStorInvDis.getMaterial_id());
|
||||
jsonIvt.put("pcsn", ioStorInvDis.getPcsn());
|
||||
jsonIvt.put("qty_unit_id", ioStorInvDis.getQty_unit_id());
|
||||
jsonIvt.put("qty_unit_name", ioStorInvDis.getQty_unit_name());
|
||||
jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty());
|
||||
updateIvtList.add(jsonIvt);
|
||||
}
|
||||
|
||||
iMdPbGroupplateService.updateIvt(updateIvtList);
|
||||
|
||||
//分配表清除任务
|
||||
ioStorInvDisMapper.update(new IOStorInvDis(),new LambdaUpdateWrapper<>(IOStorInvDis.class)
|
||||
.set(IOStorInvDis::getTask_id,null)
|
||||
@@ -241,7 +272,8 @@ public class SeparateMaterialTask extends AbstractTask {
|
||||
JSONObject jsonObject=new JSONObject();
|
||||
jsonObject.put("status",400);
|
||||
jsonObject.put("message","任务被取消");
|
||||
wmsToMesService.uploadMes(jsonObject);
|
||||
jsonObject.put("task_code",taskObj.getExt_task_code());
|
||||
// wmsToMesService.uploadMes(jsonObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1048,7 +1048,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
task_form.put("task_group_id", taskGroupId);
|
||||
task_form.put("task_group_seq", "1");
|
||||
task_form.put("create_mode", whereJson.getString("create_mode"));
|
||||
task_id = downEmptyUpFullTask.create(task_form);
|
||||
downEmptyUpFullTask.create(task_form);
|
||||
|
||||
JSONObject task_form2 = new JSONObject();
|
||||
task_form2.put("task_type", "DownEmptyUpFullTask");
|
||||
@@ -1058,13 +1058,15 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
task_form2.put("point_code2", whereJson.getString("point_code3"));
|
||||
task_form2.put("point_code3", whereJson.getString("point_code4"));
|
||||
task_form2.put("point_code4", whereJson.getString("point_code"));
|
||||
task_form.put("vehicle_code", ioStorInvDis.getStoragevehicle_code());
|
||||
task_form.put("vehicle_code2",point3.getVehicle_code());
|
||||
task_form2.put("vehicle_code", ioStorInvDis.getStoragevehicle_code());
|
||||
task_form2.put("vehicle_code2",point3.getVehicle_code());
|
||||
task_form2.put("group_id", whereJson.getString("group_id"));
|
||||
task_form2.put("task_group_id", taskGroupId);
|
||||
task_form2.put("task_group_seq", "2");
|
||||
task_form.put("create_mode", whereJson.getString("create_mode"));
|
||||
downEmptyUpFullTask.create(task_form2);
|
||||
task_form2.put("create_mode", whereJson.getString("create_mode"));
|
||||
|
||||
//这个需求特殊,因为会产生2个task,并且第二个task后结束,因此以第二个task_id为准!!
|
||||
task_id = downEmptyUpFullTask.create(task_form2);
|
||||
|
||||
point2.setIng_task_code(task_id);
|
||||
point2.setPoint_status("3");
|
||||
|
||||
Reference in New Issue
Block a user