fix:异常出库、NG卷校验
This commit is contained in:
@@ -186,9 +186,9 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 根据订单号查询子卷信息
|
||||
*
|
||||
* @param whereJson 查询条件
|
||||
*/
|
||||
@Override
|
||||
@@ -213,6 +213,16 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
||||
if (ObjectUtils.isEmpty(ivtList)) {
|
||||
throw new BadRequestException("该子卷未质检或品质不符合要求,请扫码质检!");
|
||||
}
|
||||
//调用MES接口判断是否是NG卷
|
||||
JSONObject result_jo = new JSONObject();
|
||||
result_jo.put("container_name", whereJson.get("container_name"));
|
||||
JSONObject jsonObject = lmsToMesServiceImpl.GetChildWeightIsSamplePDA(result_jo);
|
||||
if (ObjectUtils.isEmpty(jsonObject) || !jsonObject.containsKey("result")) {
|
||||
throw new BadRequestException("反馈内容有误," + jsonObject.toString());
|
||||
}
|
||||
if (!jsonObject.getBoolean("result")) {
|
||||
throw new BadRequestException("MES查询出当前子卷【" + whereJson.get("container_name") + "】检测结果不能通过,无法进行装箱,MES反馈内容为:【" + jsonObject.getString("rtdat") + "】");
|
||||
}
|
||||
// if (ivtList.stream().noneMatch(r -> r.getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("待检区")))) {
|
||||
// throw new BadRequestException("该子卷不在待检区,请检查!");
|
||||
// }
|
||||
@@ -490,7 +500,8 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
||||
JSONArray jsonArray = whereJson.getJSONArray("tableMater");
|
||||
if (jsonArray == null || jsonArray.size() == 0) {
|
||||
throw new BadRequestException("无选中子卷信息");
|
||||
} if (jsonArray == null || jsonArray.size() == 0) {
|
||||
}
|
||||
if (jsonArray == null || jsonArray.size() == 0) {
|
||||
throw new BadRequestException("无选中子卷信息");
|
||||
}
|
||||
if (ObjectUtils.isEmpty(packagerelationList)) {
|
||||
@@ -526,8 +537,6 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 空木箱绑定
|
||||
*/
|
||||
@@ -670,7 +679,6 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 多选删除
|
||||
*
|
||||
|
||||
@@ -36,5 +36,6 @@ public interface BstIvtPackageinfoivtMapper extends BaseMapper<BstIvtPackageinfo
|
||||
List<SchBaseTask> getTaskList(Set<String> pointCodes1, Set<String> pointCodes2, Set<String> pointCodes3, Set<String> pointCodes4);
|
||||
|
||||
List<BstIvtPackageinfoivt> selectNoTaskPoint(@Param("pointStatus") String pointStatus, @Param("ivtStatus")String ivtStatus);
|
||||
List<BstIvtPackageinfoivt> selectNoTaskPoint2(@Param("pointStatus") String pointStatus, @Param("ivtStatus")String ivtStatus);
|
||||
List<BstIvtPackageinfoivt> selectNoTargetTaskPoint(@Param("pointStatus") String pointStatus, @Param("ivtStatus")String ivtStatus);
|
||||
}
|
||||
|
||||
@@ -90,6 +90,15 @@
|
||||
AND (t.point_code1 = p.point_code OR t.point_code2 = p.point_code OR t.point_code3 = p.point_code OR t.point_code4 = p.point_code)
|
||||
AND t.is_delete = '0')
|
||||
</select>
|
||||
<select id="selectNoTaskPoint2" resultType="org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt">
|
||||
select p.*
|
||||
from bst_ivt_packageinfoivt p
|
||||
where point_status = #{pointStatus}
|
||||
AND ivt_status = #{ivtStatus}
|
||||
AND 0 = (SELECT COUNT(*) FROM sch_base_task t WHERE t.task_status <![CDATA[ < ]]> '07'
|
||||
AND (t.point_code1 = p.point_code OR t.point_code2 = p.point_code OR t.point_code3 = p.point_code OR t.point_code4 = p.point_code)
|
||||
AND t.is_delete = '0')
|
||||
</select>
|
||||
|
||||
<select id="selectNoTargetTaskPoint" resultType="org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt">
|
||||
select p.*
|
||||
|
||||
@@ -92,7 +92,6 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
private IpdmBiSubpackagerelationService subpackagerelationService;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 查询数据分页
|
||||
*
|
||||
@@ -160,7 +159,10 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("status", HttpStatus.BAD_REQUEST.value());
|
||||
RedissonUtils.lock(c -> {
|
||||
try {Thread.sleep(1000);} catch (InterruptedException e) {}
|
||||
try {
|
||||
Thread.sleep(1000);
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
String pointCode = "";
|
||||
String action = "";
|
||||
switch (actionType) {
|
||||
@@ -605,8 +607,6 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 更新点位状态
|
||||
*
|
||||
@@ -653,8 +653,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
String pointCode = baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) ? baseTask.getPoint_code3() : baseTask.getPoint_code1();
|
||||
upDateIvtOrTask(baseTask, pointCode);
|
||||
}
|
||||
}
|
||||
else if ((baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区")) ||
|
||||
} else if ((baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区")) ||
|
||||
baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("待检区移库任务"))
|
||||
|| baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("管制区移库任务"))
|
||||
)) {
|
||||
@@ -951,8 +950,6 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 创建
|
||||
*
|
||||
@@ -994,6 +991,33 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
UpdateWrapper<BstIvtPackageinfoivt> updateWrapper = new UpdateWrapper<>();
|
||||
//LMS获取MES称重后子卷信息
|
||||
JSONObject jo = new JSONObject();
|
||||
|
||||
String is_error = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("is_error").getValue();
|
||||
String point_code = whereJson.getString("pointCode");
|
||||
if ("1".equals(is_error) && "ZXQ_137,ZXQ_138".contains(point_code) && ObjectUtils.isNotEmpty(point_code)) {
|
||||
String ivt_status = whereJson.getString("ivt_status");
|
||||
String container_name = whereJson.getString("container_name");
|
||||
if (point_code.equals("ZXQ_137")) {
|
||||
//只能进行绑定空
|
||||
if (!whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("空"))) {
|
||||
throw new BadRequestException("该点位只能设置为空!");
|
||||
}
|
||||
packageinfoivtService.update(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
||||
.set(BstIvtPackageinfoivt::getIvt_status, ivt_status)
|
||||
.eq(BstIvtPackageinfoivt::getPoint_code, point_code));
|
||||
}
|
||||
if (point_code.equals("ZXQ_138")) {
|
||||
//只能进行绑定空
|
||||
if (!whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("合格品"))) {
|
||||
throw new BadRequestException("该点位只能绑定合格品!");
|
||||
}
|
||||
packageinfoivtService.update(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
||||
.set(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("有子卷"))
|
||||
.set(BstIvtPackageinfoivt::getContainer_name, container_name)
|
||||
.eq(BstIvtPackageinfoivt::getPoint_code, point_code));
|
||||
}
|
||||
|
||||
} else {
|
||||
//子卷质检合格品和管制品
|
||||
if (StringUtils.isNotBlank(whereJson.getString("container_name")) && StringUtils.isBlank(whereJson.getString("pointCode"))) {
|
||||
if (whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("空")) || whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("空载具")) || whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("有子卷"))) {
|
||||
@@ -1118,6 +1142,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
updateWrapper.set("update_optname", SecurityUtils.getCurrentNickName());
|
||||
updateWrapper.set("update_time", DateUtil.now());
|
||||
bstIvtPackageinfoivtMapper.update(null, updateWrapper);
|
||||
}
|
||||
result.put("status", org.springframework.http.HttpStatus.OK.value());
|
||||
result.put("message", "检验成功!");
|
||||
return result;
|
||||
@@ -1208,6 +1233,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
||||
return this.baseMapper.selectNoTaskPoint(point_status, ivt_status);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<BstIvtPackageinfoivt> selectNoTargetTaskPoints(String point_status, String ivt_status) {
|
||||
if (StringUtils.isEmpty(point_status) || StringUtils.isEmpty(ivt_status)) {
|
||||
|
||||
@@ -189,7 +189,7 @@ public class TwoOutTask extends AbstractAcsTask {
|
||||
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
||||
RedissonUtils.lock(c -> {
|
||||
StIvtIostorinvOutServiceImpl bean = SpringContextHolder.getBean(StIvtIostorinvOutServiceImpl.class);
|
||||
bean.finishTask(jsonTask);
|
||||
// bean.finishTask(jsonTask);
|
||||
// 判断是否有异常货位的需要更新
|
||||
JSONObject jsonExt = attrTab.query("inv_code = '" + jsonTask.getString("vehicle_code") + "' AND lock_type = '"+IOSEnum.LOCK_TYPE.code("出库异常锁")+"'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(jsonExt)) {
|
||||
|
||||
@@ -26,6 +26,7 @@ import org.nl.wms.util.TaskUtil;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -48,6 +49,7 @@ public class GzqTask extends AbstractAcsTask {
|
||||
private IbstIvtPackageinfoivtService packageinfoivtService;
|
||||
@Resource
|
||||
private ShiftingTask shiftingTask;
|
||||
|
||||
@Override
|
||||
public List<AcsTaskDto> addTask() {
|
||||
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
||||
@@ -99,7 +101,13 @@ public class GzqTask extends AbstractAcsTask {
|
||||
//1.改变起点点位状态
|
||||
packageinfoivtService.update(null, new UpdateWrapper<BstIvtPackageinfoivt>().set("update_time", now).set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空")).set("container_name", null).eq("point_code", schBaseTask.getPoint_code1()));
|
||||
//2.更新库存记录
|
||||
if (schBaseTask.getTask_type().equals("010999")) {
|
||||
packageinfoivtService.update(null, new UpdateWrapper<BstIvtPackageinfoivt>().set("update_time", now).set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空载具")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2()));
|
||||
} else if (schBaseTask.getTask_type().equals("010998")) {
|
||||
packageinfoivtService.update(null, new UpdateWrapper<BstIvtPackageinfoivt>().set("update_time", now).set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("有子卷")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2()));
|
||||
} else {
|
||||
packageinfoivtService.update(null, new UpdateWrapper<BstIvtPackageinfoivt>().set("update_time", now).set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("管制品")).set("container_name", schBaseTask.getVehicle_code()).eq("point_code", schBaseTask.getPoint_code2()));
|
||||
}
|
||||
//3.更改任务状态为完成
|
||||
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode());
|
||||
//4.判断是否存在任务组任务
|
||||
@@ -193,8 +201,6 @@ public class GzqTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void cancel(String taskId) {
|
||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||
@@ -215,7 +221,4 @@ public class GzqTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.nl.b_lms.sch.tasks.first_floor_area.auto;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -7,17 +8,25 @@ import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
|
||||
import org.nl.b_lms.sch.point.dao.mapper.BstIvtPackageinfoivtMapper;
|
||||
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.sch.tasks.first_floor_area.DjqTask;
|
||||
import org.nl.b_lms.sch.tasks.first_floor_area.GzqTask;
|
||||
import org.nl.b_lms.sch.tasks.first_floor_area.ShiftingTask;
|
||||
import org.nl.b_lms.sch.tasks.first_floor_area.ZxqTask;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.common.enums.PackageInfoIvtEnum;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.system.service.param.impl.SysParamServiceImpl;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.redisson.api.RLock;
|
||||
import org.redisson.api.RedissonClient;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
@@ -40,6 +49,10 @@ public class AutoSendMzToDjq {
|
||||
private RedissonClient redissonClient;
|
||||
@Resource
|
||||
private DjqTask djqTask;
|
||||
@Resource
|
||||
private GzqTask gzqTask;
|
||||
@Resource
|
||||
private BstIvtPackageinfoivtMapper bstIvtPackageinfoivtMapper;
|
||||
|
||||
@Resource
|
||||
private ShiftingTask shiftingTask;
|
||||
@@ -51,14 +64,18 @@ public class AutoSendMzToDjq {
|
||||
//满轴->待检区agv自动搬运任务
|
||||
public void run() {
|
||||
try {
|
||||
String is_error = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("is_error").getValue();
|
||||
if ("1".equals(is_error)) {
|
||||
this.sendErrorPointCode();
|
||||
} else {
|
||||
this.sendMzqToDjq();
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
log.error(ex.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@SneakyThrows
|
||||
public void sendMzqToDjq() {
|
||||
log.info(THIS_CLASS + "-满轴->待检区定时任务开始执行扫描。");
|
||||
@@ -102,4 +119,59 @@ public class AutoSendMzToDjq {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
public void sendErrorPointCode() {
|
||||
log.info(THIS_CLASS + "-异常点位定时任务开始执行扫描。");
|
||||
RLock lock = redissonClient.getLock("todjq");
|
||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
try {
|
||||
if (tryLock) {
|
||||
List<BstIvtPackageinfoivt> mzqPackageinfoivtList = bstIvtPackageinfoivtMapper.selectNoTaskPoint2(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("有子卷"))
|
||||
.stream().filter(row -> row.getPoint_code().equals("ZXQ_138")).collect(Collectors.toList());
|
||||
List<BstIvtPackageinfoivt> kzjPackageinfoivtList = bstIvtPackageinfoivtMapper.selectNoTaskPoint2(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("空"))
|
||||
.stream().filter(row -> row.getPoint_code().equals("ZXQ_137")).collect(Collectors.toList());
|
||||
//如果异常满轴点有货,创建任务搬运到待检区
|
||||
if (ObjectUtils.isNotEmpty(mzqPackageinfoivtList)) {
|
||||
//待检区有库位为空位且过滤未完成任务
|
||||
List<BstIvtPackageinfoivt> selectEmpPoints = packageinfoivtService.selectEmpPoints(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空"));
|
||||
if (ObjectUtils.isNotEmpty(selectEmpPoints)) {
|
||||
//校验重复任务
|
||||
List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.eq(SchBaseTask::getVehicle_code, mzqPackageinfoivtList.get(0).getContainer_name()).eq(SchBaseTask::getTask_type, "010998")
|
||||
.eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")).lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()));
|
||||
if (CollectionUtils.isEmpty(taskList)) {
|
||||
JSONObject task = new JSONObject();
|
||||
task.put("point_code1", "ZXQ_138");
|
||||
task.put("point_code2", selectEmpPoints.get(0).getPoint_code());
|
||||
task.put("task_type", "010998");
|
||||
task.put("vehicle_code", mzqPackageinfoivtList.get(0).getContainer_name());
|
||||
task.put("is_send", "1");
|
||||
gzqTask.createTask(task);
|
||||
}
|
||||
}
|
||||
}
|
||||
//如果异常空载具点为空,创建任务搬运待检区空载具到异常空载具点
|
||||
if (ObjectUtils.isNotEmpty(kzjPackageinfoivtList)) {
|
||||
List<BstIvtPackageinfoivt> vehiclePoints = this.packageinfoivtService.selectEmpPoints(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"));
|
||||
if (ObjectUtils.isNotEmpty(vehiclePoints)) {
|
||||
|
||||
JSONObject task = new JSONObject();
|
||||
task.put("point_code1", vehiclePoints.get(0).getPoint_code());
|
||||
task.put("point_code2", "ZXQ_137");
|
||||
task.put("task_type", "010999");
|
||||
task.put("vehicle_code", "kzj");
|
||||
task.put("is_send", "1");
|
||||
gzqTask.createTask(task);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
log.info("满轴->待检区agv自动搬运任务正在创建被锁住。");
|
||||
}
|
||||
} finally {
|
||||
if (lock.isLocked() && lock.isHeldByCurrentThread()) {
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -270,9 +270,40 @@ public class LashManageServiceImpl implements LashManageService {
|
||||
Map<String, List<JSONObject>> groupPointMap = executeArr.stream()
|
||||
.collect(Collectors.groupingBy(row -> row.getString("point_code2")));
|
||||
|
||||
|
||||
// 终点: 如果是异常口则直接生成到异常口的任务
|
||||
String next_device_code = IOSEnum.OUT_HANGER.code("行架位1");
|
||||
|
||||
String TWO_EXC_OUT_TYPE = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("TWO_EXC_OUT_TYPE").getValue();
|
||||
if (TWO_EXC_OUT_TYPE.equals("1") || TWO_EXC_OUT_TYPE.equals("2")) {
|
||||
//1-大托盘全部出到异常口;2-大托盘负载到异常口和正常出库口
|
||||
if (whereJson.getString("device_code").equals("CK2038")) {
|
||||
if (TWO_EXC_OUT_TYPE.equals("1")) {
|
||||
next_device_code = IOSEnum.EXCEP_OUT.code("异常出库口");
|
||||
}
|
||||
if (TWO_EXC_OUT_TYPE.equals("2")) {
|
||||
// 判断是否是启用状态
|
||||
List<JSONObject> jsonList = pointTab.query("region_code = 'BLKCK' AND is_used = '1'")
|
||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
int min_task_num = 999;
|
||||
next_device_code = IOSEnum.EXCEP_OUT.code("异常出库口");
|
||||
|
||||
for (int i = 0; i < jsonList.size(); i++) {
|
||||
String point_code = jsonList.get(i).getString("point_code");
|
||||
int task_num = Optional.ofNullable(groupPointMap.get(point_code)).orElse(new ArrayList<>()).size();
|
||||
if (task_num < min_task_num) {
|
||||
next_device_code = point_code;
|
||||
min_task_num = task_num;
|
||||
}
|
||||
}
|
||||
int exc_task_num = Integer.parseInt(SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("TWO_EXC_OUT_TASK_NUM").getValue());
|
||||
List<JSONObject> heapExc = Optional.ofNullable(groupPointMap.get(IOSEnum.EXCEP_OUT.code("异常出库口"))).orElse(new ArrayList<>());
|
||||
if (heapExc.size() < min_task_num && exc_task_num > heapExc.size()) {
|
||||
next_device_code = IOSEnum.EXCEP_OUT.code("异常出库口");
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
String TWO_EXCEP = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("TWO_EXCEP").getValue();
|
||||
if (TWO_EXCEP.equals(IOSEnum.IS_NOTANDYES.code("是"))) {
|
||||
next_device_code = IOSEnum.EXCEP_OUT.code("异常出库口");
|
||||
@@ -298,6 +329,8 @@ public class LashManageServiceImpl implements LashManageService {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 查询木箱对应的载具
|
||||
JSONObject jsonVeExt = extTab.query("pcsn = '" + whereJson.getString("vehicle_code") + "'")
|
||||
.uniqueResult(0);
|
||||
@@ -391,7 +424,6 @@ public class LashManageServiceImpl implements LashManageService {
|
||||
result.put("isBinding", isBinding);
|
||||
|
||||
|
||||
|
||||
// TODO 是否贴标
|
||||
result.put("isLabeling", IOSEnum.IS_SEND.code("否"));
|
||||
// TODO 贴标数量
|
||||
|
||||
@@ -1853,13 +1853,18 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
@Override
|
||||
public JSONObject sendProductToFirstFloor(JSONObject whereJson) {
|
||||
log.info("sendProductToFirstFloor被调用--------------------------:" + whereJson.toString());
|
||||
String is_error = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("is_error").getValue();
|
||||
JSONObject result = new JSONObject();
|
||||
if ("1".equals(is_error)) {
|
||||
result.put("status", HttpStatus.OK.value());
|
||||
result.put("message", "反馈成功!");
|
||||
} else {
|
||||
if (StringUtils.isBlank(whereJson.getString("device_code")) || StringUtils.isBlank(whereJson.getString("material_barcode"))) {
|
||||
throw new BadRequestException("接口sendProductToFirstFloor,目标站点或子卷号参数为空!");
|
||||
}
|
||||
if (whereJson.getString("device_code").equals("null") || whereJson.getString("material_barcode").equals("null")) {
|
||||
throw new BadRequestException("接口sendProductToFirstFloor,目标站点或子卷号参数为null!");
|
||||
}
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("status", HttpStatus.BAD_REQUEST.value());
|
||||
result.put("data", whereJson.getString("material_barcode"));
|
||||
RedissonUtils.lock(c -> {
|
||||
@@ -1909,6 +1914,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
result.put("message", "反馈成功!");
|
||||
return result;
|
||||
}, "sendProductToFirstFloor", null);
|
||||
}
|
||||
|
||||
log.info("sendProductToFirstFloor调用成功--------------------------:" + result);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -153,4 +153,11 @@ public class LmsToMesController {
|
||||
public ResponseEntity<Object> GetInspectionResult(@RequestBody JSONObject jo) {
|
||||
return new ResponseEntity<>(lmsToMesService.getInspectionResult(jo), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/GetChildWeightIsSamplePDA")
|
||||
@Log("判断子卷是否是NG卷")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> GetChildWeightIsSamplePDA(@RequestBody JSONObject jo) {
|
||||
return new ResponseEntity<>(lmsToMesService.getInspectionResult(jo), HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -186,4 +186,6 @@ public interface LmsToMesService {
|
||||
JSONObject BoxDataCollectionSubmit2(JSONObject jo);
|
||||
|
||||
JSONObject getInspectionResult(JSONObject jo);
|
||||
|
||||
JSONObject GetChildWeightIsSamplePDA(JSONObject jo);
|
||||
}
|
||||
|
||||
@@ -1224,4 +1224,54 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject GetChildWeightIsSamplePDA(JSONObject param) {
|
||||
String container_name = param.getString("container_name");
|
||||
|
||||
if (StrUtil.isEmpty(container_name)) {
|
||||
throw new BadRequestException("子卷号不能为空!");
|
||||
}
|
||||
|
||||
JSONObject result = new JSONObject();
|
||||
|
||||
log.info("GetChildWeightIsSamplePDA接口输入参数为:-------------------" + param.toString());
|
||||
|
||||
String url = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_URL").getValue();
|
||||
String api = "CamstarApi/GetChildWeightIsSamplePDA";
|
||||
url = url + api;
|
||||
|
||||
String UserName = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_USERNAME").getValue();
|
||||
String Password = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_PASSWORD").getValue();
|
||||
param.put("UserName", UserName);
|
||||
param.put("Password", Password);
|
||||
param.put("ContainerName", container_name);
|
||||
|
||||
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(param))
|
||||
.timeout(time_out)//超时时间,毫秒
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("GetChildWeightIsSamplePDA接口输出参数为:-------------------" + result.toString());
|
||||
|
||||
String RTYPE = result.getString("RTYPE");
|
||||
if ("E".equals(RTYPE)) {
|
||||
throw new BadRequestException(result.getString("RTMSG"));
|
||||
}
|
||||
JSONObject rtdat = result.getJSONObject("RTDAT");
|
||||
result.put("result", false);
|
||||
result.put("rtdat", rtdat);
|
||||
if (ObjectUtil.isNotEmpty(rtdat.getString("IsSampleTest")) && ObjectUtil.isNotEmpty(rtdat.getString("SampleCount")) && ObjectUtil.isNotEmpty(rtdat.getString("SampleTestResult"))) {
|
||||
if (rtdat.getString("IsSampleTest").equals(rtdat.getString("SampleCount")) && "PASS".equals(rtdat.getString("SampleTestResult"))) {
|
||||
result.put("result", true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
throw new BadRequestException("MES提示错误:" + e.getMessage());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user