From 310bcfe72f9907647d4b1a1db1653b078dc27734 Mon Sep 17 00:00:00 2001 From: liuxy Date: Mon, 10 Oct 2022 19:58:36 +0800 Subject: [PATCH] =?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 --- .../wms/pda/mps/rest/RawFoilController.java | 12 +- .../wms/pda/mps/service/RawFoilService.java | 15 +- .../mps/service/impl/RawFoilServiceImpl.java | 365 +++++++++--------- .../java/org/nl/wms/pda/mps/wql/PDA_01.wql | 87 ----- .../org/nl/wms/pda/mps/wql/PDA_RAWFOIL_01.wql | 169 ++++++++ .../nl/wms/sch/tasks/BookTwoConfirmTask.java | 43 ++- .../org/nl/wms/sch/tasks/CallEmpReelTask.java | 7 +- 7 files changed, 413 insertions(+), 285 deletions(-) delete mode 100644 nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_01.wql create mode 100644 nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_RAWFOIL_01.wql diff --git a/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/RawFoilController.java b/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/RawFoilController.java index d4b06f304..bc860165b 100644 --- a/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/RawFoilController.java +++ b/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/RawFoilController.java @@ -48,27 +48,31 @@ public class RawFoilController { @Log("呼叫空轴") @ApiOperation("呼叫空轴") public ResponseEntity needEmptyAxis(@RequestBody JSONObject whereJson) { - return new ResponseEntity<>(rawFoilService.needEmptyAxis(whereJson), HttpStatus.OK); + rawFoilService.needEmptyAxis(whereJson); + return new ResponseEntity<>( HttpStatus.OK); } @PostMapping("/confirmBlanking") @Log("确认下卷") @ApiOperation("确认下卷") public ResponseEntity confirmBlanking(@RequestBody JSONObject whereJson) { - return new ResponseEntity<>(rawFoilService.confirmBlanking(whereJson), HttpStatus.OK); + rawFoilService.confirmBlanking(whereJson); + return new ResponseEntity<>( HttpStatus.OK); } @PostMapping("/finishBlanking") @Log("下卷完成") @ApiOperation("下卷完成") public ResponseEntity finishBlanking(@RequestBody JSONObject whereJson) { - return new ResponseEntity<>(rawFoilService.finishBlanking(whereJson), HttpStatus.OK); + rawFoilService.finishBlanking(whereJson); + return new ResponseEntity<>(HttpStatus.OK); } @PostMapping("/finish") @Log("完成") @ApiOperation("完成") public ResponseEntity finish(@RequestBody JSONObject whereJson) { - return new ResponseEntity<>(rawFoilService.finish(whereJson), HttpStatus.OK); + rawFoilService.finish(whereJson); + return new ResponseEntity<>(HttpStatus.OK); } } diff --git a/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/RawFoilService.java b/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/RawFoilService.java index d906e62ed..6930a580f 100644 --- a/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/RawFoilService.java +++ b/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/RawFoilService.java @@ -1,5 +1,6 @@ package org.nl.wms.pda.mps.service; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; public interface RawFoilService { @@ -8,47 +9,47 @@ public interface RawFoilService { * 查询生产区域 * @return json */ - JSONObject queryProductArea(); + JSONArray queryProductArea(); /** * 查询生箔生产进度 * @param whereJson / * @return JSONObject */ - JSONObject queryRawFoil(JSONObject whereJson); + JSONArray queryRawFoil(JSONObject whereJson); /** * 查询生箔工单 * @param whereJson / * @return JSONObject */ - JSONObject queryRawFoilList(JSONObject whereJson); + JSONArray queryRawFoilList(JSONObject whereJson); /** * 确认下卷 * @param whereJson / * @return JSONObject */ - JSONObject needEmptyAxis(JSONObject whereJson); + void needEmptyAxis(JSONObject whereJson); /** * 查询生箔工单 * @param whereJson / * @return JSONObject */ - JSONObject confirmBlanking(JSONObject whereJson); + void confirmBlanking(JSONObject whereJson); /** * 下卷完成 * @param whereJson / * @return JSONObject */ - JSONObject finishBlanking(JSONObject whereJson); + void finishBlanking(JSONObject whereJson); /** * 完成 * @param whereJson / * @return JSONObject */ - JSONObject finish(JSONObject whereJson); + void finish(JSONObject whereJson); } diff --git a/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilServiceImpl.java b/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilServiceImpl.java index 147f9d7ea..4923c4cde 100644 --- a/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilServiceImpl.java +++ b/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilServiceImpl.java @@ -1,7 +1,9 @@ package org.nl.wms.pda.mps.service.impl; +import cn.hutool.core.date.DateUnit; 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; import com.alibaba.fastjson.JSONArray; @@ -17,10 +19,13 @@ import org.nl.wms.ext.acs.service.AcsToWmsService; import org.nl.wms.pda.mps.service.RawFoilService; import org.nl.wms.sch.service.PointService; import org.nl.wms.sch.service.dto.PointDto; +import org.nl.wms.sch.tasks.BookTwoConfirmTask; import org.nl.wms.sch.tasks.CallEmpReelTask; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Date; + @Service @RequiredArgsConstructor @Slf4j @@ -29,218 +34,228 @@ public class RawFoilServiceImpl implements RawFoilService { private final PointService pointService; @Override - public JSONObject queryProductArea() { - JSONObject result = new JSONObject(); - - JSONArray rows = new JSONArray(); - result.put("rows", rows); - result.put("code", "1"); - result.put("desc", "查询成功"); - return result; + public JSONArray queryProductArea() { + JSONObject map = new JSONObject(); + map.put("flag", "3"); + JSONArray jsonArr = WQL.getWO("PDA_RAWFOIL_01").addParam("flag", "3").process().getResultJSONArray(0); + return jsonArr; } @Override - public JSONObject queryRawFoil(JSONObject whereJson) { - 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")); - // 2、调用接口 - JSONObject json = acsToWmsService.apply(param); - if (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")); + public JSONArray queryRawFoil(JSONObject whereJson) { + String point_code = whereJson.getString("point_code"); + String container_name = whereJson.getString("container_name"); + String product_area = whereJson.getString("product_area"); + + JSONArray resultArr = new JSONArray(); + JSONObject map = new JSONObject(); + map.put("flag", "4"); + map.put("point_code", point_code); + map.put("container_name", container_name); + map.put("product_area", product_area); + + // 如果都为空则默认区域为 A + if (ObjectUtil.isEmpty(point_code) && ObjectUtil.isEmpty(container_name) && ObjectUtil.isEmpty(product_area)) { + map.put("product_area", "A"); } - return result; + + JSONArray arr = WQL.getWO("PDA_RAWFOIL_01").addParamMap(map).process().getResultJSONArray(0); + for (int i = 0; i < arr.size(); i++) { + JSONObject json = new JSONObject(); + JSONObject jsonObject = arr.getJSONObject(i); + String theory_height = jsonObject.getString("theory_height"); + String eqp_velocity = jsonObject.getString("eqp_velocity"); + + // 计算生产所需时间: 理论长度 / 速度 + int need_time = NumberUtil.div(NumberUtil.div(theory_height, eqp_velocity).toString(), "60").intValue();// 分钟 + + // 计算预计结束时间: 开始时间 + 生产所需时间 + String realstart_time = jsonObject.getString("realstart_time"); + Date date = DateUtil.parse(realstart_time); + String end_time = DateUtil.offsetMinute(date, need_time).toString(); + + // 当前时间 - 预计结束时间 : 超过为红色、还有半小时为黄色 + Date now_time = DateUtil.parse(DateUtil.now()); + Date end_time2 = DateUtil.parse(end_time); + + long betweenDay = DateUtil.between(end_time2, now_time, DateUnit.MINUTE, false); + + if (betweenDay > 0) json.put("color_type", "1"); + if (betweenDay <= 0 && betweenDay >= -30) json.put("color_type", "2"); + + json.put("container_name", jsonObject.getString("container_name")); + json.put("realstart_time", jsonObject.getString("realstart_time")); + json.put("end_date", end_time); + json.put("point_code", jsonObject.getString("resource_name")); + json.put("pcsn", jsonObject.getString("product_name")); + json.put("product_name", jsonObject.getString("theory_height")); + json.put("mfg_order_name", jsonObject.getString("mfg_order_name")); + + resultArr.add(json); + } + return resultArr; } @Override - public JSONObject queryRawFoilList(JSONObject whereJson) { - 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")); - // 2、调用接口 - JSONObject json = acsToWmsService.apply(param); - if (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")); - } - return result; + public JSONArray queryRawFoilList(JSONObject whereJson) { + JSONObject map = new JSONObject(); + map.put("flag", "5"); + map.put("point_code", whereJson.getString("point_code")); + map.put("container_name", whereJson.getString("container_name")); + JSONArray resultJSONArray = WQL.getWO("PDA_RAWFOIL_01").addParamMap(map).process().getResultJSONArray(0); + return resultJSONArray; } @Override @Transactional(rollbackFor = Exception.class) - public JSONObject needEmptyAxis(JSONObject whereJson) { - JSONObject result = new JSONObject(); - JSONArray rows = new JSONArray(); + public void needEmptyAxis(JSONObject whereJson) { WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); - String end_pint_code = whereJson.getString("end_pint_code"); + String end_pint_code = whereJson.getString("point_code"); - try { - if (ObjectUtil.isEmpty(end_pint_code)) throw new BadRequestException("终点点位不能为空"); - String start_pint_code = ""; + if (ObjectUtil.isEmpty(end_pint_code)) throw new BadRequestException("终点点位不能为空"); + String start_pint_code = ""; - // 1.查询此点位是否存在 - PointDto jsonPoint = pointService.findByCode(end_pint_code); - if (ObjectUtil.isEmpty(jsonPoint)) throw new BadRequestException("此点位不存在"); - // 2.根据就近原则查对应空卷抽 - JSONObject map = new JSONObject(); - map.put("flag", "1"); - map.put("product_area",jsonPoint.getProduct_area()); - map.put("point_location",jsonPoint.getPoint_location()); - JSONObject jsonIvt = WQL.getWO("PDA_01").addParamMap(map).process().uniqueResult(0); - // 3.如果没找到则继续找下一节点 - if (ObjectUtil.isEmpty(jsonIvt)) { - String point_location = jsonPoint.getPoint_location(); - if (StrUtil.equals(point_location, "0")) map.put("point_location","1"); - if (StrUtil.equals(point_location, "1")) map.put("point_location","0"); - JSONObject jsonIvt_tow = WQL.getWO("PDA_01").addParamMap(map).process().uniqueResult(0); + // 1.查询此点位是否存在 + PointDto jsonPoint = pointService.findByCode(end_pint_code); + if (ObjectUtil.isEmpty(jsonPoint)) throw new BadRequestException("此点位不存在"); + // 2.根据就近原则查对应空卷抽 + JSONObject map = new JSONObject(); + map.put("flag", "1"); + map.put("product_area", jsonPoint.getProduct_area()); + map.put("point_location", jsonPoint.getPoint_location()); + JSONObject jsonIvt = WQL.getWO("PDA_RAWFOIL_01").addParamMap(map).process().uniqueResult(0); + // 3.如果没找到则继续找下一节点 + if (ObjectUtil.isEmpty(jsonIvt)) { + String point_location = jsonPoint.getPoint_location(); + if (StrUtil.equals(point_location, "0")) map.put("point_location", "1"); + if (StrUtil.equals(point_location, "1")) map.put("point_location", "0"); + JSONObject jsonIvt_tow = WQL.getWO("PDA_RAWFOIL_01").addParamMap(map).process().uniqueResult(0); - if (ObjectUtil.isEmpty(jsonIvt_tow)) throw new BadRequestException("库存不足"); - start_pint_code = jsonIvt_tow.getString("point_code"); - } else { - start_pint_code = jsonIvt.getString("point_code"); - } - // 起点和终点确定 生成任务 - JSONObject param = new JSONObject(); - param.put("start_pint_code",start_pint_code); - param.put("end_pint_code",end_pint_code); - - CallEmpReelTask callEmpReelTask = new CallEmpReelTask(); - String taskdtl_id = callEmpReelTask.createTask(param); - - // 下发任务 - JSONObject jsonObject = callEmpReelTask.renotifyAcs(taskdtl_id); - if (StrUtil.equals(jsonObject.getString("status"), "200")) { - // 成功返回 更新任务状态 - JSONObject jsonTask = taskTab.query("taskdtl_id ='" + taskdtl_id + "'").uniqueResult(0); - jsonTask.put("task_status", "05"); - taskTab.update(jsonTask); - } - - result.put("rows", rows); - result.put("code", "1"); - result.put("desc", "操作成功"); - - } catch (Exception e) { - result.put("rows", rows); - result.put("code", "0"); - result.put("desc", "操作失败:"+e.getMessage()); + if (ObjectUtil.isEmpty(jsonIvt_tow)) throw new BadRequestException("库存不足"); + start_pint_code = jsonIvt_tow.getString("empty_point_code"); + } else { + start_pint_code = jsonIvt.getString("empty_point_code"); + } + // 起点和终点确定 生成任务 + JSONObject param = new JSONObject(); + param.put("start_pint_code", start_pint_code); + param.put("end_pint_code", end_pint_code); + + CallEmpReelTask callEmpReelTask = new CallEmpReelTask(); + String taskdtl_id = callEmpReelTask.createTask(param); + + // 下发任务 + JSONObject jsonObject = callEmpReelTask.renotifyAcs(taskdtl_id); + if (StrUtil.equals(jsonObject.getString("status"), "200")) { + // 成功返回 更新任务状态 + JSONObject jsonTask = taskTab.query("taskdtl_id ='" + taskdtl_id + "'").uniqueResult(0); + jsonTask.put("task_status", "05"); + taskTab.update(jsonTask); } - return result; } @Override - public JSONObject confirmBlanking(JSONObject whereJson) { - String start_pint_code = whereJson.getString("start_pint_code"); + public void confirmBlanking(JSONObject whereJson) { - JSONObject result = new JSONObject(); - JSONArray rows = new JSONArray(); + } - try { - if (ObjectUtil.isEmpty(start_pint_code)) throw new BadRequestException("起点不能为空"); - String end_pint_code =""; + @Override + public void finishBlanking(JSONObject whereJson) { + String start_pint_code = whereJson.getString("point_code"); - // 1.查询此点位是否存在 - PointDto jsonPoint = pointService.findByCode(start_pint_code); - if (ObjectUtil.isEmpty(jsonPoint)) throw new BadRequestException("起点点位不存在"); + WQLObject regionTab = WQLObject.getWQLObject("ST_IVT_CoolRegionIO"); // 冷却区出入表 + WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase"); // 物料表 + WQLObject coolTab = WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder"); // 生箔工单表 + WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表 - // 2.根据就近原则查对应空卷抽 - JSONObject map = new JSONObject(); - map.put("flag", "2"); - map.put("product_area",jsonPoint.getProduct_area()); - map.put("point_location",jsonPoint.getPoint_location()); - JSONObject jsonIvt = WQL.getWO("PDA_01").addParamMap(map).process().uniqueResult(0); - // 3.如果没找到则继续找下一节点 - if (ObjectUtil.isEmpty(jsonIvt)) { - String point_location = jsonPoint.getPoint_location(); - if (StrUtil.equals(point_location, "0")) map.put("point_location","1"); - if (StrUtil.equals(point_location, "1")) map.put("point_location","0"); - JSONObject jsonIvt_tow = WQL.getWO("PDA_01").addParamMap(map).process().uniqueResult(0); + JSONObject jsonCool = coolTab.query("mfg_order_name = '" + whereJson.getString("mfg_order_name") + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(jsonIvt_tow)) throw new BadRequestException("没有空位"); - end_pint_code = jsonIvt_tow.getString("point_code"); - } else { - end_pint_code = jsonIvt.getString("point_code"); - } - // 4.起点和终点确定 生成任务 + if (ObjectUtil.isEmpty(start_pint_code)) throw new BadRequestException("起点不能为空"); + String end_point_code = ""; - // 5.插入入库单 + // 1.查询此点位是否存在 + PointDto jsonPoint = pointService.findByCode(start_pint_code); + if (ObjectUtil.isEmpty(jsonPoint)) throw new BadRequestException("起点点位不存在"); - // 6.下发任务 - - } catch (Exception e) { + // 2.根据就近原则查对应空卷抽 + JSONObject map = new JSONObject(); + map.put("flag", "2"); + map.put("product_area", jsonPoint.getProduct_area()); + map.put("point_location", jsonPoint.getPoint_location()); + JSONObject jsonIvt = WQL.getWO("PDA_RAWFOIL_01").addParamMap(map).process().uniqueResult(0); + // 3.如果没找到则继续找下一节点 + if (ObjectUtil.isEmpty(jsonIvt)) { + String point_location = jsonPoint.getPoint_location(); + if (StrUtil.equals(point_location, "0")) map.put("point_location", "1"); + if (StrUtil.equals(point_location, "1")) map.put("point_location", "0"); + JSONObject jsonIvt_tow = WQL.getWO("PDA_RAWFOIL_01").addParamMap(map).process().uniqueResult(0); + if (ObjectUtil.isEmpty(jsonIvt_tow)) throw new BadRequestException("没有空位"); + end_point_code = jsonIvt_tow.getString("full_point_code"); + } else { + end_point_code = jsonIvt.getString("full_point_code"); } + // 4.起点和终点确定 生成任务 + JSONObject param = new JSONObject(); + param.put("start_pint_code",start_pint_code); + param.put("end_pint_code",end_point_code); + BookTwoConfirmTask bookTwoConfirmTask = new BookTwoConfirmTask(); + String taskdtl_id = bookTwoConfirmTask.createTask(param); - result.put("rows", rows); - result.put("code", "1"); - result.put("desc", "查询成功"); - return result; - } - - @Override - public JSONObject finishBlanking(JSONObject whereJson) { - JSONObject result = new JSONObject(); - - JSONArray rows = new JSONArray(); - result.put("rows", rows); - result.put("code", "1"); - result.put("desc", "查询成功"); - return result; - } - - @Override - public JSONObject finish(JSONObject whereJson) { - JSONObject result = new JSONObject(); - - JSONArray rows = new JSONArray(); - result.put("rows", rows); - result.put("code", "1"); - result.put("desc", "查询成功"); - return result; - } - - @Transactional(rollbackFor = Exception.class) - public String createTask(JSONObject param) { - WQLObject tab = WQLObject.getWQLObject("SCH_BASE_Task"); + // 5.插入入库单 Long currentUserId = SecurityUtils.getCurrentUserId(); String currentUsername = SecurityUtils.getCurrentUsername(); - JSONObject json = new JSONObject(); - json.put("taskdtl_id", IdUtil.getSnowflake(1,1).nextId()); - json.put("task_id",json.getString("taskdtl_id")); - json.put("task_code", CodeUtil.getNewCode("TASK_CODE")); - json.put("task_type", "05"); - json.put("task_status", "01"); - json.put("start_point_code", param.getString("start_pint_code")); - json.put("next_point_code", param.getString("end_pint_code")); - json.put("handle_class", "0"); - json.put("create_id", currentUserId); - json.put("create_name", currentUsername); - json.put("create_time", DateUtil.now()); - json.put("priority","1" ); - json.put("acs_task_type","1" ); - tab.insert(json); + JSONObject jsonMater = materTab.query("material_code = '" + jsonCool.getString("product_name") + "'").uniqueResult(0); - return json.getString("taskdtl_id"); + JSONObject jsonRegion = new JSONObject(); + jsonRegion.put("iostorinv_id", IdUtil.getSnowflake(1,1).nextId()); + jsonRegion.put("bill_code", CodeUtil.getNewCode("COOLREGION_BILL_CODE")); + jsonRegion.put("io_type", "1"); + jsonRegion.put("material_id", jsonMater.getString("material_id")); + jsonRegion.put("pcsn",""); + jsonRegion.put("vehicle_code",""); + jsonRegion.put("qty",jsonCool.getString("productin_qty")); + jsonRegion.put("qty_unit_id",""); + jsonRegion.put("bill_status","10"); + jsonRegion.put("start_point_code",start_pint_code); + jsonRegion.put("end_point_code",end_point_code); + jsonRegion.put("cust_id",""); + jsonRegion.put("create_mode","03"); + jsonRegion.put("task_id",taskdtl_id); + jsonRegion.put("create_id",currentUserId); + jsonRegion.put("create_name",currentUsername); + jsonRegion.put("create_time",DateUtil.now()); + regionTab.insert(jsonRegion); + + // 6.下发任务 + JSONObject jsonObject = bookTwoConfirmTask.renotifyAcs(taskdtl_id); + if (StrUtil.equals(jsonObject.getString("status"), "200")) { + // 成功返回 更新任务状态 + JSONObject jsonTask = taskTab.query("taskdtl_id ='" + taskdtl_id + "'").uniqueResult(0); + jsonTask.put("task_status", "05"); + taskTab.update(jsonTask); + // 更新出入表状态 + jsonRegion.put("bill_status", "30"); + jsonRegion.put("update_optid",currentUserId); + jsonRegion.put("update_optname",currentUsername); + jsonRegion.put("update_time",DateUtil.now()); + regionTab.update(jsonRegion); + } } + @Override + public void finish(JSONObject whereJson) { + WQLObject coolTab = WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder"); // 生箔工单表 + + JSONObject jsonCool = coolTab.query("mfg_order_name = '" + whereJson.getString("mfg_order_name") + "'").uniqueResult(0); + jsonCool.put("status","2"); + jsonCool.put("realend_time",DateUtil.now()); + jsonCool.put("finish_type","02"); + coolTab.update(jsonCool); + } } diff --git a/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_01.wql b/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_01.wql deleted file mode 100644 index f5d4f218c..000000000 --- a/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_01.wql +++ /dev/null @@ -1,87 +0,0 @@ -[交易说明] - 交易名: 手持接口 - 所属模块: - 功能简述: - 版权所有: - 表引用: - 版本经历: - -[数据库] - --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 - -[IO定义] - ################################################# - ## 表字段对应输入参数 - ################################################# - 输入.flag TYPEAS s_string - 输入.product_area TYPEAS s_string - 输入.point_location TYPEAS s_string - - -[临时表] - --这边列出来的临时表就会在运行期动态创建 - -[临时变量] - --所有中间过程变量均可在此处定义 - -[业务过程] - - ########################################## - # 1、输入输出检查 # - ########################################## - - - ########################################## - # 2、主过程前处理 # - ########################################## - - - ########################################## - # 3、业务主过程 # - ########################################## - - IF 输入.flag = "1" - QUERY - SELECT - ivt.* - FROM - ST_IVT_CoolPointIvt ivt - WHERE - ivt.empty_point_status = '02' - - OPTION 输入.product_area <> "" - ivt.product_area = 输入.product_area - ENDOPTION - - OPTION 输入.point_location <> "" - ivt.point_location = 输入.point_location - ENDOPTION - - order by ivt.point_code ASC - - ENDSELECT - ENDQUERY - ENDIF - - IF 输入.flag = "2" - QUERY - SELECT - ivt.* - FROM - ST_IVT_CoolPointIvt ivt - WHERE - ivt.full_point_status = '01' - - OPTION 输入.product_area <> "" - ivt.product_area = 输入.product_area - ENDOPTION - - OPTION 输入.point_location <> "" - ivt.point_location = 输入.point_location - ENDOPTION - - order by ivt.point_code ASC - - ENDSELECT - ENDQUERY - ENDIF \ No newline at end of file diff --git a/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_RAWFOIL_01.wql b/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_RAWFOIL_01.wql new file mode 100644 index 000000000..d5e6039a3 --- /dev/null +++ b/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_RAWFOIL_01.wql @@ -0,0 +1,169 @@ +[交易说明] + 交易名: 手持接口 + 所属模块: + 功能简述: + 版权所有: + 表引用: + 版本经历: + +[数据库] + --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 + +[IO定义] + ################################################# + ## 表字段对应输入参数 + ################################################# + 输入.flag TYPEAS s_string + 输入.product_area TYPEAS s_string + 输入.point_location TYPEAS s_string + 输入.point_code TYPEAS s_string + 输入.container_name TYPEAS s_string + 输入.product_area TYPEAS s_string + + +[临时表] + --这边列出来的临时表就会在运行期动态创建 + +[临时变量] + --所有中间过程变量均可在此处定义 + +[业务过程] + + ########################################## + # 1、输入输出检查 # + ########################################## + + + ########################################## + # 2、主过程前处理 # + ########################################## + + + ########################################## + # 3、业务主过程 # + ########################################## + + IF 输入.flag = "1" + QUERY + SELECT + ivt.* + FROM + ST_IVT_CoolPointIvt ivt + WHERE + ivt.empty_point_status = '02' + + OPTION 输入.product_area <> "" + ivt.product_area = 输入.product_area + ENDOPTION + + OPTION 输入.point_location <> "" + ivt.point_location = 输入.point_location + ENDOPTION + + order by ivt.point_code ASC + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "2" + QUERY + SELECT + ivt.* + FROM + ST_IVT_CoolPointIvt ivt + WHERE + ivt.full_point_status = '01' + + OPTION 输入.product_area <> "" + ivt.product_area = 输入.product_area + ENDOPTION + + OPTION 输入.point_location <> "" + ivt.point_location = 输入.point_location + ENDOPTION + + order by ivt.point_code ASC + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "3" + QUERY + SELECT + label, + value + FROM + sys_dict_detail + WHERE + name = 'product_area' + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "4" + QUERY + SELECT + der.* + FROM + PDM_BI_RawFoilWorkOrder der + WHERE + der.status = '1' + AND der.is_delete = '0' + + OPTION 输入.point_code <> "" + der.resource_name = 输入.point_code + ENDOPTION + + OPTION 输入.container_name <> "" + der.container_name = 输入.container_name + ENDOPTION + + OPTION 输入.product_area <> "" + der.product_area = 输入.product_area + ENDOPTION + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "5" + QUERY + SELECT + ( + CASE + der.status + WHEN '1' THEN '开始' + WHEN '2' THEN '结束' + END + ) AS status_name, + der.mfg_order_name AS mfg_order_name, + der.container_name AS container_name, + der.resource_name AS point_code, + der.product_name AS pcsn, + der.theory_height AS theory_height, + der.realstart_time AS realstart_time, + der.realend_time AS realend_time, + der.productin_qty AS productin_qty, + der.agvno AS agvno, + der.product_area AS product_area, + der.update_time AS update_time + FROM + PDM_BI_RawFoilWorkOrder der + WHERE + der.status = '1' + AND der.is_delete = '0' + + OPTION 输入.point_code <> "" + der.resource_name = 输入.point_code + ENDOPTION + + OPTION 输入.container_name <> "" + der.container_name = 输入.container_name + ENDOPTION + + ENDSELECT + ENDQUERY + ENDIF diff --git a/nladmin-system/src/main/java/org/nl/wms/sch/tasks/BookTwoConfirmTask.java b/nladmin-system/src/main/java/org/nl/wms/sch/tasks/BookTwoConfirmTask.java index 20895f437..16f890a41 100644 --- a/nladmin-system/src/main/java/org/nl/wms/sch/tasks/BookTwoConfirmTask.java +++ b/nladmin-system/src/main/java/org/nl/wms/sch/tasks/BookTwoConfirmTask.java @@ -28,9 +28,11 @@ public class BookTwoConfirmTask extends AbstractAcsTask { @Override @Transactional public void updateTaskStatus(JSONObject taskObj, String status) { - WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); - WQLObject pointTab = WQLObject.getWQLObject("sch_base_point"); - WQLObject ivtTab = WQLObject.getWQLObject("ST_IVT_CoolPointIvt"); + WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表 + WQLObject pointTab = WQLObject.getWQLObject("sch_base_point"); // 点位表 + WQLObject ivtTab = WQLObject.getWQLObject("ST_IVT_CoolPointIvt"); // 冷却区库存表 + WQLObject coolTab = WQLObject.getWQLObject("ST_IVT_CoolRegionIO"); // 冷却区出入表 + WQLObject rawTab = WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder"); // 生箔工序工单表 String task_id = taskObj.getString("task_id"); JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0); @@ -41,10 +43,20 @@ public class BookTwoConfirmTask extends AbstractAcsTask { } if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { + Long currentUserId = SecurityUtils.getCurrentUserId(); + String currentUsername = SecurityUtils.getCurrentUsername(); + // 更新任务状态为执行中 jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode()); jsonTask.put("update_time", DateUtil.now()); taskTab.update(jsonTask); + // 更新单据状态为执行中 + JSONObject jsonCool = coolTab.query("task_id = '" + task_id + "'").uniqueResult(0); + jsonCool.put("bill_status", "40"); + jsonCool.put("update_optid",currentUserId); + jsonCool.put("update_optname",currentUsername); + jsonCool.put("update_time",DateUtil.now()); + coolTab.update(jsonCool); } if(StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { @@ -55,20 +67,35 @@ public class BookTwoConfirmTask extends AbstractAcsTask { jsonTask.put("update_time", DateUtil.now()); taskTab.update(jsonTask); + String next_point_code = jsonTask.getString("next_point_code"); String start_point_code = jsonTask.getString("start_point_code"); PointService point = SpringContextHolder.getBean(PointService.class); // 校验起点是否存在 PointDto startDto = point.findByCode(start_point_code); - if (ObjectUtil.isEmpty(startDto)) throw new BadRequestException("未找到可用点位:" + startDto); + if (ObjectUtil.isEmpty(startDto)) throw new BadRequestException("起点未找到可用点位:" + start_point_code); + // 校验终点是否存在 - PointDto nextDto = point.findByCode(jsonTask.getString("next_point_code")); - if (ObjectUtil.isEmpty(nextDto)) throw new BadRequestException("未找到可用点位:" + nextDto); + JSONObject jsonIvt = ivtTab.query("point_code ='" + next_point_code + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(jsonIvt)) throw new BadRequestException("终点未找到可用点位:" + next_point_code); // 更新冷却库存状态 - JSONObject jsonIvt = ivtTab.query("point_code ='" + start_point_code + "'").uniqueResult(0); - jsonIvt.put("empty_point_status", "01"); + JSONObject jsonRaw = rawTab.query("resource_name ='" + start_point_code + "'").uniqueResult(0); + + jsonIvt.put("full_point_status", "02"); + jsonIvt.put("instorage_time", DateUtil.now()); + jsonIvt.put("container_name", jsonRaw.getString("container_name")); + jsonIvt.put("workorder_id", jsonRaw.getString("workorder_id")); + jsonIvt.put("ivt_qty", jsonRaw.getString("productin_qty")); ivtTab.update(jsonIvt); + + // 更新冷却区出入表 + JSONObject jsonCool = coolTab.query("task_id = '" + task_id + "'").uniqueResult(0); + jsonCool.put("bill_status","50"); + jsonCool.put("confirm_optid", SecurityUtils.getCurrentUserId()); + jsonCool.put("confirm_optname", SecurityUtils.getCurrentUsername()); + jsonCool.put("confirm_time", DateUtil.now()); + coolTab.update(jsonCool); } } diff --git a/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CallEmpReelTask.java b/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CallEmpReelTask.java index 1a2322f2f..2b329feec 100644 --- a/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CallEmpReelTask.java +++ b/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CallEmpReelTask.java @@ -69,14 +69,13 @@ public class CallEmpReelTask extends AbstractAcsTask { PointService point = SpringContextHolder.getBean(PointService.class); // 校验起点是否存在 - PointDto startDto = point.findByCode(start_point_code); - if (ObjectUtil.isEmpty(startDto)) throw new BadRequestException("未找到可用点位:" + startDto); + JSONObject jsonIvt = ivtTab.query("point_code ='" + start_point_code + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(jsonIvt)) throw new BadRequestException("未找到可用点位:" + start_point_code); // 校验终点是否存在 PointDto nextDto = point.findByCode(jsonTask.getString("next_point_code")); - if (ObjectUtil.isEmpty(nextDto)) throw new BadRequestException("未找到可用点位:" + nextDto); + if (ObjectUtil.isEmpty(nextDto)) throw new BadRequestException("未找到可用点位:" + jsonTask.getString("next_point_code")); // 更新冷却库存状态 - JSONObject jsonIvt = ivtTab.query("point_code ='" + start_point_code + "'").uniqueResult(0); jsonIvt.put("empty_point_status", "01"); ivtTab.update(jsonIvt); }