Merge remote-tracking branch 'origin/master'
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";
|
||||
|
||||
}
|
||||
|
||||
@@ -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 分页条件
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 = "任务号不可为空")
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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("余料入库"));
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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