fix:异常出库、NG卷校验

This commit is contained in:
zhouz
2025-07-20 18:49:04 +08:00
parent 4d6344c4bb
commit a366af32dd
12 changed files with 655 additions and 438 deletions

View File

@@ -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
}
/**
* 多选删除
*

View File

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

View File

@@ -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.*

View File

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

View File

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

View File

@@ -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 {
}
}

View File

@@ -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();
}
}
}
}

View File

@@ -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 贴标数量

View File

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

View File

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

View File

@@ -186,4 +186,6 @@ public interface LmsToMesService {
JSONObject BoxDataCollectionSubmit2(JSONObject jo);
JSONObject getInspectionResult(JSONObject jo);
JSONObject GetChildWeightIsSamplePDA(JSONObject jo);
}

View File

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