opt:叫料、退料退空桶优化
This commit is contained in:
@@ -90,6 +90,6 @@ public class LogMessageConstant {
|
||||
/**
|
||||
* 索引路径
|
||||
*/
|
||||
public final static String INDEX_DIR = "D:\\software\\lucene\\index";
|
||||
public final static String INDEX_DIR = "C:\\software\\lucene\\index";
|
||||
|
||||
}
|
||||
|
||||
@@ -211,6 +211,11 @@
|
||||
attr.stor_id = #{param.stor_id}
|
||||
</if>
|
||||
|
||||
<if test="param.stor_code != null and param.stor_code != ''">
|
||||
AND
|
||||
attr.stor_code = #{param.stor_code}
|
||||
</if>
|
||||
|
||||
<if test="param.sect_id != null and param.sect_id != ''">
|
||||
AND
|
||||
attr.sect_id = #{param.sect_id}
|
||||
@@ -234,6 +239,11 @@
|
||||
mater.material_name LIKE CONCAT('%', #{param.material_code},'%') )
|
||||
</if>
|
||||
|
||||
<if test="param.material_model != null and param.material_model != ''">
|
||||
AND
|
||||
mater.material_model LIKE CONCAT('%', #{material_model},'%')
|
||||
</if>
|
||||
|
||||
<if test="param.pcsn != null and param.pcsn != ''">
|
||||
AND
|
||||
ext.pcsn LIKE #{param.pcsn}
|
||||
|
||||
@@ -26,6 +26,7 @@ import java.util.Map;
|
||||
@RestController
|
||||
@RequestMapping("/api/mes")
|
||||
@Slf4j
|
||||
@SaIgnore
|
||||
public class MesToWmsController {
|
||||
|
||||
@Resource
|
||||
@@ -49,7 +50,7 @@ public class MesToWmsController {
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/getStructIvt")
|
||||
@PostMapping("/getStructivt")
|
||||
@Log("查询库存")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> getStructIvt(@RequestBody JSONObject whereJson) {
|
||||
|
||||
@@ -9,13 +9,6 @@ public class MesBackMaterialRequestDto {
|
||||
@NotBlank(message = "设备号不可为空")
|
||||
private String device_code;
|
||||
|
||||
@NotBlank(message = "料桶号不可为空")
|
||||
private String vehicle_code;
|
||||
|
||||
@NotBlank(message = "物料编码不可为空")
|
||||
private String material_code;
|
||||
|
||||
@NotBlank(message = "批次")
|
||||
private String pcsn;
|
||||
|
||||
private String qty_unit_name;
|
||||
@@ -23,12 +16,6 @@ public class MesBackMaterialRequestDto {
|
||||
@NotBlank(message = "数量不可为空")
|
||||
private String qty;
|
||||
|
||||
@NotBlank(message = "供应商编码不可为空")
|
||||
private String supp_code;
|
||||
|
||||
@NotBlank(message = "供应商名称不可为空")
|
||||
private String supp_name;
|
||||
|
||||
private String remark;
|
||||
|
||||
@NotBlank(message = "任务号不可为空")
|
||||
|
||||
@@ -156,7 +156,7 @@ public class MesToWmsServiceImpl implements MesToWmsService {
|
||||
}
|
||||
|
||||
// 出库的仓位
|
||||
Structattr outStructAttr = structattrService.getByVehicleCode(dto.getStruct_code());
|
||||
Structattr outStructAttr = structattrService.getByCode(dto.getStruct_code());
|
||||
if (ObjectUtil.isEmpty(outStructAttr)) {
|
||||
throw new BadRequestException("仓位【" + dto.getStruct_code() + "】不存在!");
|
||||
}
|
||||
@@ -165,6 +165,11 @@ public class MesToWmsServiceImpl implements MesToWmsService {
|
||||
throw new BadRequestException("仓位【" + dto.getStruct_code() + "】上没有料,无法叫料!");
|
||||
}
|
||||
|
||||
//只有料桶缓存库区的料才能被叫料
|
||||
if(!"LT".equals(outStructAttr.getStor_code())){
|
||||
throw new BadRequestException("只有料桶缓存库区的料才能被叫料!");
|
||||
}
|
||||
|
||||
List<SchBaseTask> taskList = taskService.list(new QueryWrapper<SchBaseTask>().lambda()
|
||||
.eq(SchBaseTask::getExt_task_code, dto.getTask_code()));
|
||||
|
||||
@@ -443,14 +448,10 @@ public class MesToWmsServiceImpl implements MesToWmsService {
|
||||
|
||||
if (dto.getIsManual() != null && dto.getIsManual()) {
|
||||
dto.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
|
||||
dto.setPcsn("退料");
|
||||
dto.setQty_unit_name("桶");
|
||||
|
||||
//退料需要判断
|
||||
if("1".equals(dto.getTask_type())){
|
||||
if(StringUtils.isEmpty(dto.getMaterial_code())){
|
||||
throw new BadRequestException("物料编码不可为空");
|
||||
}
|
||||
if(StringUtils.isEmpty(dto.getQty())){
|
||||
throw new BadRequestException("数量不可为空");
|
||||
}
|
||||
@@ -463,24 +464,27 @@ public class MesToWmsServiceImpl implements MesToWmsService {
|
||||
if (tryLock) {
|
||||
log.info("MES下发设备退料信息输入参数:--------------------------------------" + MesResponse.requestOk());
|
||||
|
||||
//根据点位去查找对应的料桶号信息
|
||||
SchBasePoint point = pointService.getById(dto.getDevice_code());
|
||||
|
||||
//根据料桶号去载具表匹配料桶类型
|
||||
MdPbStoragevehicleinfo mdPbStoragevehicleinfo = iMdPbStoragevehicleinfoService.getByCode(dto.getVehicle_code());
|
||||
MdPbStoragevehicleinfo mdPbStoragevehicleinfo = iMdPbStoragevehicleinfoService.getByCode(point.getVehicle_code());
|
||||
|
||||
if(mdPbStoragevehicleinfo == null){
|
||||
throw new BadRequestException("未找到载具编码为:" + dto.getVehicle_code() + "的载具!");
|
||||
throw new BadRequestException("机台"+dto.getDevice_code()+"上没有载具的载具!");
|
||||
}
|
||||
|
||||
//通过料桶号的料桶类型,匹配确认入库库区
|
||||
Dict dict= dictService.getDictByCodeAndValue("storagevehicle_type",mdPbStoragevehicleinfo.getStoragevehicle_type());
|
||||
if(dict==null){
|
||||
throw new BadRequestException("未找到载具编码为" + dto.getVehicle_code() + "的载具入库库区,请检查字典中是否维护!");
|
||||
throw new BadRequestException("未找到载具编码为" + point.getVehicle_code() + "的载具入库库区,请检查字典中是否维护!");
|
||||
}
|
||||
|
||||
//查询库区
|
||||
Sectattr sectattr = sectattrService.findByCode(dict.getPara1());
|
||||
|
||||
if(sectattr==null){
|
||||
throw new BadRequestException("未找到载具编码为" + dto.getVehicle_code() + "的载具入库库区,请检查字典中是否维护!");
|
||||
throw new BadRequestException("未找到载具编码为" + point.getVehicle_code() + "的载具入库库区,请检查字典中是否维护!");
|
||||
}
|
||||
|
||||
JSONObject param = new JSONObject();
|
||||
@@ -494,28 +498,35 @@ public class MesToWmsServiceImpl implements MesToWmsService {
|
||||
//退料
|
||||
if("1".equals(dto.getTask_type())){
|
||||
|
||||
MdMeMaterialbase materDao = iMdMeMaterialbaseService.getByCode(dto.getMaterial_code(), true);
|
||||
//查询组盘
|
||||
GroupPlate groupPlate = iMdPbGroupplateService.getOne(new LambdaQueryWrapper<GroupPlate>()
|
||||
.eq(GroupPlate::getStoragevehicle_code, point.getVehicle_code())
|
||||
.eq(GroupPlate::getStatus, "03"));
|
||||
if (ObjectUtil.isEmpty(groupPlate)) {
|
||||
throw new BadRequestException("点位"+point.getPoint_code()+"上的托盘不存在组盘信息!");
|
||||
}
|
||||
|
||||
MdMeMaterialbase materDao = iMdMeMaterialbaseService.getByCode(groupPlate.getMaterial_id(), true);
|
||||
|
||||
//通过托盘号查找组盘信息
|
||||
|
||||
param.put("sect_code",sectattr.getSect_code());
|
||||
param.put("sect_id",sectattr.getSect_id());
|
||||
param.put("vehicle_code",dto.getVehicle_code());
|
||||
param.put("vehicle_code",point.getVehicle_code());
|
||||
param.put("storagevehicle_code", param.getString("vehicle_code"));
|
||||
param.put("site_code",dto.getDevice_code());
|
||||
param.put("material_id",materDao.getMaterial_code());
|
||||
param.put("material_code",materDao.getMaterial_code());
|
||||
param.put("pcsn",dto.getPcsn());
|
||||
param.put("pcsn",groupPlate.getPcsn());
|
||||
param.put("qty",dto.getQty());
|
||||
param.put("qty_unit_name",dto.getQty_unit_name());
|
||||
param.put("stor_id",sectattr.getStor_id());
|
||||
param.put("supp_code",dto.getSupp_code());
|
||||
param.put("supp_name",dto.getSupp_name());
|
||||
param.put("supp_code",groupPlate.getSupp_code());
|
||||
param.put("supp_name",groupPlate.getSupp_name());
|
||||
pdaIosInService.zwConfirmReturnMaterial(param);
|
||||
|
||||
} else if("2".equals(dto.getTask_type())){
|
||||
//退空桶
|
||||
param.put("vehicle_code",dto.getVehicle_code());
|
||||
param.put("vehicle_code",point.getVehicle_code());
|
||||
param.put("storagevehicle_code", param.getString("vehicle_code"));
|
||||
param.put("site_code",dto.getDevice_code());
|
||||
param.put("sect_id",sectattr.getSect_id());
|
||||
|
||||
@@ -609,9 +609,11 @@ public class PdaIosInServiceImpl implements PdaIosInService {
|
||||
// 生成回库任务
|
||||
whereJson.put("config_code", IOSConstant.BACK_IN_TASK);
|
||||
whereJson.put("Priority", TaskEnum.ACS_PRIORITY.code("1"));
|
||||
//入库分配
|
||||
groupPlate(whereJson);
|
||||
|
||||
//更新状态为组盘状态
|
||||
iMdPbGroupplateService.update(new LambdaUpdateWrapper<>(GroupPlate.class)
|
||||
.set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("组盘"))
|
||||
.eq(GroupPlate::getStoragevehicle_code,whereJson.getString("vehicle_code")));
|
||||
// groupPlate(whereJson);
|
||||
|
||||
whereJson.put("bill_type",StatusEnum.IOBILL_TYPE_IN.code("余料入库"));
|
||||
whereJson.put("stragegy_type",StatusEnum.IOBILL_TYPE_IN.code("余料入库"));
|
||||
|
||||
@@ -122,7 +122,7 @@ public class GetMaterialFromMesTask {
|
||||
// 组装本地实体
|
||||
MdMeMaterialbase material = new MdMeMaterialbase();
|
||||
material.setMaterial_code(materialCode);
|
||||
material.setMaterial_name(mesRecord.getMaterial_name());
|
||||
material.setMaterial_name(mesRecord.getMaterial_description());
|
||||
material.setMaterial_id(mesRecord.getId());
|
||||
// material.setMaterial_spec(mesRecord.getMaterialModel());
|
||||
material.setMaterial_model(mesRecord.getMaterial_type());
|
||||
|
||||
@@ -3,7 +3,9 @@ package org.nl.wms.sch_manage.service.util.tasks.zw;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
@@ -23,6 +25,7 @@ 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.IOutBillService;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDis;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDisMapper;
|
||||
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
|
||||
@@ -53,7 +56,7 @@ public class DownEmptyUpFullTask extends AbstractTask {
|
||||
|
||||
|
||||
@Resource
|
||||
private IInBillService rawAssistIStorService;
|
||||
private IOutBillService outBillService;
|
||||
|
||||
|
||||
@Resource
|
||||
@@ -214,7 +217,18 @@ public class DownEmptyUpFullTask extends AbstractTask {
|
||||
}
|
||||
//如果是序列2
|
||||
else{
|
||||
rawAssistIStorService.taskFinish(taskObj);
|
||||
//判断序列1的任务是否已完成
|
||||
List<SchBaseTask> schBaseTaskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.eq(SchBaseTask::getTask_group_seq, 1)
|
||||
.eq(SchBaseTask::getTask_group_id,taskObj.getTask_group_id())
|
||||
.eq(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode()));
|
||||
|
||||
if(CollectionUtils.isEmpty(schBaseTaskList)){
|
||||
throw new BadRequestException("前置任务未完成,请先完成任务序列为1的任务!");
|
||||
|
||||
}
|
||||
|
||||
outBillService.taskFinish(taskObj);
|
||||
|
||||
//点位2
|
||||
pointService.update(new LambdaUpdateWrapper<SchBasePoint>()
|
||||
@@ -256,8 +270,8 @@ public class DownEmptyUpFullTask extends AbstractTask {
|
||||
.set(Structattr::getUpdate_time, DateUtil.now())
|
||||
.eq(Structattr::getStruct_code, taskObj.getPoint_code4()));
|
||||
|
||||
//删除
|
||||
iMdPbGroupplateService.delete(Collections.singleton(taskObj.getGroup_id()));
|
||||
// //删除
|
||||
// iMdPbGroupplateService.delete(Collections.singleton(taskObj.getGroup_id()));
|
||||
|
||||
//反馈到MES系统
|
||||
if("自动".equals(taskObj.getCreate_mode())){
|
||||
|
||||
@@ -23,6 +23,7 @@ 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.IOutBillService;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDis;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDisMapper;
|
||||
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
|
||||
@@ -54,7 +55,7 @@ public class SeparateMaterialTask extends AbstractTask {
|
||||
|
||||
|
||||
@Resource
|
||||
private IInBillService rawAssistIStorService;
|
||||
private IOutBillService outBillService;
|
||||
|
||||
|
||||
@Resource
|
||||
@@ -174,7 +175,7 @@ public class SeparateMaterialTask extends AbstractTask {
|
||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||
taskObj.setRemark("已完成");
|
||||
taskService.updateById(taskObj);
|
||||
rawAssistIStorService.taskFinish(taskObj);
|
||||
outBillService.taskFinish(taskObj);
|
||||
|
||||
//更改点位的托盘信息,空托盘的点位 2为空托盘放置点位
|
||||
pointService.update(new LambdaUpdateWrapper<SchBasePoint>()
|
||||
@@ -195,8 +196,8 @@ public class SeparateMaterialTask extends AbstractTask {
|
||||
.set(Structattr::getUpdate_time, DateUtil.now())
|
||||
.eq(Structattr::getStruct_code, taskObj.getPoint_code1()));
|
||||
|
||||
//删除
|
||||
iMdPbGroupplateService.delete(Collections.singleton(taskObj.getGroup_id()));
|
||||
// //删除
|
||||
// iMdPbGroupplateService.delete(Collections.singleton(taskObj.getGroup_id()));
|
||||
|
||||
//反馈到MES系统
|
||||
if("自动".equals(taskObj.getCreate_mode())){
|
||||
|
||||
@@ -1273,8 +1273,8 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
.storagevehicleCode(ioStorInvDis.getStoragevehicle_code())
|
||||
.structCode(ioStorInvDis.getStruct_code()).taskType(task.getConfig_code()).inBound(false).build();
|
||||
iStructattrService.changeStruct(changeDto);
|
||||
//出库完成后删除组盘
|
||||
iMdPbGroupplateService.delete(Collections.singleton(task.getGroup_id()));
|
||||
// //出库完成后删除组盘
|
||||
// iMdPbGroupplateService.delete(Collections.singleton(task.getGroup_id()));
|
||||
|
||||
// 查询该明细下是否还有未完成的分配明细
|
||||
int countDis = ioStorInvDisMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDis.class)
|
||||
|
||||
Reference in New Issue
Block a user