From b285633f244445d354bce277a6796f9e99cf4e5d Mon Sep 17 00:00:00 2001 From: ldj_willow Date: Tue, 25 Oct 2022 17:04:52 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../acs/service/impl/AcsToWmsServiceImpl.java | 28 +++++----- .../service/impl/CallMaterialServiceImpl.java | 10 ++-- .../callmaterial/wql/PDA_CALLMATERIAL_01.wql | 8 ++- .../service/impl/CallVehicleServiceImpl.java | 15 +++--- .../callvehicle/wql/PDA_CALLVEHICLE_01.wql | 8 ++- .../rest/EmptyAndQtyController.java | 32 ----------- .../service/EmptyAndQtyService.java | 13 ----- .../service/impl/EmptyAndQtyServiceImpl.java | 51 ------------------ .../service/impl/SendMaterialServiceImpl.java | 15 +++--- .../sendmaterial/wql/PDA_SENDMATERIAL_01.wql | 8 ++- .../sendvehicle/wql/PDA_SENDVEHICLE_01.wql | 11 ++-- .../src/main/java/org/nl/wms/wms.xls | Bin 286208 -> 249344 bytes 12 files changed, 48 insertions(+), 151 deletions(-) delete mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/pda/emptyandqty/rest/EmptyAndQtyController.java delete mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/pda/emptyandqty/service/EmptyAndQtyService.java delete mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/pda/emptyandqty/service/impl/EmptyAndQtyServiceImpl.java diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 3968400..09042cb 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -172,7 +172,10 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { String point_code = whereJson.getString("point_code"); String vehicle_type = whereJson.getString("vehicle_type"); String vehicle_code = whereJson.getString("vehicle_code"); - String qty = whereJson.getString("vehicle_num"); + //载具数量 + String vehicle_num = whereJson.getString("vehicle_num"); + //物料数量 + String material_num = whereJson.getString("material_num"); if (ObjectUtil.isEmpty(type)) throw new BadRequestException("类型不能为空"); if (ObjectUtil.isEmpty(point_code)) throw new BadRequestException("点位不能为空"); @@ -190,24 +193,24 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { */ if (StrUtil.equals(type, "1")) { // 1.共挤线申请空盘: 调用空托盘出库处理类创建任务 - if (ObjectUtil.isEmpty(qty)) throw new BadRequestException("数量不能为空"); + if (ObjectUtil.isEmpty(vehicle_num)) throw new BadRequestException("数量不能为空"); JSONObject param = new JSONObject(); param.put("point_code2", point_code); param.put("vehicle_type", vehicle_type); - param.put("qty", qty); + param.put("qty", material_num); // 创建任务 GjxCallEmpVehicleTask taskBean = SpringContextHolder.getBean(GjxCallEmpVehicleTask.class); taskBean.createTask(param); } else if (StrUtil.equals(type, "2")) { // 2.共挤线满托入库: 调用物料入库处理类创建任务 - if (ObjectUtil.isEmpty(qty) || (StrUtil.equals(qty, "0"))) + if (ObjectUtil.isEmpty(material_num) || (StrUtil.equals(material_num, "0"))) throw new BadRequestException("物料数量不能为空或者为0"); JSONObject param = new JSONObject(); param.put("point_code1", point_code); // 满料位 - param.put("qty", qty); // 满料位 + param.put("qty", material_num); // 满料位 param.put("vehicle_type", vehicle_type); param.put("vehicle_code", vehicle_code); @@ -215,11 +218,11 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { String task_id = taskBean.createTask(param); // 创建任务 } else if (StrUtil.equals(type, "3")) { // 3.油漆线申请空盘: 调用空托盘出库处理类创建任务 - if (ObjectUtil.isEmpty(qty)) throw new BadRequestException("数量不能为空"); + if (ObjectUtil.isEmpty(vehicle_num)) throw new BadRequestException("数量不能为空"); JSONObject param = new JSONObject(); param.put("point_code2", point_code); - param.put("qty", qty); + param.put("qty", vehicle_num); // 创建任务 YqxCallEmpVehicleTask taskBean = SpringContextHolder.getBean(YqxCallEmpVehicleTask.class); String task_id = taskBean.createTask(param); @@ -237,12 +240,12 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } else if (StrUtil.equals(type, "5")) { // 5.油漆线空盘入库: 调用空托盘入库处理类创建任务 if (ObjectUtil.isEmpty(point_code)) throw new BadRequestException("点位不能为空"); - if (ObjectUtil.isEmpty(qty)) throw new BadRequestException("数量不能为空"); + if (ObjectUtil.isEmpty(vehicle_num)) throw new BadRequestException("数量不能为空"); if (ObjectUtil.isEmpty(vehicle_type)) throw new BadRequestException("载具类型不能为空"); JSONObject param = new JSONObject(); param.put("point_code1", point_code); - param.put("qty", qty); + param.put("qty", vehicle_num); param.put("vehicle_type", vehicle_type); // 创建任务 YqxSendEmpVehicleTask taskBean = SpringContextHolder.getBean(YqxSendEmpVehicleTask.class); @@ -256,10 +259,10 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { // 查询载具号对应的数量 JSONObject jsonVeQty = new JSONObject(); - if (ObjectUtil.isEmpty(qty)) { + if (ObjectUtil.isEmpty(vehicle_num)) { if (ObjectUtil.isEmpty(jsonVeQty)) throw new BadRequestException("请先手持扫码"); } else { - jsonVeQty.put("qty", qty); + jsonVeQty.put("qty", vehicle_num); } param.put("qty", jsonVeQty.getString("qty")); @@ -273,6 +276,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } else if (StrUtil.equals(type, "7")) { JSONObject param = new JSONObject(); param.put("point_code1", point_code); + param.put("qty", material_num); // 1.生成起点确定的任务 SpringContextHolder.getBean(YqxSendMaterialTask.class).createTask(param); } else if (StrUtil.equals(type, "8")) { @@ -281,7 +285,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { param.put("point_code1", point_code); param.put("vehicle_code", vehicle_code); param.put("vehicle_type", vehicle_type); - param.put("qty", qty); + param.put("qty", material_num); HkxSendMaterialTask taskBean = SpringContextHolder.getBean(HkxSendMaterialTask.class); String task_id = taskBean.createTask(param); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/callmaterial/service/impl/CallMaterialServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/callmaterial/service/impl/CallMaterialServiceImpl.java index 7b76de5..7c1ac15 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/callmaterial/service/impl/CallMaterialServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/callmaterial/service/impl/CallMaterialServiceImpl.java @@ -1,5 +1,6 @@ package org.nl.wms.pda.callmaterial.service.impl; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -8,7 +9,6 @@ import lombok.extern.slf4j.Slf4j; import org.nl.modules.wql.WQL; import org.nl.wms.ext.acs.service.AcsToWmsService; import org.nl.wms.pda.callmaterial.service.CallMaterialService; - import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -43,18 +43,18 @@ public class CallMaterialServiceImpl implements CallMaterialService { JSONObject result = new JSONObject(); // 1、准备参数:point_code、type = 4 JSONObject param = new JSONObject(); - param.put("type","4"); - param.put("point_code",whereJson.getString("point_code")); + param.put("type", "4"); + param.put("point_code", whereJson.getString("point_code")); // 2、调用接口 JSONObject json = acsToWmsService.apply(param); - if (StrUtil.equals(json.getString("status"), "200")) { + if (ObjectUtil.isEmpty(json) || StrUtil.equals(json.getString("status"), "200")) { result.put("result", ""); result.put("code", "1"); result.put("desc", "操作成功"); } else { result.put("result", ""); result.put("code", "0"); - result.put("desc", "操作失败:"+json.getString("message")); + result.put("desc", "操作失败:" + json.getString("message")); } return result; } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/callmaterial/wql/PDA_CALLMATERIAL_01.wql b/lms/nladmin-system/src/main/java/org/nl/wms/pda/callmaterial/wql/PDA_CALLMATERIAL_01.wql index 3c39c5e..41b449f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/callmaterial/wql/PDA_CALLMATERIAL_01.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/callmaterial/wql/PDA_CALLMATERIAL_01.wql @@ -47,8 +47,7 @@ FROM sch_base_region WHERE - is_used = '1' - AND region_code = 'YQQY01' + region_code = 'YQQY01' ENDSELECT ENDQUERY @@ -65,8 +64,7 @@ WHERE is_used = '1' AND is_delete = '0' - AND is_host = '0' - AND device_point_type = '3' + AND point_type = '3' OPTION 输入.region_id <> "" region_id = 输入.region_id @@ -74,4 +72,4 @@ ENDSELECT ENDQUERY - ENDIF \ No newline at end of file + ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/callvehicle/service/impl/CallVehicleServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/callvehicle/service/impl/CallVehicleServiceImpl.java index 95a2ad8..1f193db 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/callvehicle/service/impl/CallVehicleServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/callvehicle/service/impl/CallVehicleServiceImpl.java @@ -1,5 +1,6 @@ package org.nl.wms.pda.callvehicle.service.impl; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -9,8 +10,6 @@ import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.ext.acs.service.AcsToWmsService; import org.nl.wms.pda.callvehicle.service.CallVehicleService; - - import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -50,21 +49,21 @@ public class CallVehicleServiceImpl implements CallVehicleService { String region_id = whereJson.getString("region_id"); JSONObject jsonObject = WQLObject.getWQLObject("sch_base_region").query("region_id ='" + region_id + "'").uniqueResult(0); String region_code = jsonObject.getString("region_code"); - if (StrUtil.equals(region_code, "GJQY01")) param.put("type","1"); - if (StrUtil.equals(region_code, "YQQY01")) param.put("type","3"); + if (StrUtil.equals(region_code, "GJQY01")) param.put("type", "1"); + if (StrUtil.equals(region_code, "YQQY01")) param.put("type", "3"); - param.put("point_code",whereJson.getString("point_code")); - param.put("vehicle_num",whereJson.getString("qty")); + param.put("point_code", whereJson.getString("point_code")); + param.put("vehicle_num", whereJson.getString("qty")); // 2、调用接口 JSONObject json = acsToWmsService.apply(param); - if (StrUtil.equals(json.getString("status"), "200")) { + if (ObjectUtil.isEmpty(json) || StrUtil.equals(json.getString("status"), "200")) { result.put("result", ""); result.put("code", "1"); result.put("desc", "操作成功"); } else { result.put("result", ""); result.put("code", "0"); - result.put("desc", "操作失败:"+json.getString("message")); + result.put("desc", "操作失败:" + json.getString("message")); } return result; } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/callvehicle/wql/PDA_CALLVEHICLE_01.wql b/lms/nladmin-system/src/main/java/org/nl/wms/pda/callvehicle/wql/PDA_CALLVEHICLE_01.wql index 339dd16..65bdadd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/callvehicle/wql/PDA_CALLVEHICLE_01.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/callvehicle/wql/PDA_CALLVEHICLE_01.wql @@ -47,8 +47,7 @@ FROM sch_base_region WHERE - is_used = '1' - AND region_code in ('YQQY01','GJQY01') + region_code in ('YQQY01','GJQY01') ENDSELECT ENDQUERY @@ -65,8 +64,7 @@ WHERE is_used = '1' AND is_delete = '0' - AND is_host = '0' - AND device_point_type = '1' + AND point_type = '1' OPTION 输入.region_id <> "" region_id = 输入.region_id @@ -74,4 +72,4 @@ ENDSELECT ENDQUERY - ENDIF \ No newline at end of file + ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/emptyandqty/rest/EmptyAndQtyController.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/emptyandqty/rest/EmptyAndQtyController.java deleted file mode 100644 index 371d7c9..0000000 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/emptyandqty/rest/EmptyAndQtyController.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.nl.wms.pda.emptyandqty.rest; - -import com.alibaba.fastjson.JSONObject; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.modules.logging.annotation.Log; -import org.nl.wms.pda.emptyandqty.service.EmptyAndQtyService; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequiredArgsConstructor -@Api(tags = "手持空托盘与数量绑定") -@RequestMapping("api/pda/emptyAndQty") -@Slf4j -public class EmptyAndQtyController { - - private final EmptyAndQtyService emptyAndQtyService; - - @PostMapping("/confirm") - @Log("绑定") - @ApiOperation("绑定") - public ResponseEntity confirm(@RequestBody JSONObject whereJson) { - return new ResponseEntity<>(emptyAndQtyService.confirm(whereJson), HttpStatus.OK); - } -} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/emptyandqty/service/EmptyAndQtyService.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/emptyandqty/service/EmptyAndQtyService.java deleted file mode 100644 index 70a1bd8..0000000 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/emptyandqty/service/EmptyAndQtyService.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.nl.wms.pda.emptyandqty.service; - -import com.alibaba.fastjson.JSONObject; - -public interface EmptyAndQtyService { - - /** - * 绑定 - * @param whereJson / - * @return JSONObject - */ - JSONObject confirm(JSONObject whereJson); -} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/emptyandqty/service/impl/EmptyAndQtyServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/emptyandqty/service/impl/EmptyAndQtyServiceImpl.java deleted file mode 100644 index 4c0ce22..0000000 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/emptyandqty/service/impl/EmptyAndQtyServiceImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.nl.wms.pda.emptyandqty.service.impl; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; -import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; - -import org.nl.modules.common.utils.SecurityUtils; -import org.nl.modules.wql.core.bean.WQLObject; - -import org.nl.modules.wql.util.SpringContextHolder; -import org.nl.wms.basedata.service.VehicleService; -import org.nl.wms.basedata.service.dto.VehicleDto; -import org.nl.wms.pda.emptyandqty.service.EmptyAndQtyService; - -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -@Service -@RequiredArgsConstructor -@Slf4j -public class EmptyAndQtyServiceImpl implements EmptyAndQtyService { - - @Override - @Transactional(rollbackFor = Exception.class) - public JSONObject confirm(JSONObject whereJson) { - String vehicle_code = whereJson.getString("vehicle_code"); - String qty = whereJson.getString("qty"); - - WQLObject vqTab = WQLObject.getWQLObject("PDM_BI_vehicleQty"); - VehicleDto byCode = SpringContextHolder.getBean(VehicleService.class).findByCode(vehicle_code); - - // 插入记录 - JSONObject json = new JSONObject(); - json.put("vehicleqty_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("vehicle_id", byCode.getVehicle_id()); - json.put("vehicle_code", vehicle_code); - json.put("qty", qty); - json.put("create_id", SecurityUtils.getCurrentUserId()); - json.put("create_name", SecurityUtils.getCurrentNickName()); - json.put("create_time", DateUtil.now()); - vqTab.insert(json); - // 返回成功 - JSONObject result = new JSONObject(); - result.put("srb", ""); - result.put("code", "1"); - result.put("desc", "操作成功"); - return result; - } -} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/sendmaterial/service/impl/SendMaterialServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/sendmaterial/service/impl/SendMaterialServiceImpl.java index 4a8ac9b..3253249 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/sendmaterial/service/impl/SendMaterialServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/sendmaterial/service/impl/SendMaterialServiceImpl.java @@ -1,5 +1,6 @@ package org.nl.wms.pda.sendmaterial.service.impl; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -9,8 +10,6 @@ import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.ext.acs.service.AcsToWmsService; import org.nl.wms.pda.sendmaterial.service.SendMaterialService; - - import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -50,21 +49,21 @@ public class SendMaterialServiceImpl implements SendMaterialService { String region_id = whereJson.getString("region_id"); JSONObject jsonObject = WQLObject.getWQLObject("sch_base_region").query("region_id ='" + region_id + "'").uniqueResult(0); String region_code = jsonObject.getString("region_code"); - if (StrUtil.equals(region_code, "GJQY01")) param.put("type","2"); - if (StrUtil.equals(region_code, "HKQY01")) param.put("type","8"); + if (StrUtil.equals(region_code, "GJQY01")) param.put("type", "2"); + if (StrUtil.equals(region_code, "HKQY01")) param.put("type", "8"); - param.put("point_code",whereJson.getString("point_code")); - param.put("qty",whereJson.getString("qty")); + param.put("point_code", whereJson.getString("point_code")); + param.put("material_num", whereJson.getString("qty")); // 2、调用接口 JSONObject json = acsToWmsService.apply(param); - if (StrUtil.equals(json.getString("status"), "200")) { + if (ObjectUtil.isEmpty(json) || StrUtil.equals(json.getString("status"), "200")) { result.put("result", ""); result.put("code", "1"); result.put("desc", "操作成功"); } else { result.put("result", ""); result.put("code", "0"); - result.put("desc", "操作失败:"+json.getString("message")); + result.put("desc", "操作失败:" + json.getString("message")); } return result; } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/sendmaterial/wql/PDA_SENDMATERIAL_01.wql b/lms/nladmin-system/src/main/java/org/nl/wms/pda/sendmaterial/wql/PDA_SENDMATERIAL_01.wql index 5c5c7ce..4632d02 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/sendmaterial/wql/PDA_SENDMATERIAL_01.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/sendmaterial/wql/PDA_SENDMATERIAL_01.wql @@ -47,8 +47,7 @@ FROM sch_base_region WHERE - is_used = '1' - AND region_code in ('HKQY01','GJQY01') + region_code in ('HKQY01','GJQY01') ENDSELECT ENDQUERY @@ -65,8 +64,7 @@ WHERE is_used = '1' AND is_delete = '0' - AND is_host = '0' - AND device_point_type = '2' + AND point_type = '3' OPTION 输入.region_id <> "" region_id = 输入.region_id @@ -74,4 +72,4 @@ ENDSELECT ENDQUERY - ENDIF \ No newline at end of file + ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/sendvehicle/wql/PDA_SENDVEHICLE_01.wql b/lms/nladmin-system/src/main/java/org/nl/wms/pda/sendvehicle/wql/PDA_SENDVEHICLE_01.wql index 4c7fdef..b8bb4a3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/sendvehicle/wql/PDA_SENDVEHICLE_01.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/sendvehicle/wql/PDA_SENDVEHICLE_01.wql @@ -47,8 +47,7 @@ FROM sch_base_region WHERE - is_used = '1' - AND region_code in ('SSX01','YQQY01') + region_code in ('SSX01','YQQY01') ENDSELECT ENDQUERY @@ -65,8 +64,7 @@ WHERE is_used = '1' AND is_delete = '0' - AND is_host = '0' - AND device_point_type = '6' + AND point_type = '6' OPTION 输入.region_id <> "" region_id = 输入.region_id @@ -87,8 +85,7 @@ WHERE is_used = '1' AND is_delete = '0' - AND is_host = '0' - AND device_point_type = '4' + AND point_type = '4' OPTION 输入.region_id <> "" region_id = 输入.region_id @@ -96,4 +93,4 @@ ENDSELECT ENDQUERY - ENDIF \ No newline at end of file + ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/wms.xls b/lms/nladmin-system/src/main/java/org/nl/wms/wms.xls index 6db139ee3ed38641e20a70239a634c206cf77447..68791520e7151b6674a1645c5f1ff811d60dd706 100644 GIT binary patch delta 14632 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 delta 45398 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 PO>Nyi*vG(+nbiG1E9+ye From 8ca94d938e9f9e8bd43fbddd9ba5981041cd3ecf Mon Sep 17 00:00:00 2001 From: ldj_willow Date: Tue, 25 Oct 2022 20:15:23 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../callEmpty/GjxCallEmpVehicleTask.java | 38 ++++++++++++------ .../callEmpty/YqxCallEmpVehicleTask.java | 26 +++++++----- .../tasks/callMaterial/YqxCallMaterial.java | 15 ++++++- .../tasks/sendEmpty/HtSendEmpVehicleTask.java | 18 ++++++++- .../sendEmpty/YqxSendEmpVehicleTask.java | 22 ++++++---- .../sendMaterial/GjxSendMaterialTask.java | 25 ++++++++++-- .../sendMaterial/HkxSendMaterialTask.java | 10 ++++- .../sendMaterial/YqxSendMaterialTask.java | 9 ++++- .../src/main/java/org/nl/wms/wms.xls | Bin 249344 -> 253440 bytes .../src/views/wms/sch/task/index.vue | 1 + 10 files changed, 124 insertions(+), 40 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callEmpty/GjxCallEmpVehicleTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callEmpty/GjxCallEmpVehicleTask.java index dd1233a..a5fe607 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callEmpty/GjxCallEmpVehicleTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callEmpty/GjxCallEmpVehicleTask.java @@ -1,7 +1,6 @@ package org.nl.wms.sch.tasks.callEmpty; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -20,6 +19,7 @@ import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; import org.nl.wms.sch.tasks.AcsTaskDto; import org.nl.wms.sch.tasks.RegionTypeEnum; +import org.nl.wms.util.IdUtil; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -142,7 +142,7 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask { pointTab.update(jsonStart); // 更新终点(叠盘架状态) - jsonEnd.put("vehicle_qty", NumberUtil.add(jsonEnd.getString("vehicle_qty"),jsonTask.getString("vehicle_qty"))); + jsonEnd.put("vehicle_qty", NumberUtil.add(jsonEnd.getString("vehicle_qty"), jsonTask.getString("vehicle_qty"))); jsonEnd.put("lock_type", "1"); jsonEnd.put("point_status", "2"); jsonEnd.put("vehicle_type", jsonTask.getString("vehicle_type")); @@ -156,9 +156,9 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask { } else { // 终点在供给线线: 更新起点(叠盘架)数量 JSONObject jsonStart = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0); - jsonStart.put("vehicle_qty",NumberUtil.sub(jsonStart.getString("vehicle_qty"),"1")); + jsonStart.put("vehicle_qty", NumberUtil.sub(jsonStart.getString("vehicle_qty"), "1")); jsonStart.put("lock_type", "1"); - if (StrUtil.equals(jsonStart.getString("vehicle_qty"),"0")) { + if (StrUtil.equals(jsonStart.getString("vehicle_qty"), "0")) { jsonStart.put("point_status", "1"); jsonStart.put("vehicle_type", ""); } @@ -213,6 +213,8 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask { .task_id(org.nl.wms.util.IdUtil.getLongId()) .task_code(CodeUtil.getNewCode("TASK_CODE")) .task_type("") + .acs_task_type("2") + .task_name("暂存位->叠盘架空载具") .task_status(TaskStatusEnum.START_AND_POINT.getCode()) .point_code1(jsonZcKtp.getString("point_code")) .point_code2(jsonDpjStart2.getString("point_code")) @@ -242,12 +244,14 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask { if (ObjectUtil.isEmpty(jsonStartPoint)) continue; // 判断找到的空载具点位是否是等待点 - if (StrUtil.equals(jsonEmpWait.getString("point_code"),jsonStartPoint.getString("point_code"))) { + if (StrUtil.equals(jsonEmpWait.getString("point_code"), jsonStartPoint.getString("point_code"))) { // 创建 养生A区空载具等待点 --> 叠盘架 SchTaskDto dto = SchTaskDto.builder() - .task_id(org.nl.wms.util.IdUtil.getLongId()) + .task_id(IdUtil.getLongId()) .task_code(CodeUtil.getNewCode("TASK_CODE")) .task_type("") + .acs_task_type("2") + .task_name("养生A区-> 叠盘架空载具") .task_status(TaskStatusEnum.START_AND_POINT.getCode()) .point_code1(jsonStartPoint.getString("point_code")) .point_code2(jsonDpjStart2.getString("point_code")) @@ -271,6 +275,8 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask { .task_id(org.nl.wms.util.IdUtil.getLongId()) .task_code(CodeUtil.getNewCode("TASK_CODE")) .task_type("") + .acs_task_type("3") + .task_name("养生A区>叠盘架空载具") .task_status(TaskStatusEnum.START_AND_POINT.getCode()) .point_code1(jsonStartPoint.getString("point_code")) .point_code2(jsonDpjStart2.getString("point_code")) @@ -287,7 +293,7 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask { jsonStartPoint.put("lock_type", "2"); pointTab.update(jsonStartPoint); // 锁等待点 - jsonEmpWait.put("lock_type","2"); + jsonEmpWait.put("lock_type", "2"); pointTab.update(jsonEmpWait); } else { continue; @@ -323,20 +329,20 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask { SchTaskDto dto = SchTaskDto.builder().task_id(org.nl.wms.util.IdUtil.getLongId()) .task_code(CodeUtil.getNewCode("TASK_CODE")) .task_type("") + .task_name("共挤线叫空载具") .task_status(TaskStatusEnum.SURE_END.getCode()) .point_code2(point_code2) .vehicle_code(form.getString("vehicle_code")) .vehicle_type(workOrderObj.getString("vehicle_type")) .vehicle_qty(form.getIntValue("qty")) - .task_group_id(org.nl.wms.util.IdUtil.getLongId()) + .task_group_id(IdUtil.getLongId()) .handle_class(THIS_CLASS) .create_time(DateUtil.now()) .build(); JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); taskTab.insert(json); - this.findStartPoint(); -// this.immediateNotifyAcs(); + this.immediateNotifyAcs(); return String.valueOf(dto.getTask_id()); } @@ -357,16 +363,24 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask { /* * 下发给ACS时需要特殊处理 */ - JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '"+THIS_CLASS+"' and task_status = '"+TaskStatusEnum.START_AND_POINT.getCode()+"' and is_delete ='0'").getResultJSONArray(0); + JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0); ArrayList resultList = new ArrayList<>(); for (int i = 0; i < arr.size(); i++) { JSONObject json = arr.getJSONObject(i); + + String point_code1 = json.getString("point_code1"); + //判断起点是否属于养生A区 + if (point_code1.startsWith("2")) { + //养生A区发给ACS需要新的点位(2101-03-1----->21011-03-1) + point_code1 = point_code1.substring(0, 4) + "1" + point_code1.substring(4, 9); + } + AcsTaskDto dto = AcsTaskDto.builder() .task_id(json.getString("task_id")) .task_code(json.getString("task_code")) .task_type(json.getString("acs_task_type")) - .start_device_code(json.getString("point_code1")) + .start_device_code(point_code1) .next_device_code(json.getString("point_code3")) .vehicle_code(json.getString("vehicle_code")) .vehicle_type(json.getString("vehicle_type")) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callEmpty/YqxCallEmpVehicleTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callEmpty/YqxCallEmpVehicleTask.java index 91b5d58..4bdcb9d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callEmpty/YqxCallEmpVehicleTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callEmpty/YqxCallEmpVehicleTask.java @@ -1,7 +1,6 @@ package org.nl.wms.sch.tasks.callEmpty; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -15,20 +14,14 @@ import org.nl.modules.common.utils.SecurityUtils; import org.nl.modules.system.util.CodeUtil; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; -import org.nl.modules.wql.util.SpringContextHolder; -import org.nl.wms.pdm.service.DeviceService; -import org.nl.wms.pdm.service.dto.DeviceDto; import org.nl.wms.sch.SchTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; -import org.nl.wms.sch.service.PointService; -import org.nl.wms.sch.service.dto.PointDto; import org.nl.wms.sch.tasks.AcsTaskDto; import org.nl.wms.sch.tasks.RegionTypeEnum; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; @@ -225,6 +218,8 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask { .task_id(org.nl.wms.util.IdUtil.getLongId()) .task_code(CodeUtil.getNewCode("TASK_CODE")) .task_type("") + .acs_task_type("2") + .task_name("暂存位>叠盘架空载具") .task_status(TaskStatusEnum.START_AND_POINT.getCode()) .point_code1(jsonZcKtp.getString("point_code")) .point_code2(jsonDpjStart2.getString("point_code")) @@ -260,6 +255,8 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask { .task_id(org.nl.wms.util.IdUtil.getLongId()) .task_code(CodeUtil.getNewCode("TASK_CODE")) .task_type("") + .acs_task_type("2") + .task_name("养生A区>叠盘架空载具") .task_status(TaskStatusEnum.START_AND_POINT.getCode()) .point_code1(jsonStartPoint.getString("point_code")) .point_code2(jsonDpjStart2.getString("point_code")) @@ -283,6 +280,8 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask { .task_id(org.nl.wms.util.IdUtil.getLongId()) .task_code(CodeUtil.getNewCode("TASK_CODE")) .task_type("") + .acs_task_type("3") + .task_name("养生A区>叠盘架空载具") .task_status(TaskStatusEnum.START_AND_POINT.getCode()) .point_code1(jsonStartPoint.getString("point_code")) .point_code2(jsonDpjStart2.getString("point_code")) @@ -335,6 +334,7 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask { SchTaskDto dto = SchTaskDto.builder().task_id(org.nl.wms.util.IdUtil.getLongId()) .task_code(CodeUtil.getNewCode("TASK_CODE")) .task_type("") + .task_name("油漆线叫空载具") .task_status(TaskStatusEnum.SURE_END.getCode()) .point_code2(point_code2) .vehicle_code(form.getString("vehicle_code")) @@ -347,8 +347,7 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask { JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); taskTab.insert(json); - this.findStartPoint(); -// this.immediateNotifyAcs(); + this.immediateNotifyAcs(); return String.valueOf(dto.getTask_id()); } @@ -375,11 +374,18 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask { ArrayList resultList = new ArrayList<>(); for (int i = 0; i < arr.size(); i++) { JSONObject json = arr.getJSONObject(i); + String point_code1 = json.getString("point_code1"); + //判断起点是否属于养生A区 + if (point_code1.startsWith("2")) { + //养生A区发给ACS需要新的点位(2101-03-1----->21011-03-1) + point_code1 = point_code1.substring(0, 4) + "1" + point_code1.substring(4, 9); + } + AcsTaskDto dto = AcsTaskDto.builder() .task_id(json.getString("task_id")) .task_code(json.getString("task_code")) .task_type(json.getString("acs_task_type")) - .start_device_code(json.getString("point_code1")) + .start_device_code(point_code1) .next_device_code(json.getString("point_code3")) .vehicle_code(json.getString("vehicle_code")) .vehicle_type(json.getString("vehicle_type")) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callMaterial/YqxCallMaterial.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callMaterial/YqxCallMaterial.java index 81f92bd..33e1f60 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callMaterial/YqxCallMaterial.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callMaterial/YqxCallMaterial.java @@ -195,11 +195,15 @@ public class YqxCallMaterial extends AbstractAcsTask { ArrayList acsTaskArr = new ArrayList<>(); for (int i = 0; i < arr.size(); i++) { JSONObject json = arr.getJSONObject(i); + //养生A区发给ACS需要新的点位(2101-03-1----->21011-03-1) + String point_code =json.getString("point_code1"); + String newPoint = point_code.substring(0, 4) + "1" + point_code.substring(4, 9); + AcsTaskDto dto = AcsTaskDto.builder() .task_id(json.getString("task_id")) .task_code(json.getString("task_code")) .task_type(json.getString("acs_task_type")) - .start_device_code(json.getString("point_code1")) + .start_device_code(newPoint) .next_device_code(json.getString("point_code3")) .vehicle_code(json.getString("vehicle_code")) .vehicle_type(json.getString("vehicle_type")) @@ -231,6 +235,8 @@ public class YqxCallMaterial extends AbstractAcsTask { .task_id(IdUtil.getLongId()) .task_code(CodeUtil.getNewCode("TASK_CODE")) .task_type("task_type") + .task_name("油漆线叫料") + .material_qty(qty) .task_status(TaskStatusEnum.SURE_END.getCode()) .point_code2(point_code2) .vehicle_code(vehicle_code) @@ -291,6 +297,11 @@ public class YqxCallMaterial extends AbstractAcsTask { taskObj.put("update_time", DateUtil.now()); taskTab.update(taskObj); - return taskObj.getString("point_code3"); + + //养生A区发给ACS需要新的点位(2101-03-1----->21011-03-1) + String point_code =taskObj.getString("point_code3"); + String newPoint = point_code.substring(0, 4) + "1" + point_code.substring(4, 9); + + return newPoint; } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendEmpty/HtSendEmpVehicleTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendEmpty/HtSendEmpVehicleTask.java index 412a765..a5bf266 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendEmpty/HtSendEmpVehicleTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendEmpty/HtSendEmpVehicleTask.java @@ -129,6 +129,7 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask { SchTaskDto dto = SchTaskDto.builder().task_id(org.nl.wms.util.IdUtil.getLongId()) .task_code(CodeUtil.getNewCode("TASK_CODE")) .task_type("") + .task_name("电梯送空载具") .task_status(TaskStatusEnum.SURE_START.getCode()) .point_code1(point_code1) .vehicle_code(form.getString("vehicle_code")) @@ -392,7 +393,11 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask { jsonEndPoint.put("lock_type", "2"); pointTab.update(jsonEndPoint); } - + //判断点位是否属于养生A区 + if (point_code.startsWith("2")) { + //养生A区发给ACS需要新的点位(2101-03-1----->21011-03-1) + point_code = point_code.substring(0, 4) + "1" + point_code.substring(4, 9); + } return point_code; } @@ -406,12 +411,21 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask { ArrayList resultList = new ArrayList<>(); for (int i = 0; i < arr.size(); i++) { JSONObject json = arr.getJSONObject(i); + + String point_code3=json.getString("point_code3"); + //判断终点是否属于养生A区 + if (point_code3.startsWith("2")) { + //养生A区发给ACS需要新的点位(2101-03-1----->21011-03-1) + point_code3 = point_code3.substring(0, 4) + "1" + point_code3.substring(4, 9); + } + + AcsTaskDto dto = AcsTaskDto.builder() .task_id(json.getString("task_id")) .task_code(json.getString("task_code")) .task_type(json.getString("acs_task_type")) .start_device_code(json.getString("point_code1")) - .next_device_code(json.getString("point_code3")) + .next_device_code(point_code3) .vehicle_code(json.getString("vehicle_code")) .vehicle_type(json.getString("vehicle_type")) .priority(json.getString("priority")) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendEmpty/YqxSendEmpVehicleTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendEmpty/YqxSendEmpVehicleTask.java index 2fc7fb8..4177b9b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendEmpty/YqxSendEmpVehicleTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendEmpty/YqxSendEmpVehicleTask.java @@ -1,7 +1,6 @@ package org.nl.wms.sch.tasks.sendEmpty; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -11,9 +10,7 @@ import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.modules.common.exception.BadRequestException; -import org.nl.modules.common.utils.SecurityUtils; import org.nl.modules.system.util.CodeUtil; -import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.sch.SchTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; @@ -197,7 +194,6 @@ public class YqxSendEmpVehicleTask extends AbstractAcsTask { } - @Override public void cancel(String task_id) { @@ -349,7 +345,11 @@ public class YqxSendEmpVehicleTask extends AbstractAcsTask { jsonEndPoint.put("lock_type", "2"); pointTab.update(jsonEndPoint); } - + //判断点位是否属于养生A区 + if (point_code.startsWith("2")) { + //养生A区发给ACS需要新的点位(2101-03-1----->21011-03-1) + point_code = point_code.substring(0, 4) + "1" + point_code.substring(4, 9); + } return point_code; } @@ -358,17 +358,25 @@ public class YqxSendEmpVehicleTask extends AbstractAcsTask { /* * 下发给ACS时需要特殊处理 */ - JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '"+THIS_CLASS+"' and task_status = '"+TaskStatusEnum.START_AND_POINT.getCode()+"' and is_delete ='0'").getResultJSONArray(0); + JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0); ArrayList resultList = new ArrayList<>(); for (int i = 0; i < arr.size(); i++) { JSONObject json = arr.getJSONObject(i); + String point_code3 = json.getString("point_code3"); + //判断终点是否属于养生A区 + if (point_code3.startsWith("2")) { + //养生A区发给ACS需要新的点位(2101-03-1----->21011-03-1) + point_code3 = point_code3.substring(0, 4) + "1" + point_code3.substring(4, 9); + } + + AcsTaskDto dto = AcsTaskDto.builder() .task_id(json.getString("task_id")) .task_code(json.getString("task_code")) .task_type(json.getString("task_type")) .start_device_code(json.getString("point_code1")) - .next_device_code(json.getString("point_code3")) + .next_device_code(point_code3) .vehicle_code(json.getString("vehicle_code")) .vehicle_type(json.getString("vehicle_type")) .priority(json.getString("priority")) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/GjxSendMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/GjxSendMaterialTask.java index b042d82..6346282 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/GjxSendMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/GjxSendMaterialTask.java @@ -217,12 +217,16 @@ public class GjxSendMaterialTask extends AbstractAcsTask { ArrayList acsTaskArr = new ArrayList<>(); for (int i = 0; i < arr.size(); i++) { JSONObject json = arr.getJSONObject(i); + //养生A区发给ACS需要新的点位(2101-03-1----->21011-03-1) + String point_code = json.getString("point_code3"); + String newPoint = point_code.substring(0, 4) + "1" + point_code.substring(4, 9); + AcsTaskDto dto = AcsTaskDto.builder() .task_id(json.getString("task_id")) .task_code(json.getString("task_code")) .task_type(json.getString("acs_task_type")) .start_device_code(json.getString("point_code1")) - .next_device_code(json.getString("point_code3")) + .next_device_code(newPoint) .vehicle_code(json.getString("vehicle_code")) .vehicle_type(json.getString("vehicle_type")) .priority(json.getString("priority")) @@ -244,11 +248,20 @@ public class GjxSendMaterialTask extends AbstractAcsTask { WQLObject workOrderTab = WQLObject.getWQLObject("PDM_BD_WorkOrder"); //点位基础表【SCH_BASE_Point】 WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point"); + + //任务表【SCH_BASE_Task】 + WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); + //判断当前点是否有未完成的任务 + JSONObject taskObj = taskTab.query("is_delete='0' and point_code1 = '" + point_code1 + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(taskObj)) throw new BadRequestException("当前点位" + point_code1 + "存在未完成的任务"); + String device_code = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0).getString("device_code"); + JSONObject workOrderObj = workOrderTab.query("device_code = '" + device_code + "' and order_status = '3' and is_delete ='0'").uniqueResult(0); if (ObjectUtil.isEmpty(workOrderObj)) throw new BadRequestException("该设备当前未生产或者已删除"); + SchTaskDto dto = SchTaskDto.builder() .task_id(IdUtil.getLongId()) .task_code(CodeUtil.getNewCode("TASK_CODE")) @@ -257,6 +270,7 @@ public class GjxSendMaterialTask extends AbstractAcsTask { .task_status(TaskStatusEnum.SURE_START.getCode()) .point_code1(point_code1) .vehicle_code(vehicle_code) + .material_qty(qty) .material_info_id(workOrderObj.getLong("workorder_id")) .material_id(workOrderObj.getLong("material_id")) .vehicle_type(vehicle_type) @@ -264,8 +278,7 @@ public class GjxSendMaterialTask extends AbstractAcsTask { .create_time(DateUtil.now()) .request_param(whereJson.toJSONString()) .build(); - //任务表【SCH_BASE_Task】 - WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); + JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); taskTab.insert(json); @@ -315,9 +328,13 @@ public class GjxSendMaterialTask extends AbstractAcsTask { taskObj.put("update_time", DateUtil.now()); taskTab.update(taskObj); + //养生A区发给ACS需要新的点位(2101-03-1----->21011-03-1) + String point_code = jsonOnePoint.getString("point_code"); + String newPoint = point_code.substring(0, 4) + "1" + point_code.substring(4, 9); + // 点位上锁 jsonOnePoint.put("lock_type", "2"); pointTab.update(jsonOnePoint); - return jsonOnePoint.getString("point_code"); + return newPoint; } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/HkxSendMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/HkxSendMaterialTask.java index 4e966ba..3848674 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/HkxSendMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/HkxSendMaterialTask.java @@ -207,6 +207,13 @@ public class HkxSendMaterialTask extends AbstractAcsTask { String vehicle_code = whereJson.getString("vehicle_code"); String qty = whereJson.getString("qty"); + + //任务表【SCH_BASE_Task】 + WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); + //判断当前点是否有未完成的任务 + JSONObject taskObj = taskTab.query("is_delete='0' and point_code1 = '" + point_code1 + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(taskObj)) throw new BadRequestException("当前点位" + point_code1 + "存在未完成的任务"); + //生产工单表【PDM_BD_WorkOrder】 WQLObject workOrderTab = WQLObject.getWQLObject("PDM_BD_WorkOrder"); //点位基础表【SCH_BASE_Point】 @@ -221,6 +228,7 @@ public class HkxSendMaterialTask extends AbstractAcsTask { .task_code(CodeUtil.getNewCode("TASK_CODE")) .task_type("task_type") .task_name("豪凯线满料") + .material_qty(qty) .task_status(TaskStatusEnum.SURE_START.getCode()) .point_code1(point_code1) .vehicle_code(vehicle_code) @@ -231,8 +239,6 @@ public class HkxSendMaterialTask extends AbstractAcsTask { .create_time(DateUtil.now()) .request_param(whereJson.toJSONString()) .build(); - //任务表【SCH_BASE_Task】 - WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); taskTab.insert(json); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/YqxSendMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/YqxSendMaterialTask.java index 9bf6525..e71d70a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/YqxSendMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/YqxSendMaterialTask.java @@ -144,6 +144,14 @@ public class YqxSendMaterialTask extends AbstractAcsTask { WQLObject workOrderTab = WQLObject.getWQLObject("PDM_BD_WorkOrder"); //点位基础表【SCH_BASE_Point】 WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point"); + + //任务表【SCH_BASE_Task】 + WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); + //判断当前点是否有未完成的任务 + JSONObject taskObj = taskTab.query("is_delete='0' and point_code1 = '" + point_code1 + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(taskObj)) throw new BadRequestException("当前点位" + point_code1 + "存在未完成的任务"); + + String device_code = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0).getString("device_code"); JSONObject workOrderObj = workOrderTab.query("device_code = '" + device_code + "' and order_status = '3' and is_delete ='0'").uniqueResult(0); @@ -166,7 +174,6 @@ public class YqxSendMaterialTask extends AbstractAcsTask { .request_param(whereJson.toJSONString()) .build(); //任务表【SCH_BASE_Task】 - WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); taskTab.insert(json); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/wms.xls b/lms/nladmin-system/src/main/java/org/nl/wms/wms.xls index 68791520e7151b6674a1645c5f1ff811d60dd706..855cacce10109e67b811472a8b808c2523c5c636 100644 GIT binary patch delta 12462 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 diff --git a/lms/nladmin-ui/src/views/wms/sch/task/index.vue b/lms/nladmin-ui/src/views/wms/sch/task/index.vue index 73d49c2..0d37c08 100644 --- a/lms/nladmin-ui/src/views/wms/sch/task/index.vue +++ b/lms/nladmin-ui/src/views/wms/sch/task/index.vue @@ -116,6 +116,7 @@ +