Merge remote-tracking branch 'origin/master'

This commit is contained in:
2025-10-27 19:23:09 +08:00
18 changed files with 410 additions and 58 deletions

View File

@@ -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";
}

View File

@@ -45,6 +45,13 @@ public interface MdPbStoragevehicleextMapper extends BaseMapper<MdPbStoragevehic
*/
List<JSONObject> queryAll( @Param("param") Map whereJson);
/**
* 查询
* @param whereJson 查询条件
* @return IPage<List>
*/
List<JSONObject> queryAllIn( @Param("param") Map whereJson);
/**
* 分页查询
* @param page 分页条件

View File

@@ -130,7 +130,9 @@
ext.supp_name,
attr.struct_code,
attr.struct_name,
attr.stor_code,
attr.stor_name,
attr.sect_code,
attr.sect_name,
mater.material_code,
mater.material_name,
@@ -177,6 +179,78 @@
ORDER BY ext.create_time Desc
</select>
<select id="queryAllIn" resultType="com.alibaba.fastjson.JSONObject">
SELECT
ext.group_id as storagevehicleext_id,
ext.storagevehicle_code,
ext.pcsn,
ext.qty_unit_name,
ext.qty,
ext.frozen_qty,
ext.remark,
ext.create_time,
ext.supp_code,
ext.supp_name,
attr.struct_code,
attr.struct_name,
attr.stor_code,
attr.stor_name,
attr.sect_code,
attr.sect_name,
mater.material_code,
mater.material_name,
mater.material_model
FROM
md_pb_groupplate ext
INNER JOIN st_ivt_structattr attr ON ext.storagevehicle_code = attr.storagevehicle_code
INNER JOIN md_me_materialbase mater ON mater.material_id = ext.material_id
<where>
1 = 1 and ext.`status`='01'
<if test="param.stor_id != null and param.stor_id != ''">
AND
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}
</if>
<if test="param.sect_code != null and param.sect_code != ''">
AND
attr.sect_code = #{param.sect_code}
</if>
<if test="param.struct_code != null and param.struct_code != ''">
AND
(attr.struct_code LIKE #{param.struct_code} or
attr.struct_name LIKE #{param.struct_code} )
</if>
<if test="param.material_code != null and param.material_code != ''">
AND
(mater.material_code LIKE CONCAT('%', #{param.material_code},'%') or
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}
</if>
</where>
ORDER BY ext.create_time Desc
</select>
<select id="queryCanuseSum" resultType="java.math.BigDecimal">
SELECT

View File

@@ -26,6 +26,7 @@ import java.util.Map;
@RestController
@RequestMapping("/api/mes")
@Slf4j
@SaIgnore
public class MesToWmsController {
@Resource
@@ -49,10 +50,10 @@ public class MesToWmsController {
}
@GetMapping("/getStructIvt")
@PostMapping("/getStructivt")
@Log("查询库存")
@SaIgnore
public ResponseEntity<Object> getStructIvt(@RequestParam JSONObject whereJson) {
return new ResponseEntity<>(pdaIosOutService.getStructivtByMaterialAndSectCode(whereJson), HttpStatus.OK);
public ResponseEntity<Object> getStructIvt(@RequestBody JSONObject whereJson) {
return new ResponseEntity<>(mesToWmsService.getStructivt(whereJson), HttpStatus.OK);
}
}

View File

@@ -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 = "任务号不可为空")

View File

@@ -31,4 +31,9 @@ public class EXTConstant {
* 回传MES接口地址
*/
public final static String UPLOAD_MES_API = "";
/**
* MES获取物料详情请求地址
*/
public final static String GET_MATERIAL_INFO_MES_API = "mom/lms";
}

View File

@@ -1,5 +1,6 @@
package org.nl.wms.ext_manage.service;
import com.alibaba.fastjson.JSONObject;
import org.nl.wms.ext_manage.dto.mes.MesBackMaterialRequestDto;
import org.nl.wms.ext_manage.dto.mes.MesCallMaterialRequestDto;
import org.nl.wms.ext_manage.dto.mes.MesResponse;
@@ -26,4 +27,11 @@ public interface MesToWmsService {
* @return MesResponse
*/
MesResponse backMaterial(MesBackMaterialRequestDto dto);
/**
* MES 查询库存信息
* @param
* @return MesResponse
*/
MesResponse getStructivt(JSONObject whereJson);
}

View File

@@ -1,7 +1,6 @@
package org.nl.wms.ext_manage.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@@ -23,6 +22,7 @@ import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase;
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo;
import org.nl.wms.basedata_manage.service.dao.Sectattr;
import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper;
import org.nl.wms.ext_manage.dto.mes.MesBackMaterialRequestDto;
import org.nl.wms.ext_manage.dto.mes.MesCallMaterialRequestDto;
import org.nl.wms.ext_manage.dto.mes.MesResponse;
@@ -54,9 +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;
/**
@@ -111,12 +109,6 @@ public class MesToWmsServiceImpl implements MesToWmsService {
@Autowired
private IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService;
/**
* 入库服务
*/
@Autowired
private IInBillService iRawAssistIStorService;
/**
* 基础物料服务
*/
@@ -133,10 +125,10 @@ public class MesToWmsServiceImpl implements MesToWmsService {
private ISchBaseTaskService taskService;
/**
* 任务工厂服务
* 载具扩展属性mapper
*/
@Autowired
private TaskFactory taskFactory;
@Resource
private MdPbStoragevehicleextMapper mdPbStoragevehicleextMapper;
@Override
@SneakyThrows
@@ -164,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() + "】不存在!");
}
@@ -173,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()));
@@ -451,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("数量不可为空");
}
@@ -471,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();
@@ -502,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());
@@ -544,6 +547,11 @@ public class MesToWmsServiceImpl implements MesToWmsService {
}
}
@Override
public MesResponse getStructivt(JSONObject whereJson) {
return MesResponse.requestParamOk(mdPbStoragevehicleextMapper.queryAllIn(whereJson));
}
/**
* 组织入库插入数据
* @param whereJson {

View File

@@ -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("余料入库"));

View File

@@ -0,0 +1,155 @@
package org.nl.wms.sch_manage.service.util;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSONObject;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.checkerframework.checker.units.qual.A;
import org.nl.config.SpringContextHolder;
import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService;
import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase;
import org.nl.wms.basedata_manage.service.impl.MdMeMaterialbaseServiceImpl;
import org.nl.wms.ext_manage.service.util.AcsResponse;
import org.nl.wms.sch_manage.service.util.dto.MaterialInfoRequestDto;
import org.nl.wms.sch_manage.service.util.dto.MaterialInfoRespondDataRecordDto;
import org.nl.wms.sch_manage.service.util.dto.MaterialInfoRespondDto;
import org.nl.wms.system_manage.enums.SysParamConstant;
import org.nl.wms.system_manage.enums.TagNameEnum;
import org.nl.wms.system_manage.service.param.ISysParamService;
import org.nl.wms.system_manage.service.param.dao.Param;
import org.reflections.Reflections;
import org.slf4j.MDC;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Set;
import static org.nl.wms.ext_manage.enums.EXTConstant.GET_MATERIAL_INFO_MES_API;
@Slf4j
@Component
@Order(value = 1)
public class GetMaterialFromMesTask {
private static Set<Class<? extends AbstractTask>> subTypes;
@Autowired
private ISysParamService paramService;
/**
* 物料基础数据服务
*/
@Autowired
private IMdMeMaterialbaseService iMdMeMaterialbaseService;
// 类加载时候执行扫描
static {
Reflections reflections = new Reflections("org.nl.wms.sch_manage.service.util.tasks");
subTypes = reflections.getSubTypesOf(AbstractTask.class);
}
@SneakyThrows
public void run(String params) {
MDC.put(TagNameEnum.TAG_NAME.getTag(), TagNameEnum.AUTO_TASK_SEND.getTag());
log.info("定时器正在执行【从MES获取物料】任务调度...");
getMaterial(params);
log.info("定时器执行【从MES获取物料】任务调度结束...");
}
/**
* 定时下发任务
*/
private void getMaterial(String params) {
Param mesUrlParam = paramService.findByCode(SysParamConstant.MES_URL);
if (ObjectUtil.isEmpty(mesUrlParam)) {
log.error("系统参数表中:" + SysParamConstant.MES_URL + "不存在");
return;
}
String url = mesUrlParam.getValue() + GET_MATERIAL_INFO_MES_API;
try {
MaterialInfoRequestDto requestDto = JSONObject.parseObject(params,MaterialInfoRequestDto.class);
if (CollectionUtils.isEmpty(requestDto.getData())) {
return;
}
if(StringUtils.isBlank(requestDto.getData().get(0).getUpdateTimeBegin())){
requestDto.getData().get(0).setUpdateTimeBegin(DateUtil.formatDate(DateUtil.offsetDay(new Date(),-6)));
}
if(StringUtils.isBlank(requestDto.getData().get(0).getUpdateTimeEnd())){
requestDto.getData().get(0).setUpdateTimeEnd(DateUtil.formatDate(DateUtil.offsetDay(new Date(),1)));
}
log.info("请求MES下发物料信息入参=【{}】",JSONObject.toJSONString(requestDto));
String resultMsg = HttpRequest.post(url)
.body(JSONObject.toJSONString(requestDto))
.execute().body();
JSONObject result = JSONObject.parseObject(resultMsg);
log.info("请求MES下发物料信息返回参=【{}】" , result.toString());
MaterialInfoRespondDto respondDto = JSONObject.toJavaObject(result, MaterialInfoRespondDto.class);
List<MaterialInfoRespondDataRecordDto> materialInfoRespondDataRecordDtoList = respondDto.getData().getRecords();
if (materialInfoRespondDataRecordDtoList == null || materialInfoRespondDataRecordDtoList.isEmpty()) {
log.warn("MES返回物料数据为空无需同步");
return;
}
for (MaterialInfoRespondDataRecordDto mesRecord : materialInfoRespondDataRecordDtoList) {
String materialCode = mesRecord.getMaterial_code();
if (StringUtils.isBlank(materialCode)) {
log.warn("MES物料数据material_code为空跳过");
continue;
}
// 根据material_code查询本地是否存在
boolean exists = iMdMeMaterialbaseService.lambdaQuery()
.eq(MdMeMaterialbase::getMaterial_code, materialCode)
.count() > 0;
// 组装本地实体
MdMeMaterialbase material = new MdMeMaterialbase();
material.setMaterial_code(materialCode);
material.setMaterial_name(mesRecord.getMaterial_description());
material.setMaterial_id(mesRecord.getId());
// material.setMaterial_spec(mesRecord.getMaterialModel());
material.setMaterial_model(mesRecord.getMaterial_type());
if (exists) {
// 更新
iMdMeMaterialbaseService.lambdaUpdate()
.eq(MdMeMaterialbase::getMaterial_code, materialCode)
.update(material);
log.info("更新本地物料成功materialCode={}", materialCode);
} else {
// 新增
material.setCreate_time(DateUtil.now());
material.setCreate_name("MES");
material.setCreate_id("MES");
iMdMeMaterialbaseService.save(material);
log.info("新增本地物料成功materialCode={}", materialCode);
}
}
} catch (Exception e) {
//网络不通
String msg = e.getMessage();
log.error("连接失败:{}", msg);
}
}
}

