diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/PdaWashController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/PdaWashController.java index 6df3672b..502199db 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/PdaWashController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/PdaWashController.java @@ -222,12 +222,18 @@ public class PdaWashController { @PostMapping("/materialList") @Log("物料列表") @SaIgnore - public ResponseEntity materialList(@RequestBody JSONObject query, PageQuery page) { + public ResponseEntity materialList(@RequestBody JSONObject query) { List list = new ArrayList<>(); QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("material_type_id", "1528555445302726656"); if (StringUtils.isNotEmpty(query.getString("material_code"))){ - queryWrapper.eq("material_code",query.getString("material_code")); + queryWrapper.nested(a->a + .eq("material_code",query.getString("material_code")) + .or().like("material_spec",query.getString("material_code"))); } + PageQuery page = new PageQuery(); + page.setSize(query.getInteger("size")); + page.setPage(query.getInteger("page")); Page result = materialbaseService.page(page.build(),queryWrapper); return new ResponseEntity<>(TableDataInfo.build(result),HttpStatus.OK); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/TmpPackageController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/TmpPackageController.java index 06e351fc..c6d99efb 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/TmpPackageController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/TmpPackageController.java @@ -7,16 +7,20 @@ package org.nl.wms.pda_manage.pda.controller; */ import cn.dev33.satoken.annotation.SaIgnore; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import io.swagger.annotations.Api; import lombok.extern.slf4j.Slf4j; import org.nl.common.TableDataInfo; import org.nl.common.anno.Log; import org.nl.common.enums.AcsTaskEnum; import org.nl.common.enums.StatusEnum; +import org.nl.common.enums.WorkerOrderEnum; import org.nl.common.utils.RedissonUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.wms.ext_manage.acs.service.WmsToAcsService; @@ -33,6 +37,7 @@ import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -57,45 +62,92 @@ public class TmpPackageController { private ISchBasePointService basePointService; @Autowired private IPdmProduceWorkorderService workorderService; + @Autowired + private ISchBaseTaskService taskService; @PostMapping("packageList") @SaIgnore public ResponseEntity packageList(){ - //workorderService.list(new QueryWrapper().eq()) - return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK); + List list = workorderService.list(new QueryWrapper() + .eq("workprocedure_id", "1535144822984282112") + .eq("workorder_status", WorkerOrderEnum.PRODUCTING.getCode())); + return new ResponseEntity<>(TableDataInfo.build(list),HttpStatus.OK); } - @PostMapping("sendVechile") + @PostMapping("sendMaterial") @SaIgnore + @Transactional public ResponseEntity callVechile(@RequestBody JSONObject param){ + Assert.notNull(new Object[]{param.getString("device_code"),param.getString("point_code")},"请求参数不能为空"); + JSONObject moveTask =taskService.createMoveTask(param.getString("point_code"),param.getString("device_code") , AcsTaskEnum.TASK_POINT_TO_POINT, AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20); + JSONArray data = new JSONArray(); + data.add(moveTask); + Map result = wmsToAcsService.issueTaskToAcs2(data); + if (StrUtil.equals((String)result.get("status"), "400")) { + throw new BadRequestException((String)result.get("message")); + } + moveTask.put("task_status",StatusEnum.TASK_FINISH.getCode()); + taskService.save(moveTask.toJavaObject(SchBaseTask.class)); + basePointService.update(new UpdateWrapper().set("lock_type",StatusEnum.LOCK_OFF.getCode()) + .set("point_status",StatusEnum.POINT_STATUS_EMPTY.getCode()) + .set("material_id","").set("qty",0) + .set("task_id","") + .set("point_status", StatusEnum.POINT_STATUS_EMPTY.getCode()) + .eq("point_code",param.getString("point_code"))); return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK); } @PostMapping("cachepoint") @SaIgnore public ResponseEntity kzpoint(@RequestBody JSONObject param) { - JSONObject jo = new JSONObject(); - jo.put("device_code", "A1_KZ_SL"); - JSONObject result = wmsToAcsService.request(jo, "api/wms/startDischarge"); - if (!StrUtil.equals(result.getString("status"), "200")) { - throw new BadRequestException((String)result.get("message")); - } - return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK); + ///api/point/queryVehicle?page=0&size=20&sort=id%2Cdesc&product_area=A1®ion_code=A1_KZHC + param.put("region_code","A1_KZHC"); + param.put("product_area","A1"); + List> list = basePointService.queryPointMaterial(param); + return new ResponseEntity<>(TableDataInfo.build(list),HttpStatus.OK); } - @PostMapping("callVechile") + @PostMapping("sendVechile") @SaIgnore public ResponseEntity kzresidue(@RequestBody JSONObject param){ - RedissonUtils.lock(()->{ - JSONObject jo = new JSONObject(); - jo.put("next_point_code", param.getString("device_code")); - jo.put("start_point_code", "A1_KZ_SL"); - jo.put("weight", param.getString("qty")); - JSONObject result = wmsToAcsService.request(jo, "api/wms/putOver"); - if (!StrUtil.equals(result.getString("status"), "200")) { - throw new BadRequestException((String)result.get("message")); - } - },"kzresidue",null); + Assert.notNull(param.getString("device_code"),"请求参数不能为空"); + // 判断当前点是否有未完成的任务 + List list = taskService.list(new QueryWrapper() + .nested(i -> i + .eq("point_code1", param.getString("device_code")).or() + .eq("point_code3", param.getString("device_code"))) + .lt("task_status", StatusEnum.TASK_FINISH.getCode()) + ); + if (ObjectUtil.isNotEmpty(list)) { + throw new BadRequestException("当前点位" + param.getString("device_code") + "存在未完成的任务"); + } +// 去刻字缓存区寻找空位 + List points = basePointService.list(new QueryWrapper() + .eq("is_used", "1") + .eq("region_code","A1_KZHC") + .eq("point_status", StatusEnum.POINT_STATUS_EMPTY.getCode()) + .eq("lock_type", StatusEnum.LOCK_OFF.getCode()) + .last("and (material_id is null or material_id = '')") + ); + if (CollectionUtils.isEmpty(points)){ + throw new BadRequestException("刻字缓存位无可用空点位"); + } + JSONObject moveTask =taskService.createMoveTask(param.getString("device_code"), points.get(0).getPoint_code(), AcsTaskEnum.TASK_POINT_TO_POINT, AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20); + JSONArray data = new JSONArray(); + data.add(moveTask); + Map result = wmsToAcsService.issueTaskToAcs2(data); + if (StrUtil.equals((String)result.get("status"), "400")) { + throw new BadRequestException((String)result.get("message")); + } + moveTask.put("task_status",StatusEnum.TASK_FINISH.getCode()); + taskService.save(moveTask.toJavaObject(SchBaseTask.class)); + // 完成 + basePointService.update(new UpdateWrapper().set("lock_type",StatusEnum.LOCK_OFF.getCode()) + .set("point_status",StatusEnum.POINT_STATUS_EMPTY_VEHICLE.getCode()) + .set("material_id","") + .set("task_id","") + .set("qty",0) + .eq("point_code",points.get(0).getPoint_code())); return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK); } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/wash/WashCallEmptyTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/wash/WashCallEmptyTask.java index 4d015fea..3a88c4f7 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/wash/WashCallEmptyTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/wash/WashCallEmptyTask.java @@ -203,7 +203,9 @@ public class WashCallEmptyTask extends AbstractAcsTask { .eq(StIvtStructattr::getIs_emptyvehicle,IOSEnum.IS_USED.code("是")) .eq(StIvtStructattr::getSect_code, PDAEnum.SECT_CODE.code("半成品库区")) .eq(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) - .eq(StIvtStructattr::getIs_used,true),false + .eq(StIvtStructattr::getIs_used,true) + .orderByDesc(StIvtStructattr::getXqty) + .orderByAsc(StIvtStructattr::getYqty),false ); if (ObjectUtil.isEmpty(attrDao)) throw new BadRequestException("未找到空载具!"); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/wash/WashSendMaterialTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/wash/WashSendMaterialTask.java index 87f2677a..2d93ad22 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/wash/WashSendMaterialTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/extendtask/wash/WashSendMaterialTask.java @@ -67,6 +67,9 @@ public class WashSendMaterialTask extends AbstractAcsTask { if (StringUtils.isEmpty(param.getString("wegiht"))||StringUtils.isEmpty(param.getString("vechile_code"))){ throw new BadRequestException("请求参数不能为空"); } + if (param.getString("vechile_code").equals("99999")){ + throw new BadRequestException("料框码不正确,请手动处理"); + } String start_point_code = "A1_CPQXJ_01_X"; //?刻字满料请求:可以存在多个任务? List list = taskService.list(new QueryWrapper() @@ -94,7 +97,8 @@ public class WashSendMaterialTask extends AbstractAcsTask { JSONObject req = new JSONObject(); req.put("from",form); pdaStBcpInService.createIn(req); - + taskService.update(new UpdateWrapper().set("task_step",3) + .eq("task_id",order.getTask_id())); return ""; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpOutServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpOutServiceImpl.java index d56d4982..789c15a9 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpOutServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpOutServiceImpl.java @@ -272,7 +272,7 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl