fix:异常出库、NG卷校验
This commit is contained in:
@@ -166,8 +166,8 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
|||||||
/**
|
/**
|
||||||
* 查询待检区木箱规格
|
* 查询待检区木箱规格
|
||||||
*
|
*
|
||||||
* @param query 查询条件
|
* @param query 查询条件
|
||||||
* @param pageQuery 分页参数
|
* @param pageQuery 分页参数
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Object queryBoxSpec(Map query, Pageable pageQuery) {
|
public Object queryBoxSpec(Map query, Pageable pageQuery) {
|
||||||
@@ -186,9 +186,9 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据订单号查询子卷信息
|
* 根据订单号查询子卷信息
|
||||||
|
*
|
||||||
* @param whereJson 查询条件
|
* @param whereJson 查询条件
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@@ -213,6 +213,16 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
|||||||
if (ObjectUtils.isEmpty(ivtList)) {
|
if (ObjectUtils.isEmpty(ivtList)) {
|
||||||
throw new BadRequestException("该子卷未质检或品质不符合要求,请扫码质检!");
|
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("待检区")))) {
|
// if (ivtList.stream().noneMatch(r -> r.getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("待检区")))) {
|
||||||
// throw new BadRequestException("该子卷不在待检区,请检查!");
|
// throw new BadRequestException("该子卷不在待检区,请检查!");
|
||||||
// }
|
// }
|
||||||
@@ -276,11 +286,11 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void updateEntityList(JSONObject whereJson) {
|
public void updateEntityList(JSONObject whereJson) {
|
||||||
String deviceCode = "ZXQ_1_1";
|
String deviceCode = "ZXQ_1_1";
|
||||||
List<PdmBiSubpackagerelation> packagerelationList = JSONObject.parseArray(whereJson.getJSONArray("tableMater").toJSONString(), PdmBiSubpackagerelation.class);
|
List<PdmBiSubpackagerelation> packagerelationList = JSONObject.parseArray(whereJson.getJSONArray("tableMater").toJSONString(), PdmBiSubpackagerelation.class);
|
||||||
//子卷信息校验
|
//子卷信息校验
|
||||||
checkEntityList(whereJson, packagerelationList);
|
checkEntityList(whereJson, packagerelationList);
|
||||||
//均衡获取木箱出库装箱区对接位
|
//均衡获取木箱出库装箱区对接位
|
||||||
//= getPointCode(packagerelationList.size());
|
//= getPointCode(packagerelationList.size());
|
||||||
List<String> workIdList = JSONObject.parseArray(whereJson.getJSONArray("tableMater").toJSONString(), PdmBiSubpackagerelation.class).stream()
|
List<String> workIdList = JSONObject.parseArray(whereJson.getJSONArray("tableMater").toJSONString(), PdmBiSubpackagerelation.class).stream()
|
||||||
.map(PdmBiSubpackagerelation::getWorkorder_id)
|
.map(PdmBiSubpackagerelation::getWorkorder_id)
|
||||||
.map(String::valueOf)
|
.map(String::valueOf)
|
||||||
@@ -295,13 +305,13 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
|||||||
.in("container_name", containerNameList));
|
.in("container_name", containerNameList));
|
||||||
|
|
||||||
for (BstIvtPackageinfoivt ivtPackageinfoivt : ivtList) {
|
for (BstIvtPackageinfoivt ivtPackageinfoivt : ivtList) {
|
||||||
if (!ivtPackageinfoivt.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("合格品"))){
|
if (!ivtPackageinfoivt.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("合格品"))) {
|
||||||
throw new BadRequestException("当前子卷未质检"+ivtPackageinfoivt.getContainer_name());
|
throw new BadRequestException("当前子卷未质检" + ivtPackageinfoivt.getContainer_name());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
List<PdmBiSlittingproductionplan> planList = iPdmBiSlittingproductionplanService.list(new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
|
List<PdmBiSlittingproductionplan> planList = iPdmBiSlittingproductionplanService.list(new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
|
||||||
.in(PdmBiSlittingproductionplan::getContainer_name, containerNameList)
|
.in(PdmBiSlittingproductionplan::getContainer_name, containerNameList)
|
||||||
.eq(PdmBiSlittingproductionplan::getIs_delete,IOSEnum.IS_NOTANDYES.code("否"))
|
.eq(PdmBiSlittingproductionplan::getIs_delete, IOSEnum.IS_NOTANDYES.code("否"))
|
||||||
);
|
);
|
||||||
List<PdmBiSubpackagerelation> subpackagerelations = this.list(new QueryWrapper<PdmBiSubpackagerelation>().in("workorder_id", workIdList));
|
List<PdmBiSubpackagerelation> subpackagerelations = this.list(new QueryWrapper<PdmBiSubpackagerelation>().in("workorder_id", workIdList));
|
||||||
if (ObjectUtils.isEmpty(planList)) {
|
if (ObjectUtils.isEmpty(planList)) {
|
||||||
@@ -310,9 +320,9 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
|||||||
Optional<PdmBiSubpackagerelation> any = subpackagerelations.stream()
|
Optional<PdmBiSubpackagerelation> any = subpackagerelations.stream()
|
||||||
.filter(sub -> sub.getStatus().equals("0") && StringUtils.isNotEmpty(sub.getPackage_box_sn()))
|
.filter(sub -> sub.getStatus().equals("0") && StringUtils.isNotEmpty(sub.getPackage_box_sn()))
|
||||||
.findAny();
|
.findAny();
|
||||||
if (any.isPresent()){
|
if (any.isPresent()) {
|
||||||
PdmBiSubpackagerelation subpackagerelation = any.get();
|
PdmBiSubpackagerelation subpackagerelation = any.get();
|
||||||
throw new BadRequestException(subpackagerelation.getPackage_box_sn()+"包装关系已存在"+subpackagerelation.getPackage_box_sn()+",如重新生成请确认MES跟LMS包装关系已解绑定");
|
throw new BadRequestException(subpackagerelation.getPackage_box_sn() + "包装关系已存在" + subpackagerelation.getPackage_box_sn() + ",如重新生成请确认MES跟LMS包装关系已解绑定");
|
||||||
}
|
}
|
||||||
|
|
||||||
BigDecimal totalWeight;
|
BigDecimal totalWeight;
|
||||||
@@ -338,23 +348,23 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
|||||||
List<Long> collect = ivtList.stream().map(a -> a.getIvt_id()).collect(Collectors.toList());
|
List<Long> collect = ivtList.stream().map(a -> a.getIvt_id()).collect(Collectors.toList());
|
||||||
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>()
|
packageinfoivtService.update(new UpdateWrapper<BstIvtPackageinfoivt>()
|
||||||
.set("update_time", DateUtil.now())
|
.set("update_time", DateUtil.now())
|
||||||
.in("ivt_id",collect));
|
.in("ivt_id", collect));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List zjInBound(JSONObject whereJson) {
|
public List zjInBound(JSONObject whereJson) {
|
||||||
String containerName = whereJson.getString("container_name");
|
String containerName = whereJson.getString("container_name");
|
||||||
if (StringUtils.isEmpty(containerName)){
|
if (StringUtils.isEmpty(containerName)) {
|
||||||
throw new BadRequestException("子卷编码不能为空");
|
throw new BadRequestException("子卷编码不能为空");
|
||||||
}
|
}
|
||||||
String[] split = containerName.split(",");
|
String[] split = containerName.split(",");
|
||||||
List<PdmBiSubpackagerelation> subList = this.list(new QueryWrapper<PdmBiSubpackagerelation>()
|
List<PdmBiSubpackagerelation> subList = this.list(new QueryWrapper<PdmBiSubpackagerelation>()
|
||||||
.eq("status", "0")
|
.eq("status", "0")
|
||||||
.in("container_name", split));
|
.in("container_name", split));
|
||||||
if (CollectionUtils.isEmpty(subList)){
|
if (CollectionUtils.isEmpty(subList)) {
|
||||||
throw new BadRequestException("当前子卷还为组盘");
|
throw new BadRequestException("当前子卷还为组盘");
|
||||||
}
|
}
|
||||||
if (subList.size() != split.length){
|
if (subList.size() != split.length) {
|
||||||
throw new BadRequestException("子卷包装信息与子卷不相符合");
|
throw new BadRequestException("子卷包装信息与子卷不相符合");
|
||||||
}
|
}
|
||||||
return subList;
|
return subList;
|
||||||
@@ -364,7 +374,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
|||||||
@Transactional
|
@Transactional
|
||||||
public void zjInBoundConfirm(JSONObject param) {
|
public void zjInBoundConfirm(JSONObject param) {
|
||||||
String containerName = param.getString("search");
|
String containerName = param.getString("search");
|
||||||
if (StringUtils.isEmpty(containerName)){
|
if (StringUtils.isEmpty(containerName)) {
|
||||||
throw new BadRequestException("子卷编码不能为空");
|
throw new BadRequestException("子卷编码不能为空");
|
||||||
}
|
}
|
||||||
String deviceCode = "ZXQ_1_1";
|
String deviceCode = "ZXQ_1_1";
|
||||||
@@ -373,9 +383,9 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
|||||||
.eq("is_delete", "0")
|
.eq("is_delete", "0")
|
||||||
.lt("task_status", TaskStatusEnum.FINISHED.getCode()));
|
.lt("task_status", TaskStatusEnum.FINISHED.getCode()));
|
||||||
int count2 = packageinfoivtService.count(new QueryWrapper<BstIvtPackageinfoivt>()
|
int count2 = packageinfoivtService.count(new QueryWrapper<BstIvtPackageinfoivt>()
|
||||||
.eq("point_status",PackageInfoIvtEnum.POINT_STATUS.code("装箱区"))
|
.eq("point_status", PackageInfoIvtEnum.POINT_STATUS.code("装箱区"))
|
||||||
.eq("ivt_status",PackageInfoIvtEnum.IVT_STATUS.code("合格品")));
|
.eq("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("合格品")));
|
||||||
if (count+count2>8){
|
if (count + count2 > 8) {
|
||||||
throw new BadRequestException("当前装箱区木箱任务已满,稍后再试");
|
throw new BadRequestException("当前装箱区木箱任务已满,稍后再试");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -384,63 +394,63 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
|||||||
List<PdmBiSubpackagerelation> subList = this.list(new QueryWrapper<PdmBiSubpackagerelation>()
|
List<PdmBiSubpackagerelation> subList = this.list(new QueryWrapper<PdmBiSubpackagerelation>()
|
||||||
.eq("status", "0")
|
.eq("status", "0")
|
||||||
.in("container_name", split));
|
.in("container_name", split));
|
||||||
if (subList.size() != split.length){
|
if (subList.size() != split.length) {
|
||||||
throw new BadRequestException("子卷包装信息与子卷不相符合");
|
throw new BadRequestException("子卷包装信息与子卷不相符合");
|
||||||
}
|
}
|
||||||
Set<String> collect = subList.stream().map(PdmBiSubpackagerelation::getPackage_box_sn).collect(Collectors.toSet());
|
Set<String> collect = subList.stream().map(PdmBiSubpackagerelation::getPackage_box_sn).collect(Collectors.toSet());
|
||||||
Set<String> containers = subList.stream().map(PdmBiSubpackagerelation::getContainer_name).collect(Collectors.toSet());
|
Set<String> containers = subList.stream().map(PdmBiSubpackagerelation::getContainer_name).collect(Collectors.toSet());
|
||||||
List<String> containerList = subList.stream().map(PdmBiSubpackagerelation::getContainer_name).collect(Collectors.toList());
|
List<String> containerList = subList.stream().map(PdmBiSubpackagerelation::getContainer_name).collect(Collectors.toList());
|
||||||
if (collect.size() == 0){
|
if (collect.size() == 0) {
|
||||||
throw new BadRequestException("当前子卷还未进行装箱组盘操作");
|
throw new BadRequestException("当前子卷还未进行装箱组盘操作");
|
||||||
}
|
}
|
||||||
if (collect.size()>1){
|
if (collect.size() > 1) {
|
||||||
throw new BadRequestException("当前子卷不属于同一组"+ collect);
|
throw new BadRequestException("当前子卷不属于同一组" + collect);
|
||||||
}
|
}
|
||||||
if (subList.get(0).getQuanlity_in_box().intValue()!= split.length){
|
if (subList.get(0).getQuanlity_in_box().intValue() != split.length) {
|
||||||
throw new BadRequestException("当前木箱"+subList.get(0).getQuanlity_in_box()+"要装箱的子卷"+split.length+"未装完");
|
throw new BadRequestException("当前木箱" + subList.get(0).getQuanlity_in_box() + "要装箱的子卷" + split.length + "未装完");
|
||||||
}
|
}
|
||||||
String boxSn = subList.get(0).getPackage_box_sn();
|
String boxSn = subList.get(0).getPackage_box_sn();
|
||||||
//查询木箱所在货位
|
//查询木箱所在货位
|
||||||
WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr");
|
WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr");
|
||||||
JSONArray boxAttrs = attrTab.query("storagevehicle_code = '" + boxSn + "' and sect_id = '1748219897940414464'").getResultJSONArray(0);
|
JSONArray boxAttrs = attrTab.query("storagevehicle_code = '" + boxSn + "' and sect_id = '1748219897940414464'").getResultJSONArray(0);
|
||||||
if (boxAttrs.size() == 0){
|
if (boxAttrs.size() == 0) {
|
||||||
throw new BadRequestException("当前木箱"+boxSn+"库存信息查询不到,请确认");
|
throw new BadRequestException("当前木箱" + boxSn + "库存信息查询不到,请确认");
|
||||||
}
|
}
|
||||||
JSONObject boxAttr = boxAttrs.getJSONObject(0);
|
JSONObject boxAttr = boxAttrs.getJSONObject(0);
|
||||||
List<SchBaseTask> hasTask = taskService.list(new QueryWrapper<SchBaseTask>()
|
List<SchBaseTask> hasTask = taskService.list(new QueryWrapper<SchBaseTask>()
|
||||||
.select("point_code2")
|
.select("point_code2")
|
||||||
.eq("is_delete", "0")
|
.eq("is_delete", "0")
|
||||||
.eq("point_code1", boxAttr.getString("struct_code"))
|
.eq("point_code1", boxAttr.getString("struct_code"))
|
||||||
.lt("task_status", TaskStatusEnum.FINISHED.getCode()));
|
.lt("task_status", TaskStatusEnum.FINISHED.getCode()));
|
||||||
if (!CollectionUtils.isEmpty(hasTask)){
|
if (!CollectionUtils.isEmpty(hasTask)) {
|
||||||
boolean zxq = hasTask.stream().map(a -> a.getPoint_code2()).filter(a -> a.contains("ZXQ")).findAny().isPresent();
|
boolean zxq = hasTask.stream().map(a -> a.getPoint_code2()).filter(a -> a.contains("ZXQ")).findAny().isPresent();
|
||||||
if (zxq){
|
if (zxq) {
|
||||||
throw new BadRequestException("当前子卷正在执行装箱入库操作");
|
throw new BadRequestException("当前子卷正在执行装箱入库操作");
|
||||||
}else{
|
} else {
|
||||||
throw new BadRequestException("当前空木箱"+boxSn+"存在正在执行的任务,稍后再操作");
|
throw new BadRequestException("当前空木箱" + boxSn + "存在正在执行的任务,稍后再操作");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 查询木箱对应的托盘号
|
// 查询木箱对应的托盘号
|
||||||
JSONObject jsonVeExt = WQLObject.getWQLObject("md_pb_storagevehicleext").query("pcsn = '" + boxSn + "'")
|
JSONObject jsonVeExt = WQLObject.getWQLObject("md_pb_storagevehicleext").query("pcsn = '" + boxSn + "'")
|
||||||
.uniqueResult(0);
|
.uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(jsonVeExt)) {
|
if (ObjectUtil.isEmpty(jsonVeExt)) {
|
||||||
throw new BadRequestException("此木箱没有绑定托盘号!"+boxSn);
|
throw new BadRequestException("此木箱没有绑定托盘号!" + boxSn);
|
||||||
}
|
}
|
||||||
//子卷到装箱区
|
//子卷到装箱区
|
||||||
agvTransfer(containers, deviceCode, boxSn);
|
agvTransfer(containers, deviceCode, boxSn);
|
||||||
String task_group_id = null;
|
String task_group_id = null;
|
||||||
if (boxAttr.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) {
|
if (boxAttr.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) {
|
||||||
JSONObject 浅Attr = attrTab
|
JSONObject 浅Attr = attrTab
|
||||||
.query("zdepth = '1' and row_num = '"+boxAttr.getString("row_num")+"' and col_num = '" + boxAttr.getString("col_num") + "' and layer_num = '"+boxAttr.getString("layer_num")+"'")
|
.query("zdepth = '1' and row_num = '" + boxAttr.getString("row_num") + "' and col_num = '" + boxAttr.getString("col_num") + "' and layer_num = '" + boxAttr.getString("layer_num") + "'")
|
||||||
.uniqueResult(0);
|
.uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(浅Attr)){
|
if (ObjectUtil.isEmpty(浅Attr)) {
|
||||||
throw new BadRequestException(boxAttr.getString("struct_code")+"对应浅货位信息不正确");
|
throw new BadRequestException(boxAttr.getString("struct_code") + "对应浅货位信息不正确");
|
||||||
}
|
}
|
||||||
if (ObjectUtil.isEmpty(浅Attr.getString("storagevehicle_code"))){
|
if (ObjectUtil.isEmpty(浅Attr.getString("storagevehicle_code"))) {
|
||||||
if (!浅Attr.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) {
|
if (!浅Attr.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) {
|
||||||
throw new BadRequestException("木箱货位"+boxAttr.getString("struct_code")+"的浅货位存在正在执行的任务");
|
throw new BadRequestException("木箱货位" + boxAttr.getString("struct_code") + "的浅货位存在正在执行的任务");
|
||||||
}
|
}
|
||||||
}else {
|
} else {
|
||||||
if (浅Attr.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) {
|
if (浅Attr.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) {
|
||||||
// 判断浅货位木箱和深货位木箱是否相同规格
|
// 判断浅货位木箱和深货位木箱是否相同规格
|
||||||
task_group_id = outBoxManageService.createBoxMove(浅Attr);
|
task_group_id = outBoxManageService.createBoxMove(浅Attr);
|
||||||
@@ -449,11 +459,11 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
|||||||
.eq("is_delete", "0")
|
.eq("is_delete", "0")
|
||||||
.eq("point_code1", 浅Attr.getString("struct_code"))
|
.eq("point_code1", 浅Attr.getString("struct_code"))
|
||||||
.lt("task_status", TaskStatusEnum.FINISHED.getCode()));
|
.lt("task_status", TaskStatusEnum.FINISHED.getCode()));
|
||||||
if (!CollectionUtils.isEmpty(list)){
|
if (!CollectionUtils.isEmpty(list)) {
|
||||||
throw new BadRequestException("当前木箱所在货位"+boxAttr.getString("struct_code")+"对应浅货位存在任务"+浅Attr.getString("task_code"));
|
throw new BadRequestException("当前木箱所在货位" + boxAttr.getString("struct_code") + "对应浅货位存在任务" + 浅Attr.getString("task_code"));
|
||||||
}
|
}
|
||||||
}else {
|
} else {
|
||||||
throw new BadRequestException("当前木箱所在货位"+boxAttr.getString("struct_code")+"对应浅货位存在任务"+浅Attr.getString("task_code"));
|
throw new BadRequestException("当前木箱所在货位" + boxAttr.getString("struct_code") + "对应浅货位存在任务" + 浅Attr.getString("task_code"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -462,7 +472,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
|||||||
pdmBiContainerinbound.setContainer_name(containerName);
|
pdmBiContainerinbound.setContainer_name(containerName);
|
||||||
pdmBiContainerinbound.setBox(boxSn);
|
pdmBiContainerinbound.setBox(boxSn);
|
||||||
Boolean inbound = param.getBoolean("inbound");
|
Boolean inbound = param.getBoolean("inbound");
|
||||||
if (inbound!=null){
|
if (inbound != null) {
|
||||||
pdmBiContainerinbound.setInbound(inbound);
|
pdmBiContainerinbound.setInbound(inbound);
|
||||||
}
|
}
|
||||||
iPdmBiContainerinboundService.save(pdmBiContainerinbound);
|
iPdmBiContainerinboundService.save(pdmBiContainerinbound);
|
||||||
@@ -482,7 +492,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
|||||||
attrTab.update(boxAttr);
|
attrTab.update(boxAttr);
|
||||||
twoOutBoxTask.createTask(jsonTaskParam);
|
twoOutBoxTask.createTask(jsonTaskParam);
|
||||||
twoOutBoxTask.immediateNotifyAcs(null);
|
twoOutBoxTask.immediateNotifyAcs(null);
|
||||||
PdmProductSpecServiceImpl.doRecord(SpecEnum.ZXRK,null,Boolean.TRUE,null,containerList);
|
PdmProductSpecServiceImpl.doRecord(SpecEnum.ZXRK, null, Boolean.TRUE, null, containerList);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -490,7 +500,8 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
|||||||
JSONArray jsonArray = whereJson.getJSONArray("tableMater");
|
JSONArray jsonArray = whereJson.getJSONArray("tableMater");
|
||||||
if (jsonArray == null || jsonArray.size() == 0) {
|
if (jsonArray == null || jsonArray.size() == 0) {
|
||||||
throw new BadRequestException("无选中子卷信息");
|
throw new BadRequestException("无选中子卷信息");
|
||||||
} if (jsonArray == null || jsonArray.size() == 0) {
|
}
|
||||||
|
if (jsonArray == null || jsonArray.size() == 0) {
|
||||||
throw new BadRequestException("无选中子卷信息");
|
throw new BadRequestException("无选中子卷信息");
|
||||||
}
|
}
|
||||||
if (ObjectUtils.isEmpty(packagerelationList)) {
|
if (ObjectUtils.isEmpty(packagerelationList)) {
|
||||||
@@ -526,8 +537,6 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 空木箱绑定
|
* 空木箱绑定
|
||||||
*/
|
*/
|
||||||
@@ -561,7 +570,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
|||||||
updateWrapper.in("workorder_id", workIdList);
|
updateWrapper.in("workorder_id", workIdList);
|
||||||
pdmBiSubpackagerelationMapper.update(null, updateWrapper);
|
pdmBiSubpackagerelationMapper.update(null, updateWrapper);
|
||||||
//给MES传输子卷包装关系
|
//给MES传输子卷包装关系
|
||||||
PdmProductSpecServiceImpl.doRecord(SpecEnum.BZ,null,Boolean.TRUE,null,containerNameList.stream().collect(Collectors.toList()));
|
PdmProductSpecServiceImpl.doRecord(SpecEnum.BZ, null, Boolean.TRUE, null, containerNameList.stream().collect(Collectors.toList()));
|
||||||
CompletableFuture.runAsync(() -> {
|
CompletableFuture.runAsync(() -> {
|
||||||
try {
|
try {
|
||||||
log.error("----回传子卷包装关系----");
|
log.error("----回传子卷包装关系----");
|
||||||
@@ -670,7 +679,6 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 多选删除
|
* 多选删除
|
||||||
*
|
*
|
||||||
@@ -749,13 +757,13 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
|||||||
List<BstIvtPackageinfoivt> djqPointList = packageinfoivtService
|
List<BstIvtPackageinfoivt> djqPointList = packageinfoivtService
|
||||||
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
||||||
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
|
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
|
||||||
.in(BstIvtPackageinfoivt::getContainer_name,containerNameList));
|
.in(BstIvtPackageinfoivt::getContainer_name, containerNameList));
|
||||||
if (CollectionUtils.isEmpty(djqPointList)){
|
if (CollectionUtils.isEmpty(djqPointList)) {
|
||||||
throw new BadRequestException(containerNameList+"子卷信息不存在");
|
throw new BadRequestException(containerNameList + "子卷信息不存在");
|
||||||
}
|
}
|
||||||
boolean hasNo = djqPointList.stream().anyMatch(a -> !a.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("合格品")));
|
boolean hasNo = djqPointList.stream().anyMatch(a -> !a.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("合格品")));
|
||||||
if (hasNo){
|
if (hasNo) {
|
||||||
throw new BadRequestException(containerNameList+"子卷未质检合格");
|
throw new BadRequestException(containerNameList + "子卷未质检合格");
|
||||||
}
|
}
|
||||||
List<BstIvtPackageinfoivt> djqPoints = djqPointList.stream().filter(a -> a.getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("待检区"))).collect(Collectors.toList());
|
List<BstIvtPackageinfoivt> djqPoints = djqPointList.stream().filter(a -> a.getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("待检区"))).collect(Collectors.toList());
|
||||||
//任务组id
|
//任务组id
|
||||||
@@ -767,14 +775,14 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
|||||||
List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||||
.eq(SchBaseTask::getVehicle_code, item.getContainer_name()).eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区"))
|
.eq(SchBaseTask::getVehicle_code, item.getContainer_name()).eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区"))
|
||||||
.eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")).lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()));
|
.eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")).lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()));
|
||||||
if (CollectionUtils.isEmpty(taskList)){
|
if (CollectionUtils.isEmpty(taskList)) {
|
||||||
JSONObject jo = new JSONObject();
|
JSONObject jo = new JSONObject();
|
||||||
//确定搬运任务不执行
|
//确定搬运任务不执行
|
||||||
jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区"));
|
jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("待检区->装箱区"));
|
||||||
jo.put("vehicle_code", item.getContainer_name());
|
jo.put("vehicle_code", item.getContainer_name());
|
||||||
jo.put("point_code1", item.getPoint_code());
|
jo.put("point_code1", item.getPoint_code());
|
||||||
jo.put("date",now);
|
jo.put("date", now);
|
||||||
jo.put("task_step",i1);
|
jo.put("task_step", i1);
|
||||||
jo.put("task_status", TaskStatusEnum.SURE_START.getCode());
|
jo.put("task_status", TaskStatusEnum.SURE_START.getCode());
|
||||||
jo.put("vehicle_code2", groupId);
|
jo.put("vehicle_code2", groupId);
|
||||||
zxqTask.createTaskReturnTask(jo);
|
zxqTask.createTaskReturnTask(jo);
|
||||||
@@ -786,39 +794,39 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
|||||||
@Override
|
@Override
|
||||||
public Map toEndSubpackagerelation(String code) {
|
public Map toEndSubpackagerelation(String code) {
|
||||||
HashMap result = MapOf.of("status", HttpStatus.OK.value());
|
HashMap result = MapOf.of("status", HttpStatus.OK.value());
|
||||||
result.put("message", code+"子卷包装解除成功");
|
result.put("message", code + "子卷包装解除成功");
|
||||||
if (StringUtils.isEmpty(code)){
|
if (StringUtils.isEmpty(code)) {
|
||||||
throw new BadRequestException("子卷编码不能为空");
|
throw new BadRequestException("子卷编码不能为空");
|
||||||
}
|
}
|
||||||
PdmBiSubpackagerelation containerName = this.getOne(new QueryWrapper<PdmBiSubpackagerelation>().eq("container_name", code));
|
PdmBiSubpackagerelation containerName = this.getOne(new QueryWrapper<PdmBiSubpackagerelation>().eq("container_name", code));
|
||||||
if (containerName==null){
|
if (containerName == null) {
|
||||||
throw new BadRequestException("当前子卷"+code+"还未生成子卷包装");
|
throw new BadRequestException("当前子卷" + code + "还未生成子卷包装");
|
||||||
}
|
}
|
||||||
if (SUBEnum.STATUS.code("入库").equals(containerName.getStatus())
|
if (SUBEnum.STATUS.code("入库").equals(containerName.getStatus())
|
||||||
||SUBEnum.STATUS.code("出库").equals(containerName.getStatus())){
|
|| SUBEnum.STATUS.code("出库").equals(containerName.getStatus())) {
|
||||||
throw new BadRequestException("当前子卷"+code+"已完成出入库不允许手动解除");
|
throw new BadRequestException("当前子卷" + code + "已完成出入库不允许手动解除");
|
||||||
}
|
}
|
||||||
if (StringUtils.isNotEmpty(containerName.getPackage_box_sn())){
|
if (StringUtils.isNotEmpty(containerName.getPackage_box_sn())) {
|
||||||
String packageBoxSn = containerName.getPackage_box_sn();
|
String packageBoxSn = containerName.getPackage_box_sn();
|
||||||
WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr");
|
WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr");
|
||||||
JSONObject attr = attrTab.query("storagevehicle_code = '" + packageBoxSn + "'").uniqueResult(0);
|
JSONObject attr = attrTab.query("storagevehicle_code = '" + packageBoxSn + "'").uniqueResult(0);
|
||||||
if (ObjectUtils.isNotEmpty(attr)){
|
if (ObjectUtils.isNotEmpty(attr)) {
|
||||||
String structCode = attr.getString("struct_code");
|
String structCode = attr.getString("struct_code");
|
||||||
int count = taskService.count(new QueryWrapper<SchBaseTask>()
|
int count = taskService.count(new QueryWrapper<SchBaseTask>()
|
||||||
.eq("task_type", "010704")
|
.eq("task_type", "010704")
|
||||||
.eq("is_delete", "0")
|
.eq("is_delete", "0")
|
||||||
.eq("point_code1", structCode)
|
.eq("point_code1", structCode)
|
||||||
.lt("task_status", TaskStatusEnum.FINISHED.getCode()));
|
.lt("task_status", TaskStatusEnum.FINISHED.getCode()));
|
||||||
if (count>0){
|
if (count > 0) {
|
||||||
throw new BadRequestException("当前子卷已经生成装箱入库任务,不允许直接解绑");
|
throw new BadRequestException("当前子卷已经生成装箱入库任务,不允许直接解绑");
|
||||||
}
|
}
|
||||||
attr.put("lock_type","1");
|
attr.put("lock_type", "1");
|
||||||
attrTab.update(attr);
|
attrTab.update(attr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.removeById(containerName.getWorkorder_id());
|
this.removeById(containerName.getWorkorder_id());
|
||||||
result.put("message", code+"子卷包装解除成功,同时确认MES装箱以解绑定");
|
result.put("message", code + "子卷包装解除成功,同时确认MES装箱以解绑定");
|
||||||
PdmProductSpecServiceImpl.doRecord(SpecEnum.BZ_REMOVE,MapOf.of("子卷编号",code),Boolean.TRUE,null,code);
|
PdmProductSpecServiceImpl.doRecord(SpecEnum.BZ_REMOVE, MapOf.of("子卷编号", code), Boolean.TRUE, null, code);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -836,12 +844,12 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
|||||||
public void boxReturn(JSONObject whereJson) {
|
public void boxReturn(JSONObject whereJson) {
|
||||||
String deviceCode = whereJson.getString("device_code");
|
String deviceCode = whereJson.getString("device_code");
|
||||||
String box = whereJson.getString("box");
|
String box = whereJson.getString("box");
|
||||||
if (StringUtils.isEmpty(deviceCode)||StringUtils.isEmpty(box)){
|
if (StringUtils.isEmpty(deviceCode) || StringUtils.isEmpty(box)) {
|
||||||
throw new BadRequestException("参数不全");
|
throw new BadRequestException("参数不全");
|
||||||
}
|
}
|
||||||
PdmBiSubpackagerelation one = this.getOne(new QueryWrapper<PdmBiSubpackagerelation>()
|
PdmBiSubpackagerelation one = this.getOne(new QueryWrapper<PdmBiSubpackagerelation>()
|
||||||
.eq("container_name", whereJson.getString("container_name")));
|
.eq("container_name", whereJson.getString("container_name")));
|
||||||
if (one!=null){
|
if (one != null) {
|
||||||
throw new BadRequestException("包装关系存在,请先在MES和LMS解绑包装关系");
|
throw new BadRequestException("包装关系存在,请先在MES和LMS解绑包装关系");
|
||||||
}
|
}
|
||||||
BstIvtBoxinfo bstIvtBoxinfo = bstIvtBoxinfoMapper.selectOne(new LambdaQueryWrapper<BstIvtBoxinfo>()
|
BstIvtBoxinfo bstIvtBoxinfo = bstIvtBoxinfoMapper.selectOne(new LambdaQueryWrapper<BstIvtBoxinfo>()
|
||||||
@@ -861,16 +869,16 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
|||||||
} else {
|
} else {
|
||||||
height = "3";
|
height = "3";
|
||||||
}
|
}
|
||||||
acsParam.put("device_code",deviceCode);
|
acsParam.put("device_code", deviceCode);
|
||||||
acsParam.put("sub_volume","BR"+box);
|
acsParam.put("sub_volume", "BR" + box);
|
||||||
acsParam.put("height_level",height);
|
acsParam.put("height_level", height);
|
||||||
acsParam.put("product_area","BLK");
|
acsParam.put("product_area", "BLK");
|
||||||
AcsUtil.notifyAcsObject("api/wms/returnBox", acsParam);
|
AcsUtil.notifyAcsObject("api/wms/returnBox", acsParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void downloadData(Integer day, HttpServletResponse response) {
|
public void downloadData(Integer day, HttpServletResponse response) {
|
||||||
if (day>3){
|
if (day > 3) {
|
||||||
throw new BadRequestException("只能导出前三天数据");
|
throw new BadRequestException("只能导出前三天数据");
|
||||||
}
|
}
|
||||||
Date time = DateUtil.offsetDay(new Date(), -day);
|
Date time = DateUtil.offsetDay(new Date(), -day);
|
||||||
@@ -884,57 +892,57 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
|||||||
JSONObject logPage = luceneLogService.query(query);
|
JSONObject logPage = luceneLogService.query(query);
|
||||||
//forcedFeedShaft
|
//forcedFeedShaft
|
||||||
int total = logPage.getIntValue("total");
|
int total = logPage.getIntValue("total");
|
||||||
List<Map<String,String>> log = new ArrayList<>();
|
List<Map<String, String>> log = new ArrayList<>();
|
||||||
if (total>0){
|
if (total > 0) {
|
||||||
PageResult<LogRepositoryDTO> page = (PageResult)logPage.get("page");
|
PageResult<LogRepositoryDTO> page = (PageResult) logPage.get("page");
|
||||||
for (LogRepositoryDTO dto : page) {
|
for (LogRepositoryDTO dto : page) {
|
||||||
String message = dto.getMessage();
|
String message = dto.getMessage();
|
||||||
if (!StringUtils.isEmpty(message)){
|
if (!StringUtils.isEmpty(message)) {
|
||||||
String requestTime = dto.getRequestTime();
|
String requestTime = dto.getRequestTime();
|
||||||
int start = message.indexOf("{");
|
int start = message.indexOf("{");
|
||||||
int end = message.lastIndexOf("}");
|
int end = message.lastIndexOf("}");
|
||||||
if (start>0 && end>start){
|
if (start > 0 && end > start) {
|
||||||
String substring = message.substring(start, end + 1);
|
String substring = message.substring(start, end + 1);
|
||||||
JSONObject object = JSONObject.parseObject(substring);
|
JSONObject object = JSONObject.parseObject(substring);
|
||||||
String deviceCode = object.getString("device_code");
|
String deviceCode = object.getString("device_code");
|
||||||
log.add(MapOf.of("呼叫时间",requestTime,"设备",deviceCode));
|
log.add(MapOf.of("呼叫时间", requestTime, "设备", deviceCode));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
List<Map<String,String>> databases = this.baseMapper.downloadData(time.toString());
|
List<Map<String, String>> databases = this.baseMapper.downloadData(time.toString());
|
||||||
List<Map<String, String>> ioData = new ArrayList<>();
|
List<Map<String, String>> ioData = new ArrayList<>();
|
||||||
int max = Math.max(databases.size(), log.size());
|
int max = Math.max(databases.size(), log.size());
|
||||||
for (int i = 0; i < max; i++) {
|
for (int i = 0; i < max; i++) {
|
||||||
Map<String, String> item = new HashMap<>();
|
Map<String, String> item = new HashMap<>();
|
||||||
if (databases.size()>i){
|
if (databases.size() > i) {
|
||||||
Map<String, String> item1 = databases.get(i);
|
Map<String, String> item1 = databases.get(i);
|
||||||
item.putAll(item1);
|
item.putAll(item1);
|
||||||
}else {
|
} else {
|
||||||
item.put("下卷设备","");
|
item.put("下卷设备", "");
|
||||||
item.put("下卷开始","");
|
item.put("下卷开始", "");
|
||||||
item.put("下卷结束","");
|
item.put("下卷结束", "");
|
||||||
}
|
}
|
||||||
if (log.size()>i){
|
if (log.size() > i) {
|
||||||
Map<String, String> item2 = log.get(i);
|
Map<String, String> item2 = log.get(i);
|
||||||
item.putAll(item2);
|
item.putAll(item2);
|
||||||
}else {
|
} else {
|
||||||
item.put("设备","");
|
item.put("设备", "");
|
||||||
item.put("呼叫时间","");
|
item.put("呼叫时间", "");
|
||||||
}
|
}
|
||||||
item.put("分割","");
|
item.put("分割", "");
|
||||||
if (item.keySet().size()==6){
|
if (item.keySet().size() == 6) {
|
||||||
ioData.add(item);
|
ioData.add(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
String[] strings = new String[6];
|
String[] strings = new String[6];
|
||||||
strings[0] = "下卷设备";
|
strings[0] = "下卷设备";
|
||||||
strings[1] ="下卷开始";
|
strings[1] = "下卷开始";
|
||||||
strings[2] ="下卷结束";
|
strings[2] = "下卷结束";
|
||||||
strings[3] = "分割";
|
strings[3] = "分割";
|
||||||
strings[4] = "设备";
|
strings[4] = "设备";
|
||||||
strings[5] = "呼叫时间";
|
strings[5] = "呼叫时间";
|
||||||
new FileUtil().downloadExcelIO(ioData,strings,response);
|
new FileUtil().downloadExcelIO(ioData, strings, response);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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<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> 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);
|
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.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')
|
AND t.is_delete = '0')
|
||||||
</select>
|
</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 id="selectNoTargetTaskPoint" resultType="org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt">
|
||||||
select p.*
|
select p.*
|
||||||
|
|||||||
@@ -92,7 +92,6 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
|||||||
private IpdmBiSubpackagerelationService subpackagerelationService;
|
private IpdmBiSubpackagerelationService subpackagerelationService;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询数据分页
|
* 查询数据分页
|
||||||
*
|
*
|
||||||
@@ -100,7 +99,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
|||||||
* @param page 分页参数
|
* @param page 分页参数
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public IPage queryAll(Map whereJson, PageQuery page) {
|
public IPage queryAll(Map whereJson, PageQuery page) {
|
||||||
LambdaQueryWrapper<BstIvtPackageinfoivt> queryWrapper = new QueryWrapper<BstIvtPackageinfoivt>().lambda();
|
LambdaQueryWrapper<BstIvtPackageinfoivt> queryWrapper = new QueryWrapper<BstIvtPackageinfoivt>().lambda();
|
||||||
String isUsed = MapUtil.getStr(whereJson, "is_used");
|
String isUsed = MapUtil.getStr(whereJson, "is_used");
|
||||||
String pointCode = MapUtil.getStr(whereJson, "point_code");
|
String pointCode = MapUtil.getStr(whereJson, "point_code");
|
||||||
@@ -124,20 +123,20 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
|||||||
}
|
}
|
||||||
Page selectPage = bstIvtPackageinfoivtMapper.selectPage(new Page<>(page.getPage() + 1, page.getSize()), queryWrapper);
|
Page selectPage = bstIvtPackageinfoivtMapper.selectPage(new Page<>(page.getPage() + 1, page.getSize()), queryWrapper);
|
||||||
List<BstIvtPackageinfoivt> records = selectPage.getRecords();
|
List<BstIvtPackageinfoivt> records = selectPage.getRecords();
|
||||||
Set<String> containers = records.stream().map(BstIvtPackageinfoivt::getContainer_name).filter(a->StringUtils.isNotEmpty(a)).collect(Collectors.toSet());
|
Set<String> containers = records.stream().map(BstIvtPackageinfoivt::getContainer_name).filter(a -> StringUtils.isNotEmpty(a)).collect(Collectors.toSet());
|
||||||
Map<String,PdmBiSlittingproductionplan> listMap = new HashMap();
|
Map<String, PdmBiSlittingproductionplan> listMap = new HashMap();
|
||||||
if (!CollectionUtils.isEmpty(containers)){
|
if (!CollectionUtils.isEmpty(containers)) {
|
||||||
List<PdmBiSlittingproductionplan> containerInfo = iPdmBiSlittingproductionplanService.list(new QueryWrapper<PdmBiSlittingproductionplan>()
|
List<PdmBiSlittingproductionplan> containerInfo = iPdmBiSlittingproductionplanService.list(new QueryWrapper<PdmBiSlittingproductionplan>()
|
||||||
.in("container_name", containers)
|
.in("container_name", containers)
|
||||||
.select("container_name", "weight", "paper_weight","split_breadth","split_height"));
|
.select("container_name", "weight", "paper_weight", "split_breadth", "split_height"));
|
||||||
listMap = containerInfo.stream().collect(HashMap::new,(m, o) -> m.put(o.getContainer_name(),o), HashMap::putAll);
|
listMap = containerInfo.stream().collect(HashMap::new, (m, o) -> m.put(o.getContainer_name(), o), HashMap::putAll);
|
||||||
}
|
}
|
||||||
List<BstIvtPackageinfoivtVO> voRecords = new ArrayList<>();
|
List<BstIvtPackageinfoivtVO> voRecords = new ArrayList<>();
|
||||||
for (BstIvtPackageinfoivt record : records) {
|
for (BstIvtPackageinfoivt record : records) {
|
||||||
BstIvtPackageinfoivtVO vo = new BstIvtPackageinfoivtVO();
|
BstIvtPackageinfoivtVO vo = new BstIvtPackageinfoivtVO();
|
||||||
BeanUtils.copyProperties(record,vo);
|
BeanUtils.copyProperties(record, vo);
|
||||||
PdmBiSlittingproductionplan planInfo = listMap.get(record.getContainer_name());
|
PdmBiSlittingproductionplan planInfo = listMap.get(record.getContainer_name());
|
||||||
if (planInfo!=null){
|
if (planInfo != null) {
|
||||||
vo.setWeight(planInfo.getWeight());
|
vo.setWeight(planInfo.getWeight());
|
||||||
vo.setPaper_weight(planInfo.getPaper_weight());
|
vo.setPaper_weight(planInfo.getPaper_weight());
|
||||||
vo.setSplit_breadth(planInfo.getSplit_breadth().intValue());
|
vo.setSplit_breadth(planInfo.getSplit_breadth().intValue());
|
||||||
@@ -159,8 +158,11 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
|||||||
public Map<String, Object> secondaryAllocationPoint(String taskCode, String actionType) {
|
public Map<String, Object> secondaryAllocationPoint(String taskCode, String actionType) {
|
||||||
JSONObject result = new JSONObject();
|
JSONObject result = new JSONObject();
|
||||||
result.put("status", HttpStatus.BAD_REQUEST.value());
|
result.put("status", HttpStatus.BAD_REQUEST.value());
|
||||||
RedissonUtils.lock(c-> {
|
RedissonUtils.lock(c -> {
|
||||||
try {Thread.sleep(1000);} catch (InterruptedException e) {}
|
try {
|
||||||
|
Thread.sleep(1000);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
}
|
||||||
String pointCode = "";
|
String pointCode = "";
|
||||||
String action = "";
|
String action = "";
|
||||||
switch (actionType) {
|
switch (actionType) {
|
||||||
@@ -184,7 +186,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
|||||||
}
|
}
|
||||||
result.put("status", HttpStatus.OK.value());
|
result.put("status", HttpStatus.OK.value());
|
||||||
return null;
|
return null;
|
||||||
},"sendProductToFirstFloor"+actionType,null);
|
}, "sendProductToFirstFloor" + actionType, null);
|
||||||
log.info("一楼装箱区点位二次分配" + taskCode + "---------------------------------------------" + result);
|
log.info("一楼装箱区点位二次分配" + taskCode + "---------------------------------------------" + result);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -221,7 +223,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
|||||||
.eq("is_delete", "0")
|
.eq("is_delete", "0")
|
||||||
.lt("task_status", TaskStatusEnum.FINISHED.getCode()));
|
.lt("task_status", TaskStatusEnum.FINISHED.getCode()));
|
||||||
//检查是否满足二次分配条件
|
//检查是否满足二次分配条件
|
||||||
if (count>0){
|
if (count > 0) {
|
||||||
throw new BadRequestException("正在执行行架任务");
|
throw new BadRequestException("正在执行行架任务");
|
||||||
}
|
}
|
||||||
checkTaskInfo(baseTask);
|
checkTaskInfo(baseTask);
|
||||||
@@ -247,13 +249,13 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
|||||||
updateWrapper.set(SchBaseTask::getPoint_code1, newPoint.getPoint_code());
|
updateWrapper.set(SchBaseTask::getPoint_code1, newPoint.getPoint_code());
|
||||||
if (StringUtils.isNotBlank(newPoint.getContainer_name())) {
|
if (StringUtils.isNotBlank(newPoint.getContainer_name())) {
|
||||||
//更新子卷号
|
//更新子卷号
|
||||||
updateWrapper.set(SchBaseTask::getVehicle_code,newPoint.getContainer_name());
|
updateWrapper.set(SchBaseTask::getVehicle_code, newPoint.getContainer_name());
|
||||||
}
|
}
|
||||||
} else if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("放货分配").equals(actionType)) {
|
} else if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("放货分配").equals(actionType)) {
|
||||||
updateWrapper.set(SchBaseTask::getPoint_code2,newPoint.getPoint_code());
|
updateWrapper.set(SchBaseTask::getPoint_code2, newPoint.getPoint_code());
|
||||||
}
|
}
|
||||||
//标记二次分配已分配过点位
|
//标记二次分配已分配过点位
|
||||||
updateWrapper.set(SchBaseTask::getResponse_param,IOSEnum.IS_NOTANDYES.code("是"));
|
updateWrapper.set(SchBaseTask::getResponse_param, IOSEnum.IS_NOTANDYES.code("是"));
|
||||||
taskService.update(null, updateWrapper);
|
taskService.update(null, updateWrapper);
|
||||||
log.info("一楼装箱区二次分配" + taskCode + ",接口返回最新点位:---------------------------------------------" + newPoint.getPoint_code());
|
log.info("一楼装箱区二次分配" + taskCode + ",接口返回最新点位:---------------------------------------------" + newPoint.getPoint_code());
|
||||||
return newPoint.getPoint_code();
|
return newPoint.getPoint_code();
|
||||||
@@ -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();
|
String pointCode = baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) ? baseTask.getPoint_code3() : baseTask.getPoint_code1();
|
||||||
upDateIvtOrTask(baseTask, pointCode);
|
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("待检区移库任务"))
|
||||||
|| baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("管制区移库任务"))
|
|| baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("管制区移库任务"))
|
||||||
)) {
|
)) {
|
||||||
@@ -769,7 +768,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
|||||||
UpdateWrapper<SchBaseTask> updateWrapper1 = new UpdateWrapper<>();
|
UpdateWrapper<SchBaseTask> updateWrapper1 = new UpdateWrapper<>();
|
||||||
updateWrapper1.eq("task_id", baseTask.getTask_id());
|
updateWrapper1.eq("task_id", baseTask.getTask_id());
|
||||||
updateWrapper1.set("request_param", PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成"));
|
updateWrapper1.set("request_param", PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成"));
|
||||||
taskService.update(null,updateWrapper1);
|
taskService.update(null, updateWrapper1);
|
||||||
log.info("一楼装箱区二次分配取货完成" + baseTask.getTask_code() + ",取货完成信号接收成功,点位:" + pointCode + "子卷号:" + baseTask.getVehicle_code());
|
log.info("一楼装箱区二次分配取货完成" + baseTask.getTask_code() + ",取货完成信号接收成功,点位:" + pointCode + "子卷号:" + baseTask.getVehicle_code());
|
||||||
|
|
||||||
|
|
||||||
@@ -828,7 +827,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
|||||||
/**
|
/**
|
||||||
* 判断点位是否有外层阻挡
|
* 判断点位是否有外层阻挡
|
||||||
*/
|
*/
|
||||||
private static BstIvtPackageinfoivt getBstIvtPackageinfoivt(List<BstIvtPackageinfoivt> vehicleList,List<BstIvtPackageinfoivt> kzjIvtList) {
|
private static BstIvtPackageinfoivt getBstIvtPackageinfoivt(List<BstIvtPackageinfoivt> vehicleList, List<BstIvtPackageinfoivt> kzjIvtList) {
|
||||||
boolean hasEmptyVehicle;
|
boolean hasEmptyVehicle;
|
||||||
BstIvtPackageinfoivt newPoint = new BstIvtPackageinfoivt();
|
BstIvtPackageinfoivt newPoint = new BstIvtPackageinfoivt();
|
||||||
if (ObjectUtils.isNotEmpty(vehicleList)) {
|
if (ObjectUtils.isNotEmpty(vehicleList)) {
|
||||||
@@ -850,11 +849,11 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
|||||||
* 根据库存和空载具返回空点位
|
* 根据库存和空载具返回空点位
|
||||||
*/
|
*/
|
||||||
private static BstIvtPackageinfoivt getSecondaryIvt(List<BstIvtPackageinfoivt> vehicleList, List<BstIvtPackageinfoivt> kzjIvtList) {
|
private static BstIvtPackageinfoivt getSecondaryIvt(List<BstIvtPackageinfoivt> vehicleList, List<BstIvtPackageinfoivt> kzjIvtList) {
|
||||||
List<BstIvtPackageinfoivt> emptyVehicleList;
|
List<BstIvtPackageinfoivt> emptyVehicleList;
|
||||||
BstIvtPackageinfoivt newPoint = new BstIvtPackageinfoivt();
|
BstIvtPackageinfoivt newPoint = new BstIvtPackageinfoivt();
|
||||||
if (ObjectUtils.isNotEmpty(vehicleList)) {
|
if (ObjectUtils.isNotEmpty(vehicleList)) {
|
||||||
emptyVehicleList = vehicleList.stream()
|
emptyVehicleList = vehicleList.stream()
|
||||||
.filter(r -> r.getSort_seq().compareTo(kzjIvtList.get(0).getSort_seq()) < 0 ).collect(Collectors.toList());
|
.filter(r -> r.getSort_seq().compareTo(kzjIvtList.get(0).getSort_seq()) < 0).collect(Collectors.toList());
|
||||||
//有空位匹配
|
//有空位匹配
|
||||||
if (ObjectUtils.isNotEmpty(emptyVehicleList)) {
|
if (ObjectUtils.isNotEmpty(emptyVehicleList)) {
|
||||||
return emptyVehicleList.get(0);
|
return emptyVehicleList.get(0);
|
||||||
@@ -951,8 +950,6 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建
|
* 创建
|
||||||
*
|
*
|
||||||
@@ -994,130 +991,158 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
|||||||
UpdateWrapper<BstIvtPackageinfoivt> updateWrapper = new UpdateWrapper<>();
|
UpdateWrapper<BstIvtPackageinfoivt> updateWrapper = new UpdateWrapper<>();
|
||||||
//LMS获取MES称重后子卷信息
|
//LMS获取MES称重后子卷信息
|
||||||
JSONObject jo = new JSONObject();
|
JSONObject jo = new JSONObject();
|
||||||
//子卷质检合格品和管制品
|
|
||||||
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("有子卷"))) {
|
|
||||||
throw new BadRequestException("质检结果只能为合格品或管制品");
|
|
||||||
}
|
|
||||||
if (whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("管制品"))) {
|
|
||||||
PdmBiSubpackagerelation one = subpackagerelationService.getOne(new QueryWrapper<PdmBiSubpackagerelation>()
|
|
||||||
.eq("container_name", whereJson.getString("container_name")));
|
|
||||||
if (one!=null){
|
|
||||||
throw new BadRequestException("包装关系存在,请先解绑MES及LMS包装关系");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
dtoList = bstIvtPackageinfoivtMapper.selectList(new LambdaQueryWrapper<BstIvtPackageinfoivt>().eq(BstIvtPackageinfoivt::getContainer_name, whereJson.getString("container_name")));
|
|
||||||
if (ObjectUtils.isEmpty(dtoList)) {
|
|
||||||
throw new BadRequestException("子卷号或点位信息有误,请核对是否存在!");
|
|
||||||
}
|
|
||||||
if (dtoList.size() > 1) {
|
|
||||||
result.put("status", org.springframework.http.HttpStatus.BAD_REQUEST.value());
|
|
||||||
result.put("message", "存在多个相同子卷号或点位信息有误,请核对是否存在!");
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
BstIvtPackageinfoivt packageinfoivt = dtoList.get(0);
|
|
||||||
if (packageinfoivt.getPoint_status().equals("4")) {
|
|
||||||
throw new BadRequestException("管制点设置子卷状态时需要选择点位");
|
|
||||||
}
|
|
||||||
if (whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("合格品"))) {
|
|
||||||
if (packageinfoivt.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("管制品"))){
|
|
||||||
throw new BadRequestException("当前子卷已设置为管制品");
|
|
||||||
}
|
|
||||||
//获取子卷最新信息
|
|
||||||
jo.put("container_name", whereJson.getString("container_name"));
|
|
||||||
lmsToMesService.getInspectionResult(jo);
|
|
||||||
//子卷下料信息MES传递给LMS
|
|
||||||
iPdmBiContainerinfoService.createSubInfoByContainer(whereJson.getString("container_name"));
|
|
||||||
/*
|
|
||||||
* 自动打标
|
|
||||||
*/
|
|
||||||
// 判断是否自动打标
|
|
||||||
String auto_table = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("AUTO_PRINT_TABLE").getValue();
|
|
||||||
if (auto_table.equals(IOSEnum.IS_NOTANDYES.code("是"))) {
|
|
||||||
// 内标默认打印机
|
|
||||||
String within_table = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("WITHIN_PEINT_TWO").getValue();
|
|
||||||
JSONObject within_print = WQLObject.getWQLObject("pdm_bi_printinfo")
|
|
||||||
.query("print_name = '" + within_table + "'")
|
|
||||||
.uniqueResult(0);
|
|
||||||
// 管标默认打印机
|
|
||||||
String pipe_table = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("PIPE_PEINT_TWO").getValue();
|
|
||||||
JSONObject pipe_print = WQLObject.getWQLObject("pdm_bi_printinfo")
|
|
||||||
.query("print_name = '" + pipe_table + "'")
|
|
||||||
.uniqueResult(0);
|
|
||||||
// 组织数据
|
|
||||||
JSONObject param = new JSONObject();
|
|
||||||
param.put("pcsn", whereJson.getString("container_name"));
|
|
||||||
param.put("print_code", pipe_print.getString("print_id"));
|
|
||||||
printTableTwoService.pipeTable(param);
|
|
||||||
|
|
||||||
param.put("print_code", within_print.getString("print_id"));
|
String is_error = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("is_error").getValue();
|
||||||
printTableTwoService.withinTable(param);
|
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));
|
||||||
}
|
}
|
||||||
PdmProductSpecServiceImpl.doRecord(SpecEnum.ZJ,MapOf.of("质检结果",whereJson.getString("ivt_status")),Boolean.TRUE,null, packageinfoivt.getContainer_name());
|
if (point_code.equals("ZXQ_138")) {
|
||||||
updateWrapper.set("container_name", packageinfoivt.getContainer_name());
|
//只能进行绑定空
|
||||||
updateWrapper.set("ivt_status", whereJson.getString("ivt_status"));
|
if (!whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("合格品"))) {
|
||||||
}
|
throw new BadRequestException("该点位只能绑定合格品!");
|
||||||
//复称
|
}
|
||||||
else if (StringUtils.isNotBlank(whereJson.getString("container_name")) && StringUtils.isNotBlank(whereJson.getString("pointCode"))) {
|
packageinfoivtService.update(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
||||||
dtoList = bstIvtPackageinfoivtMapper.selectList(new LambdaQueryWrapper<BstIvtPackageinfoivt>().eq(BstIvtPackageinfoivt::getPoint_code, whereJson.getString("pointCode")));
|
.set(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("有子卷"))
|
||||||
if (whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("合格品"))) {
|
.set(BstIvtPackageinfoivt::getContainer_name, container_name)
|
||||||
//获取子卷最新信息
|
.eq(BstIvtPackageinfoivt::getPoint_code, point_code));
|
||||||
jo.put("container_name", whereJson.getString("container_name"));
|
}
|
||||||
lmsToMesService.getInspectionResult(jo);
|
|
||||||
//子卷下料信息MES传递给LMS
|
} else {
|
||||||
iPdmBiContainerinfoService.createSubInfoByContainer(whereJson.getString("container_name"));
|
//子卷质检合格品和管制品
|
||||||
updateWrapper.set("container_name", whereJson.getString("container_name"));
|
if (StringUtils.isNotBlank(whereJson.getString("container_name")) && StringUtils.isBlank(whereJson.getString("pointCode"))) {
|
||||||
updateWrapper.set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("合格品"));
|
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("有子卷"))) {
|
||||||
|
throw new BadRequestException("质检结果只能为合格品或管制品");
|
||||||
|
}
|
||||||
|
if (whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("管制品"))) {
|
||||||
|
PdmBiSubpackagerelation one = subpackagerelationService.getOne(new QueryWrapper<PdmBiSubpackagerelation>()
|
||||||
|
.eq("container_name", whereJson.getString("container_name")));
|
||||||
|
if (one != null) {
|
||||||
|
throw new BadRequestException("包装关系存在,请先解绑MES及LMS包装关系");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dtoList = bstIvtPackageinfoivtMapper.selectList(new LambdaQueryWrapper<BstIvtPackageinfoivt>().eq(BstIvtPackageinfoivt::getContainer_name, whereJson.getString("container_name")));
|
||||||
|
if (ObjectUtils.isEmpty(dtoList)) {
|
||||||
|
throw new BadRequestException("子卷号或点位信息有误,请核对是否存在!");
|
||||||
|
}
|
||||||
|
if (dtoList.size() > 1) {
|
||||||
|
result.put("status", org.springframework.http.HttpStatus.BAD_REQUEST.value());
|
||||||
|
result.put("message", "存在多个相同子卷号或点位信息有误,请核对是否存在!");
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
BstIvtPackageinfoivt packageinfoivt = dtoList.get(0);
|
||||||
|
if (packageinfoivt.getPoint_status().equals("4")) {
|
||||||
|
throw new BadRequestException("管制点设置子卷状态时需要选择点位");
|
||||||
|
}
|
||||||
|
if (whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("合格品"))) {
|
||||||
|
if (packageinfoivt.getIvt_status().equals(PackageInfoIvtEnum.IVT_STATUS.code("管制品"))) {
|
||||||
|
throw new BadRequestException("当前子卷已设置为管制品");
|
||||||
|
}
|
||||||
|
//获取子卷最新信息
|
||||||
|
jo.put("container_name", whereJson.getString("container_name"));
|
||||||
|
lmsToMesService.getInspectionResult(jo);
|
||||||
|
//子卷下料信息MES传递给LMS
|
||||||
|
iPdmBiContainerinfoService.createSubInfoByContainer(whereJson.getString("container_name"));
|
||||||
|
/*
|
||||||
|
* 自动打标
|
||||||
|
*/
|
||||||
|
// 判断是否自动打标
|
||||||
|
String auto_table = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("AUTO_PRINT_TABLE").getValue();
|
||||||
|
if (auto_table.equals(IOSEnum.IS_NOTANDYES.code("是"))) {
|
||||||
|
// 内标默认打印机
|
||||||
|
String within_table = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("WITHIN_PEINT_TWO").getValue();
|
||||||
|
JSONObject within_print = WQLObject.getWQLObject("pdm_bi_printinfo")
|
||||||
|
.query("print_name = '" + within_table + "'")
|
||||||
|
.uniqueResult(0);
|
||||||
|
// 管标默认打印机
|
||||||
|
String pipe_table = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("PIPE_PEINT_TWO").getValue();
|
||||||
|
JSONObject pipe_print = WQLObject.getWQLObject("pdm_bi_printinfo")
|
||||||
|
.query("print_name = '" + pipe_table + "'")
|
||||||
|
.uniqueResult(0);
|
||||||
|
// 组织数据
|
||||||
|
JSONObject param = new JSONObject();
|
||||||
|
param.put("pcsn", whereJson.getString("container_name"));
|
||||||
|
param.put("print_code", pipe_print.getString("print_id"));
|
||||||
|
printTableTwoService.pipeTable(param);
|
||||||
|
|
||||||
|
param.put("print_code", within_print.getString("print_id"));
|
||||||
|
printTableTwoService.withinTable(param);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
PdmProductSpecServiceImpl.doRecord(SpecEnum.ZJ, MapOf.of("质检结果", whereJson.getString("ivt_status")), Boolean.TRUE, null, packageinfoivt.getContainer_name());
|
||||||
|
updateWrapper.set("container_name", packageinfoivt.getContainer_name());
|
||||||
|
updateWrapper.set("ivt_status", whereJson.getString("ivt_status"));
|
||||||
|
}
|
||||||
|
//复称
|
||||||
|
else if (StringUtils.isNotBlank(whereJson.getString("container_name")) && StringUtils.isNotBlank(whereJson.getString("pointCode"))) {
|
||||||
|
dtoList = bstIvtPackageinfoivtMapper.selectList(new LambdaQueryWrapper<BstIvtPackageinfoivt>().eq(BstIvtPackageinfoivt::getPoint_code, whereJson.getString("pointCode")));
|
||||||
|
if (whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("合格品"))) {
|
||||||
|
//获取子卷最新信息
|
||||||
|
jo.put("container_name", whereJson.getString("container_name"));
|
||||||
|
lmsToMesService.getInspectionResult(jo);
|
||||||
|
//子卷下料信息MES传递给LMS
|
||||||
|
iPdmBiContainerinfoService.createSubInfoByContainer(whereJson.getString("container_name"));
|
||||||
|
updateWrapper.set("container_name", whereJson.getString("container_name"));
|
||||||
|
updateWrapper.set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("合格品"));
|
||||||
|
} else {
|
||||||
|
result.put("status", org.springframework.http.HttpStatus.BAD_REQUEST.value());
|
||||||
|
result.put("message", "该点位只能放复称的合格品!");
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//取放空载具
|
||||||
|
else if (StringUtils.isNotBlank(whereJson.getString("pointCode")) && StringUtils.isBlank(whereJson.getString("container_name"))) {
|
||||||
|
if (whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("合格品")) || whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("管制品"))) {
|
||||||
|
throw new BadRequestException("人工管制点只能设置空载具或空点位");
|
||||||
|
}
|
||||||
|
String pointCode = whereJson.getString("pointCode");
|
||||||
|
if (StringUtils.isEmpty(pointCode)) {
|
||||||
|
throw new BadRequestException("人工管制点不能为空");
|
||||||
|
}
|
||||||
|
JSONObject task = new JSONObject();
|
||||||
|
task.put("point_code1", pointCode);
|
||||||
|
int count = taskService.count(new QueryWrapper<SchBaseTask>()
|
||||||
|
.eq("is_delete", "0")
|
||||||
|
.eq("point_code1", pointCode)
|
||||||
|
.lt("task_status", TaskStatusEnum.FINISHED.getCode()));
|
||||||
|
if (count > 0) {
|
||||||
|
throw new BadRequestException("当前人工管制点存在任务,稍后操作");
|
||||||
|
}
|
||||||
|
if (whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("管制品"))) {
|
||||||
|
autoSendVehicleToDjq.getPointCode(task, PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->待检区)"));
|
||||||
|
}
|
||||||
|
dtoList = bstIvtPackageinfoivtMapper.selectList(new LambdaQueryWrapper<BstIvtPackageinfoivt>().eq(BstIvtPackageinfoivt::getPoint_code, whereJson.getString("pointCode")));
|
||||||
|
updateWrapper.set("container_name", null);
|
||||||
|
updateWrapper.set("ivt_status", whereJson.getString("ivt_status"));
|
||||||
} else {
|
} else {
|
||||||
result.put("status", org.springframework.http.HttpStatus.BAD_REQUEST.value());
|
result.put("status", org.springframework.http.HttpStatus.BAD_REQUEST.value());
|
||||||
result.put("message", "该点位只能放复称的合格品!");
|
result.put("message", "请输入子卷号或管制点位信息!");
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
String pointCode = dtoList.get(0).getPoint_code();
|
||||||
//取放空载具
|
if (dtoList.get(0).getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位"))) {
|
||||||
else if (StringUtils.isNotBlank(whereJson.getString("pointCode")) && StringUtils.isBlank(whereJson.getString("container_name"))) {
|
throw new BadRequestException("满轴缓存位无法设置子卷状态");
|
||||||
if (whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("合格品")) || whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("管制品"))) {
|
|
||||||
throw new BadRequestException("人工管制点只能设置空载具或空点位");
|
|
||||||
}
|
}
|
||||||
String pointCode = whereJson.getString("pointCode");
|
List<SchBaseTask> schBaseTasks = taskService.checkHaveTask(pointCode);
|
||||||
if (StringUtils.isEmpty(pointCode)){
|
if (!CollectionUtils.isEmpty(schBaseTasks)) {
|
||||||
throw new BadRequestException("人工管制点不能为空");
|
throw new BadRequestException("当前点位" + dtoList.get(0).getPoint_name() + "正在执行搬运任务" + schBaseTasks.stream().map(SchBaseTask::getTask_code).collect(Collectors.joining(",")));
|
||||||
}
|
}
|
||||||
JSONObject task = new JSONObject();
|
updateWrapper.eq("point_code", pointCode);
|
||||||
task.put("point_code1", pointCode);
|
updateWrapper.set("update_optid", Long.valueOf(SecurityUtils.getCurrentUserId()));
|
||||||
int count = taskService.count(new QueryWrapper<SchBaseTask>()
|
updateWrapper.set("update_optname", SecurityUtils.getCurrentNickName());
|
||||||
.eq("is_delete", "0")
|
updateWrapper.set("update_time", DateUtil.now());
|
||||||
.eq("point_code1", pointCode)
|
bstIvtPackageinfoivtMapper.update(null, updateWrapper);
|
||||||
.lt("task_status", TaskStatusEnum.FINISHED.getCode()));
|
|
||||||
if (count>0){
|
|
||||||
throw new BadRequestException("当前人工管制点存在任务,稍后操作");
|
|
||||||
}
|
|
||||||
if (whereJson.getString("ivt_status").equals(PackageInfoIvtEnum.IVT_STATUS.code("管制品"))){
|
|
||||||
autoSendVehicleToDjq.getPointCode(task,PackageInfoIvtEnum.TASK_TYPE.code("补空(装箱区->待检区)"));
|
|
||||||
}
|
|
||||||
dtoList = bstIvtPackageinfoivtMapper.selectList(new LambdaQueryWrapper<BstIvtPackageinfoivt>().eq(BstIvtPackageinfoivt::getPoint_code, whereJson.getString("pointCode")));
|
|
||||||
updateWrapper.set("container_name", null);
|
|
||||||
updateWrapper.set("ivt_status", whereJson.getString("ivt_status"));
|
|
||||||
} else {
|
|
||||||
result.put("status", org.springframework.http.HttpStatus.BAD_REQUEST.value());
|
|
||||||
result.put("message", "请输入子卷号或管制点位信息!");
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
String pointCode = dtoList.get(0).getPoint_code();
|
|
||||||
if (dtoList.get(0).getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位"))){
|
|
||||||
throw new BadRequestException("满轴缓存位无法设置子卷状态");
|
|
||||||
}
|
|
||||||
List<SchBaseTask> schBaseTasks = taskService.checkHaveTask(pointCode);
|
|
||||||
if (!CollectionUtils.isEmpty(schBaseTasks)){
|
|
||||||
throw new BadRequestException("当前点位"+dtoList.get(0).getPoint_name()+"正在执行搬运任务"+schBaseTasks.stream().map(SchBaseTask::getTask_code).collect(Collectors.joining(",")));
|
|
||||||
}
|
|
||||||
updateWrapper.eq("point_code", pointCode);
|
|
||||||
updateWrapper.set("update_optid", Long.valueOf(SecurityUtils.getCurrentUserId()));
|
|
||||||
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("status", org.springframework.http.HttpStatus.OK.value());
|
||||||
result.put("message", "检验成功!");
|
result.put("message", "检验成功!");
|
||||||
return result;
|
return result;
|
||||||
@@ -1202,15 +1227,16 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<BstIvtPackageinfoivt> selectEmpPoints(String point_status, String ivt_status) {
|
public List<BstIvtPackageinfoivt> selectEmpPoints(String point_status, String ivt_status) {
|
||||||
if (StringUtils.isEmpty(point_status)||StringUtils.isEmpty(ivt_status)){
|
if (StringUtils.isEmpty(point_status) || StringUtils.isEmpty(ivt_status)) {
|
||||||
throw new BadRequestException("点位类型或状态不能为空");
|
throw new BadRequestException("点位类型或状态不能为空");
|
||||||
}
|
}
|
||||||
return this.baseMapper.selectNoTaskPoint(point_status, ivt_status);
|
return this.baseMapper.selectNoTaskPoint(point_status, ivt_status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<BstIvtPackageinfoivt> selectNoTargetTaskPoints(String point_status, String ivt_status) {
|
public List<BstIvtPackageinfoivt> selectNoTargetTaskPoints(String point_status, String ivt_status) {
|
||||||
if (StringUtils.isEmpty(point_status)||StringUtils.isEmpty(ivt_status)){
|
if (StringUtils.isEmpty(point_status) || StringUtils.isEmpty(ivt_status)) {
|
||||||
throw new BadRequestException("点位类型或状态不能为空");
|
throw new BadRequestException("点位类型或状态不能为空");
|
||||||
}
|
}
|
||||||
return this.baseMapper.selectNoTargetTaskPoint(point_status, ivt_status);
|
return this.baseMapper.selectNoTargetTaskPoint(point_status, ivt_status);
|
||||||
|
|||||||
@@ -189,7 +189,7 @@ public class TwoOutTask extends AbstractAcsTask {
|
|||||||
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
||||||
RedissonUtils.lock(c -> {
|
RedissonUtils.lock(c -> {
|
||||||
StIvtIostorinvOutServiceImpl bean = SpringContextHolder.getBean(StIvtIostorinvOutServiceImpl.class);
|
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);
|
JSONObject jsonExt = attrTab.query("inv_code = '" + jsonTask.getString("vehicle_code") + "' AND lock_type = '"+IOSEnum.LOCK_TYPE.code("出库异常锁")+"'").uniqueResult(0);
|
||||||
if (ObjectUtil.isNotEmpty(jsonExt)) {
|
if (ObjectUtil.isNotEmpty(jsonExt)) {
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import org.nl.wms.util.TaskUtil;
|
|||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -48,6 +49,7 @@ public class GzqTask extends AbstractAcsTask {
|
|||||||
private IbstIvtPackageinfoivtService packageinfoivtService;
|
private IbstIvtPackageinfoivtService packageinfoivtService;
|
||||||
@Resource
|
@Resource
|
||||||
private ShiftingTask shiftingTask;
|
private ShiftingTask shiftingTask;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<AcsTaskDto> addTask() {
|
public List<AcsTaskDto> addTask() {
|
||||||
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
||||||
@@ -83,7 +85,7 @@ public class GzqTask extends AbstractAcsTask {
|
|||||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||||
String now = DateUtil.now();
|
String now = DateUtil.now();
|
||||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false);
|
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>().eq(SchBaseTask::getTask_id, taskObj.getString("task_id")), false);
|
||||||
if (TaskUtil.checkParams(schBaseTask, THIS_CLASS,TaskStatusEnum.FINISHED.getCode())) return;
|
if (TaskUtil.checkParams(schBaseTask, THIS_CLASS, TaskStatusEnum.FINISHED.getCode())) return;
|
||||||
LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
|
LambdaUpdateWrapper<SchBaseTask> updateWrapper = new LambdaUpdateWrapper<SchBaseTask>()
|
||||||
.eq(SchBaseTask::getTask_id, taskObj.getString("task_id"))
|
.eq(SchBaseTask::getTask_id, taskObj.getString("task_id"))
|
||||||
.set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId())
|
.set(SchBaseTask::getUpdate_optid, SecurityUtils.getCurrentUserId())
|
||||||
@@ -94,17 +96,23 @@ public class GzqTask extends AbstractAcsTask {
|
|||||||
if (TaskUtil.checkParams(schBaseTask, THIS_CLASS, TaskStatusEnum.EXECUTING.getCode())) return;
|
if (TaskUtil.checkParams(schBaseTask, THIS_CLASS, TaskStatusEnum.EXECUTING.getCode())) return;
|
||||||
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode());
|
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.EXECUTING.getCode());
|
||||||
}
|
}
|
||||||
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
||||||
log.info("任务编号为:" + schBaseTask.getTask_code() + "的任务完成接口在" + now + "被调用---------------------------------------------");
|
log.info("任务编号为:" + schBaseTask.getTask_code() + "的任务完成接口在" + now + "被调用---------------------------------------------");
|
||||||
//1.改变起点点位状态
|
//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()));
|
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.更新库存记录
|
//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()));
|
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.判断是否存在任务组任务
|
|
||||||
packageinfoivtService.handleGroupTask(schBaseTask);
|
|
||||||
}
|
}
|
||||||
|
//3.更改任务状态为完成
|
||||||
|
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode());
|
||||||
|
//4.判断是否存在任务组任务
|
||||||
|
packageinfoivtService.handleGroupTask(schBaseTask);
|
||||||
|
}
|
||||||
// 取消
|
// 取消
|
||||||
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||||
if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) {
|
if (Integer.parseInt(schBaseTask.getTask_status()) > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) {
|
||||||
@@ -113,9 +121,9 @@ public class GzqTask extends AbstractAcsTask {
|
|||||||
//任务被标记为取消
|
//任务被标记为取消
|
||||||
updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("是"));
|
updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("是"));
|
||||||
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
|
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
|
||||||
updateWrapper.set(SchBaseTask::getRemark,"任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。");
|
updateWrapper.set(SchBaseTask::getRemark, "任务被ACS在:" + schBaseTask.getUpdate_time() + "调用接口强制取消。");
|
||||||
}
|
}
|
||||||
taskService.update(null,updateWrapper);
|
taskService.update(null, updateWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendTask(SchBaseTask schBaseTask, SchBaseTask groupTask) {
|
private void sendTask(SchBaseTask schBaseTask, SchBaseTask groupTask) {
|
||||||
@@ -188,13 +196,11 @@ public class GzqTask extends AbstractAcsTask {
|
|||||||
public void forceFinish(String taskId) {
|
public void forceFinish(String taskId) {
|
||||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||||
.eq(SchBaseTask::getTask_id, taskId), false);
|
.eq(SchBaseTask::getTask_id, taskId), false);
|
||||||
if (TaskUtil.checkParams(schBaseTask, THIS_CLASS,TaskStatusEnum.FINISHED.getCode())) return;
|
if (TaskUtil.checkParams(schBaseTask, THIS_CLASS, TaskStatusEnum.FINISHED.getCode())) return;
|
||||||
updateTaskStatus(JSONObject.parseObject(JSON.toJSONString(schBaseTask)), TaskStatusEnum.FINISHED.getCode());
|
updateTaskStatus(JSONObject.parseObject(JSON.toJSONString(schBaseTask)), TaskStatusEnum.FINISHED.getCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void cancel(String taskId) {
|
public void cancel(String taskId) {
|
||||||
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
SchBaseTask schBaseTask = taskService.getOne(new LambdaUpdateWrapper<SchBaseTask>()
|
||||||
@@ -210,12 +216,9 @@ public class GzqTask extends AbstractAcsTask {
|
|||||||
//任务被标记为取消
|
//任务被标记为取消
|
||||||
updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("是"));
|
updateWrapper.set(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("是"));
|
||||||
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
|
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode());
|
||||||
updateWrapper.set(SchBaseTask::getRemark,"任务被用户:" + schBaseTask.getUpdate_optname() + "在:" +DateUtil.now() + "强制取消。");
|
updateWrapper.set(SchBaseTask::getRemark, "任务被用户:" + schBaseTask.getUpdate_optname() + "在:" + DateUtil.now() + "强制取消。");
|
||||||
taskService.update(null,updateWrapper);
|
taskService.update(null, updateWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package org.nl.b_lms.sch.tasks.first_floor_area.auto;
|
package org.nl.b_lms.sch.tasks.first_floor_area.auto;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@@ -7,17 +8,25 @@ import lombok.SneakyThrows;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
|
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.point.service.IbstIvtPackageinfoivtService;
|
||||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
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.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.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.common.enums.PackageInfoIvtEnum;
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
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.nl.wms.sch.manage.TaskStatusEnum;
|
||||||
import org.redisson.api.RLock;
|
import org.redisson.api.RLock;
|
||||||
import org.redisson.api.RedissonClient;
|
import org.redisson.api.RedissonClient;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -40,6 +49,10 @@ public class AutoSendMzToDjq {
|
|||||||
private RedissonClient redissonClient;
|
private RedissonClient redissonClient;
|
||||||
@Resource
|
@Resource
|
||||||
private DjqTask djqTask;
|
private DjqTask djqTask;
|
||||||
|
@Resource
|
||||||
|
private GzqTask gzqTask;
|
||||||
|
@Resource
|
||||||
|
private BstIvtPackageinfoivtMapper bstIvtPackageinfoivtMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ShiftingTask shiftingTask;
|
private ShiftingTask shiftingTask;
|
||||||
@@ -51,17 +64,21 @@ public class AutoSendMzToDjq {
|
|||||||
//满轴->待检区agv自动搬运任务
|
//满轴->待检区agv自动搬运任务
|
||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
this.sendMzqToDjq();
|
String is_error = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("is_error").getValue();
|
||||||
}catch (Exception ex){
|
if ("1".equals(is_error)) {
|
||||||
|
this.sendErrorPointCode();
|
||||||
|
} else {
|
||||||
|
this.sendMzqToDjq();
|
||||||
|
}
|
||||||
|
} catch (Exception ex) {
|
||||||
log.error(ex.getMessage());
|
log.error(ex.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
public void sendMzqToDjq() {
|
public void sendMzqToDjq() {
|
||||||
log.info(THIS_CLASS+"-满轴->待检区定时任务开始执行扫描。");
|
log.info(THIS_CLASS + "-满轴->待检区定时任务开始执行扫描。");
|
||||||
RLock lock = redissonClient.getLock("todjq");
|
RLock lock = redissonClient.getLock("todjq");
|
||||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||||
try {
|
try {
|
||||||
@@ -81,7 +98,7 @@ public class AutoSendMzToDjq {
|
|||||||
//待检区有库位为空位且过滤未完成任务
|
//待检区有库位为空位且过滤未完成任务
|
||||||
List<BstIvtPackageinfoivt> selectEmpPoints = packageinfoivtService.selectEmpPoints(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空"));
|
List<BstIvtPackageinfoivt> selectEmpPoints = packageinfoivtService.selectEmpPoints(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空"));
|
||||||
if (ObjectUtils.isEmpty(selectEmpPoints)) {
|
if (ObjectUtils.isEmpty(selectEmpPoints)) {
|
||||||
log.error(THIS_CLASS+"满轴->待检区agv自动搬运任务暂无可用空位,子卷号为:" + mzqPackageinfoivtList.get(0).getContainer_name());
|
log.error(THIS_CLASS + "满轴->待检区agv自动搬运任务暂无可用空位,子卷号为:" + mzqPackageinfoivtList.get(0).getContainer_name());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("取货二次分配"));
|
task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("取货二次分配"));
|
||||||
@@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ public class LashManageServiceImpl implements LashManageService {
|
|||||||
.query("package_box_sn = '" + boxDao.getBox_no() + "'")
|
.query("package_box_sn = '" + boxDao.getBox_no() + "'")
|
||||||
.uniqueResult(0);
|
.uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(jsonSub)) {
|
if (ObjectUtil.isEmpty(jsonSub)) {
|
||||||
throw new BadRequestException("子卷包装关系不存在:【"+boxDao.getBox_no()+"】");
|
throw new BadRequestException("子卷包装关系不存在:【" + boxDao.getBox_no() + "】");
|
||||||
}
|
}
|
||||||
|
|
||||||
//查询木箱对应的托盘绑定关系,并清除
|
//查询木箱对应的托盘绑定关系,并清除
|
||||||
@@ -270,30 +270,63 @@ public class LashManageServiceImpl implements LashManageService {
|
|||||||
Map<String, List<JSONObject>> groupPointMap = executeArr.stream()
|
Map<String, List<JSONObject>> groupPointMap = executeArr.stream()
|
||||||
.collect(Collectors.groupingBy(row -> row.getString("point_code2")));
|
.collect(Collectors.groupingBy(row -> row.getString("point_code2")));
|
||||||
|
|
||||||
|
|
||||||
// 终点: 如果是异常口则直接生成到异常口的任务
|
// 终点: 如果是异常口则直接生成到异常口的任务
|
||||||
String next_device_code = IOSEnum.OUT_HANGER.code("行架位1");
|
String next_device_code = IOSEnum.OUT_HANGER.code("行架位1");
|
||||||
|
|
||||||
String TWO_EXCEP = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("TWO_EXCEP").getValue();
|
String TWO_EXC_OUT_TYPE = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("TWO_EXC_OUT_TYPE").getValue();
|
||||||
if (TWO_EXCEP.equals(IOSEnum.IS_NOTANDYES.code("是"))) {
|
if (TWO_EXC_OUT_TYPE.equals("1") || TWO_EXC_OUT_TYPE.equals("2")) {
|
||||||
next_device_code = IOSEnum.EXCEP_OUT.code("异常出库口");
|
//1-大托盘全部出到异常口;2-大托盘负载到异常口和正常出库口
|
||||||
} else {
|
if (whereJson.getString("device_code").equals("CK2038")) {
|
||||||
// 判断是否是启用状态
|
if (TWO_EXC_OUT_TYPE.equals("1")) {
|
||||||
List<JSONObject> jsonList = pointTab.query("region_code = 'BLKCK' AND is_used = '1'")
|
next_device_code = IOSEnum.EXCEP_OUT.code("异常出库口");
|
||||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
|
||||||
|
|
||||||
if (ObjectUtil.isEmpty(jsonList)) {
|
|
||||||
throw new BadRequestException("请检查CK2012/CK2017是否启用!");
|
|
||||||
}
|
|
||||||
if (jsonList.size() == 2) {
|
|
||||||
List<JSONObject> heapOne = Optional.ofNullable(groupPointMap.get(IOSEnum.OUT_HANGER.code("行架位1"))).orElse(new ArrayList<>());
|
|
||||||
List<JSONObject> heapTwo = Optional.ofNullable(groupPointMap.get(IOSEnum.OUT_HANGER.code("行架位2"))).orElse(new ArrayList<>());
|
|
||||||
|
|
||||||
|
|
||||||
if (heapOne.size() > heapTwo.size()) {
|
|
||||||
next_device_code = IOSEnum.OUT_HANGER.code("行架位2");
|
|
||||||
}
|
}
|
||||||
|
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("异常出库口");
|
||||||
} else {
|
} else {
|
||||||
next_device_code = jsonList.get(0).getString("point_code");
|
// 判断是否是启用状态
|
||||||
|
List<JSONObject> jsonList = pointTab.query("region_code = 'BLKCK' AND is_used = '1'")
|
||||||
|
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||||
|
|
||||||
|
if (ObjectUtil.isEmpty(jsonList)) {
|
||||||
|
throw new BadRequestException("请检查CK2012/CK2017是否启用!");
|
||||||
|
}
|
||||||
|
if (jsonList.size() == 2) {
|
||||||
|
List<JSONObject> heapOne = Optional.ofNullable(groupPointMap.get(IOSEnum.OUT_HANGER.code("行架位1"))).orElse(new ArrayList<>());
|
||||||
|
List<JSONObject> heapTwo = Optional.ofNullable(groupPointMap.get(IOSEnum.OUT_HANGER.code("行架位2"))).orElse(new ArrayList<>());
|
||||||
|
|
||||||
|
|
||||||
|
if (heapOne.size() > heapTwo.size()) {
|
||||||
|
next_device_code = IOSEnum.OUT_HANGER.code("行架位2");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
next_device_code = jsonList.get(0).getString("point_code");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -338,7 +371,7 @@ public class LashManageServiceImpl implements LashManageService {
|
|||||||
//判断木箱信息是否为空
|
//判断木箱信息是否为空
|
||||||
String box_no = vehicle_ext.getString("pcsn");
|
String box_no = vehicle_ext.getString("pcsn");
|
||||||
if (StrUtil.isEmpty(box_no)) {
|
if (StrUtil.isEmpty(box_no)) {
|
||||||
throw new BadRequestException("未查询到托盘:"+vehicle_code+"绑定了相关木箱!");
|
throw new BadRequestException("未查询到托盘:" + vehicle_code + "绑定了相关木箱!");
|
||||||
}
|
}
|
||||||
// 查询木箱信息
|
// 查询木箱信息
|
||||||
BstIvtBoxinfo boxinfo = iBstIvtBoxinfoService.getOne(
|
BstIvtBoxinfo boxinfo = iBstIvtBoxinfoService.getOne(
|
||||||
@@ -391,7 +424,6 @@ public class LashManageServiceImpl implements LashManageService {
|
|||||||
result.put("isBinding", isBinding);
|
result.put("isBinding", isBinding);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// TODO 是否贴标
|
// TODO 是否贴标
|
||||||
result.put("isLabeling", IOSEnum.IS_SEND.code("否"));
|
result.put("isLabeling", IOSEnum.IS_SEND.code("否"));
|
||||||
// TODO 贴标数量
|
// TODO 贴标数量
|
||||||
@@ -415,7 +447,7 @@ public class LashManageServiceImpl implements LashManageService {
|
|||||||
result.put("labelingTemplate", labelingTemplate);
|
result.put("labelingTemplate", labelingTemplate);
|
||||||
Param label_num = null;
|
Param label_num = null;
|
||||||
//CK2019,CK2015
|
//CK2019,CK2015
|
||||||
if(device_code.equals("CK2019") || device_code.equals("CK2015")){
|
if (device_code.equals("CK2019") || device_code.equals("CK2015")) {
|
||||||
label_num = iSysParamService.findMinByCode(device_code);
|
label_num = iSysParamService.findMinByCode(device_code);
|
||||||
String print_code = label_num.getCode();
|
String print_code = label_num.getCode();
|
||||||
JSONObject print_info = WQLObject.getWQLObject("pdm_bi_printinfo").query("print_name = '" + print_code + "'").uniqueResult(0);
|
JSONObject print_info = WQLObject.getWQLObject("pdm_bi_printinfo").query("print_name = '" + print_code + "'").uniqueResult(0);
|
||||||
@@ -423,7 +455,7 @@ public class LashManageServiceImpl implements LashManageService {
|
|||||||
print_jo.put("box_no", box_no);
|
print_jo.put("box_no", box_no);
|
||||||
print_jo.put("print_type", print_info.getString("print_id"));
|
print_jo.put("print_type", print_info.getString("print_id"));
|
||||||
int times = Integer.parseInt(labelingTemplateNum);
|
int times = Integer.parseInt(labelingTemplateNum);
|
||||||
for(int i=0;i<times;i++){
|
for (int i = 0; i < times; i++) {
|
||||||
new PrintServiceImpl().customerPrintBY2(print_jo);
|
new PrintServiceImpl().customerPrintBY2(print_jo);
|
||||||
try {
|
try {
|
||||||
Thread.sleep(1000);
|
Thread.sleep(1000);
|
||||||
@@ -446,8 +478,8 @@ public class LashManageServiceImpl implements LashManageService {
|
|||||||
if (Integer.valueOf(label_num_down) >= Integer.valueOf(now_num)) {
|
if (Integer.valueOf(label_num_down) >= Integer.valueOf(now_num)) {
|
||||||
result.put("message", "标签纸数量过低,请更换!");
|
result.put("message", "标签纸数量过低,请更换!");
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
throw new BadRequestException("贴标请求设备点位异常:"+device_code);
|
throw new BadRequestException("贴标请求设备点位异常:" + device_code);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ import java.util.stream.Collectors;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
public class AcsToWmsServiceImpl implements AcsToWmsService {
|
public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||||
|
|
||||||
private static Map<String,String> Task_Status_Convers = MapOf.of("1",TaskStatusEnum.EXECUTING.getCode(),"2",TaskStatusEnum.FINISHED.getCode(),"3","0");
|
private static Map<String, String> Task_Status_Convers = MapOf.of("1", TaskStatusEnum.EXECUTING.getCode(), "2", TaskStatusEnum.FINISHED.getCode(), "3", "0");
|
||||||
|
|
||||||
|
|
||||||
private final RawAssistIStorService rawAssistIStorService;
|
private final RawAssistIStorService rawAssistIStorService;
|
||||||
@@ -115,7 +115,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
private final ISysNoticeService noticeService;
|
private final ISysNoticeService noticeService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IPdmBiContainerinboundService iPdmBiContainerinboundService;
|
private IPdmBiContainerinboundService iPdmBiContainerinboundService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 入库处理类服务
|
* 入库处理类服务
|
||||||
@@ -176,7 +176,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
|
|
||||||
private final IPdmBiSlittingproductionplanService slittingproductionplanService;
|
private final IPdmBiSlittingproductionplanService slittingproductionplanService;
|
||||||
|
|
||||||
private final OutBussManageService outBussManageService;
|
private final OutBussManageService outBussManageService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ProductOutTwoService productOutTwoService;
|
private ProductOutTwoService productOutTwoService;
|
||||||
@@ -214,39 +214,39 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
JSONObject task = WQLObject.getWQLObject("SCH_BASE_Task")
|
JSONObject task = WQLObject.getWQLObject("SCH_BASE_Task")
|
||||||
.query("task_id = '" + task_id + "'")
|
.query("task_id = '" + task_id + "'")
|
||||||
.uniqueResult(0);
|
.uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(task)){
|
if (ObjectUtil.isEmpty(task)) {
|
||||||
throw new BadRequestException("未找到任务标识为:" + task_id + "的任务!");
|
throw new BadRequestException("未找到任务标识为:" + task_id + "的任务!");
|
||||||
}
|
}
|
||||||
if ("1".equals(task.getString("is_delete"))){
|
if ("1".equals(task.getString("is_delete"))) {
|
||||||
log.debug(task_id+"当前LMS任务已删除,不需要再次反馈更新!");
|
log.debug(task_id + "当前LMS任务已删除,不需要再次反馈更新!");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if ("08,07".contains(task.getString("task_status"))){
|
if ("08,07".contains(task.getString("task_status"))) {
|
||||||
log.debug(task_id+"当前LMS任务完成或取消,不需要再次反馈更新!");
|
log.debug(task_id + "当前LMS任务完成或取消,不需要再次反馈更新!");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (StrUtil.isNotEmpty(row.getString("car_no"))) {
|
if (StrUtil.isNotEmpty(row.getString("car_no"))) {
|
||||||
WQLObject.getWQLObject("SCH_BASE_Task")
|
WQLObject.getWQLObject("SCH_BASE_Task")
|
||||||
.update(MapOf.of("car_no",row.getString("car_no")),"task_id = '" + task_id + "'");
|
.update(MapOf.of("car_no", row.getString("car_no")), "task_id = '" + task_id + "'");
|
||||||
}
|
}
|
||||||
String handleClassName = task.getString("handle_class");
|
String handleClassName = task.getString("handle_class");
|
||||||
if (StrUtil.isEmpty(handleClassName)) {
|
if (StrUtil.isEmpty(handleClassName)) {
|
||||||
throw new BadRequestException("当前任务的处理类未找到!");
|
throw new BadRequestException("当前任务的处理类未找到!");
|
||||||
}
|
}
|
||||||
AbstractAcsTask abstractTask = (AbstractAcsTask)SpringContextHolder.getBean(Class.forName(task.getString("handle_class")));
|
AbstractAcsTask abstractTask = (AbstractAcsTask) SpringContextHolder.getBean(Class.forName(task.getString("handle_class")));
|
||||||
abstractTask.updateTaskStatus(row,Task_Status_Convers.get(row.getString("task_status")));
|
abstractTask.updateTaskStatus(row, Task_Status_Convers.get(row.getString("task_status")));
|
||||||
} else {
|
} else {
|
||||||
throw new BadRequestException("任务标识为:" + task_id + "的任务正在操作中!");
|
throw new BadRequestException("任务标识为:" + task_id + "的任务正在操作中!");
|
||||||
}
|
}
|
||||||
}catch (BadRequestException ex){
|
} catch (BadRequestException ex) {
|
||||||
log.error(task_id+"acs更新任务失败:{}", ex);
|
log.error(task_id + "acs更新任务失败:{}", ex);
|
||||||
WQLObject.getWQLObject("SCH_BASE_Task").update(MapOf.of("remark",DateUtil.now()+"更新"+row.getString("task_status")+"失败:"+ex.getMessage()),"task_id = '" + task_id + "'");
|
WQLObject.getWQLObject("SCH_BASE_Task").update(MapOf.of("remark", DateUtil.now() + "更新" + row.getString("task_status") + "失败:" + ex.getMessage()), "task_id = '" + task_id + "'");
|
||||||
throw ex;
|
throw ex;
|
||||||
}catch (Exception ex){
|
} catch (Exception ex) {
|
||||||
log.error(task_id+"acs更新任务失败:{}", ex);
|
log.error(task_id + "acs更新任务失败:{}", ex);
|
||||||
WQLObject.getWQLObject("SCH_BASE_Task").update(MapOf.of("remark",DateUtil.now()+"更新"+row.getString("task_status")+"失败,系统异常"),"task_id = '" + task_id + "'");
|
WQLObject.getWQLObject("SCH_BASE_Task").update(MapOf.of("remark", DateUtil.now() + "更新" + row.getString("task_status") + "失败,系统异常"), "task_id = '" + task_id + "'");
|
||||||
throw ex;
|
throw ex;
|
||||||
}finally {
|
} finally {
|
||||||
if (lock.isLocked() && lock.isHeldByCurrentThread()) {
|
if (lock.isLocked() && lock.isHeldByCurrentThread()) {
|
||||||
lock.unlock();
|
lock.unlock();
|
||||||
}
|
}
|
||||||
@@ -543,7 +543,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
} else {
|
} else {
|
||||||
struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') <> '' order by out_order_seq desc").uniqueResult(0);
|
struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') <> '' order by out_order_seq desc").uniqueResult(0);
|
||||||
}
|
}
|
||||||
if (!ObjectUtil.isEmpty(struct_jo)){
|
if (!ObjectUtil.isEmpty(struct_jo)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -1629,7 +1629,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
result.put("status", HttpStatus.OK.value());
|
result.put("status", HttpStatus.OK.value());
|
||||||
result.put("message", "反馈成功,ACS上报无货且此时LMS该点位没有任何任务!");
|
result.put("message", "反馈成功,ACS上报无货且此时LMS该点位没有任何任务!");
|
||||||
return result;
|
return result;
|
||||||
}else {
|
} else {
|
||||||
boolean need_clean = false;
|
boolean need_clean = false;
|
||||||
for (int i = 0; i < left_arr.size(); i++) {
|
for (int i = 0; i < left_arr.size(); i++) {
|
||||||
JSONObject left_jo = left_arr.getJSONObject(i);
|
JSONObject left_jo = left_arr.getJSONObject(i);
|
||||||
@@ -1654,7 +1654,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
result.put("status", HttpStatus.OK.value());
|
result.put("status", HttpStatus.OK.value());
|
||||||
result.put("message", "反馈成功,ACS上报无货且此时LMS该点位没有任何任务!");
|
result.put("message", "反馈成功,ACS上报无货且此时LMS该点位没有任何任务!");
|
||||||
return result;
|
return result;
|
||||||
}else {
|
} else {
|
||||||
boolean need_clean = false;
|
boolean need_clean = false;
|
||||||
for (int i = 0; i < right_arr.size(); i++) {
|
for (int i = 0; i < right_arr.size(); i++) {
|
||||||
JSONObject right_jo = right_arr.getJSONObject(i);
|
JSONObject right_jo = right_arr.getJSONObject(i);
|
||||||
@@ -1853,62 +1853,69 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
@Override
|
@Override
|
||||||
public JSONObject sendProductToFirstFloor(JSONObject whereJson) {
|
public JSONObject sendProductToFirstFloor(JSONObject whereJson) {
|
||||||
log.info("sendProductToFirstFloor被调用--------------------------:" + whereJson.toString());
|
log.info("sendProductToFirstFloor被调用--------------------------:" + whereJson.toString());
|
||||||
if (StringUtils.isBlank(whereJson.getString("device_code")) || StringUtils.isBlank(whereJson.getString("material_barcode"))) {
|
String is_error = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("is_error").getValue();
|
||||||
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();
|
JSONObject result = new JSONObject();
|
||||||
result.put("status", HttpStatus.BAD_REQUEST.value());
|
if ("1".equals(is_error)) {
|
||||||
result.put("data", whereJson.getString("material_barcode"));
|
|
||||||
RedissonUtils.lock(c->{
|
|
||||||
//1.查询满轴缓存位是否有空位
|
|
||||||
List<BstIvtPackageinfoivt> MzPoints = packageinfoivtService
|
|
||||||
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
|
||||||
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
|
|
||||||
.eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位"))
|
|
||||||
.eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空"))
|
|
||||||
.orderByDesc(BstIvtPackageinfoivt::getSort_seq));
|
|
||||||
if (CollectionUtils.isEmpty(MzPoints)){
|
|
||||||
result.put("message", "满轴位无可用位置");
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
List<BstIvtPackageinfoivt> empPoints = packageinfoivtService
|
|
||||||
.selectNoTargetTaskPoints(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"));
|
|
||||||
if (CollectionUtils.isEmpty(empPoints)){
|
|
||||||
result.put("message", "空轴位无可用位置");
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
// 创建前先判断是否有已创建相同任务
|
|
||||||
List<String> taskTypes = new ArrayList<>(Arrays.asList(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"), PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")));
|
|
||||||
List<SchBaseTask> existTaskList1 = taskService.getExistTasks(taskTypes);
|
|
||||||
List<SchBaseTask> existTaskList2 = existTaskList1.stream().filter(r -> r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"))||r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"))||r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"))).collect(Collectors.toList());
|
|
||||||
List<SchBaseTask> existTaskList3 = existTaskList1.stream().filter(r -> StringUtils.isNotBlank(r.getResponse_param())).collect(Collectors.toList());
|
|
||||||
if (!CollectionUtils.isEmpty(existTaskList2) ||!CollectionUtils.isEmpty(existTaskList3) ){
|
|
||||||
result.put("message", "存在正在执行的输送线行架任务");
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
List<BstIvtPackageinfoivt> sortEmpPoint = empPoints.stream().sorted(Comparator.comparing(BstIvtPackageinfoivt::getSort_seq)).collect(Collectors.toList());
|
|
||||||
JSONObject taskParam = new JSONObject();
|
|
||||||
taskParam.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务"));
|
|
||||||
taskParam.put("vehicle_code", whereJson.getString("material_barcode"));
|
|
||||||
taskParam.put("point_code1", whereJson.getString("device_code"));
|
|
||||||
taskParam.put("point_code2", MzPoints.get(0).getPoint_code());
|
|
||||||
taskParam.put("point_code3", sortEmpPoint.get(0).getPoint_code());
|
|
||||||
taskParam.put("point_code4", whereJson.getString("device_code"));
|
|
||||||
taskParam.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"));
|
|
||||||
taskParam.put("is_send", true);
|
|
||||||
mzhcwTask.createTask(taskParam);
|
|
||||||
PdmProductSpecServiceImpl.doRecord(SpecEnum.XX,null,Boolean.TRUE,null,whereJson.getString("material_barcode"));
|
|
||||||
try {
|
|
||||||
Thread.sleep(1000);
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
}
|
|
||||||
result.put("status", HttpStatus.OK.value());
|
result.put("status", HttpStatus.OK.value());
|
||||||
result.put("message", "反馈成功!");
|
result.put("message", "反馈成功!");
|
||||||
return result;
|
} else {
|
||||||
},"sendProductToFirstFloor",null);
|
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!");
|
||||||
|
}
|
||||||
|
result.put("status", HttpStatus.BAD_REQUEST.value());
|
||||||
|
result.put("data", whereJson.getString("material_barcode"));
|
||||||
|
RedissonUtils.lock(c -> {
|
||||||
|
//1.查询满轴缓存位是否有空位
|
||||||
|
List<BstIvtPackageinfoivt> MzPoints = packageinfoivtService
|
||||||
|
.list(new LambdaUpdateWrapper<BstIvtPackageinfoivt>()
|
||||||
|
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
|
||||||
|
.eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位"))
|
||||||
|
.eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空"))
|
||||||
|
.orderByDesc(BstIvtPackageinfoivt::getSort_seq));
|
||||||
|
if (CollectionUtils.isEmpty(MzPoints)) {
|
||||||
|
result.put("message", "满轴位无可用位置");
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
List<BstIvtPackageinfoivt> empPoints = packageinfoivtService
|
||||||
|
.selectNoTargetTaskPoints(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"));
|
||||||
|
if (CollectionUtils.isEmpty(empPoints)) {
|
||||||
|
result.put("message", "空轴位无可用位置");
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
// 创建前先判断是否有已创建相同任务
|
||||||
|
List<String> taskTypes = new ArrayList<>(Arrays.asList(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"), PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")));
|
||||||
|
List<SchBaseTask> existTaskList1 = taskService.getExistTasks(taskTypes);
|
||||||
|
List<SchBaseTask> existTaskList2 = existTaskList1.stream().filter(r -> r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) || r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位")) || r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"))).collect(Collectors.toList());
|
||||||
|
List<SchBaseTask> existTaskList3 = existTaskList1.stream().filter(r -> StringUtils.isNotBlank(r.getResponse_param())).collect(Collectors.toList());
|
||||||
|
if (!CollectionUtils.isEmpty(existTaskList2) || !CollectionUtils.isEmpty(existTaskList3)) {
|
||||||
|
result.put("message", "存在正在执行的输送线行架任务");
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
List<BstIvtPackageinfoivt> sortEmpPoint = empPoints.stream().sorted(Comparator.comparing(BstIvtPackageinfoivt::getSort_seq)).collect(Collectors.toList());
|
||||||
|
JSONObject taskParam = new JSONObject();
|
||||||
|
taskParam.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务"));
|
||||||
|
taskParam.put("vehicle_code", whereJson.getString("material_barcode"));
|
||||||
|
taskParam.put("point_code1", whereJson.getString("device_code"));
|
||||||
|
taskParam.put("point_code2", MzPoints.get(0).getPoint_code());
|
||||||
|
taskParam.put("point_code3", sortEmpPoint.get(0).getPoint_code());
|
||||||
|
taskParam.put("point_code4", whereJson.getString("device_code"));
|
||||||
|
taskParam.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"));
|
||||||
|
taskParam.put("is_send", true);
|
||||||
|
mzhcwTask.createTask(taskParam);
|
||||||
|
PdmProductSpecServiceImpl.doRecord(SpecEnum.XX, null, Boolean.TRUE, null, whereJson.getString("material_barcode"));
|
||||||
|
try {
|
||||||
|
Thread.sleep(1000);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
}
|
||||||
|
result.put("status", HttpStatus.OK.value());
|
||||||
|
result.put("message", "反馈成功!");
|
||||||
|
return result;
|
||||||
|
}, "sendProductToFirstFloor", null);
|
||||||
|
}
|
||||||
|
|
||||||
log.info("sendProductToFirstFloor调用成功--------------------------:" + result);
|
log.info("sendProductToFirstFloor调用成功--------------------------:" + result);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -1923,13 +1930,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
// 创建前先判断是否有已创建相同任务
|
// 创建前先判断是否有已创建相同任务
|
||||||
List<String> taskTypes = new ArrayList<>(Arrays.asList(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"), PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")));
|
List<String> taskTypes = new ArrayList<>(Arrays.asList(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"), PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")));
|
||||||
List<SchBaseTask> existTaskList1 = taskService.getExistTasks(taskTypes);
|
List<SchBaseTask> existTaskList1 = taskService.getExistTasks(taskTypes);
|
||||||
List<SchBaseTask> existTaskList2 = existTaskList1.stream().filter(r -> r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"))||r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"))||r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"))).collect(Collectors.toList());
|
List<SchBaseTask> existTaskList2 = existTaskList1.stream().filter(r -> r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) || r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位")) || r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"))).collect(Collectors.toList());
|
||||||
List<SchBaseTask> existTaskList3 = existTaskList1.stream().filter(r -> StringUtils.isNotBlank(r.getResponse_param())).collect(Collectors.toList());
|
List<SchBaseTask> existTaskList3 = existTaskList1.stream().filter(r -> StringUtils.isNotBlank(r.getResponse_param())).collect(Collectors.toList());
|
||||||
if (ObjectUtils.isEmpty(existTaskList2)&&ObjectUtils.isEmpty(existTaskList3)) {
|
if (ObjectUtils.isEmpty(existTaskList2) && ObjectUtils.isEmpty(existTaskList3)) {
|
||||||
jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"));
|
jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"));
|
||||||
jo.put("is_send", true);
|
jo.put("is_send", true);
|
||||||
mzhcwTask.createTask(jo);
|
mzhcwTask.createTask(jo);
|
||||||
PdmProductSpecServiceImpl.doRecord(SpecEnum.XX,null,Boolean.TRUE,null,containerName);
|
PdmProductSpecServiceImpl.doRecord(SpecEnum.XX, null, Boolean.TRUE, null, containerName);
|
||||||
|
|
||||||
//不确定起点的空载具缓存位->输送线任务
|
//不确定起点的空载具缓存位->输送线任务
|
||||||
createTask3(containerName);
|
createTask3(containerName);
|
||||||
@@ -1965,16 +1972,16 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
// 创建前先判断是否有已创建相同任务
|
// 创建前先判断是否有已创建相同任务
|
||||||
List<String> taskTypes = new ArrayList<>(Arrays.asList(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"), PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")));
|
List<String> taskTypes = new ArrayList<>(Arrays.asList(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"), PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"), PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"), PackageInfoIvtEnum.TASK_TYPE.code("补空(管制区->空载具缓存位)")));
|
||||||
List<SchBaseTask> existTaskList1 = taskService.getExistTasks(taskTypes);
|
List<SchBaseTask> existTaskList1 = taskService.getExistTasks(taskTypes);
|
||||||
List<SchBaseTask> existTaskList2 = existTaskList1.stream().filter(r -> r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"))||r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"))||r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"))).collect(Collectors.toList());
|
List<SchBaseTask> existTaskList2 = existTaskList1.stream().filter(r -> r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) || r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位")) || r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"))).collect(Collectors.toList());
|
||||||
List<SchBaseTask> existTaskList3 = existTaskList1.stream().filter(r -> StringUtils.isNotBlank(r.getResponse_param())).collect(Collectors.toList());
|
List<SchBaseTask> existTaskList3 = existTaskList1.stream().filter(r -> StringUtils.isNotBlank(r.getResponse_param())).collect(Collectors.toList());
|
||||||
if (ObjectUtils.isEmpty(existTaskList2)&&ObjectUtils.isEmpty(existTaskList3)) {
|
if (ObjectUtils.isEmpty(existTaskList2) && ObjectUtils.isEmpty(existTaskList3)) {
|
||||||
jo.put("point_code3", pointCode3);
|
jo.put("point_code3", pointCode3);
|
||||||
//终点为输送线点位
|
//终点为输送线点位
|
||||||
jo.put("point_code4", pointCode4);
|
jo.put("point_code4", pointCode4);
|
||||||
jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"));
|
jo.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务"));
|
||||||
jo.put("is_send", true);
|
jo.put("is_send", true);
|
||||||
mzhcwTask.createTask(jo);
|
mzhcwTask.createTask(jo);
|
||||||
PdmProductSpecServiceImpl.doRecord(SpecEnum.XX,null,Boolean.TRUE,null,containerName);
|
PdmProductSpecServiceImpl.doRecord(SpecEnum.XX, null, Boolean.TRUE, null, containerName);
|
||||||
|
|
||||||
result.put("status", HttpStatus.OK.value());
|
result.put("status", HttpStatus.OK.value());
|
||||||
result.put("message", "反馈成功!");
|
result.put("message", "反馈成功!");
|
||||||
@@ -2023,11 +2030,11 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
}
|
}
|
||||||
// 5-木箱入库.木箱回库
|
// 5-木箱入库.木箱回库
|
||||||
String materialBarcode = whereJson.getString("material_barcode");
|
String materialBarcode = whereJson.getString("material_barcode");
|
||||||
if (materialBarcode.contains("BRMX")){
|
if (materialBarcode.contains("BRMX")) {
|
||||||
String brBox = Arrays.asList(materialBarcode.split(",")).get(0);
|
String brBox = Arrays.asList(materialBarcode.split(",")).get(0);
|
||||||
whereJson.put("box_no", brBox.replace("BR", ""));
|
whereJson.put("box_no", brBox.replace("BR", ""));
|
||||||
inBoxManageService.inBox(whereJson);
|
inBoxManageService.inBox(whereJson);
|
||||||
}else {
|
} else {
|
||||||
if (whereJson.getIntValue("weight") <= 0) {
|
if (whereJson.getIntValue("weight") <= 0) {
|
||||||
throw new BadRequestException("上报的重量不能为0!");
|
throw new BadRequestException("上报的重量不能为0!");
|
||||||
}
|
}
|
||||||
@@ -2046,39 +2053,39 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
.lt("task_status", TaskStatusEnum.EXECUTING.getCode()));
|
.lt("task_status", TaskStatusEnum.EXECUTING.getCode()));
|
||||||
JSONObject jsonExt = WQLObject.getWQLObject("md_pb_storagevehicleext").query("storagevehicle_code = '" + whereJson.getString("vehicle_code") + "'").uniqueResult(0);
|
JSONObject jsonExt = WQLObject.getWQLObject("md_pb_storagevehicleext").query("storagevehicle_code = '" + whereJson.getString("vehicle_code") + "'").uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(jsonExt)) {
|
if (ObjectUtil.isEmpty(jsonExt)) {
|
||||||
errorMsg.add("载具无数据"+whereJson.getString("vehicle_code"));
|
errorMsg.add("载具无数据" + whereJson.getString("vehicle_code"));
|
||||||
}else {
|
} else {
|
||||||
String pcsn = jsonExt.getString("pcsn");
|
String pcsn = jsonExt.getString("pcsn");
|
||||||
if (StringUtils.isNotEmpty(pcsn)){
|
if (StringUtils.isNotEmpty(pcsn)) {
|
||||||
JSONArray stIvtStructattr = WQLObject.getWQLObject("st_ivt_structattr").query("storagevehicle_code = '" + pcsn + "'").getResultJSONArray(0);
|
JSONArray stIvtStructattr = WQLObject.getWQLObject("st_ivt_structattr").query("storagevehicle_code = '" + pcsn + "'").getResultJSONArray(0);
|
||||||
if (stIvtStructattr != null && stIvtStructattr.size() > 0) {
|
if (stIvtStructattr != null && stIvtStructattr.size() > 0) {
|
||||||
errorMsg.add("载具"+whereJson.getString("vehicle_code")+"已绑定"+pcsn);
|
errorMsg.add("载具" + whereJson.getString("vehicle_code") + "已绑定" + pcsn);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!compaerResult){
|
if (!compaerResult) {
|
||||||
errorMsg.add("称重"+current_weight+"不匹配"+box_weight);
|
errorMsg.add("称重" + current_weight + "不匹配" + box_weight);
|
||||||
Param notify = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("weight_notify");
|
Param notify = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("weight_notify");
|
||||||
if (notify!=null && StringUtils.isNotEmpty(notify.getValue())){
|
if (notify != null && StringUtils.isNotEmpty(notify.getValue())) {
|
||||||
AutoSendFeiShu.sendFeiShuMsg(notify.getValue(),box_no+"称重"+current_weight+",理论"+box_weight,"二期称重异常提醒");
|
AutoSendFeiShu.sendFeiShuMsg(notify.getValue(), box_no + "称重" + current_weight + ",理论" + box_weight, "二期称重异常提醒");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!inbound){
|
if (!inbound) {
|
||||||
errorMsg.add("手动至异常口");
|
errorMsg.add("手动至异常口");
|
||||||
}
|
}
|
||||||
if (count>0){
|
if (count > 0) {
|
||||||
errorMsg.add(whereJson.getString("vehicle_code")+"存在任务");
|
errorMsg.add(whereJson.getString("vehicle_code") + "存在任务");
|
||||||
}
|
}
|
||||||
//"material_barcode":"C1101,","device_code":"RK1018","weight":500.95,"vehicle_code":"B01401","type":"1"
|
//"material_barcode":"C1101,","device_code":"RK1018","weight":500.95,"vehicle_code":"B01401","type":"1"
|
||||||
if (CollectionUtils.isEmpty(errorMsg)) {
|
if (CollectionUtils.isEmpty(errorMsg)) {
|
||||||
whereJson.put("bill_type", IOSEnum.IN_TYPE.code("生产入库"));
|
whereJson.put("bill_type", IOSEnum.IN_TYPE.code("生产入库"));
|
||||||
inBussManageService.inTask(whereJson);
|
inBussManageService.inTask(whereJson);
|
||||||
PdmProductSpecServiceImpl.doRecord(SpecEnum.RK,null,Boolean.TRUE,null,containers);
|
PdmProductSpecServiceImpl.doRecord(SpecEnum.RK, null, Boolean.TRUE, null, containers);
|
||||||
} else {
|
} else {
|
||||||
iPdmBiContainerinboundService
|
iPdmBiContainerinboundService
|
||||||
.update(new UpdateWrapper<PdmBiContainerinbound>()
|
.update(new UpdateWrapper<PdmBiContainerinbound>()
|
||||||
.set("remark",JSONObject.toJSONString(errorMsg))
|
.set("remark", JSONObject.toJSONString(errorMsg))
|
||||||
.eq("box",box_no));
|
.eq("box", box_no));
|
||||||
//更新子卷入库备注信息
|
//更新子卷入库备注信息
|
||||||
JSONObject jsonTaskParam = new JSONObject();
|
JSONObject jsonTaskParam = new JSONObject();
|
||||||
//创建异常任务去异常入库口
|
//创建异常任务去异常入库口
|
||||||
@@ -2100,14 +2107,14 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
JSONObject param = new JSONObject();
|
JSONObject param = new JSONObject();
|
||||||
param.put("status", IOSEnum.IS_NOTANDYES.code("否"));
|
param.put("status", IOSEnum.IS_NOTANDYES.code("否"));
|
||||||
WQLObject.getWQLObject("pdm_bi_subpackagerelation")
|
WQLObject.getWQLObject("pdm_bi_subpackagerelation")
|
||||||
.update(param,"package_box_sn = '"+jsonObject.getString("box_no")+"'");
|
.update(param, "package_box_sn = '" + jsonObject.getString("box_no") + "'");
|
||||||
|
|
||||||
jsonTaskParam.put("request_param", request_param);
|
jsonTaskParam.put("request_param", request_param);
|
||||||
TwoExceptionInTask bean = SpringContextHolder.getBean(TwoExceptionInTask.class);
|
TwoExceptionInTask bean = SpringContextHolder.getBean(TwoExceptionInTask.class);
|
||||||
bean.createTask(jsonTaskParam);
|
bean.createTask(jsonTaskParam);
|
||||||
bean.immediateNotifyAcs(null);
|
bean.immediateNotifyAcs(null);
|
||||||
PdmProductSpecServiceImpl.doRecord(SpecEnum.TYCK,null,Boolean.FALSE,errorMsg.toString(),containers);
|
PdmProductSpecServiceImpl.doRecord(SpecEnum.TYCK, null, Boolean.FALSE, errorMsg.toString(), containers);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (type.equals(IOSEnum.ACSTOLMS_TYPE.code("空盘入库"))) {
|
} else if (type.equals(IOSEnum.ACSTOLMS_TYPE.code("空盘入库"))) {
|
||||||
@@ -2139,20 +2146,20 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
inBoxManageService.inBox(whereJson);
|
inBoxManageService.inBox(whereJson);
|
||||||
} else if (type.equals(IOSEnum.ACSTOLMS_TYPE.code("退货入库"))) {
|
} else if (type.equals(IOSEnum.ACSTOLMS_TYPE.code("退货入库"))) {
|
||||||
String materialBarcode = whereJson.getString("material_barcode");
|
String materialBarcode = whereJson.getString("material_barcode");
|
||||||
if(StrUtil.isEmpty(materialBarcode)){
|
if (StrUtil.isEmpty(materialBarcode)) {
|
||||||
throw new BadRequestException("当前木箱号不能为空!");
|
throw new BadRequestException("当前木箱号不能为空!");
|
||||||
}
|
}
|
||||||
String[] box_arr = materialBarcode.split("-");
|
String[] box_arr = materialBarcode.split("-");
|
||||||
if (box_arr.length < 2) {
|
if (box_arr.length < 2) {
|
||||||
// 处理分割结果不足的情况
|
// 处理分割结果不足的情况
|
||||||
throw new BadRequestException("当前木箱号数据异常!"+box_arr.toString());
|
throw new BadRequestException("当前木箱号数据异常!" + box_arr.toString());
|
||||||
}
|
}
|
||||||
if (box_arr[1].equals("9")){
|
if (box_arr[1].equals("9")) {
|
||||||
//空木箱入库
|
//空木箱入库
|
||||||
// -{"material_barcode":"MX250324000091-1","device_code":"CK2005","vehicle_code":"B00165","type":"6"}
|
// -{"material_barcode":"MX250324000091-1","device_code":"CK2005","vehicle_code":"B00165","type":"6"}
|
||||||
whereJson.put("box_no", box_arr[0]);
|
whereJson.put("box_no", box_arr[0]);
|
||||||
inBoxManageService.inBox(whereJson);
|
inBoxManageService.inBox(whereJson);
|
||||||
}else {
|
} else {
|
||||||
//退货入库
|
//退货入库
|
||||||
WQLObject vehicleTab = WQLObject.getWQLObject("md_pb_storagevehicleinfo");
|
WQLObject vehicleTab = WQLObject.getWQLObject("md_pb_storagevehicleinfo");
|
||||||
// 载具扩展属性表
|
// 载具扩展属性表
|
||||||
@@ -2183,8 +2190,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
.eq("is_delete", "0")
|
.eq("is_delete", "0")
|
||||||
.eq("vehicle_code2", whereJson.getString("vehicle_code"))
|
.eq("vehicle_code2", whereJson.getString("vehicle_code"))
|
||||||
.lt("task_status", TaskStatusEnum.FINISHED.getCode()));
|
.lt("task_status", TaskStatusEnum.FINISHED.getCode()));
|
||||||
if (hasTask>0){
|
if (hasTask > 0) {
|
||||||
throw new BadRequestException("托盘"+whereJson.getString("vehicle_code")+"存在执行的任务");
|
throw new BadRequestException("托盘" + whereJson.getString("vehicle_code") + "存在执行的任务");
|
||||||
}
|
}
|
||||||
JSONObject ext_jo = veExtTab.query("storagevehicle_code = '" + jsonVehicle.getString("storagevehicle_code") + "'").uniqueResult(0);
|
JSONObject ext_jo = veExtTab.query("storagevehicle_code = '" + jsonVehicle.getString("storagevehicle_code") + "'").uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(ext_jo)) {
|
if (ObjectUtil.isEmpty(ext_jo)) {
|
||||||
@@ -2199,10 +2206,10 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
veExtTab.insert(jsonVeExt);
|
veExtTab.insert(jsonVeExt);
|
||||||
} else {
|
} else {
|
||||||
String pcsn = ext_jo.getString("pcsn");
|
String pcsn = ext_jo.getString("pcsn");
|
||||||
if (StringUtils.isNotEmpty(pcsn)){
|
if (StringUtils.isNotEmpty(pcsn)) {
|
||||||
JSONArray stIvtStructattr = WQLObject.getWQLObject("st_ivt_structattr").query("storagevehicle_code = '" + pcsn + "'").getResultJSONArray(0);
|
JSONArray stIvtStructattr = WQLObject.getWQLObject("st_ivt_structattr").query("storagevehicle_code = '" + pcsn + "'").getResultJSONArray(0);
|
||||||
if (stIvtStructattr != null && stIvtStructattr.size() > 0) {
|
if (stIvtStructattr != null && stIvtStructattr.size() > 0) {
|
||||||
throw new BadRequestException("当前托盘"+whereJson.getString("vehicle_code")+"已经绑定木箱"+pcsn);
|
throw new BadRequestException("当前托盘" + whereJson.getString("vehicle_code") + "已经绑定木箱" + pcsn);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ext_jo.put("pcsn", whereJson.getString("box_no"));
|
ext_jo.put("pcsn", whereJson.getString("box_no"));
|
||||||
@@ -2515,7 +2522,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
updateWrapper.set(PdmBiSlittingproductionplan::getWeight, NumberUtil.round(weight, 2).toString())
|
updateWrapper.set(PdmBiSlittingproductionplan::getWeight, NumberUtil.round(weight, 2).toString())
|
||||||
.eq(PdmBiSlittingproductionplan::getContainer_name, subVolume);
|
.eq(PdmBiSlittingproductionplan::getContainer_name, subVolume);
|
||||||
boolean update = slittingproductionplanService.update(updateWrapper);
|
boolean update = slittingproductionplanService.update(updateWrapper);
|
||||||
PdmProductSpecServiceImpl.doRecord(SpecEnum.FQ_WG,param,Boolean.TRUE,null,subVolume);
|
PdmProductSpecServiceImpl.doRecord(SpecEnum.FQ_WG, param, Boolean.TRUE, null, subVolume);
|
||||||
if (update) {
|
if (update) {
|
||||||
res.put("code", cn.hutool.http.HttpStatus.HTTP_OK);
|
res.put("code", cn.hutool.http.HttpStatus.HTTP_OK);
|
||||||
res.put("message", "更新成功!");
|
res.put("message", "更新成功!");
|
||||||
@@ -2534,33 +2541,33 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
@Override
|
@Override
|
||||||
public JSONObject getBoxInfo(JSONObject param) {
|
public JSONObject getBoxInfo(JSONObject param) {
|
||||||
String material_barcode = param.getString("material_barcode");
|
String material_barcode = param.getString("material_barcode");
|
||||||
if (StringUtils.isEmpty(material_barcode)){
|
if (StringUtils.isEmpty(material_barcode)) {
|
||||||
throw new BadRequestException("material_barcode参数不能为空");
|
throw new BadRequestException("material_barcode参数不能为空");
|
||||||
}
|
}
|
||||||
String isUncap = "1";
|
String isUncap = "1";
|
||||||
String boxOr子卷 = material_barcode.split("-")[0];
|
String boxOr子卷 = material_barcode.split("-")[0];
|
||||||
BstIvtBoxinfo boxNo;
|
BstIvtBoxinfo boxNo;
|
||||||
String desiccantTemplate = null;
|
String desiccantTemplate = null;
|
||||||
if (boxOr子卷.contains("MX")){
|
if (boxOr子卷.contains("MX")) {
|
||||||
BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne(
|
BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne(
|
||||||
new QueryWrapper<BstIvtBoxinfo>().lambda()
|
new QueryWrapper<BstIvtBoxinfo>().lambda()
|
||||||
.eq(BstIvtBoxinfo::getBox_no, boxOr子卷)
|
.eq(BstIvtBoxinfo::getBox_no, boxOr子卷)
|
||||||
);
|
);
|
||||||
if (boxDao==null){
|
if (boxDao == null) {
|
||||||
throw new BadRequestException("当前木箱码在木箱表不存在"+boxOr子卷);
|
throw new BadRequestException("当前木箱码在木箱表不存在" + boxOr子卷);
|
||||||
}
|
}
|
||||||
boxNo=boxDao;
|
boxNo = boxDao;
|
||||||
}else {
|
} else {
|
||||||
JSONObject sub_jo = WQLObject.getWQLObject("pdm_bi_subpackagerelation")
|
JSONObject sub_jo = WQLObject.getWQLObject("pdm_bi_subpackagerelation")
|
||||||
.query("container_name = '" + boxOr子卷 + "' order by create_time desc").uniqueResult(0);
|
.query("container_name = '" + boxOr子卷 + "' order by create_time desc").uniqueResult(0);
|
||||||
if (sub_jo==null || StringUtils.isEmpty(sub_jo.getString("package_box_sn"))){
|
if (sub_jo == null || StringUtils.isEmpty(sub_jo.getString("package_box_sn"))) {
|
||||||
throw new BadRequestException("当前子卷不存在子卷包装关系"+boxOr子卷);
|
throw new BadRequestException("当前子卷不存在子卷包装关系" + boxOr子卷);
|
||||||
}
|
}
|
||||||
BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne(
|
BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne(
|
||||||
new QueryWrapper<BstIvtBoxinfo>().lambda()
|
new QueryWrapper<BstIvtBoxinfo>().lambda()
|
||||||
.eq(BstIvtBoxinfo::getBox_no, sub_jo.getString("package_box_sn"))
|
.eq(BstIvtBoxinfo::getBox_no, sub_jo.getString("package_box_sn"))
|
||||||
);
|
);
|
||||||
boxNo=boxDao;
|
boxNo = boxDao;
|
||||||
String material_type = sub_jo.getString("material_type");
|
String material_type = sub_jo.getString("material_type");
|
||||||
if (material_type.equals("FG1")) {
|
if (material_type.equals("FG1")) {
|
||||||
desiccantTemplate = "6";
|
desiccantTemplate = "6";
|
||||||
@@ -2732,7 +2739,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
JSONObject vehicle_info = WQLObject.getWQLObject("md_pb_storagevehicleext").query("storagevehicle_code = '" + material_barcode + "'").uniqueResult(0);
|
JSONObject vehicle_info = WQLObject.getWQLObject("md_pb_storagevehicleext").query("storagevehicle_code = '" + material_barcode + "'").uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(vehicle_info)) {
|
if (ObjectUtil.isEmpty(vehicle_info)) {
|
||||||
vehicle_info = WQLObject.getWQLObject("md_pb_storagevehicleext").query("storagevehicle_code = '" + vehicle_code + "'").uniqueResult(0);
|
vehicle_info = WQLObject.getWQLObject("md_pb_storagevehicleext").query("storagevehicle_code = '" + vehicle_code + "'").uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(vehicle_info)){
|
if (ObjectUtil.isEmpty(vehicle_info)) {
|
||||||
throw new BadRequestException("未查询到载具号【" + vehicle_code + "】对应的载具信息!");
|
throw new BadRequestException("未查询到载具号【" + vehicle_code + "】对应的载具信息!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2748,18 +2755,18 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
if (ObjectUtil.isNotEmpty(sub_jo)) {
|
if (ObjectUtil.isNotEmpty(sub_jo)) {
|
||||||
//木箱类型
|
//木箱类型
|
||||||
String box_type = sub_jo.getString("box_type");
|
String box_type = sub_jo.getString("box_type");
|
||||||
if(ObjectUtil.isEmpty(box_type)){
|
if (ObjectUtil.isEmpty(box_type)) {
|
||||||
throw new BadRequestException("未查询到木箱号【" + material_barcode + "】对应的包装关系缺少木箱类型信息!");
|
throw new BadRequestException("未查询到木箱号【" + material_barcode + "】对应的包装关系缺少木箱类型信息!");
|
||||||
}
|
}
|
||||||
//查询木箱类型数据
|
//查询木箱类型数据
|
||||||
LambdaQueryWrapper<MdpbBoxtype> queryWrapper = new QueryWrapper<MdpbBoxtype>().lambda();
|
LambdaQueryWrapper<MdpbBoxtype> queryWrapper = new QueryWrapper<MdpbBoxtype>().lambda();
|
||||||
queryWrapper.eq(MdpbBoxtype::getBox_type,box_type);
|
queryWrapper.eq(MdpbBoxtype::getBox_type, box_type);
|
||||||
MdpbBoxtype boxType = iMdpbBoxtypeService.getOne(queryWrapper);
|
MdpbBoxtype boxType = iMdpbBoxtypeService.getOne(queryWrapper);
|
||||||
if(ObjectUtil.isEmpty(boxType)){
|
if (ObjectUtil.isEmpty(boxType)) {
|
||||||
throw new BadRequestException("未查询到木箱类型【" + box_type + "】信息!");
|
throw new BadRequestException("未查询到木箱类型【" + box_type + "】信息!");
|
||||||
}
|
}
|
||||||
desiccantTemplate = String.valueOf(boxType.getDesiccant_num());
|
desiccantTemplate = String.valueOf(boxType.getDesiccant_num());
|
||||||
}else{
|
} else {
|
||||||
throw new BadRequestException("未查询到木箱号【" + material_barcode + "】对应的包装关系!");
|
throw new BadRequestException("未查询到木箱号【" + material_barcode + "】对应的包装关系!");
|
||||||
}
|
}
|
||||||
//根据木箱高度,判断入库仓位的高度
|
//根据木箱高度,判断入库仓位的高度
|
||||||
@@ -2888,13 +2895,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
if (ObjectUtil.isEmpty(qzzSize)) {
|
if (ObjectUtil.isEmpty(qzzSize)) {
|
||||||
throw new BadRequestException("气涨轴规格不能为空!");
|
throw new BadRequestException("气涨轴规格不能为空!");
|
||||||
}
|
}
|
||||||
String qzz= qzzSize.substring(qzzSize.length() - 3);
|
String qzz = qzzSize.substring(qzzSize.length() - 3);
|
||||||
String[] split = qzz.split("-");
|
String[] split = qzz.split("-");
|
||||||
String size = split[0];
|
String size = split[0];
|
||||||
String qzz_generation = split[1];
|
String qzz_generation = split[1];
|
||||||
|
|
||||||
// 获取空位
|
// 获取空位
|
||||||
List<BstIvtShafttubeivt> shafttubeivts = shafttubeivtService.getNotTaskEmptyShaftCache(size, qzz_generation,"0");
|
List<BstIvtShafttubeivt> shafttubeivts = shafttubeivtService.getNotTaskEmptyShaftCache(size, qzz_generation, "0");
|
||||||
if (shafttubeivts.size() == 0) {
|
if (shafttubeivts.size() == 0) {
|
||||||
throw new BadRequestException("未找到可存放气涨轴规格「" + qzzSize + "」的空暂存位");
|
throw new BadRequestException("未找到可存放气涨轴规格「" + qzzSize + "」的空暂存位");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -153,4 +153,11 @@ public class LmsToMesController {
|
|||||||
public ResponseEntity<Object> GetInspectionResult(@RequestBody JSONObject jo) {
|
public ResponseEntity<Object> GetInspectionResult(@RequestBody JSONObject jo) {
|
||||||
return new ResponseEntity<>(lmsToMesService.getInspectionResult(jo), HttpStatus.OK);
|
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 BoxDataCollectionSubmit2(JSONObject jo);
|
||||||
|
|
||||||
JSONObject getInspectionResult(JSONObject jo);
|
JSONObject getInspectionResult(JSONObject jo);
|
||||||
|
|
||||||
|
JSONObject GetChildWeightIsSamplePDA(JSONObject jo);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -981,9 +981,9 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
|||||||
if ("E".equals(RTYPE)) {
|
if ("E".equals(RTYPE)) {
|
||||||
throw new BadRequestException(result.getString("RTMSG"));
|
throw new BadRequestException(result.getString("RTMSG"));
|
||||||
}
|
}
|
||||||
PdmProductSpecServiceImpl.doRecord(SpecEnum.BZ_MES,param,Boolean.TRUE,null,list);
|
PdmProductSpecServiceImpl.doRecord(SpecEnum.BZ_MES, param, Boolean.TRUE, null, list);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
PdmProductSpecServiceImpl.doRecord(SpecEnum.BZ_MES,param,Boolean.FALSE,e.getMessage(),list);
|
PdmProductSpecServiceImpl.doRecord(SpecEnum.BZ_MES, param, Boolean.FALSE, e.getMessage(), list);
|
||||||
throw new BadRequestException("MES提示错误:" + e.getMessage());
|
throw new BadRequestException("MES提示错误:" + e.getMessage());
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
@@ -1022,25 +1022,25 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
|||||||
JSONArray rows = new JSONArray();
|
JSONArray rows = new JSONArray();
|
||||||
|
|
||||||
JSONObject row1 = new JSONObject();
|
JSONObject row1 = new JSONObject();
|
||||||
row1.put("DataPointName","保护棉是否填充");
|
row1.put("DataPointName", "保护棉是否填充");
|
||||||
row1.put("DataType","7");
|
row1.put("DataType", "7");
|
||||||
row1.put("DataValue","true");
|
row1.put("DataValue", "true");
|
||||||
row1.put("DataCollectionDefId","001c61800000004f");
|
row1.put("DataCollectionDefId", "001c61800000004f");
|
||||||
row1.put("DataCollectionDefName","PACKAGE");
|
row1.put("DataCollectionDefName", "PACKAGE");
|
||||||
rows.add(row1);
|
rows.add(row1);
|
||||||
JSONObject row2 = new JSONObject();
|
JSONObject row2 = new JSONObject();
|
||||||
row2.put("DataPointName","信息核对准确");
|
row2.put("DataPointName", "信息核对准确");
|
||||||
row2.put("DataType","7");
|
row2.put("DataType", "7");
|
||||||
row2.put("DataValue","true");
|
row2.put("DataValue", "true");
|
||||||
row2.put("DataCollectionDefId","001c61800000004f");
|
row2.put("DataCollectionDefId", "001c61800000004f");
|
||||||
row2.put("DataCollectionDefName","PACKAGE");
|
row2.put("DataCollectionDefName", "PACKAGE");
|
||||||
rows.add(row2);
|
rows.add(row2);
|
||||||
JSONObject row3 = new JSONObject();
|
JSONObject row3 = new JSONObject();
|
||||||
row3.put("DataPointName","木箱是否防护");
|
row3.put("DataPointName", "木箱是否防护");
|
||||||
row3.put("DataType","7");
|
row3.put("DataType", "7");
|
||||||
row3.put("DataValue","true");
|
row3.put("DataValue", "true");
|
||||||
row3.put("DataCollectionDefId","001c61800000004f");
|
row3.put("DataCollectionDefId", "001c61800000004f");
|
||||||
row3.put("DataCollectionDefName","PACKAGE");
|
row3.put("DataCollectionDefName", "PACKAGE");
|
||||||
rows.add(row3);
|
rows.add(row3);
|
||||||
param.put("DataPoints", rows);
|
param.put("DataPoints", rows);
|
||||||
log.info("BoxDataCollectionSubmit2接口请求参数为:-------------------" + param.toString());
|
log.info("BoxDataCollectionSubmit2接口请求参数为:-------------------" + param.toString());
|
||||||
@@ -1054,13 +1054,13 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
|||||||
|
|
||||||
String RTYPE = result.getString("RTYPE");
|
String RTYPE = result.getString("RTYPE");
|
||||||
if ("E".equals(RTYPE)) {
|
if ("E".equals(RTYPE)) {
|
||||||
throw new BadRequestException("MES提示错误:" +result.getString("RTMSG"));
|
throw new BadRequestException("MES提示错误:" + result.getString("RTMSG"));
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
PdmProductSpecServiceImpl.doRecord(SpecEnum.YX_MES,param,Boolean.FALSE,e.getMessage(),containerName);
|
PdmProductSpecServiceImpl.doRecord(SpecEnum.YX_MES, param, Boolean.FALSE, e.getMessage(), containerName);
|
||||||
throw new BadRequestException("MES错误:" + e.getMessage());
|
throw new BadRequestException("MES错误:" + e.getMessage());
|
||||||
}
|
}
|
||||||
PdmProductSpecServiceImpl.doRecord(SpecEnum.YX_MES,param,Boolean.TRUE,null,containerName);
|
PdmProductSpecServiceImpl.doRecord(SpecEnum.YX_MES, param, Boolean.TRUE, null, containerName);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1100,7 +1100,7 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
|||||||
|
|
||||||
String RTYPE = result.getString("RTYPE");
|
String RTYPE = result.getString("RTYPE");
|
||||||
if ("E".equals(RTYPE)) {
|
if ("E".equals(RTYPE)) {
|
||||||
throw new BadRequestException("MES提示错误:" +result.getString("RTMSG"));
|
throw new BadRequestException("MES提示错误:" + result.getString("RTMSG"));
|
||||||
}
|
}
|
||||||
|
|
||||||
IpdmBiSubpackagerelationService subpackagerelationService = SpringContextHolder.getBean(IpdmBiSubpackagerelationService.class);
|
IpdmBiSubpackagerelationService subpackagerelationService = SpringContextHolder.getBean(IpdmBiSubpackagerelationService.class);
|
||||||
@@ -1224,4 +1224,54 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
|||||||
return result;
|
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