View File

@@ -0,0 +1,13 @@
package org.nl.wms.sch_manage.service.util.dto;
import lombok.Data;
/**
* @Author: zhengxuming
*/
@Data
public class MaterialInfoRequestDataDto {
private String materialCode;
private String updateTimeBegin;
private String updateTimeEnd;
}

View File

@@ -0,0 +1,17 @@
package org.nl.wms.sch_manage.service.util.dto;
import lombok.Data;
import java.util.List;
/**
* @Author: zhengxuming
*/
@Data
public class MaterialInfoRequestDto {
private String action;
private String model;
private Integer pageNumber = 1;
private Integer pageSize = 999999;
private List<MaterialInfoRequestDataDto> data;
}

View File

@@ -0,0 +1,17 @@
package org.nl.wms.sch_manage.service.util.dto;
import lombok.Data;
import java.util.List;
/**
* @Author: zhengxuming
*/
@Data
public class MaterialInfoRespondDataDto {
private Integer total;
private Integer size;
private Integer current;
private Integer pages;
private List<MaterialInfoRespondDataRecordDto> records;
}

View File

@@ -0,0 +1,28 @@
package org.nl.wms.sch_manage.service.util.dto;
import lombok.Data;
/**
* @Author: zhengxuming
*/
@Data
public class MaterialInfoRespondDataRecordDto {
private String tenant_id;
private String process;
private String code;
private String create_time;
private String create_dept;
private String material_form;
private String updateUserName;
private String createUserName;
private String create_by;
private String material_type;
private String update_time;
private String material_classify;
private String id;
private String material_mark;
private String update_by;
private String material_name;
private String material_code;
private String material_description;
}

View File

@@ -0,0 +1,15 @@
package org.nl.wms.sch_manage.service.util.dto;
import lombok.Data;
/**
* @Author: zhengxuming
*/
@Data
public class MaterialInfoRespondDto {
private Integer code;
private Boolean success;
private String message;
private MaterialInfoRespondDataDto data;
}

View File

@@ -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())){

View File

@@ -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())){

View File

@@ -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)