From 96743f940f77fd34be4611ce857fefae1dbb8371 Mon Sep 17 00:00:00 2001 From: tuqiang <437016993@qq.com> Date: Mon, 21 Jul 2025 17:40:09 +0800 Subject: [PATCH] =?UTF-8?q?rev:=E5=A0=86=E5=9E=9B=E6=9C=BA=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SlittingproductionplanController.java | 13 +- .../IPdmBiSlittingproductionplanService.java | 11 +- .../dao/PdmBiSlittingproductionplan.java | 12 +- .../PdmBiSlittingproductionplanMapper.java | 8 + .../PdmBiSlittingproductionplanMapper.xml | 54 ++ .../dto/PdmBiSlittingproductionplanDto.java | 10 +- ...dmBiSlittingproductionplanServiceImpl.java | 169 ++++- .../nl/b_lms/sch/point/dao/SchBasePoint.java | 2 + .../sch/point/dao/StIvtCoolregionio.java | 6 +- .../point/dao/mapper/SchBasePointMapper.java | 4 + .../point/dao/mapper/SchBasePointMapper.xml | 133 ++++ .../sch/tasks/TwoExcepionalMoveTask.java | 143 ++-- .../b_lms/sch/tasks/TwoOutBoxExcepTask.java | 175 +++-- .../iostorInv/dto/StructattrQuerry.java | 1 + .../impl/StIvtIostorinvOutServiceImpl.java | 37 +- .../util/impl/InBoxManageServiceImpl.java | 223 +++--- .../util/impl/InVehicleManageServiceImpl.java | 21 +- .../util/impl/OutBoxManageServiceImpl.java | 218 +++--- .../util/impl/OutBussManageServiceImpl.java | 154 ++-- .../impl/OutVehicleManageServiceImpl.java | 118 +-- .../st/dao/StIvtStructattr.java | 2 + .../st/dao/mapper/StIvtStructattrMapper.java | 22 + .../st/dao/mapper/StIvtStructattrMapper.xml | 378 ++++++++++ .../mes/service/impl/MesToLmsServiceImpl.java | 2 +- .../wms/ext/sap/rest/LmsToSapController.java | 2 +- .../wms/pda/mps/rest/RawFoilController.java | 17 + .../wms/pda/mps/service/RawFoilService.java | 10 + .../mps/service/impl/BakingServiceImpl.java | 691 +++++++++--------- .../mps/service/impl/FeedingServiceImpl.java | 210 ++++-- .../mps/service/impl/RawFoilServiceImpl.java | 165 +++-- .../pda/st/service/impl/PrintServiceImpl.java | 4 +- .../pdm/ivt/rest/HotPointIvtController.java | 160 ++-- .../pdm/ivt/service/HotPointIvtService.java | 166 ++--- .../service/impl/HotPointIvtServiceImpl.java | 504 ++++++------- .../controller/HotPointIvtController.java | 76 ++ .../HotPointIvtIoMstController.java | 14 + .../RawfoilWorkOrderController.java | 8 + .../service/HotPointIvtIoMstService.java | 4 + .../service/HotPointIvtService.java | 77 ++ .../service/RawfoilWorkOrderService.java | 2 + .../service/dao/HotPointIvt.java | 148 ++++ .../service/dao/HotRegionIoMst.java | 148 ++++ .../dao/mapper/CoolPointIvtMapper.java | 6 + .../service/dao/mapper/CoolPointIvtMapper.xml | 97 ++- .../dao/mapper/HotPointIvtIoMstMapper.java | 9 + .../service/dao/mapper/HotPointIvtMapper.java | 20 + .../service/dao/mapper/HotPointIvtMapper.xml | 95 +++ .../dao/mapper/RawfoilWorkOrderMapper.java | 4 +- .../dao/mapper/RawfoilWorkOrderMapper.xml | 8 + .../service/dto/HotPointIvtDto.java | 145 ++++ .../service/impl/HotPointIvtIoMstImpl.java | 14 + .../service/impl/HotPointIvtServiceImpl.java | 221 ++++++ .../impl/RawfoilWorkOrderServiceImpl.java | 34 +- .../org/nl/wms/sch/tasks/CallEmpReelTask.java | 148 ++-- .../org/nl/wms/sch/tasks/CoolCutTask.java | 457 ++++++------ .../org/nl/wms/sch/tasks/CutConveyorTask.java | 14 +- .../org/nl/wms/sch/tasks/InCoolIvtTask.java | 215 +++--- .../java/org/nl/wms/sch/tasks/InHotTask.java | 327 +++++---- .../java/org/nl/wms/sch/tasks/OutHotTask.java | 194 ++--- .../wms/pdm/order/rawfoilworkorder/index.vue | 65 +- .../rawfoilworkorder/rawfoilworkorder.js | 10 +- .../wms/pdm/order/slittingplan/AddDialog.vue | 149 ++-- .../wms/pdm/order/slittingplan/index.vue | 1 - .../slittingplan/slittingproductionplan.js | 9 +- 64 files changed, 4491 insertions(+), 2073 deletions(-) create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/controller/HotPointIvtController.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/controller/HotPointIvtIoMstController.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/HotPointIvtIoMstService.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/HotPointIvtService.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/HotPointIvt.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/HotRegionIoMst.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/HotPointIvtIoMstMapper.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/HotPointIvtMapper.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/HotPointIvtMapper.xml create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dto/HotPointIvtDto.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/impl/HotPointIvtIoMstImpl.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/impl/HotPointIvtServiceImpl.java diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/rest/SlittingproductionplanController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/rest/SlittingproductionplanController.java index 449db5b..e0ab3aa 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/rest/SlittingproductionplanController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/rest/SlittingproductionplanController.java @@ -54,8 +54,8 @@ public class SlittingproductionplanController { @Log("修改分切计划") //@SaCheckPermission("@el.check('slittingproductionplan:edit')") - public ResponseEntity update(@Validated @RequestBody PdmBiSlittingproductionplan dto) { - biSlittingproductionplanService.update(dto); + public ResponseEntity update(@RequestBody JSONObject whereJson) { + biSlittingproductionplanService.update(whereJson); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } @@ -127,4 +127,13 @@ public class SlittingproductionplanController { biSlittingproductionplanService.print1(list); return new ResponseEntity<>(HttpStatus.CREATED); } + + @GetMapping("/selectContainers") + @Log("查询分切计划") + + //@SaCheckPermission("@el.check('slittingproductionplan:list')") + public ResponseEntity selectContainers() { + return new ResponseEntity<>(biSlittingproductionplanService.selectContainers(), HttpStatus.OK); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/IPdmBiSlittingproductionplanService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/IPdmBiSlittingproductionplanService.java index 7faf2c6..4fe0410 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/IPdmBiSlittingproductionplanService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/IPdmBiSlittingproductionplanService.java @@ -1,5 +1,6 @@ package org.nl.b_lms.pdm.bi.slittingproductionplan.service; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dto.PdmBiSlittingproductionplanDto; @@ -7,6 +8,7 @@ import org.nl.b_lms.sch.tasks.slitter.mapper.dto.SlitterPlanDistinctDto; import org.nl.common.domain.query.PageQuery; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.CoolPointIvt; import java.util.List; import java.util.Map; @@ -35,9 +37,9 @@ public interface IPdmBiSlittingproductionplanService extends IService list); - List getSlittingproductionplanDtl(PdmBiSlittingproductionplanDto dto); + PdmBiSlittingproductionplan getSlittingproductionplanDtl(PdmBiSlittingproductionplanDto dto); void print1(List list); + + JSONArray selectContainers(); + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/PdmBiSlittingproductionplan.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/PdmBiSlittingproductionplan.java index 94708af..7cf3b5d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/PdmBiSlittingproductionplan.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/PdmBiSlittingproductionplan.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.Data; import lombok.EqualsAndHashCode; @@ -22,8 +24,9 @@ public class PdmBiSlittingproductionplan implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "workorder_id", type = IdType.NONE) /** 分切计划标识 */ + @TableId(value = "workorder_id", type = IdType.NONE) + @JsonSerialize(using = ToStringSerializer.class) private Long workorder_id; /** 分切订单类型 */ @@ -186,7 +189,12 @@ public class PdmBiSlittingproductionplan implements Serializable { private String costomer_code; /** 客户名称 */ private String costomer_name; - /** 产品厚度 */ private String thickness; + + /** 客户要求幅宽 */ + private String width_standard; + + /** 物料标准厚度 */ + private String thickness_request; } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.java index 745d0d4..66f54d3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.java @@ -3,17 +3,21 @@ package org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.mapper; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dto.PdmBiSlittingproductionplanDto; import org.nl.b_lms.sch.tasks.slitter.mapper.dto.SlitterPlanDistinctDto; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.CoolPointIvt; +import java.util.HashMap; import java.util.List; /** * @author lyd * @date 2024-02-26 **/ +@Mapper public interface PdmBiSlittingproductionplanMapper extends BaseMapper { List getAllCutPlan(Integer day); @@ -27,4 +31,8 @@ public interface PdmBiSlittingproductionplanMapper extends BaseMapper getAllCutPlan2(Integer day); IPage selectAllPage(@Param("dto") PdmBiSlittingproductionplanDto dto, @Param("page") IPage page); + + List selectContainers(); + + List querySlitterPlans(@Param("param") JSONObject map,@Param("areas") List areas); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml index aaac972..20cbb8e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dao/mapper/PdmBiSlittingproductionplanMapper.xml @@ -272,4 +272,58 @@ AND plan.manufacture_date #{dto.end_time} + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dto/PdmBiSlittingproductionplanDto.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dto/PdmBiSlittingproductionplanDto.java index 6676a7e..754762b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dto/PdmBiSlittingproductionplanDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/dto/PdmBiSlittingproductionplanDto.java @@ -63,7 +63,7 @@ public class PdmBiSlittingproductionplanDto extends PdmBiSlittingproductionplan private String manufacture_date; /** 管件类型 */ - private String paper_tube_or_FRP; + private String paper_tube_or_frp; /** 纸筒物料编码 */ private String paper_tube_material; @@ -155,6 +155,14 @@ public class PdmBiSlittingproductionplanDto extends PdmBiSlittingproductionplan private String product_area; + private String point_code; + + private String sort_seq; + + private String point_location; + + private String source_container_name; + /** * 人员对应的区域 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java index 83aba1c..ac9c4ab 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/bi/slittingproductionplan/service/impl/PdmBiSlittingproductionplanServiceImpl.java @@ -14,10 +14,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; +import org.checkerframework.checker.units.qual.A; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.mapper.PdmBiSlittingproductionplanMapper; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dto.PdmBiSlittingproductionplanDto; +import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; +import org.nl.b_lms.pdm.subpackagerelation.dao.mapper.PdmBiSubpackagerelationMapper; import org.nl.b_lms.sch.tasks.slitter.mapper.dto.SlitterPlanDistinctDto; import org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; @@ -30,7 +33,9 @@ import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.basedata.st.service.impl.UserAreaServiceImpl; import org.nl.wms.ext.mes.service.LmsToMesService; import org.nl.wms.pda.st.service.impl.PrintServiceImpl; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.CoolPointIvt; import org.nl.wms.pdm.rawfoilworkorder.service.dao.RawfoilWorkOrder; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper.CoolPointIvtMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -54,6 +59,10 @@ public class PdmBiSlittingproductionplanServiceImpl extends ServiceImpl queryAll(Map whereJson, PageQuery page) { @@ -85,17 +94,46 @@ public class PdmBiSlittingproductionplanServiceImpl extends ServiceImpl list = pdmBiSlittingproductionplanMapper.selectList(new LambdaQueryWrapper() + .eq(PdmBiSlittingproductionplan::getParent_container_name, parent_container_name) + .ne(PdmBiSlittingproductionplan::getStatus, "40")); + if (list.size() > 0){ + throw new BadRequestException("母卷号" + parent_container_name + "已存在对应的未完成的分切计划,请勿重复添加!"); + } + } + String package_box_sn = ""; + if (ObjectUtil.isNotEmpty(restruct_container_name)) { + List list = pdmBiSlittingproductionplanMapper.selectList(new LambdaQueryWrapper() + .eq(PdmBiSlittingproductionplan::getRestruct_container_name, restruct_container_name) + .eq(PdmBiSlittingproductionplan::getIs_delete, "0") + .ne(PdmBiSlittingproductionplan::getStatus, "40")); + if (list.size() > 0){ + throw new BadRequestException("母卷号" + parent_container_name + "已存在对应的未完成的分切计划,请勿重复添加!"); + } + PdmBiSubpackagerelation pdmBiSubpackagerelation = pdmBiSubpackagerelationMapper.selectOne(new LambdaQueryWrapper() + .eq(PdmBiSubpackagerelation::getContainer_name, restruct_container_name) + .eq(PdmBiSubpackagerelation::getStatus, "2")); + if (ObjectUtil.isNotEmpty(pdmBiSubpackagerelation)) { + throw new BadRequestException("改切母卷号" + restruct_container_name + "对应的子卷状态是入库,请核对子卷对应的包装关系再操作!"); + } + PdmBiSubpackagerelation subpackagerelation = pdmBiSubpackagerelationMapper.selectOne(new LambdaQueryWrapper() + .eq(PdmBiSubpackagerelation::getContainer_name, restruct_container_name)); + if (ObjectUtil.isNotEmpty(subpackagerelation)){ + package_box_sn = subpackagerelation.getPackage_box_sn(); + } + } List rows = tableData.stream() .map(row -> JSONObject.parseObject(JSON.toJSONString(row))) .collect(Collectors.toList()); @@ -103,6 +141,7 @@ public class PdmBiSlittingproductionplanServiceImpl extends ServiceImpl list = new ArrayList<>(); + //插入同一组分切计划 for (int i = 0; i < rows.size(); i++) { PdmBiSlittingproductionplan pdmBiSlittingproductionplan = pdmBiSlittingproductionplanMapper.selectOne(new LambdaQueryWrapper() .eq(ObjectUtil.isNotEmpty(rows.get(i).getString("container_name")), PdmBiSlittingproductionplan::getContainer_name, rows.get(i).getString("container_name"))); @@ -113,8 +152,8 @@ public class PdmBiSlittingproductionplanServiceImpl extends ServiceImpl rows = tableData.stream() + .map(row -> JSONObject.parseObject(JSON.toJSONString(row))) + .collect(Collectors.toList()); + JSONObject jo = rows.get(0); + PdmBiSlittingproductionplan dto = pdmBiSlittingproductionplanMapper.selectOne(new LambdaQueryWrapper() + .eq(PdmBiSlittingproductionplan::getWorkorder_id, whereJson.getString("workorder_id"))); if (dto == null) throw new BadRequestException("被删除或无权限,操作失败!"); String currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - entity.setUpdate_optid(currentUserId); - entity.setUpdate_optname(nickName); - entity.setUpdate_time(now); + dto.setUpdate_optid(currentUserId); + dto.setOrder_type(order_type); + dto.setProduct_name(jo.getString("product_name")); + dto.setDescription(jo.getString("description")); + dto.setParent_container_name(parent_container_name); + dto.setRestruct_container_name(restruct_container_name); + if (resource_name.contains("A")) { + dto.setQzz_generation("4"); + } else if (resource_name.contains("B")) { + dto.setQzz_generation("5"); + } + dto.setWare_house(ware_house); + dto.setResource_name(resource_name); + dto.setSplit_group(split_group); + dto.setManufacture_date(manufacture_date); + dto.setCostomer_code(jo.getString("costomer_code")); + dto.setCostomer_name(jo.getString("costomer_name")); + dto.setContainer_name(jo.getString("container_name")); + dto.setPaper_tube_or_frp(jo.getString("paper_tube_or_frp")); + if ("1".equals(jo.getString("paper_tube_or_frp"))) { + dto.setPaper_tube_material(jo.getString("paper_tube_material")); + dto.setPaper_tube_description(jo.getString("paper_tube_description")); + dto.setPaper_tube_model(jo.getString("paper_tube_model")); + // 解析描述数组 + String[] tubeArray = jo.getString("paper_tube_description").split("\\|"); + // 定义尺寸与长度 + String qzz_size = Character.toString(tubeArray[2].charAt(0)); + dto.setQzz_size(qzz_size); + } else if ("2".equals(jo.getString("paper_tube_or_frp"))) { + dto.setFRP_material(jo.getString("frp_material")); + dto.setFRP_description(jo.getString("frp_description")); + dto.setFRP_model(jo.getString("frp_model")); + String[] tubeArray = jo.getString("frp_description").split("\\|"); + // 定义尺寸与长度 + String qzz_size = Character.toString(tubeArray[2].charAt(0)); + dto.setQzz_size(qzz_size); + } + dto.setSplit_breadth(jo.getBigDecimal("split_breadth")); + dto.setSplit_height(jo.getBigDecimal("split_height")); + dto.setSplit_weight(jo.getBigDecimal("split_weight")); + dto.setBox_code(jo.getString("box_code")); + dto.setBox_description(jo.getString("box_description")); + dto.setUp_or_down(jo.getString("up_or_down")); + dto.setLeft_or_right(jo.getString("left_or_right")); + dto.setUpdate_optname(nickName); + dto.setUpdate_time(now); + dto.setSale_order_name(jo.getString("sale_order_name")); + dto.setWidth_standard(jo.getString("width_standard")); + dto.setThickness_request(jo.getString("thickness_request")); + if ("1".equals(jo.getString("material_type"))) { + dto.setMaterial_type("FG1"); + } else { + dto.setMaterial_type("FG2"); + } - pdmBiSlittingproductionplanMapper.updateById(entity); + pdmBiSlittingproductionplanMapper.updateById(dto); } @Override @@ -548,10 +663,26 @@ public class PdmBiSlittingproductionplanServiceImpl extends ServiceImpl getSlittingproductionplanDtl(PdmBiSlittingproductionplanDto dto) { - List list = pdmBiSlittingproductionplanMapper.selectList(new LambdaQueryWrapper().eq(PdmBiSlittingproductionplan::getParent_container_name, dto.getParent_container_name()) - .eq(PdmBiSlittingproductionplan::getSplit_group, dto.getSplit_group())); - return list; + public JSONArray selectContainers() { + List list = pdmBiSlittingproductionplanMapper.selectContainers(); + JSONArray arr = JSONArray.parseArray(JSON.toJSONString(list)); + JSONArray result = new JSONArray(); + if (list != null) { + for (int i = 0; i < arr.size(); i++) { + JSONObject obj = arr.getJSONObject(i); + JSONObject json = new JSONObject(); + json.put("container_name", obj.getString("container_name")); + result.add(json); + } + return result; + } + return null; + } + + @Override + public PdmBiSlittingproductionplan getSlittingproductionplanDtl(PdmBiSlittingproductionplanDto dto) { + PdmBiSlittingproductionplan pdmBiSlittingproductionplan = pdmBiSlittingproductionplanMapper.selectOne(new LambdaQueryWrapper().eq(PdmBiSlittingproductionplan::getWorkorder_id, dto.getWorkorder_id())); + return pdmBiSlittingproductionplan; } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/SchBasePoint.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/SchBasePoint.java index f1bf794..eba8ca1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/SchBasePoint.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/SchBasePoint.java @@ -273,6 +273,8 @@ public class SchBasePoint extends Model { */ private String material_code; + private String num; + /** * 获取主键值 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtCoolregionio.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtCoolregionio.java index 0ee8455..7d2eb8e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtCoolregionio.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/StIvtCoolregionio.java @@ -119,7 +119,7 @@ public class StIvtCoolregionio extends Model{ /** * 创建人 */ - private Long create_id; + private String create_id; /** @@ -138,7 +138,7 @@ public class StIvtCoolregionio extends Model{ /** * 修改人 */ - private Long update_optid; + private String update_optid; /** @@ -157,7 +157,7 @@ public class StIvtCoolregionio extends Model{ /** * 确认人 */ - private Long confirm_optid; + private String confirm_optid; /** diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/SchBasePointMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/SchBasePointMapper.java index 0035424..4df21f3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/SchBasePointMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/SchBasePointMapper.java @@ -2,6 +2,7 @@ package org.nl.b_lms.sch.point.dao.mapper; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; import org.nl.b_lms.sch.point.dao.SchBasePoint; import java.util.List; @@ -50,4 +51,7 @@ public interface SchBasePointMapper extends BaseMapper { List isBlock(JSONObject whereJson); + List selectList(@Param("param") JSONObject map); + + List selectDjwPoints(@Param("param") JSONObject map); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/SchBasePointMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/SchBasePointMapper.xml index 74a23a6..0dea366 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/SchBasePointMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/point/dao/mapper/SchBasePointMapper.xml @@ -143,4 +143,137 @@ ) + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoExcepionalMoveTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoExcepionalMoveTask.java index 06bd7a4..5569b30 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoExcepionalMoveTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoExcepionalMoveTask.java @@ -2,16 +2,24 @@ package org.nl.b_lms.sch.tasks; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; +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.LambdaQueryWrapper; +import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper; +import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; +import org.nl.b_lms.storage_manage.st.dao.StIvtStructattr; +import org.nl.b_lms.storage_manage.st.dao.mapper.StIvtStructattrMapper; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -29,31 +37,39 @@ public class TwoExcepionalMoveTask extends AbstractAcsTask { * 处理类 */ private final String THIS_CLASS = TwoExcepionalMoveTask.class.getName(); + @Autowired + SchBaseTaskMapper schBaseTaskMapper; + @Autowired + StIvtStructattrMapper stIvtStructattrMapper; @Override public List addTask() { /* * 下发给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); + List schBaseTasks = schBaseTaskMapper.selectList(new LambdaQueryWrapper() + .eq(SchBaseTask::getHandle_class, THIS_CLASS) + .eq(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode()) + .eq(SchBaseTask::getIs_delete, "0")); + ArrayList resultList = new ArrayList<>(); - for (int i = 0; i < arr.size(); i++) { - JSONObject json = arr.getJSONObject(i); + for (int i = 0; i < schBaseTasks.size(); i++) { + SchBaseTask schBaseTask = schBaseTasks.get(i); - char dtl_type = json.getString("task_type").charAt(json.getString("task_type").length() - 1); + char dtl_type = schBaseTask.getTask_type().charAt(schBaseTask.getTask_type().length() - 1); AcsTaskDto dto = AcsTaskDto.builder() - .ext_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_code2")) - .vehicle_code(json.getString("vehicle_code")) - .priority(json.getString("priority")) - .class_type(json.getString("task_type")) + .ext_task_id(schBaseTask.getTask_id()) + .task_code(schBaseTask.getTask_code()) + .task_type(schBaseTask.getAcs_task_type()) + .start_device_code(schBaseTask.getPoint_code1()) + .next_device_code(schBaseTask.getPoint_code2()) + .vehicle_code(schBaseTask.getVehicle_code()) + .priority(schBaseTask.getPriority()) + .class_type(schBaseTask.getTask_type()) .dtl_type(String.valueOf(dtl_type)) .product_area(IOSEnum.PRODUCT_AREA.code("BLK")) - .remark(json.getString("remark")) + .remark(schBaseTask.getRemark()) .build(); resultList.add(dto); } @@ -63,44 +79,36 @@ public class TwoExcepionalMoveTask extends AbstractAcsTask { @Override @Transactional(rollbackFor = Exception.class) public void updateTaskStatus(JSONObject taskObj, String status) { + SchBaseTask schBaseTask = schBaseTaskMapper.selectById(taskObj.getString("task_id")); - // 仓位表 - WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); - // 任务表 - WQLObject taskTab = WQLObject.getWQLObject("sch_base_task"); - - JSONObject jsonTask = taskTab.query("task_id = '" + taskObj.getString("task_id") + "'").uniqueResult(0); - - // 更新任务的参数 - JSONObject map = new JSONObject(); /* * 1-执行中, 2-完成 ,0-acs取消 */ // 执行中 if (status.equals(TaskStatusEnum.EXECUTING.getCode())) { - - map.put("task_status", TaskStatusEnum.EXECUTING.getCode()); + schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); } // 完成 if (status.equals(TaskStatusEnum.FINISHED.getCode())) { - map.put("task_status", TaskStatusEnum.FINISHED.getCode()); + schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); - if (jsonTask.getString("vehicle_code").equals(IOSEnum.IS_NOTANDYES.code("否"))){ + if (schBaseTask.getVehicle_code().equals(IOSEnum.IS_NOTANDYES.code("否"))) { // 更新起点仓位 - JSONObject jsonAttr = attrTab.query("struct_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0); - jsonAttr.put("lock_type",IOSEnum.LOCK_TYPE.code("未锁定")); - jsonAttr.put("storagevehicle_code",""); - attrTab.update(jsonAttr); + StIvtStructattr structattr = stIvtStructattrMapper.selectOne(new LambdaQueryWrapper() + .eq(StIvtStructattr::getStruct_code, schBaseTask.getPoint_code1())); + structattr.setLock_type(IOSEnum.LOCK_TYPE.code("未锁定")); + structattr.setStoragevehicle_code(""); + stIvtStructattrMapper.updateById(structattr); // 生成对接位到异常口的任务 JSONObject param = new JSONObject(); - param.put("start_device_code", jsonTask.getString("point_code2")); + param.put("start_device_code", schBaseTask.getPoint_code2()); param.put("next_device_code", IOSEnum.EXCEP_OUT.code("异常出库口")); param.put("task_type", "010712"); - param.put("vehicle_code",IOSEnum.IS_NOTANDYES.code("是")); + param.put("vehicle_code", IOSEnum.IS_NOTANDYES.code("是")); createTask(param); immediateNotifyAcs(null); } @@ -110,12 +118,11 @@ public class TwoExcepionalMoveTask extends AbstractAcsTask { if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) { throw new BadRequestException("异常任务不允许取消!"); } + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); + schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); - map.put("update_optid", SecurityUtils.getCurrentUserId()); - map.put("update_optname", SecurityUtils.getCurrentNickName()); - map.put("update_time", DateUtil.now()); - - WQLObject.getWQLObject("SCH_BASE_Task").update(map, "task_id = '" + taskObj.getString("task_id") + "'"); + schBaseTaskMapper.updateById(schBaseTask); } @Override @@ -143,39 +150,59 @@ public class TwoExcepionalMoveTask extends AbstractAcsTask { if (StrUtil.isBlank(form.getString("next_device_code"))) { throw new BadRequestException("终点不能为空!"); } + SchBaseTask task = new SchBaseTask(); + task.setTask_id(IdUtil.getSnowflake(1, 1).nextId() + ""); + task.setTask_code(IdUtil.getSnowflake(1, 1).nextId() + ""); + task.setTask_type(form.getString("task_type")); + task.setVehicle_code(form.getString("vehicle_code")); + task.setVehicle_type(form.getString("vehicle_type")); + task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + task.setTask_group_id(form.getString("task_group_id")); + task.setPoint_code1(form.getString("start_device_code")); + task.setPoint_code2(form.getString("next_device_code")); + task.setCar_no(form.getString("car_no")); + task.setHandle_class(this.getClass().getName()); + task.setCreate_id(SecurityUtils.getCurrentUserId()); + task.setCreate_name(SecurityUtils.getCurrentUsername()); + task.setCreate_time(DateUtil.now()); + task.setPriority("3"); + task.setAcs_task_type("7"); + schBaseTaskMapper.insert(task); - JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_type", form.getString("task_type")); - json.put("vehicle_code", form.getString("vehicle_code")); - json.put("vehicle_type", form.getString("vehicle_type")); - json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); - json.put("task_group_id", form.getLongValue("task_group_id")); - json.put("point_code1", form.getString("start_device_code")); - json.put("point_code2", form.getString("next_device_code")); - json.put("car_no", form.getString("car_no")); - json.put("handle_class", this.getClass().getName()); - json.put("create_id", SecurityUtils.getCurrentUserId()); - json.put("create_name", SecurityUtils.getCurrentUsername()); - json.put("create_time", DateUtil.now()); - json.put("priority", "3"); - json.put("acs_task_type", "7"); +// JSONObject json = new JSONObject(); +// json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); +// json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); +// json.put("task_type", form.getString("task_type")); +// json.put("vehicle_code", form.getString("vehicle_code")); +// json.put("vehicle_type", form.getString("vehicle_type")); +// json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); +// json.put("task_group_id", form.getLongValue("task_group_id")); +// json.put("point_code1", form.getString("start_device_code")); +// json.put("point_code2", form.getString("next_device_code")); +// json.put("car_no", form.getString("car_no")); +// json.put("handle_class", this.getClass().getName()); +// json.put("create_id", SecurityUtils.getCurrentUserId()); +// json.put("create_name", SecurityUtils.getCurrentUsername()); +// json.put("create_time", DateUtil.now()); +// json.put("priority", "3"); +// json.put("acs_task_type", "7"); - WQLObject.getWQLObject("SCH_BASE_Task").insert(json); - return json.getString("task_id"); +// WQLObject.getWQLObject("SCH_BASE_Task").insert(json); + return task.getTask_id(); } @Override @Transactional(rollbackFor = Exception.class) public void forceFinish(String task_id) { - JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); + SchBaseTask schBaseTask = schBaseTaskMapper.selectById(task_id); + JSONObject taskObj = (JSONObject) JSONObject.toJSON(schBaseTask); this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode()); } @Override public void cancel(String task_id) { - JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); + SchBaseTask schBaseTask = schBaseTaskMapper.selectById(task_id); + JSONObject taskObj = (JSONObject) JSONObject.toJSON(schBaseTask); this.updateTaskStatus(taskObj, IOSEnum.ACS_RESULT.code("取消")); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxExcepTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxExcepTask.java index e3f7a88..5e6fbea 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxExcepTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutBoxExcepTask.java @@ -6,13 +6,21 @@ 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.LambdaQueryWrapper; +import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; +import org.nl.b_lms.storage_manage.md.dao.MdPdStoragevehicleext; +import org.nl.b_lms.storage_manage.md.dao.mapper.MdPdStoragevehicleextMapper; +import org.nl.b_lms.storage_manage.st.dao.StIvtStructattr; +import org.nl.b_lms.storage_manage.st.dao.mapper.StIvtStructattrMapper; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -32,6 +40,12 @@ public class TwoOutBoxExcepTask extends AbstractAcsTask { * 处理类 */ private final String THIS_CLASS = TwoOutBoxExcepTask.class.getName(); + @Autowired + SchBaseTaskMapper schBaseTaskMapper; + @Autowired + StIvtStructattrMapper stIvtStructattrMapper; + @Autowired + MdPdStoragevehicleextMapper mdPdStoragevehicleextMapper; @Override public List addTask() { @@ -42,33 +56,39 @@ public class TwoOutBoxExcepTask extends AbstractAcsTask { WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); JSONArray arr = taskTab.query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0' AND point_code2 = 'CK2001' order by create_time").getResultJSONArray(0); + List schBaseTasks = schBaseTaskMapper.selectList(new LambdaQueryWrapper() + .eq(SchBaseTask::getHandle_class, THIS_CLASS) + .eq(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode()) + .eq(SchBaseTask::getIs_delete, "0") + .eq(SchBaseTask::getPoint_code2, "CK2001") + .orderByAsc(SchBaseTask::getCreate_time)); ArrayList resultList = new ArrayList<>(); - for (int i = 0; i < arr.size(); i++) { + for (int i = 0; i < schBaseTasks.size(); i++) { JSONObject json = arr.getJSONObject(i); - char dtl_type = json.getString("task_type").charAt(json.getString("task_type").length() - 1); + SchBaseTask schBaseTask = schBaseTasks.get(i); + char dtl_type = schBaseTask.getTask_type().charAt(schBaseTask.getTask_type().length() - 1); AcsTaskDto dto = AcsTaskDto.builder() - .ext_task_id(json.getString("task_id")) - .task_code(json.getString("task_code")) - .route_plan_code(getRoutePlanCode(json.getString("point_code1"))) - .task_type(json.getString("acs_task_type")) - .start_device_code(json.getString("point_code1")) - .next_device_code(json.getString("point_code2")) - .vehicle_code(json.getString("vehicle_code2")) - .vehicle_code2(json.getString("vehicle_code")) - .interaction_json(json.getJSONObject("request_param")) - .priority(json.getString("priority")) - .class_type(json.getString("task_type")) + .ext_task_id(schBaseTask.getTask_id()) + .task_code(schBaseTask.getTask_code()) + .route_plan_code(getRoutePlanCode(schBaseTask.getPoint_code1())) + .task_type(schBaseTask.getAcs_task_type()) + .start_device_code(schBaseTask.getPoint_code1()) + .next_device_code(schBaseTask.getPoint_code2()) + .vehicle_code(schBaseTask.getVehicle_code2()) + .vehicle_code2(schBaseTask.getVehicle_code()) + .interaction_json(JSONObject.parseObject(schBaseTask.getRequest_param())) + .priority(schBaseTask.getPriority()) + .class_type(schBaseTask.getTask_type()) .dtl_type(String.valueOf(dtl_type)) .product_area(IOSEnum.PRODUCT_AREA.code("BLK")) - .remark(json.getString("remark")) + .remark(schBaseTask.getRemark()) .build(); resultList.add(dto); // 更新任务为下发 - JSONObject paramMap = new JSONObject(); - paramMap.put("task_status", TaskStatusEnum.ISSUE.getCode()); - taskTab.update(paramMap, "task_id ='" + json.getString("task_id") + "'"); + schBaseTask.setTask_status(TaskStatusEnum.ISSUE.getCode()); + schBaseTaskMapper.updateById(schBaseTask); } return resultList; } @@ -76,17 +96,8 @@ public class TwoOutBoxExcepTask extends AbstractAcsTask { @Override @Transactional(rollbackFor = Exception.class) public void updateTaskStatus(JSONObject taskObj, String status) { - // 仓位表 - WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); - // 任务表 - WQLObject taskTab = WQLObject.getWQLObject("sch_base_task"); - // 载具信息表 - WQLObject extTab = WQLObject.getWQLObject("md_pb_storagevehicleext"); - JSONObject jsonTask = taskTab.query("task_id = '" + taskObj.getString("task_id") + "'").uniqueResult(0); - - // 更新任务的参数 - JSONObject map = new JSONObject(); + SchBaseTask schBaseTask = schBaseTaskMapper.selectById(taskObj.getString("task_id")); /* * 1-执行中, 2-完成 ,0-acs取消 @@ -94,22 +105,24 @@ public class TwoOutBoxExcepTask extends AbstractAcsTask { // 执行中 if (status.equals(TaskStatusEnum.EXECUTING.getCode())) { - map.put("task_status", TaskStatusEnum.EXECUTING.getCode()); + schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); } // 完成 if (status.equals(TaskStatusEnum.FINISHED.getCode())) { - map.put("task_status", TaskStatusEnum.FINISHED.getCode()); + schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); // 更新仓位 - JSONObject jsonAttr = attrTab.query("struct_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0); - jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("未锁定")); - jsonAttr.put("storagevehicle_code", ""); - attrTab.update(jsonAttr); + StIvtStructattr structattr = stIvtStructattrMapper.selectOne(new LambdaQueryWrapper() + .eq(StIvtStructattr::getStruct_code, schBaseTask.getPoint_code1())); + structattr.setLock_type(IOSEnum.LOCK_TYPE.code("未锁定")); + structattr.setStoragevehicle_code(""); + stIvtStructattrMapper.updateById(structattr); // 更新载具信息表 - JSONObject param = new JSONObject(); - param.put("pcsn", ""); - extTab.update(param,"pcsn = '"+jsonTask.getString("vehicle_code") +"'"); + MdPdStoragevehicleext mdPdStoragevehicleext = mdPdStoragevehicleextMapper.selectOne(new LambdaQueryWrapper() + .eq(MdPdStoragevehicleext::getPcsn, schBaseTask.getVehicle_code())); + mdPdStoragevehicleext.setPcsn(""); + mdPdStoragevehicleextMapper.updateById(mdPdStoragevehicleext); } // 取消 @@ -118,16 +131,17 @@ public class TwoOutBoxExcepTask extends AbstractAcsTask { throw new BadRequestException("任务已执行不能取消"); } // 更新任务表删除字段 - map.put("is_delete", IOSEnum.IS_NOTANDYES.code("是")); + schBaseTask.setIs_delete(IOSEnum.IS_NOTANDYES.code("是")); // 解锁仓位 - JSONObject jsonAttr = attrTab.query("struct_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0); - jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("未锁定")); - attrTab.update(jsonAttr); + StIvtStructattr structattr = stIvtStructattrMapper.selectOne(new LambdaQueryWrapper() + .eq(StIvtStructattr::getStruct_code, schBaseTask.getPoint_code1())); + structattr.setLock_type(IOSEnum.LOCK_TYPE.code("未锁定")); + stIvtStructattrMapper.updateById(structattr); } - map.put("update_optid", SecurityUtils.getCurrentUserId()); - map.put("update_optname", SecurityUtils.getCurrentNickName()); - map.put("update_time", DateUtil.now()); - WQLObject.getWQLObject("SCH_BASE_Task").update(map, "task_id = '" + taskObj.getString("task_id") + "'"); + schBaseTask.setUpdate_optid(SecurityUtils.getCurrentUserId()); + schBaseTask.setUpdate_optname(SecurityUtils.getCurrentNickName()); + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTaskMapper.updateById(schBaseTask); } @@ -161,60 +175,61 @@ public class TwoOutBoxExcepTask extends AbstractAcsTask { throw new BadRequestException("木箱号不能为空!"); } String vehicle_code = form.getString("vehicle_code"); - String point_code1 = form.getString("start_device_code"); - JSONObject task1 = isSingleTask(point_code1); - if ( ObjectUtil.isNotEmpty(task1)) { - throw new BadRequestException("载具:"+vehicle_code+"所在点位:" + point_code1 + "存在未完成的任务:"+task1.getString("task_code")); + String point_code1 = form.getString("start_device_code"); + SchBaseTask task1 = isSingleTask(point_code1); + if (ObjectUtil.isNotEmpty(task1)) { + throw new BadRequestException("载具:" + vehicle_code + "所在点位:" + point_code1 + "存在未完成的任务:" + task1.getTask_code()); } - JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_type", form.getString("task_type")); - json.put("vehicle_code", form.getString("vehicle_code")); - json.put("vehicle_code2", form.getString("vehicle_code2")); - json.put("vehicle_type", form.getString("vehicle_type")); - json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); - json.put("task_group_id", form.getLongValue("task_group_id")); - json.put("point_code1", form.getString("start_device_code")); - json.put("point_code2", form.getString("next_device_code")); - json.put("request_param", form.getString("request_param")); - json.put("handle_class", this.getClass().getName()); - json.put("create_id", SecurityUtils.getCurrentUserId()); - json.put("create_name", SecurityUtils.getCurrentUsername()); - json.put("create_time", DateUtil.now()); - json.put("priority", form.getString("priority")); - json.put("acs_task_type", "7"); - - WQLObject.getWQLObject("SCH_BASE_Task").insert(json); - return json.getString("task_id"); + SchBaseTask task = new SchBaseTask(); + task.setTask_id(IdUtil.getSnowflake(1, 1).nextId() + ""); + task.setTask_code(IdUtil.getSnowflake(1, 1).nextId() + ""); + task.setTask_type(form.getString("task_type")); + task.setVehicle_code(form.getString("vehicle_code")); + task.setVehicle_code2(form.getString("vehicle_code2")); + task.setVehicle_type(form.getString("vehicle_type")); + task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + task.setTask_group_id(form.getString("task_group_id")); + task.setPoint_code1(form.getString("start_device_code")); + task.setPoint_code2(form.getString("next_device_code")); + task.setRequest_param(form.getString("request_param")); + task.setHandle_class(this.getClass().getName()); + task.setCreate_id(SecurityUtils.getCurrentUserId()); + task.setCreate_name(SecurityUtils.getCurrentUsername()); + task.setCreate_time(DateUtil.now()); + task.setPriority(form.getString("priority")); + task.setAcs_task_type("7"); + schBaseTaskMapper.insert(task); + return task.getTask_id(); } @Override @Transactional(rollbackFor = Exception.class) public void forceFinish(String task_id) { - JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); + SchBaseTask schBaseTask = schBaseTaskMapper.selectById(task_id); + JSONObject taskObj = (JSONObject) JSONObject.toJSON(schBaseTask); this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode()); } @Override public void cancel(String task_id) { - JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); + SchBaseTask schBaseTask = schBaseTaskMapper.selectById(task_id); + JSONObject taskObj = (JSONObject) JSONObject.toJSON(schBaseTask); this.updateTaskStatus(taskObj, IOSEnum.ACS_RESULT.code("取消")); } - public JSONObject isSingleTask(String point_code) { - JSONObject task1 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code1 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); - JSONObject task2 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code2 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); - JSONObject task3 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code3 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); - JSONObject task4 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code4 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); + public SchBaseTask isSingleTask(String point_code) { + SchBaseTask task1 = schBaseTaskMapper.selectOne(new LambdaQueryWrapper().eq(SchBaseTask::getPoint_code1, point_code).lt(SchBaseTask::getTask_status, "07").eq(SchBaseTask::getIs_delete, "0")); + SchBaseTask task2 = schBaseTaskMapper.selectOne(new LambdaQueryWrapper().eq(SchBaseTask::getPoint_code2, point_code).lt(SchBaseTask::getTask_status, "07").eq(SchBaseTask::getIs_delete, "0")); + SchBaseTask task3 = schBaseTaskMapper.selectOne(new LambdaQueryWrapper().eq(SchBaseTask::getPoint_code3, point_code).lt(SchBaseTask::getTask_status, "07").eq(SchBaseTask::getIs_delete, "0")); + SchBaseTask task4 = schBaseTaskMapper.selectOne(new LambdaQueryWrapper().eq(SchBaseTask::getPoint_code4, point_code).lt(SchBaseTask::getTask_status, "07").eq(SchBaseTask::getIs_delete, "0")); - if(ObjectUtil.isNotEmpty(task1)){ + if (ObjectUtil.isNotEmpty(task1)) { return task1; - }else if(ObjectUtil.isNotEmpty(task2)){ + } else if (ObjectUtil.isNotEmpty(task2)) { return task2; - }else if(ObjectUtil.isNotEmpty(task3)){ + } else if (ObjectUtil.isNotEmpty(task3)) { return task3; - }else if(ObjectUtil.isNotEmpty(task4)){ + } else if (ObjectUtil.isNotEmpty(task4)) { return task4; } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dto/StructattrQuerry.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dto/StructattrQuerry.java index 194cf3c..364886f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dto/StructattrQuerry.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dto/StructattrQuerry.java @@ -16,6 +16,7 @@ public class StructattrQuerry extends PdmBiSubpackagerelation { private String box_num; //托盘数 private String vehicle_num; + private String num; private String row_num; List height; private String not_in_block_num; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java index c84723b..57bab4b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java @@ -22,6 +22,7 @@ import org.nl.b_lms.pdm_manage.enums.SUBEnum; import org.nl.b_lms.sch.point.dao.SchBasePoint; import org.nl.b_lms.sch.point.service.IschBasePointService; import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper; import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.sch.tasks.TwoExcepionalMoveTask; import org.nl.b_lms.sch.tasks.TwoOutExceptionalTask; @@ -46,6 +47,7 @@ import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBussMan import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.TwoInBussManageService; import org.nl.b_lms.storage_manage.st.dao.StIvtBsrealstorattr; import org.nl.b_lms.storage_manage.st.dao.StIvtStructattr; +import org.nl.b_lms.storage_manage.st.dao.mapper.StIvtStructattrMapper; import org.nl.b_lms.storage_manage.st.service.StIvtBsrealstorattrService; import org.nl.b_lms.storage_manage.st.service.StIvtSectattrService; import org.nl.b_lms.storage_manage.st.service.StIvtStructattrService; @@ -180,6 +182,12 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl().eq(SchBaseTask::getTask_code, jsonObject.getString("task_code"))); +// JSONObject jsonTask = taskService.query("task_code = '" + jsonObject.getString("task_code") + "'").uniqueResult(0); // 找出对应的浅货位 - JSONObject jsonAttrOrder = attrTab.query("struct_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0); + StIvtStructattr jsonAttrOrder = stIvtStructattrMapper.selectOne(new LambdaQueryWrapper().eq(StIvtStructattr::getStruct_code, jsonTask.getPoint_code1())); +// JSONObject jsonAttrOrder = attrTab.query("struct_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0); - JSONObject jsonAttrNow = attrTab.query("row_num = '" + jsonAttrOrder.getString("row_num") + "' AND layer_num = '" + jsonAttrOrder.getString("layer_num") + "' AND col_num = '" + jsonAttrOrder.getString("col_num") + "' and zdepth = '" + IOSEnum.ZDEPTH_STRUCT.code("浅") + "' and stor_id = '" + jsonAttrOrder.getString("stor_id") + "' and is_delete = '0' and is_used = '1'") - .uniqueResult(0); + StIvtStructattr jsonAttrNow = stIvtStructattrMapper.selectOne(new QueryWrapper().lambda().eq(StIvtStructattr::getRow_num, jsonAttrOrder.getRow_num()) + .eq(StIvtStructattr::getLayer_num, jsonAttrOrder.getLayer_num()) + .eq(StIvtStructattr::getCol_num, jsonAttrOrder.getCol_num()) + .eq(StIvtStructattr::getZdepth, IOSEnum.ZDEPTH_STRUCT.code("浅")) + .eq(StIvtStructattr::getStor_id, jsonAttrOrder.getStor_id()) + .eq(StIvtStructattr::getIs_delete, "0") + .eq(StIvtStructattr::getIs_used, "1")); +// JSONObject jsonAttrNow = attrTab.query("row_num = '" + jsonAttrOrder.getString("row_num") + "' AND layer_num = '" + jsonAttrOrder.getString("layer_num") + "' AND col_num = '" + jsonAttrOrder.getString("col_num") + "' and zdepth = '" + IOSEnum.ZDEPTH_STRUCT.code("浅") + "' and stor_id = '" + jsonAttrOrder.getString("stor_id") + "' and is_delete = '0' and is_used = '1'") +// .uniqueResult(0); if (ObjectUtil.isEmpty(jsonAttrNow)) { - throw new BadRequestException("对应浅货位不存在或未启用!" + jsonTask.getString("point_code1")); + throw new BadRequestException("对应浅货位不存在或未启用!" + jsonTask.getPoint_code1()); } // 锁住仓位 - jsonAttrNow.put("lock_type", IOSEnum.LOCK_TYPE.code("货位异常出库锁")); - attrTab.update(jsonAttrNow); + jsonAttrNow.setLock_type(IOSEnum.LOCK_TYPE.code("货位异常出库锁")); + stIvtStructattrMapper.updateById(jsonAttrNow); +// jsonAttrNow.put("lock_type", IOSEnum.LOCK_TYPE.code("货位异常出库锁")); +// attrTab.update(jsonAttrNow); // 生成任务 JSONObject taskParam = new JSONObject(); - taskParam.put("start_device_code", jsonAttrNow.getString("struct_code")); - taskParam.put("next_device_code", IOSEnum.OUT_POINT.code(jsonAttrNow.getString("row_num"))); + taskParam.put("start_device_code", jsonAttrNow.getStruct_code()); + taskParam.put("next_device_code", IOSEnum.OUT_POINT.code(jsonAttrNow.getRow_num().toString())); taskParam.put("task_type", "010712"); taskParam.put("car_no", "此货位LMS系统未有库存,请待出至【CK2001】点位后确认实物并重新手工入回库!"); taskParam.put("vehicle_code", IOSEnum.IS_NOTANDYES.code("否")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java index 63a7dda..10b28a7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java @@ -26,8 +26,11 @@ import org.nl.b_lms.sch.tasks.TwoInBoxTrussTask; import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService; import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dto.StructattrQuerry; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InBoxManageService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InBussManageService; +import org.nl.b_lms.storage_manage.st.dao.StIvtStructattr; +import org.nl.b_lms.storage_manage.st.dao.mapper.StIvtStructattrMapper; import org.nl.common.utils.IdUtil; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; @@ -48,6 +51,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; @@ -96,6 +100,8 @@ public class InBoxManageServiceImpl implements InBoxManageService { @Autowired private InBussManageService inBussManageService; + @Autowired + StIvtStructattrMapper stIvtStructattrMapper; @Autowired private IMdPbStoragevehicleextService mdPbStoragevehicleextService; @@ -540,8 +546,6 @@ public class InBoxManageServiceImpl implements InBoxManageService { @Override @Transactional public JSONObject taskExceptional(JSONObject jsonObject) { - // 仓位表 - WQLObject attrTab = WQLObject.getWQLObject("ST_IVT_StructAttr"); // 查询任务 SchBaseTask taskDao = ischBaseTaskService.getOne( @@ -550,9 +554,10 @@ public class InBoxManageServiceImpl implements InBoxManageService { ); // 标记原货位为满入异常锁 - JSONObject jsonAttr = attrTab.query("struct_code = '" + taskDao.getPoint_code2() + "'").uniqueResult(0); - jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("货位异常锁")); - attrTab.update(jsonAttr); + StIvtStructattr stIvtStructattr = stIvtStructattrMapper.selectOne(new LambdaQueryWrapper() + .eq(StIvtStructattr::getStruct_code, taskDao.getPoint_code2())); + stIvtStructattr.setLock_type(IOSEnum.LOCK_TYPE.code("货位异常锁")); + stIvtStructattrMapper.updateById(stIvtStructattr); // 重新分配货位 BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne( @@ -566,9 +571,9 @@ public class InBoxManageServiceImpl implements InBoxManageService { jsonParam.put("box_length", boxDao.getBox_length()); jsonParam.put("box_width", boxDao.getBox_width()); jsonParam.put("box_high", boxDao.getBox_high()); - jsonParam.put("height", jsonAttr.getString("height")); - jsonParam.put("vehicle_type", jsonAttr.getString("storagevehicle_type")); - jsonParam.put("move_block_num", jsonAttr.getString("block_num")); + jsonParam.put("height", stIvtStructattr.getHeight()); + jsonParam.put("vehicle_type", stIvtStructattr.getStoragevehicle_type()); + jsonParam.put("move_block_num", stIvtStructattr.getBlock_num()); // 调用找货位方法 JSONObject jsonAttrNow = getStruct(jsonParam); @@ -577,8 +582,9 @@ public class InBoxManageServiceImpl implements InBoxManageService { } // 锁定新终点 - jsonAttrNow.put("lock_type", IOSEnum.LOCK_TYPE.code("木箱入库锁")); - attrTab.update(jsonAttrNow); + StIvtStructattr structattr = stIvtStructattrMapper.selectById(jsonAttrNow.getString("struct_id")); + structattr.setLock_type(IOSEnum.LOCK_TYPE.code("木箱入库锁")); + stIvtStructattrMapper.updateById(structattr); // 更新任务终点 taskDao.setPoint_code2(jsonAttrNow.getString("struct_code")); @@ -689,8 +695,6 @@ public class InBoxManageServiceImpl implements InBoxManageService { * @return JSONObject : 仓位对象 */ public JSONObject getStruct(JSONObject jsonParam) { - // 仓位表 - WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); /* * 判断是否有仓位 @@ -698,25 +702,38 @@ public class InBoxManageServiceImpl implements InBoxManageService { */ String block_num = jsonParam.getString("move_block_num"); - JSONArray structArray = new JSONArray(); + List structattrs = new ArrayList<>(); if (ObjectUtil.isEmpty(block_num)) { - structArray = attrTab.query("IFNULL(storagevehicle_code,'') = '' " + - "AND is_used = '" + IOSEnum.IS_NOTANDYES.code("是") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("否") + "' " + - "AND storagevehicle_type = '" + jsonParam.getString("vehicle_type") + "'" + - "AND height = '" + jsonParam.getString("height") + "'" + - "AND lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' AND stor_id = '" + jsonParam.getString("stor_id") + "' " + - "AND sect_id = '" + jsonParam.getString("sect_id") + "'").getResultJSONArray(0); + structattrs = stIvtStructattrMapper.selectList(new LambdaQueryWrapper() + .eq(StIvtStructattr::getIs_used, IOSEnum.IS_NOTANDYES.code("是")) + .eq(StIvtStructattr::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) + .eq(StIvtStructattr::getStoragevehicle_code, jsonParam.getString("vehicle_type")) + .eq(StIvtStructattr::getHeight, jsonParam.getString("height")) + .eq(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) + .eq(StIvtStructattr::getStor_id, jsonParam.getString("stor_id")) + .eq(StIvtStructattr::getSect_id, jsonParam.getString("sect_id")) + .apply("IFNULL(storagevehicle_code,'') = '' ")); +// structArray = attrTab.query("IFNULL(storagevehicle_code,'') = '' " + +// "AND is_used = '" + IOSEnum.IS_NOTANDYES.code("是") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("否") + "' " + +// "AND storagevehicle_type = '" + jsonParam.getString("vehicle_type") + "'" + +// "AND height = '" + jsonParam.getString("height") + "'" + +// "AND lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' AND stor_id = '" + jsonParam.getString("stor_id") + "' " + +// "AND sect_id = '" + jsonParam.getString("sect_id") + "'").getResultJSONArray(0); } else { - structArray = attrTab.query("IFNULL(storagevehicle_code,'') = '' " + - "AND is_used = '" + IOSEnum.IS_NOTANDYES.code("是") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("否") + "' " + - "AND storagevehicle_type = '" + jsonParam.getString("vehicle_type") + "'" + - "AND height = '" + jsonParam.getString("height") + "'" + - "AND lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' AND stor_id = '" + jsonParam.getString("stor_id") + "' " + - "AND sect_id = '" + jsonParam.getString("sect_id") + "' AND block_num = '" + block_num + "'").getResultJSONArray(0); + structattrs = stIvtStructattrMapper.selectList(new LambdaQueryWrapper() + .eq(StIvtStructattr::getIs_used, IOSEnum.IS_NOTANDYES.code("是")) + .eq(StIvtStructattr::getIs_delete, IOSEnum.IS_NOTANDYES.code("否")) + .eq(StIvtStructattr::getStoragevehicle_code, jsonParam.getString("vehicle_type")) + .eq(StIvtStructattr::getHeight, jsonParam.getString("height")) + .eq(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) + .eq(StIvtStructattr::getStor_id, jsonParam.getString("stor_id")) + .eq(StIvtStructattr::getSect_id, jsonParam.getString("sect_id")) + .eq(StIvtStructattr::getBlock_num, block_num) + .apply("IFNULL(storagevehicle_code,'') = '' ")); } - if (ObjectUtil.isEmpty(structArray)) { + if (ObjectUtil.isEmpty(structattrs)) { notInRowList.clear(); notInBlockList.clear(); throw new BadRequestException("仓位不足!"); @@ -750,22 +767,25 @@ public class InBoxManageServiceImpl implements InBoxManageService { String join = "('" + String.join("','", notInBlockList) + "')"; jsonParam.put("not_block", join); - List blockList = WQL.getWO("BST_INBOX").addParamMap(jsonParam) - .process().getResultJSONArray(0).toJavaList(JSONObject.class); + List blockList = stIvtStructattrMapper.selectEmptyBlock(jsonParam); +// List blockList = WQL.getWO("BST_INBOX").addParamMap(jsonParam) +// .process().getResultJSONArray(0).toJavaList(JSONObject.class); + String input = jsonParam.getString("height"); + List result = Arrays.asList(input.split("','")); for (int i = 0; i < blockList.size(); i++) { - JSONObject json = blockList.get(i); - json.put("stor_id", jsonParam.getString("stor_id")); - json.put("sect_id", jsonParam.getString("sect_id")); - json.put("box_length", jsonParam.getString("box_length")); - json.put("box_width", jsonParam.getString("box_width")); - json.put("box_high", jsonParam.getString("box_high")); - json.put("vehicle_type", jsonParam.getString("vehicle_type")); - json.put("height", jsonParam.getString("height")); - - String row_num_2 = getMinRow(json); - json.put("row_num", row_num_2); - JSONObject jsonAttr_2 = queryStruct(json); + StructattrQuerry json = blockList.get(i); + json.setSect_id(jsonParam.getString("sect_id")); + json.setStor_id(jsonParam.getString("stor_id")); + json.setBox_length(jsonParam.getString("box_length")); + json.setBox_width(jsonParam.getString("box_width")); + json.setBox_high(jsonParam.getString("box_high")); + json.setVehicle_type(jsonParam.getString("vehicle_type")); + json.setHeight(result); + JSONObject jo = (JSONObject) JSONObject.toJSON(json); + String row_num_2 = getMinRow(jo); + jo.put("row_num", row_num_2); + JSONObject jsonAttr_2 = queryStruct(jo); if (ObjectUtil.isNotEmpty(jsonAttr_2)) { jsonAttr = jsonAttr_2; @@ -840,7 +860,6 @@ public class InBoxManageServiceImpl implements InBoxManageService { * @return String 巷道 */ private String getMinBlock(JSONObject jsonParam) { - jsonParam.put("flag", "1"); // 获取系统参数不入哪个巷道 String not_in_block_num = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("not_in_block_num").getValue(); @@ -849,47 +868,44 @@ public class InBoxManageServiceImpl implements InBoxManageService { } // 获取仓库、库区有空位的巷道 - List blockList = WQL.getWO("BST_INBOX").addParamMap(jsonParam) - .process().getResultJSONArray(0).toJavaList(JSONObject.class); + List blockList = stIvtStructattrMapper.selectEmptyBlock(jsonParam); /* * 查询所属巷道所有木箱 */ String block_in = blockList.stream() - .map(row -> row.getString("block_num")) + .map(row -> row.getBlock_num()) .collect(Collectors.joining("','")); - jsonParam.put("flag", "2"); jsonParam.put("block_in", "('" + block_in + "')"); - List boxAllList = WQL.getWO("BST_INBOX").addParamMap(jsonParam) - .process().getResultJSONArray(0).toJavaList(JSONObject.class); + List boxAllList = stIvtStructattrMapper.selectAllBox(jsonParam); // 为空说明没有木箱,返回最小巷道 if (ObjectUtil.isEmpty(boxAllList)) { - return blockList.get(0).getString("block_num"); + return blockList.get(0).getBlock_num(); } // 计算每个巷道的木箱数 - ArrayList blockBoxList = new ArrayList<>(); + ArrayList blockBoxList = new ArrayList<>(); for (int i = 0; i < blockList.size(); i++) { - JSONObject jsonBlock = blockList.get(i); + StructattrQuerry jsonBlock = blockList.get(i); - List box_num = boxAllList.stream() - .filter(row -> row.getString("block_num").equals(jsonBlock.getString("block_num"))) + List box_num = boxAllList.stream() + .filter(row -> row.getBlock_num().equals(jsonBlock.getBlock_num())) .collect(Collectors.toList()); - jsonBlock.put("box_num", String.valueOf(box_num.size())); + jsonBlock.setBlock_num(String.valueOf(box_num.size())); blockBoxList.add(jsonBlock); } // 最小木箱数的巷道 - List boxNumList = blockBoxList.stream() - .sorted(Comparator.comparing(row -> row.getIntValue("box_num"))) + List boxNumList = blockBoxList.stream() + .sorted(Comparator.comparing(row -> row.getBlock_num())) .collect(Collectors.toList()); - return boxNumList.get(0).getString("block_num"); + return boxNumList.get(0).getBlock_num(); } /** @@ -908,55 +924,52 @@ public class InBoxManageServiceImpl implements InBoxManageService { */ private String getMinRow(JSONObject jsonParam) { - jsonParam.put("flag", "3"); // 获取此仓库、库区、巷道 有空位的排 - List rowList = WQL.getWO("BST_INBOX").addParamMap(jsonParam) - .process().getResultJSONArray(0).toJavaList(JSONObject.class); + + List rowList = stIvtStructattrMapper.selectRows(jsonParam); /* * 查询所属排的所有木箱 */ String row_in = rowList.stream() - .map(row -> row.getString("row_num")) + .map(row -> row.getRow_num()) .collect(Collectors.joining("','")); - jsonParam.put("flag", "2"); jsonParam.put("row_in", "('" + row_in + "')"); - List boxAllList = WQL.getWO("BST_INBOX").addParamMap(jsonParam) - .process().getResultJSONArray(0).toJavaList(JSONObject.class); + List boxAllList = stIvtStructattrMapper.selectAllBox(jsonParam); // 为空说明没有木箱,返回最小排 if (ObjectUtil.isEmpty(boxAllList)) { if (ObjectUtil.isNotEmpty(rowList)) { - return rowList.get(0).getString("row_num"); + return rowList.get(0).getRow_num(); } } // 计算最小排的托盘 - ArrayList rowkBoxList = new ArrayList<>(); + ArrayList rowkBoxList = new ArrayList<>(); for (int i = 0; i < rowList.size(); i++) { - JSONObject jsonRow = rowList.get(i); + StructattrQuerry jsonRow = rowList.get(i); - List box_num = boxAllList.stream() - .filter(row -> row.getString("row_num").equals(jsonRow.getString("row_num"))) + List box_num = boxAllList.stream() + .filter(row -> row.getRow_num().equals(jsonRow.getRow_num())) .collect(Collectors.toList()); - jsonRow.put("box_num", String.valueOf(box_num.size())); + jsonRow.setBox_num(String.valueOf(box_num.size())); rowkBoxList.add(jsonRow); } // 最小木箱数的排 - List boxNumList = rowkBoxList.stream() - .sorted(Comparator.comparing(row -> row.getIntValue("box_num"))) + List boxNumList = rowkBoxList.stream() + .sorted(Comparator.comparing(row -> row.getBox_num())) .collect(Collectors.toList()); String row_num = ""; if (ObjectUtil.isNotEmpty(boxNumList)) { - row_num = boxNumList.get(0).getString("row_num"); + row_num = boxNumList.get(0).getRow_num(); } return row_num; } @@ -1014,52 +1027,46 @@ public class InBoxManageServiceImpl implements InBoxManageService { */ private JSONObject getStructOne(JSONObject jsonParam) { // 获取此仓库、库区、巷道、排的所有空位 根据列、层、深度排序 - jsonParam.put("flag", "4"); - - List rowStructList = WQL.getWO("BST_INBOX").addParamMap(jsonParam) - .process().getResultJSONArray(0).toJavaList(JSONObject.class); + List rowStructList =stIvtStructattrMapper.getAllEmptyStruct(jsonParam); // 获取此仓库、库区、巷道、排的所有仓位 - jsonParam.put("flag", "5"); - - List structAllList = WQL.getWO("BST_INBOX").addParamMap(jsonParam) - .process().getResultJSONArray(0).toJavaList(JSONObject.class); + List structAllList =stIvtStructattrMapper.getAllStructList(jsonParam); // 需要返回的仓位 - JSONObject jsonAttr = new JSONObject(); + StIvtStructattr jsonAttr = null; for (int i = 0; i < rowStructList.size(); i++) { - JSONObject json = rowStructList.get(i); + StIvtStructattr json = rowStructList.get(i); // 判断伸位 - if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("无"))) { + if (json.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("无"))) { // 无需深度 jsonAttr = json; break; - } else if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) { + } else if (json.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) { /* * 深货位:判断浅货位是否被锁定 */ // 获取此货位对应的浅货位 - List lowAttr = structAllList.stream() - .filter(row -> row.getString("col_num").equals(json.getString("col_num")) && - row.getString("layer_num").equals(json.getString("layer_num")) && - row.getString("row_num").equals(json.getString("row_num")) && - row.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) + List lowAttr = structAllList.stream() + .filter(row -> row.getCol_num().equals(json.getCol_num()) && + row.getLayer_num().equals(json.getLayer_num()) && + row.getRow_num().equals(json.getRow_num()) && + row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) .collect(Collectors.toList()); if (ObjectUtil.isEmpty(lowAttr) || lowAttr.size() != 1) { notInRowList.clear(); notInBlockList.clear(); - throw new BadRequestException("仓位:" + json.getString("struct_code") + "对应的浅货位错误!"); + throw new BadRequestException("仓位:" + json.getStruct_code() + "对应的浅货位错误!"); } // 判断是否被锁定 - JSONObject jsonAttrLow = lowAttr.get(0); + StIvtStructattr jsonAttrLow = lowAttr.get(0); - if (ObjectUtil.isEmpty(jsonAttrLow.getString("storagevehicle_code")) && jsonAttrLow.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { + if (ObjectUtil.isEmpty(jsonAttrLow.getStoragevehicle_code()) && jsonAttrLow.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { // 没有载具和被锁定 jsonAttr = json; break; @@ -1067,44 +1074,44 @@ public class InBoxManageServiceImpl implements InBoxManageService { continue; } - } else if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) { + } else if (json.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) { /* * 浅货位:判断深货位是否空洞,是否是相同类型的托盘 */ // 获取此货位对应的深货位 - List darkAttr = structAllList.stream() - .filter(row -> row.getString("col_num").equals(json.getString("col_num")) && - row.getString("layer_num").equals(json.getString("layer_num")) && - row.getString("row_num").equals(json.getString("row_num")) && - row.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) + List darkAttr = structAllList.stream() + .filter(row -> row.getCol_num().equals(json.getCol_num()) && + row.getLayer_num().equals(json.getLayer_num()) && + row.getRow_num().equals(json.getRow_num()) && + row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) .collect(Collectors.toList()); if (ObjectUtil.isEmpty(darkAttr) || darkAttr.size() != 1) { notInRowList.clear(); notInBlockList.clear(); - throw new BadRequestException("仓位:" + json.getString("struct_code") + "对应的深货位错误!"); + throw new BadRequestException("仓位:" + json.getStruct_code() + "对应的深货位错误!"); } // 判断是否有托盘 - JSONObject jsonAttrDark = darkAttr.get(0); + StIvtStructattr jsonAttrDark = darkAttr.get(0); - if (ObjectUtil.isNotEmpty(jsonAttrDark.getString("storagevehicle_code"))) { + if (ObjectUtil.isNotEmpty(jsonAttrDark.getStoragevehicle_code())) { // 判断深货位是否是空木箱,判断内容:是否空载具,是否成品箱 - if (jsonAttrDark.getString("is_packing").equals(IOSEnum.IS_NOTANDYES.code("是")) || - jsonAttrDark.getString("is_vehicle").equals(IOSEnum.IS_NOTANDYES.code("是")) + if (jsonAttrDark.getIs_packing().equals(IOSEnum.IS_NOTANDYES.code("是")) || + jsonAttrDark.getIs_vehicle().equals(IOSEnum.IS_NOTANDYES.code("是")) ) { continue; } - if (jsonAttrDark.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { + if (jsonAttrDark.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { jsonAttr = json; break; } else { continue; } } else { - if (jsonAttrDark.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { + if (jsonAttrDark.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { jsonAttr = jsonAttrDark; break; } else { @@ -1114,6 +1121,10 @@ public class InBoxManageServiceImpl implements InBoxManageService { } } - return jsonAttr; + JSONObject jsonObject = new JSONObject(); + if (ObjectUtil.isNotEmpty(jsonAttr)){ + jsonObject = (JSONObject) JSONObject.toJSON(jsonAttr); + } + return jsonObject; } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InVehicleManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InVehicleManageServiceImpl.java index 2d36321..61b39dd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InVehicleManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InVehicleManageServiceImpl.java @@ -130,16 +130,20 @@ public class InVehicleManageServiceImpl implements InVehicleManageService { ); // 标记原货位为满入异常锁 - JSONObject jsonAttr = attrTab.query("struct_code = '" + taskDao.getPoint_code2() + "'").uniqueResult(0); - jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("货位异常锁")); - attrTab.update(jsonAttr); + StIvtStructattr jsonAttr = stIvtStructattrMapper.selectOne(new LambdaQueryWrapper() + .eq(StIvtStructattr::getStruct_code, taskDao.getPoint_code2())); + jsonAttr.setLock_type(IOSEnum.LOCK_TYPE.code("货位异常锁")); + stIvtStructattrMapper.updateById(jsonAttr); +// JSONObject jsonAttr = attrTab.query("struct_code = '" + taskDao.getPoint_code2() + "'").uniqueResult(0); +// jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("货位异常锁")); +// attrTab.update(jsonAttr); // 重新分配货位 JSONObject jsonParam = new JSONObject(); jsonParam.put("stor_id", IOSEnum.STOR_ID.code("二期")); jsonParam.put("sect_id", RegionTypeEnum.TWO_BZC01.getId()); - jsonParam.put("vehicle_type", jsonAttr.getString("storagevehicle_type")); - jsonParam.put("move_block_num", jsonAttr.getString("block_num")); + jsonParam.put("vehicle_type", jsonAttr.getStoragevehicle_type()); + jsonParam.put("move_block_num", jsonAttr.getBlock_num()); // 调用找货位方法 JSONObject jsonAttrNow = getStruct(jsonParam); @@ -148,8 +152,11 @@ public class InVehicleManageServiceImpl implements InVehicleManageService { } // 锁定新终点 - jsonAttrNow.put("lock_type", IOSEnum.LOCK_TYPE.code("空托盘入库锁")); - attrTab.update(jsonAttrNow); + StIvtStructattr ivtStructattr = stIvtStructattrMapper.selectOne(new QueryWrapper().lambda().eq(StIvtStructattr::getStruct_code, jsonAttrNow.getString("struct_code"))); + ivtStructattr.setLock_type(IOSEnum.LOCK_TYPE.code("空托盘入库锁")); + stIvtStructattrMapper.updateById(ivtStructattr); +// jsonAttrNow.put("lock_type", IOSEnum.LOCK_TYPE.code("空托盘入库锁")); +// attrTab.update(jsonAttrNow); // 更新任务终点 taskDao.setPoint_code2(jsonAttrNow.getString("struct_code")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java index 3409bdf..0ca8083 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java @@ -4,10 +4,12 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper; import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.sch.tasks.TwoExcepionalMoveTask; import org.nl.b_lms.sch.tasks.TwoMoveBoxTask; @@ -17,7 +19,10 @@ import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService; import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo; import org.nl.b_lms.storage_manage.database.service.dao.mapper.BstIvtBoxinfoMapper; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dto.StructattrQuerry; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBoxManageService; +import org.nl.b_lms.storage_manage.st.dao.StIvtStructattr; +import org.nl.b_lms.storage_manage.st.dao.mapper.StIvtStructattrMapper; import org.nl.common.utils.IdUtil; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.WQL; @@ -71,9 +76,13 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { */ @Autowired private IschBaseTaskService ischBaseTaskService; + @Autowired + private SchBaseTaskMapper schBaseTaskMapper; @Resource private BstIvtBoxinfoMapper bstIvtBoxinfoMapper; + @Autowired + private StIvtStructattrMapper stIvtStructattrMapper; @Override @Transactional(rollbackFor = Exception.class) @@ -210,11 +219,13 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { new QueryWrapper().lambda() .eq(SchBaseTask::getTask_code, jsonObject.getString("task_code")) ); - JSONObject jsonAttr = attrTab.query("struct_code = '" + taskDao.getPoint_code1() + "'").uniqueResult(0); - jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("未锁定")); - jsonAttr.put("storagevehicle_code",null); - jsonAttr.put("remark", "空出设置为空"+taskDao.getTask_id()); - attrTab.update(jsonAttr); + + StIvtStructattr jsonAttr = stIvtStructattrMapper.selectOne(new LambdaQueryWrapper().eq(StIvtStructattr::getStruct_code, taskDao.getPoint_code1())); +// JSONObject jsonAttr = attrTab.query("struct_code = '" + taskDao.getPoint_code1() + "'").uniqueResult(0); + jsonAttr.setLock_type(IOSEnum.LOCK_TYPE.code("未锁定")); + jsonAttr.setStoragevehicle_code(""); + jsonAttr.setRemark("空出设置为空"+taskDao.getTask_id()); + stIvtStructattrMapper.updateById(jsonAttr); if ("010706".equals(taskDao.getTask_type())){ BstIvtBoxinfo boxDao = bstIvtBoxinfoMapper.selectOne( @@ -226,15 +237,19 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { jsonParam.put("stor_id", IOSEnum.STOR_ID.code("二期")); jsonParam.put("sect_id", RegionTypeEnum.TWO_BZC01.getId()); jsonParam.put("material_code", boxDao.getMaterial_code()); - jsonParam.put("move_block_num", jsonAttr.getString("block_num")); + jsonParam.put("move_block_num", jsonAttr.getBlock_num()); jsonParam.put("num", boxDao.getNum()); jsonAttrNow = getStruct(jsonParam); if (ObjectUtil.isEmpty(jsonAttrNow)) { throw new BadRequestException("空出重新分配:库存不足!"); } // 锁定新终点 - jsonAttrNow.put("lock_type", IOSEnum.LOCK_TYPE.code("空托盘出库锁")); - attrTab.update(jsonAttrNow); + StIvtStructattr structattr = stIvtStructattrMapper.selectOne(new LambdaQueryWrapper() + .eq(StIvtStructattr::getStruct_code, jsonAttrNow.getString("struct_code"))); + structattr.setLock_type(IOSEnum.LOCK_TYPE.code("空托盘出库锁")); + stIvtStructattrMapper.updateById(structattr); +// jsonAttrNow.put("lock_type", IOSEnum.LOCK_TYPE.code("空托盘出库锁")); +// attrTab.update(jsonAttrNow); // 更新任务起点 taskDao.setPoint_code1(jsonAttrNow.getString("struct_code")); taskDao.setVehicle_code(jsonAttrNow.getString("storagevehicle_code")); @@ -255,20 +270,29 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { // 仓位表 WQLObject attrTab = WQLObject.getWQLObject("ST_IVT_StructAttr"); - JSONObject jsonTask = taskService.query("task_code = '" + jsonObject.getString("task_code") + "'").uniqueResult(0); + SchBaseTask jsonTask = schBaseTaskMapper.selectOne(new LambdaQueryWrapper().eq(SchBaseTask::getTask_code, jsonObject.getString("task_code"))); +// JSONObject jsonTask = taskService.query("task_code = '" + jsonObject.getString("task_code") + "'").uniqueResult(0); // 找出对应的浅货位 - JSONObject jsonAttrOrder = attrTab.query("struct_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0); + StIvtStructattr jsonAttrOrder = stIvtStructattrMapper.selectOne(new LambdaQueryWrapper().eq(StIvtStructattr::getStruct_code, jsonTask.getPoint_code1())); +// JSONObject jsonAttrOrder = attrTab.query("struct_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0); - JSONObject jsonAttrNow = attrTab.query("row_num = '" + jsonAttrOrder.getString("row_num") + "' AND layer_num = '" + jsonAttrOrder.getString("layer_num") + "' AND col_num = '" + jsonAttrOrder.getString("col_num") + "' and zdepth = '" + IOSEnum.ZDEPTH_STRUCT.code("浅") + "' and stor_id = '" + jsonAttrOrder.getString("stor_id") + "' and is_delete = '0' and is_used = '1'") - .uniqueResult(0); + StIvtStructattr jsonAttrNow = stIvtStructattrMapper.selectOne(new QueryWrapper().lambda().eq(StIvtStructattr::getRow_num, jsonAttrOrder.getRow_num()) + .eq(StIvtStructattr::getLayer_num, jsonAttrOrder.getLayer_num()) + .eq(StIvtStructattr::getCol_num, jsonAttrOrder.getCol_num()) + .eq(StIvtStructattr::getZdepth, IOSEnum.ZDEPTH_STRUCT.code("浅")) + .eq(StIvtStructattr::getStor_id, jsonAttrOrder.getStor_id()) + .eq(StIvtStructattr::getIs_delete, "0") + .eq(StIvtStructattr::getIs_used, "1")); +// JSONObject jsonAttrNow = attrTab.query("row_num = '" + jsonAttrOrder.getString("row_num") + "' AND layer_num = '" + jsonAttrOrder.getString("layer_num") + "' AND col_num = '" + jsonAttrOrder.getString("col_num") + "' and zdepth = '" + IOSEnum.ZDEPTH_STRUCT.code("浅") + "' and stor_id = '" + jsonAttrOrder.getString("stor_id") + "' and is_delete = '0' and is_used = '1'") +// .uniqueResult(0); if (ObjectUtil.isEmpty(jsonAttrNow)) { - throw new BadRequestException("对应浅货位不存在或未启用!" + jsonTask.getString("point_code1")); + throw new BadRequestException("对应浅货位不存在或未启用!" + jsonTask.getPoint_code1()); } List list = ischBaseTaskService.list(new QueryWrapper() - .eq("point_code1", jsonAttrNow.getString("struct_code")) - .eq("point_code2", IOSEnum.OUT_POINT.code(jsonAttrNow.getString("row_num"))) + .eq("point_code1", jsonAttrNow.getStruct_code()) + .eq("point_code2", IOSEnum.OUT_POINT.code(jsonAttrNow.getRow_num().toString())) .eq("task_type", "010712") .eq("is_delete", "0") .lt("task_status", TaskStatusEnum.FINISHED.getCode())); @@ -276,13 +300,13 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { return list.get(0).getTask_id(); } // 锁住仓位 - jsonAttrNow.put("lock_type", IOSEnum.LOCK_TYPE.code("货位异常出库锁")); - attrTab.update(jsonAttrNow); + jsonAttrNow.setLock_type(IOSEnum.LOCK_TYPE.code("货位异常出库锁")); + stIvtStructattrMapper.updateById(jsonAttrNow); // 生成任务 JSONObject taskParam = new JSONObject(); - taskParam.put("start_device_code", jsonAttrNow.getString("struct_code")); - taskParam.put("next_device_code", IOSEnum.OUT_POINT.code(jsonAttrNow.getString("row_num"))); + taskParam.put("start_device_code", jsonAttrNow.getStruct_code()); + taskParam.put("next_device_code", IOSEnum.OUT_POINT.code(jsonAttrNow.getRow_num().toString())); taskParam.put("task_type", "010712"); taskParam.put("car_no", "此货位LMS系统未有库存,请待出至【CK2001】点位后确认实物并重新手工入回库!"); taskParam.put("vehicle_code",IOSEnum.IS_NOTANDYES.code("否")); @@ -316,13 +340,14 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { */ String block_num = whereJson.getString("move_block_num"); + List structArray = new ArrayList<>(); if (ObjectUtil.isEmpty(block_num)) { - whereJson.put("flag", "6"); + structArray = stIvtStructattrMapper.getStructs(whereJson); } else { - whereJson.put("flag", "7"); + structArray = stIvtStructattrMapper.getStructsByBlockNum(whereJson); } - JSONArray structArray = WQL.getWO("BST_OUTBOX").addParamMap(whereJson).process().getResultJSONArray(0); +// JSONArray structArray = WQL.getWO("BST_OUTBOX").addParamMap(whereJson).process().getResultJSONArray(0); if (ObjectUtil.isEmpty(structArray)) { notOutRowList.clear(); @@ -357,21 +382,30 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { String join = "('" + String.join("','", notOutBlockList) + "')"; whereJson.put("not_block_id", join); - List blockList = WQL.getWO("BST_OUTBOX").addParamMap(whereJson) - .process().getResultJSONArray(0).toJavaList(JSONObject.class); + List blockList = stIvtStructattrMapper.selectEmptyBlock(whereJson); +// List blockList = WQL.getWO("BST_OUTBOX").addParamMap(whereJson) +// .process().getResultJSONArray(0).toJavaList(JSONObject.class); for (int i = 0; i < blockList.size(); i++) { - JSONObject json = blockList.get(i); - json.put("stor_id", whereJson.getString("stor_id")); - json.put("sect_id", whereJson.getString("sect_id")); - json.put("box_length", whereJson.getString("box_length")); - json.put("box_width", whereJson.getString("box_width")); - json.put("box_high", whereJson.getString("box_high")); - json.put("num", whereJson.getString("num")); - - String row_num_2 = getMaxRow(json); - json.put("row_num", row_num_2); - JSONObject jsonAttr_2 = getBox(json); + StructattrQuerry json = blockList.get(i); + json.setSect_id(whereJson.getString("sect_id")); + json.setStor_id(whereJson.getString("stor_id")); + json.setBox_length(whereJson.getString("box_length")); + json.setBox_width(whereJson.getString("box_width")); + json.setBox_high(whereJson.getString("box_high")); + json.setNum(whereJson.getString("num")); +// json.put("num", whereJson.getString("num")); +// json.put("stor_id", whereJson.getString("stor_id")); +// json.put("sect_id", whereJson.getString("sect_id")); +// json.put("box_length", whereJson.getString("box_length")); +// json.put("box_width", whereJson.getString("box_width")); +// json.put("box_high", whereJson.getString("box_high")); +// json.put("num", whereJson.getString("num")); + JSONObject jo = (JSONObject) JSONObject.toJSON(json); + String row_num_2 = getMaxRow(jo); + jo.put("row_num", row_num_2); +// json.put("row_num", row_num_2); + JSONObject jsonAttr_2 = getBox(jo); if (ObjectUtil.isNotEmpty(jsonAttr_2)) { jsonAttr = jsonAttr_2; @@ -399,8 +433,9 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { whereJson.put("flag", "1"); // 查询所有相同规格木箱的巷道集合 - List allBlockList = WQL.getWO("BST_OUTBOX").addParamMap(whereJson) - .process().getResultJSONArray(0).toJavaList(JSONObject.class); + List allBlockList = stIvtStructattrMapper.selectEmptyBlock(whereJson); +// List allBlockList = WQL.getWO("BST_OUTBOX").addParamMap(whereJson) +// .process().getResultJSONArray(0).toJavaList(JSONObject.class); if (ObjectUtil.isEmpty(allBlockList)) { notOutRowList.clear(); @@ -410,37 +445,39 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { // 查询所有相同规格木箱巷道的仓位 String block_num_in = allBlockList.stream() - .map(row -> row.getString("block_num")) + .map(row -> row.getBlock_num()) .collect(Collectors.joining("','")); whereJson.put("flag", "2"); whereJson.put("block_num_in", "('" + block_num_in + "')"); - List likeAttrList = WQL.getWO("BST_OUTBOX").addParamMap(whereJson) - .process().getResultJSONArray(0).toJavaList(JSONObject.class); + List likeAttrList = stIvtStructattrMapper.selectLikeStructattrs(whereJson); +// List likeAttrList = WQL.getWO("BST_OUTBOX").addParamMap(whereJson) +// .process().getResultJSONArray(0).toJavaList(JSONObject.class); // 计算每个巷道的数量 - ArrayList blockBoxList = new ArrayList<>(); + ArrayList blockBoxList = new ArrayList<>(); for (int i = 0; i < allBlockList.size(); i++) { - JSONObject jsonBlock = allBlockList.get(i); + StructattrQuerry jsonBlock = allBlockList.get(i); - List blockAttrNum = likeAttrList.stream() - .filter(row -> row.getString("block_num").equals(jsonBlock.getString("block_num"))) + List blockAttrNum = likeAttrList.stream() + .filter(row -> row.getBlock_num().equals(jsonBlock.getBlock_num())) .collect(Collectors.toList()); - jsonBlock.put("box_num", String.valueOf(blockAttrNum.size())); + jsonBlock.setBlock_num(jsonBlock.getBlock_num()); +// jsonBlock.put("box_num", String.valueOf(blockAttrNum.size())); blockBoxList.add(jsonBlock); } // 最大木箱数的巷道 - List boxNumList = blockBoxList.stream() - .sorted(Comparator.comparing(row -> row.getIntValue("box_num"))) + List boxNumList = blockBoxList.stream() + .sorted(Comparator.comparing(row -> row.getBox_num())) .collect(Collectors.toList()); String block_num = ""; if (ObjectUtil.isNotEmpty(boxNumList)) { - block_num = boxNumList.get(boxNumList.size() - 1).getString("block_num"); + block_num = boxNumList.get(boxNumList.size() - 1).getBlock_num(); } return block_num; @@ -462,8 +499,9 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { whereJson.put("flag", "3"); // 查询所有某一巷道相同规格木箱的排集合 - List allRowList = WQL.getWO("BST_OUTBOX").addParamMap(whereJson) - .process().getResultJSONArray(0).toJavaList(JSONObject.class); + List allRowList = stIvtStructattrMapper.selectOutBoxRows(whereJson); +// List allRowList = WQL.getWO("BST_OUTBOX").addParamMap(whereJson) +// .process().getResultJSONArray(0).toJavaList(JSONObject.class); if (ObjectUtil.isEmpty(allRowList)) { throw new BadRequestException("请当前排列任务执行完后在试!"); @@ -471,37 +509,39 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { // 查询某一巷道所有相同规格木箱排的仓位 String row_num_in = allRowList.stream() - .map(row -> row.getString("row_num")) + .map(row -> row.getRow_num()) .collect(Collectors.joining("','")); whereJson.put("flag", "2"); whereJson.put("row_num_in", "('" + row_num_in + "')"); - List likeAttrList = WQL.getWO("BST_OUTBOX").addParamMap(whereJson) - .process().getResultJSONArray(0).toJavaList(JSONObject.class); + List likeAttrList = stIvtStructattrMapper.selectLikeStructattrs(whereJson); +// List likeAttrList = WQL.getWO("BST_OUTBOX").addParamMap(whereJson) +// .process().getResultJSONArray(0).toJavaList(JSONObject.class); // 计算每个排的数量 - ArrayList blockBoxList = new ArrayList<>(); + ArrayList blockBoxList = new ArrayList<>(); for (int i = 0; i < allRowList.size(); i++) { - JSONObject jsonRow = allRowList.get(i); + StructattrQuerry jsonRow = allRowList.get(i); - List blockAttrNum = likeAttrList.stream() - .filter(row -> row.getString("row_num").equals(jsonRow.getString("row_num"))) + List blockAttrNum = likeAttrList.stream() + .filter(row -> row.getRow_num().equals(jsonRow.getRow_num())) .collect(Collectors.toList()); - jsonRow.put("box_num", String.valueOf(blockAttrNum.size())); + jsonRow.setBlock_num(jsonRow.getBlock_num()); +// jsonRow.put("box_num", String.valueOf(blockAttrNum.size())); blockBoxList.add(jsonRow); } // 最大木箱数的排 - List boxNumList = blockBoxList.stream() - .sorted(Comparator.comparing(row -> row.getIntValue("box_num"))) + List boxNumList = blockBoxList.stream() + .sorted(Comparator.comparing(row -> row.getBox_num())) .collect(Collectors.toList()); String row_num = ""; if (ObjectUtil.isNotEmpty(boxNumList)) { - row_num = boxNumList.get(boxNumList.size() - 1).getString("row_num"); + row_num = boxNumList.get(boxNumList.size() - 1).getRow_num(); } return row_num; @@ -557,45 +597,45 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { private JSONObject getBoxOne(JSONObject whereJson) { // 查相同规格木箱某一巷道某一排的所有木箱 whereJson.put("flag", "4"); - - List allAttrList = WQL.getWO("BST_OUTBOX").addParamMap(whereJson) - .process().getResultJSONArray(0).toJavaList(JSONObject.class); + List allAttrList = stIvtStructattrMapper.selectAllLikeBox(whereJson); +// List allAttrList = WQL.getWO("BST_OUTBOX").addParamMap(whereJson) +// .process().getResultJSONArray(0).toJavaList(JSONObject.class); // 获取此仓库、库区、巷道、排的所有仓位 whereJson.put("flag", "5"); + List structAllList =stIvtStructattrMapper.getAllStructs(whereJson); +// List structAllList = WQL.getWO("BST_OUTBOX").addParamMap(whereJson) +// .process().getResultJSONArray(0).toJavaList(JSONObject.class); - List structAllList = WQL.getWO("BST_OUTBOX").addParamMap(whereJson) - .process().getResultJSONArray(0).toJavaList(JSONObject.class); - - JSONObject jsonAttr = new JSONObject(); + StIvtStructattr jsonAttr = null; for (int i = 0; i < allAttrList.size(); i++) { - JSONObject json = allAttrList.get(i); + StIvtStructattr json = allAttrList.get(i); - if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("无"))) { + if (json.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("无"))) { jsonAttr = json; break; - } else if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) { + } else if (json.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("深"))) { /* * 深货位: 判断浅货位是否被锁定 */ // 获取此货位对应的浅货位 - List lowAttr = structAllList.stream() - .filter(row -> row.getString("col_num").equals(json.getString("col_num")) && - row.getString("layer_num").equals(json.getString("layer_num")) && - row.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) + List lowAttr = structAllList.stream() + .filter(row -> row.getCol_num().equals(json.getCol_num()) && + row.getLayer_num().equals(json.getLayer_num()) && + row.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) .collect(Collectors.toList()); if (ObjectUtil.isEmpty(lowAttr) || lowAttr.size() != 1) { notOutRowList.clear(); notOutBlockList.clear(); - throw new BadRequestException("仓位:" + json.getString("struct_code") + "对应的浅货位错误!"); + throw new BadRequestException("仓位:" + json.getStruct_code() + "对应的浅货位错误!"); } // 判断浅货位是否有木箱 - if (ObjectUtil.isEmpty(lowAttr.get(0).getString("storagevehicle_code"))) { + if (ObjectUtil.isEmpty(lowAttr.get(0).getStoragevehicle_code())) { // 判断是否被锁定 - if (lowAttr.get(0).getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { + if (lowAttr.get(0).getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { jsonAttr = json; break; } else { @@ -603,9 +643,9 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { } } else { // 判断是否被锁定 - if (lowAttr.get(0).getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { + if (lowAttr.get(0).getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))) { // 判断浅货位木箱和深货位木箱是否相同规格 - boolean ifLike = ifLikeBox(json.getString("storagevehicle_code"), lowAttr.get(0).getString("storagevehicle_code")); + boolean ifLike = ifLikeBox(json.getStoragevehicle_code(), lowAttr.get(0).getStoragevehicle_code()); if (ifLike) { // 相同:出浅货位 @@ -614,15 +654,18 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { } else { // 创建木箱移库单 if (whereJson.getBoolean("notMove") ==null){ - String task_group_id = createBoxMove(lowAttr.get(0)); - json.put("task_group_id", task_group_id); + StIvtStructattr stIvtStructattr = lowAttr.get(0); + JSONObject jo = (JSONObject) JSONObject.toJSON(stIvtStructattr); + String task_group_id = createBoxMove(jo); + json.setTask_group_id(task_group_id); +// json.put("task_group_id", task_group_id); } jsonAttr = json; break; } } else { // 判断是否是空木箱出库锁 - if (lowAttr.get(0).getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("木箱出库锁"))) { + if (lowAttr.get(0).getLock_type().equals(IOSEnum.LOCK_TYPE.code("木箱出库锁"))) { jsonAttr = json; break; } else { @@ -630,7 +673,7 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { } } } - } else if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) { + } else if (json.getZdepth().equals(IOSEnum.ZDEPTH_STRUCT.code("浅"))) { /* * 浅货位: 直接出 */ @@ -638,7 +681,11 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { break; } } - return jsonAttr; + JSONObject jsonObject = new JSONObject(); + if (ObjectUtil.isNotEmpty(jsonAttr)){ + jsonObject = (JSONObject) JSONObject.toJSON(jsonAttr); + } + return jsonObject; } /** @@ -673,6 +720,7 @@ public class OutBoxManageServiceImpl implements OutBoxManageService { * @param jsonObject : 需要移库的仓位对象 * @return String: 任务组标识 */ + @Override public String createBoxMove(JSONObject jsonObject) { WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); // 载具扩展属性表 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java index 5a6de03..c186281 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java @@ -9,17 +9,20 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import org.nl.b_lms.pdm.storagevehicleext.service.IMdPbStoragevehicleextService; +import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; +import org.nl.b_lms.pdm.subpackagerelation.dao.mapper.PdmBiSubpackagerelationMapper; import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper; import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService; import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvOutService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvdtlService; -import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv; -import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdis; -import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdtl; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.*; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtMoveinvMapper; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtMoveinvdtlMapper; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.InBussManageService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.OutBussManageService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.TwoInBussManageService; @@ -27,6 +30,7 @@ import org.nl.b_lms.storage_manage.md.service.MaterialbaseService; import org.nl.b_lms.storage_manage.md.service.MdPbMeasureunitService; import org.nl.b_lms.storage_manage.st.dao.StIvtSectattr; import org.nl.b_lms.storage_manage.st.dao.StIvtStructattr; +import org.nl.b_lms.storage_manage.st.dao.mapper.StIvtStructattrMapper; import org.nl.b_lms.storage_manage.st.service.StIvtSectattrService; import org.nl.b_lms.storage_manage.st.service.StIvtStructattrService; import org.nl.b_lms.storage_manage.st.service.StIvtStructivtService; @@ -124,6 +128,18 @@ public class OutBussManageServiceImpl implements OutBussManageService { private MaterialbaseService materialbaseService; @Autowired private IMdPbStoragevehicleextService mdPbStoragevehicleextService; + @Autowired + private SchBaseTaskMapper schBaseTaskMapper; + @Autowired + private StIvtMoveinvdtlMapper stIvtMoveinvdtlMapper; + @Autowired + private StIvtMoveinvMapper moveinvMapper; + @Autowired + private PdmBiSubpackagerelationMapper pdmBiSubpackagerelationMapper; + + + @Autowired + private StIvtStructattrMapper stIvtStructattrMapper; @Override @Transactional @@ -665,21 +681,19 @@ public class OutBussManageServiceImpl implements OutBussManageService { @Transactional public JSONObject taskExceptional(JSONObject jsonObject) { // 判断是 正常出库转库任务 还是 异常出库转库任务 - // 仓位表 - WQLObject attrTab = WQLObject.getWQLObject("ST_IVT_StructAttr"); SchBaseTask taskDao = ischBaseTaskService.getOne( new QueryWrapper().lambda() .eq(SchBaseTask::getTask_code, jsonObject.getString("task_code")) ); - JSONObject jsonPointOne = attrTab.query("struct_code = '" + taskDao.getPoint_code1() + "'").uniqueResult(0); - JSONObject jsonPointTwo = attrTab.query("struct_code = '" + taskDao.getPoint_code2() + "'").uniqueResult(0); + StIvtStructattr jsonPointOne = stIvtStructattrMapper.selectOne(new LambdaQueryWrapper().eq(StIvtStructattr::getStruct_code, taskDao.getPoint_code1())); + StIvtStructattr jsonPointTwo = stIvtStructattrMapper.selectOne(new LambdaQueryWrapper().eq(StIvtStructattr::getStruct_code, taskDao.getPoint_code2())); // 需要返回的仓位 JSONObject result; - if (jsonPointOne.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("出库异常锁")) - && jsonPointTwo.getString("lock_type").equals(IOSEnum.LOCK_TYPE.code("出库异常锁")) + if (jsonPointOne.getLock_type().equals(IOSEnum.LOCK_TYPE.code("出库异常锁")) + && jsonPointTwo.getLock_type().equals(IOSEnum.LOCK_TYPE.code("出库异常锁")) ) { // 异常出库转库任务 result = unusualMove(jsonObject); @@ -702,10 +716,6 @@ public class OutBussManageServiceImpl implements OutBussManageService { * 2.重新分配货位 * 3.更新任务终点 */ - // 仓位表 - WQLObject attrTab = WQLObject.getWQLObject("ST_IVT_StructAttr"); - // 子卷包装关系 - WQLObject subTab = WQLObject.getWQLObject("pdm_bi_subpackagerelation"); // 物料信息 WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase"); @@ -716,21 +726,21 @@ public class OutBussManageServiceImpl implements OutBussManageService { // 查询物料信息 - JSONObject jsonSub = subTab.query("package_box_sn = '" + taskDao.getVehicle_code() + "'").uniqueResult(0); - JSONObject jsonMater = materTab.query("material_code = '" + jsonSub.getString("product_name") + "'").uniqueResult(0); + PdmBiSubpackagerelation jsonSub = pdmBiSubpackagerelationMapper.selectOne(new LambdaQueryWrapper().eq(PdmBiSubpackagerelation::getPackage_box_sn, taskDao.getVehicle_code())); + JSONObject jsonMater = materTab.query("material_code = '" + jsonSub.getProduct_name() + "'").uniqueResult(0); if (ObjectUtil.isEmpty(jsonMater)) { - throw new BadRequestException("物料编码【"+jsonSub.getString("product_name")+"】信息不存在!"); + throw new BadRequestException("物料编码【"+jsonSub.getProduct_name()+"】信息不存在!"); } // 1.更新原仓位为满入异常锁 - JSONObject jsonPoint = attrTab.query("struct_code = '" + taskDao.getPoint_code2() + "'").uniqueResult(0); - jsonPoint.put("lock_type", IOSEnum.LOCK_TYPE.code("货位异常锁")); - jsonPoint.put("remark", "立库转库-满入/浅货位阻挡异常锁定!"); - jsonPoint.put("task_code", ""); - jsonPoint.put("inv_type", ""); - jsonPoint.put("inv_id", ""); - jsonPoint.put("inv_code", ""); - attrTab.update(jsonPoint); + StIvtStructattr jsonPoint = stIvtStructattrMapper.selectOne(new LambdaQueryWrapper().eq(StIvtStructattr::getStruct_code, taskDao.getPoint_code2())); + jsonPoint.setLock_type(IOSEnum.LOCK_TYPE.code("货位异常锁")); + jsonPoint.setRemark("立库转库-满入/浅货位阻挡异常锁定!"); + jsonPoint.setTask_code(""); + jsonPoint.setInv_type(""); + jsonPoint.setInv_id(null); + jsonPoint.setInv_code(""); + stIvtStructattrMapper.updateById(jsonPoint); // 2.重新分配货位 // 组织查询移入仓位数据 @@ -766,17 +776,18 @@ public class OutBussManageServiceImpl implements OutBussManageService { moveParam.put("height", height); moveParam.put("vehicle_type", boxDao.getVehicle_type()); // 移库巷道 - moveParam.put("move_block_num",jsonPoint.getString("block_num")); + moveParam.put("move_block_num",jsonPoint.getBlock_num()); // TODO JSONObject jsonMove = inBussManageService.getOneStruct(moveParam); JSONObject jsonMove = twoInBussManageService.getOneStruct(moveParam); if (ObjectUtil.isEmpty(jsonMove)) { - throw new BadRequestException("当前【"+jsonPoint.getString("block_num")+"】号巷道没有可用仓位!"); + throw new BadRequestException("当前【"+jsonPoint.getBlock_num()+"】号巷道没有可用仓位!"); } // 更新新仓位状态 - jsonMove.put("lock_type",IOSEnum.LOCK_TYPE.code("出库异常锁")); - jsonMove.put("inv_code", taskDao.getVehicle_code()); - attrTab.update(jsonMove); + StIvtStructattr structattr = stIvtStructattrMapper.selectOne(new LambdaQueryWrapper().eq(StIvtStructattr::getStruct_code, jsonMove.getString("struct_code"))); + structattr.setLock_type(IOSEnum.LOCK_TYPE.code("出库异常锁")); + structattr.setInv_code(taskDao.getVehicle_code()); + stIvtStructattrMapper.updateById(structattr); // 3.更新任务终点 taskDao.setPoint_code2(jsonMove.getString("struct_code")); @@ -798,14 +809,6 @@ public class OutBussManageServiceImpl implements OutBussManageService { * 3.更新单据相关数据 * 4.更新任务终点 */ - // 仓位表 - WQLObject attrTab = WQLObject.getWQLObject("ST_IVT_StructAttr"); - // 移库单明细 - WQLObject moveDtlTab = WQLObject.getWQLObject("st_ivt_moveinvdtl"); - // 移库单主表 - WQLObject moveMstTab = WQLObject.getWQLObject("st_ivt_moveinv"); - // 子卷包装关系 - WQLObject subTab = WQLObject.getWQLObject("pdm_bi_subpackagerelation"); // 物料信息 WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase"); @@ -816,48 +819,48 @@ public class OutBussManageServiceImpl implements OutBussManageService { ); // 查询对应单据 - JSONObject jsonMoveDtl = moveDtlTab.query("task_id = '" + taskDao.getTask_id() + "'").uniqueResult(0); - JSONObject jsonMoveMst = moveMstTab.query("moveinv_id = '" + jsonMoveDtl.getString("moveinv_id") + "' AND bill_status <> '99'") - .uniqueResult(0); + StIvtMoveinvdtl jsonMoveDtl = stIvtMoveinvdtlMapper.selectOne(new LambdaQueryWrapper().eq(StIvtMoveinvdtl::getTask_id, taskDao.getTask_id())); + StIvtMoveinv jsonMoveMst = moveinvMapper.selectOne(new LambdaQueryWrapper().eq(StIvtMoveinv::getMoveinv_id, jsonMoveDtl.getMoveinv_id()) + .ne(StIvtMoveinv::getBill_status, "99")); if (ObjectUtil.isEmpty(jsonMoveMst)) { throw new BadRequestException("未找到任务号为【"+taskDao.getTask_code()+"】的移库单,请检查数据!"); } // 查询物料信息 - JSONObject jsonSub = subTab.query("package_box_sn = '" + taskDao.getVehicle_code() + "'").uniqueResult(0); - JSONObject jsonMater = materTab.query("material_code = '" + jsonSub.getString("product_name") + "'").uniqueResult(0); + PdmBiSubpackagerelation jsonSub = pdmBiSubpackagerelationMapper.selectOne(new LambdaQueryWrapper().eq(PdmBiSubpackagerelation::getPackage_box_sn, taskDao.getVehicle_code())); + JSONObject jsonMater = materTab.query("material_code = '" + jsonSub.getProduct_name() + "'").uniqueResult(0); if (ObjectUtil.isEmpty(jsonMater)) { - throw new BadRequestException("物料编码【"+jsonSub.getString("product_name")+"】信息不存在!"); + throw new BadRequestException("物料编码【"+jsonSub.getProduct_name()+"】信息不存在!"); } // 标记原货位为货位异常锁-并更新库存 - JSONObject jsonAttr = attrTab.query("struct_code = '" + taskDao.getPoint_code2() + "'").uniqueResult(0); - jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("未锁定")); - attrTab.update(jsonAttr); + StIvtStructattr jsonAttr = stIvtStructattrMapper.selectOne(new LambdaQueryWrapper().eq(StIvtStructattr::getStruct_code, taskDao.getPoint_code2())); + jsonAttr.setLock_type(IOSEnum.LOCK_TYPE.code("未锁定")); + stIvtStructattrMapper.updateById(jsonAttr); //更新原仓位库存 JSONObject jsonParam = new JSONObject(); - jsonParam.put("struct_id", jsonAttr.getString("struct_id")); + jsonParam.put("struct_id", jsonAttr.getStruct_id()); jsonParam.put("material_id", jsonMater.getString("material_id")); - jsonParam.put("pcsn", jsonMoveDtl.getString("pcsn")); - jsonParam.put("change_qty", jsonMoveDtl.getString("qty")); - jsonParam.put("inv_id", jsonMoveMst.getString("moveinv_id")); - jsonParam.put("bill_code", jsonMoveMst.getString("bill_code")); - jsonParam.put("quality_scode", jsonMoveDtl.getString("quality_scode")); + jsonParam.put("pcsn", jsonMoveDtl.getPcsn()); + jsonParam.put("change_qty", jsonMoveDtl.getQty()); + jsonParam.put("inv_id", jsonMoveMst.getMoveinv_id()); + jsonParam.put("bill_code", jsonMoveMst.getBill_code()); + jsonParam.put("quality_scode", jsonMoveDtl.getQuality_scode()); storPublicService.IOStor(jsonParam, IOSEnum.IVT_CHANGE.code("减待入")); - jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("货位异常锁")); - jsonAttr.put("remark", "立库转库-满入/浅货位阻挡异常锁定!"); - jsonAttr.put("task_code", ""); - jsonAttr.put("inv_type", ""); - jsonAttr.put("inv_id", ""); - jsonAttr.put("inv_code", ""); - attrTab.update(jsonAttr); + jsonAttr.setLock_type(IOSEnum.LOCK_TYPE.code("货位异常锁")); + jsonAttr.setRemark("立库转库-满入/浅货位阻挡异常锁定!"); + jsonAttr.setTask_code(""); + jsonAttr.setInv_type(""); + jsonAttr.setInv_id(null); + jsonAttr.setInv_code(""); + stIvtStructattrMapper.updateById(jsonAttr); // 2.重新分配货位 // 组织查询移入仓位数据 JSONObject moveParam = new JSONObject(); - moveParam.put("stor_id", jsonMoveMst.getString("stor_id")); + moveParam.put("stor_id", jsonMoveMst.getStor_id()); moveParam.put("sect_id", RegionTypeEnum.TWO_BZC01.getId()); moveParam.put("box_no", taskDao.getVehicle_code()); moveParam.put("material_id", jsonMater.getString("material_id")); @@ -888,34 +891,35 @@ public class OutBussManageServiceImpl implements OutBussManageService { moveParam.put("height", height); moveParam.put("vehicle_type", boxDao.getVehicle_type()); // 移库巷道 - moveParam.put("move_block_num",jsonAttr.getString("block_num")); + moveParam.put("move_block_num",jsonAttr.getBlock_num()); // TODO JSONObject jsonMove = inBussManageService.getOneStruct(moveParam); JSONObject jsonMove = twoInBussManageService.getOneStruct(moveParam); if (ObjectUtil.isEmpty(jsonMove)) { - throw new BadRequestException("当前【"+jsonAttr.getString("block_num")+"】号巷道没有可用仓位!"); + throw new BadRequestException("当前【"+jsonAttr.getBlock_num()+"】号巷道没有可用仓位!"); } // 更新新移入货位锁类型,更新库存 JSONObject jsonParam2 = new JSONObject(); jsonParam2.put("struct_id", jsonMove.getString("struct_id")); jsonParam2.put("material_id", jsonMater.getString("material_id")); - jsonParam2.put("pcsn", jsonMoveDtl.getString("pcsn")); - jsonParam2.put("change_qty", jsonMoveDtl.getString("qty")); - jsonParam2.put("quality_scode", jsonMoveDtl.getString("quality_scode")); - jsonParam2.put("inv_id", jsonMoveMst.getString("moveinv_id")); - jsonParam2.put("bill_code", jsonMoveMst.getString("bill_code")); - jsonParam2.put("bill_type_scode", jsonMoveMst.getString("bill_code")); - jsonParam2.put("qty_unit_id", jsonMoveDtl.getString("qty_unit_id")); + jsonParam2.put("pcsn", jsonMoveDtl.getPcsn()); + jsonParam2.put("change_qty", jsonMoveDtl.getQty()); + jsonParam2.put("quality_scode", jsonMoveDtl.getQuality_scode()); + jsonParam2.put("inv_id", jsonMoveMst.getMoveinv_id()); + jsonParam2.put("bill_code", jsonMoveMst.getBill_code()); + jsonParam2.put("bill_type_scode", jsonMoveMst.getBill_code()); + jsonParam2.put("qty_unit_id", jsonMoveDtl.getQty_unit_id()); storPublicService.IOStor(jsonParam2, IOSEnum.IVT_CHANGE.code("加待入")); - jsonMove.put("lock_type", IOSEnum.LOCK_TYPE.code("移入锁")); - attrTab.update(jsonMove); + StIvtStructattr structattr = stIvtStructattrMapper.selectOne(new LambdaQueryWrapper().eq(StIvtStructattr::getStruct_code, jsonMove.getString("struct_code"))); + structattr.setLock_type(IOSEnum.LOCK_TYPE.code("移入锁")); + stIvtStructattrMapper.updateById(structattr); // 3.更新单据相关数据 - jsonMoveDtl.put("turnin_struct_id", jsonMove.getString("struct_id")); - jsonMoveDtl.put("turnin_struct_code", jsonMove.getString("struct_code")); - jsonMoveDtl.put("turnin_struct_name", jsonMove.getString("struct_name")); - moveDtlTab.update(jsonMoveDtl); + jsonMoveDtl.setTurnin_struct_id(jsonMove.getString("struct_id")); + jsonMoveDtl.setTurnin_struct_code(jsonMove.getString("struct_code")); + jsonMoveDtl.setTurnin_struct_name(jsonMove.getString("struct_name")); + stIvtMoveinvdtlMapper.updateById(jsonMoveDtl); // 4.更新任务终点 taskDao.setPoint_code2(jsonMove.getString("struct_code")); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutVehicleManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutVehicleManageServiceImpl.java index 779ab4d..f635a18 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutVehicleManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutVehicleManageServiceImpl.java @@ -90,10 +90,10 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService { }*/ //判断当前点位是否存在任务,如果存在则不生成任务 - List taskList= schBaseTaskMapper.selectList(new QueryWrapper().lambda().eq(SchBaseTask::getPoint_code2, whereJson.getString("device_code")).lt(SchBaseTask::getTask_status, "07").eq(SchBaseTask::getIs_delete, "0")); + List taskList = schBaseTaskMapper.selectList(new QueryWrapper().lambda().eq(SchBaseTask::getPoint_code2, whereJson.getString("device_code")).lt(SchBaseTask::getTask_status, "07").eq(SchBaseTask::getIs_delete, "0")); if (ObjectUtil.isNotEmpty(taskList)) { - throw new BadRequestException("点位【"+taskList.get(0).getPoint_code2()+"】正在出空托盘任务!"); + throw new BadRequestException("点位【" + taskList.get(0).getPoint_code2() + "】正在出空托盘任务!"); } JSONObject jsonAttr = getStruct(whereJson); @@ -144,15 +144,18 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService { ); // 标记原货位为满入异常锁 - JSONObject jsonAttr = attrTab.query("struct_code = '" + taskDao.getPoint_code1() + "'").uniqueResult(0); - jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("货位异常锁")); - attrTab.update(jsonAttr); + StIvtStructattr jsonAttr = stIvtStructattrMapper.selectOne(new LambdaQueryWrapper().eq(StIvtStructattr::getStruct_code, taskDao.getPoint_code1())); + jsonAttr.setLock_type(IOSEnum.LOCK_TYPE.code("货位异常锁")); + stIvtStructattrMapper.updateById(jsonAttr); +// JSONObject jsonAttr = attrTab.query("struct_code = '" + taskDao.getPoint_code1() + "'").uniqueResult(0); +// jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("货位异常锁")); +// attrTab.update(jsonAttr); // 重新分配货位 JSONObject jsonParam = new JSONObject(); jsonParam.put("stor_id", IOSEnum.STOR_ID.code("二期")); jsonParam.put("sect_id", RegionTypeEnum.TWO_BZC01.getId()); - jsonParam.put("move_block_num", jsonAttr.getString("block_num")); + jsonParam.put("move_block_num", jsonAttr.getBlock_num()); jsonParam.put("storagevehicle_type", taskDao.getVehicle_type()); // 调用找货位方法 @@ -182,29 +185,38 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService { // 仓位表 WQLObject attrTab = WQLObject.getWQLObject("ST_IVT_StructAttr"); - JSONObject jsonTask = taskService.query("task_code = '" + jsonObject.getString("task_code") + "'").uniqueResult(0); + SchBaseTask jsonTask = schBaseTaskMapper.selectOne(new QueryWrapper().lambda().eq(SchBaseTask::getTask_code, jsonObject.getString("task_code"))); +// JSONObject jsonTask = taskService.query("task_code = '" + jsonObject.getString("task_code") + "'").uniqueResult(0); // 找出对应的浅货位 - JSONObject jsonAttrOrder = attrTab.query("struct_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0); + StIvtStructattr jsonAttrOrder = stIvtStructattrMapper.selectOne(new QueryWrapper().lambda().eq(StIvtStructattr::getStruct_code, jsonTask.getPoint_code1())); +// JSONObject jsonAttrOrder = attrTab.query("struct_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0); - JSONObject jsonAttrNow = attrTab.query("row_num = '" + jsonAttrOrder.getString("row_num") + "' AND layer_num = '" + jsonAttrOrder.getString("layer_num") + "' AND col_num = '" + jsonAttrOrder.getString("col_num") + "' and zdepth = '" + IOSEnum.ZDEPTH_STRUCT.code("浅") + "' and stor_id = '"+jsonAttrOrder.getString("stor_id")+"' AND is_delete = '0' and is_used = '1'") - .uniqueResult(0); + StIvtStructattr jsonAttrNow = stIvtStructattrMapper.selectOne(new QueryWrapper().lambda().eq(StIvtStructattr::getRow_num, jsonAttrOrder.getRow_num()) + .eq(StIvtStructattr::getLayer_num, jsonAttrOrder.getLayer_num()) + .eq(StIvtStructattr::getCol_num, jsonAttrOrder.getCol_num()) + .eq(StIvtStructattr::getZdepth, IOSEnum.ZDEPTH_STRUCT.code("浅")) + .eq(StIvtStructattr::getStor_id, jsonAttrOrder.getStor_id()) + .eq(StIvtStructattr::getIs_delete, "0") + .eq(StIvtStructattr::getIs_used, "1")); +// JSONObject jsonAttrNow = attrTab.query("row_num = '" + jsonAttrOrder.getString("row_num") + "' AND layer_num = '" + jsonAttrOrder.getString("layer_num") + "' AND col_num = '" + jsonAttrOrder.getString("col_num") + "' and zdepth = '" + IOSEnum.ZDEPTH_STRUCT.code("浅") + "' and stor_id = '" + jsonAttrOrder.getString("stor_id") + "' AND is_delete = '0' and is_used = '1'") +// .uniqueResult(0); if (ObjectUtil.isEmpty(jsonAttrNow)) { - throw new BadRequestException("对应浅货位不存在或未启用!" + jsonTask.getString("point_code1")); + throw new BadRequestException("对应浅货位不存在或未启用!" + jsonTask.getPoint_code1()); } // 锁住仓位 - jsonAttrNow.put("lock_type", IOSEnum.LOCK_TYPE.code("货位异常出库锁")); - attrTab.update(jsonAttrNow); + jsonAttrNow.setLock_type(IOSEnum.LOCK_TYPE.code("货位异常出库锁")); + stIvtStructattrMapper.updateById(jsonAttrNow); // 生成任务 JSONObject taskParam = new JSONObject(); - taskParam.put("start_device_code", jsonAttrNow.getString("struct_code")); - taskParam.put("next_device_code", IOSEnum.OUT_POINT.code(jsonAttrNow.getString("row_num"))); + taskParam.put("start_device_code", jsonAttrNow.getStruct_code()); + taskParam.put("next_device_code", IOSEnum.OUT_POINT.code(jsonAttrNow.getRow_num().toString())); taskParam.put("task_type", "010712"); taskParam.put("car_no", "此货位LMS系统未有库存,请待出至【CK2001】点位后确认实物并重新手工入回库!"); - taskParam.put("vehicle_code",IOSEnum.IS_NOTANDYES.code("否")); + taskParam.put("vehicle_code", IOSEnum.IS_NOTANDYES.code("否")); TwoExcepionalMoveTask taskBean = new TwoExcepionalMoveTask(); String task_id = taskBean.createTask(taskParam); @@ -214,11 +226,12 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService { /** * 找一个空托盘(空托盘区) + * * @param whereJson { - * stor_id: 仓库标识 - * sect_id: 库区标识 - * storagevehicle_type: 载具类型 - * } + * stor_id: 仓库标识 + * sect_id: 库区标识 + * storagevehicle_type: 载具类型 + * } * @return JSONObject : 仓位对象 */ private JSONObject getStruct(JSONObject whereJson) { @@ -245,7 +258,7 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService { notOutRowList.clear(); notOutBlockList.clear(); if (ObjectUtil.isNotEmpty(block_num)) { - throw new BadRequestException(block_num+"号巷道没有相同托盘类型的库存!托盘类型:"+whereJson.getString("storagevehicle_type")); + throw new BadRequestException(block_num + "号巷道没有相同托盘类型的库存!托盘类型:" + whereJson.getString("storagevehicle_type")); } else { throw new BadRequestException("没有相同托盘类型的库存!"); } @@ -282,7 +295,7 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService { json.put("block_num", vehicleBlockStr); String row_num_2 = getMaxRow(json); - json.put("row_num",row_num_2); + json.put("row_num", row_num_2); JSONObject jsonAttr_2 = getVehicle(json); if (ObjectUtil.isNotEmpty(jsonAttr_2)) { @@ -298,13 +311,14 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService { /** * 找一个空托盘 + * * @param whereJson: { - * stor_id:仓库标识 - * sect_id:库区标识 - * vehicle_type: 托盘类型 - * block_num: 巷道 - * row_num: 排 - * } + * stor_id:仓库标识 + * sect_id:库区标识 + * vehicle_type: 托盘类型 + * block_num: 巷道 + * row_num: 排 + * } * @return JSONObject: 需要出库的托盘盘 */ private JSONObject getVehicle(JSONObject whereJson) { @@ -321,7 +335,7 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService { // 新的一排 String row_num_new = this.getMaxRow(whereJson); - whereJson.put("row_num",row_num_new); + whereJson.put("row_num", row_num_new); jsonAttr = this.getVehicleOne(whereJson); } @@ -331,11 +345,12 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService { /** * 找到相同托盘类型最多的巷道 + * * @param whereJson: { - * stor_id:仓库标识 - * sect_id:库区标识 - * storagevehicle_type: 托盘类型 - * } + * stor_id:仓库标识 + * sect_id:库区标识 + * storagevehicle_type: 托盘类型 + * } * @return String: 巷道 */ private String getMaxBlock(JSONObject whereJson) { @@ -350,7 +365,7 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService { throw new BadRequestException("没有相同类型的空托盘库存!"); } // 查询所有相同托盘类型巷道的仓位 - whereJson.put("block_num_in",outVehicleBlockList); + whereJson.put("block_num_in", outVehicleBlockList); List outVehicleStructattr = stIvtStructattrMapper.getOutVehicleStructattr(whereJson); @@ -377,17 +392,18 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService { block_num = boxNumList.get(boxNumList.size() - 1).getBlock_num(); } - return block_num ; + return block_num; } /** * 找到某一巷道相同托盘类型最多的排 + * * @param whereJson: { - * stor_id:仓库标识 - * sect_id:库区标识 - * storagevehicle_type: 托盘类型 - * block_num: 巷道 - * } + * stor_id:仓库标识 + * sect_id:库区标识 + * storagevehicle_type: 托盘类型 + * block_num: 巷道 + * } * @return String: 排 */ private String getMaxRow(JSONObject whereJson) { @@ -403,14 +419,13 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService { whereJson.put("row_num_in", outVehicleStructRow); - List boxAllList = stIvtStructattrMapper.getOutVehicleStructattr(whereJson); // 计算每个排的数量 ArrayList blockVehicleList = new ArrayList<>(); for (int i = 0; i < outVehicleStructRow.size(); i++) { - String structRow = outVehicleStructRow.get(i); + String structRow = outVehicleStructRow.get(i); List stIvtStructattrs = boxAllList.stream() .filter(row -> row.getRow_num().equals(structRow)) @@ -436,13 +451,14 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService { /** * 确定巷道、确定排,找一个空托盘 + * * @param whereJson: { - * stor_id:仓库标识 - * sect_id:库区标识 - * storagevehicle_type: 托盘类型 - * block_num: 巷道 - * row_num: 排 - * } + * stor_id:仓库标识 + * sect_id:库区标识 + * storagevehicle_type: 托盘类型 + * block_num: 巷道 + * row_num: 排 + * } * @return JSONObject: 空托盘 */ private JSONObject getVehicleOne(JSONObject whereJson) { @@ -495,9 +511,9 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService { break; } } - if (ObjectUtil.isEmpty(stIvtStructattrReturn)){ - return null; - }else { + if (ObjectUtil.isEmpty(stIvtStructattrReturn)) { + return null; + } else { JSONObject jsonAttr = (JSONObject) JSONObject.toJSON(stIvtStructattrReturn); return jsonAttr; } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/StIvtStructattr.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/StIvtStructattr.java index c2a4890..2545809 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/StIvtStructattr.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/StIvtStructattr.java @@ -362,4 +362,6 @@ public class StIvtStructattr implements Serializable { private String is_packing; @TableField(exist = false) private String is_vehicle; + @TableField(exist = false) + private String task_group_id; } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructattrMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructattrMapper.java index 407ab7f..ed851c0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructattrMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructattrMapper.java @@ -53,4 +53,26 @@ public interface StIvtStructattrMapper extends BaseMapper { IPage getStructIvtPage(IPage pages, MoveInvPageParam paramMap); JSONArray getVehiclesStorageByCode(String code); + + List selectEmptyBlock(@Param("param") JSONObject jsonParam); + + List selectAllBox(@Param("param") JSONObject jsonParam); + + List selectRows(@Param("param") JSONObject jsonParam); + + List getAllEmptyStruct(@Param("param") JSONObject jsonParam); + + List getAllStructList(@Param("param") JSONObject jsonParam); + + List getStructs(@Param("param") JSONObject whereJson); + + List getStructsByBlockNum(@Param("param") JSONObject whereJson); + + List selectOutBoxRows(@Param("param") JSONObject whereJson); + + List selectLikeStructattrs(@Param("param") JSONObject whereJson); + + List selectAllLikeBox(@Param("param") JSONObject whereJson); + + List getAllStructs(@Param("param") JSONObject whereJson); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructattrMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructattrMapper.xml index 4035fbe..770f249 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructattrMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/mapper/StIvtStructattrMapper.xml @@ -704,5 +704,383 @@ AND struct.storagevehicle_code = #{code} + + + + + + + + + + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java index 5669022..c340c9f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java @@ -2075,7 +2075,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { throw new BadRequestException("未查询到对应的分切计划!"); } plan.setLevel(Level); - slittingproductionplanService.update(plan); + slittingproductionplanService.updateById(plan); resultParam.put("RTYPE", "S"); resultParam.put("Code", "0"); resultParam.put("RTMSG", "操作成功!"); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/rest/LmsToSapController.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/rest/LmsToSapController.java index bdb06a0..99be2d5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/rest/LmsToSapController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/rest/LmsToSapController.java @@ -34,7 +34,7 @@ public class LmsToSapController { return new ResponseEntity<>(LmsToSapService.returnMoveDtl(jo), HttpStatus.OK); } - @PostMapping("/returnOutDtl") + @PostMapping("/returnDtl") @Log("LMS调拨出库接口回传") public ResponseEntity returnOutDtl(@RequestBody JSONObject jo) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/RawFoilController.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/RawFoilController.java index 7f84e47..dd2a1e4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/RawFoilController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/RawFoilController.java @@ -6,6 +6,7 @@ import lombok.extern.slf4j.Slf4j; import org.nl.modules.logging.annotation.Log; import org.nl.modules.wql.core.content.HttpContext; import org.nl.wms.pda.mps.service.RawFoilService; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.RawfoilWorkOrder; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; @@ -13,6 +14,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + @RestController @RequiredArgsConstructor //010101 010103 @@ -70,6 +73,13 @@ public class RawFoilController { return new ResponseEntity<>(rawFoilService.scrollDowm(whereJson), HttpStatus.OK); } + @PostMapping("/scrollDowmTest") + @Log("下卷") + + public ResponseEntity scrollDowmTest(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(rawFoilService.scrollDowmTest(whereJson), HttpStatus.OK); + } + @PostMapping("/confirmWeight") @Log("母卷重量维护") @@ -86,4 +96,11 @@ public class RawFoilController { ctx.setRows((String) (whereJson.get("size"))); return new ResponseEntity<>(rawFoilService.query(whereJson, ctx), HttpStatus.OK); } + + @PostMapping("/print") + @Log("打印") + public ResponseEntity print(@RequestBody JSONObject whereJson){ + rawFoilService.print(whereJson); + return new ResponseEntity<>(HttpStatus.CREATED); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/RawFoilService.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/RawFoilService.java index 796b30e..21b60af 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/RawFoilService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/RawFoilService.java @@ -55,7 +55,17 @@ public interface RawFoilService { */ JSONObject scrollDowm(JSONObject whereJson); + /** + * 下卷 + * + * @param whereJson / + * @return JSONObject + */ + JSONObject scrollDowmTest(JSONObject whereJson); + JSONObject query(JSONObject whereJson, HttpContext ctx); JSONObject confirmWeight(JSONObject whereJson); + + void print(JSONObject whereJson); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java index 6c5cb22..d13e6b5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java @@ -9,8 +9,18 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.sch.point.dao.SchBasePoint; +import org.nl.b_lms.sch.point.dao.StIvtCoolregionio; +import org.nl.b_lms.sch.point.dao.mapper.SchBasePointMapper; +import org.nl.b_lms.sch.point.dao.mapper.StIvtCoolregionioMapper; +import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper; +import org.nl.b_lms.storage_manage.md.dao.MdMeMaterialBase; +import org.nl.b_lms.storage_manage.md.dao.mapper.MdMeMaterialBaseMapper; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.RedisUtils; @@ -26,10 +36,9 @@ import org.nl.wms.ext.acs.service.impl.WmsToAcsServiceImpl; import org.nl.wms.pda.mps.eum.RegionTypeEnum; import org.nl.wms.pda.mps.service.BakingService; import org.nl.wms.pda.mps.service.HandleBakingService; -import org.nl.wms.pdm.rawfoilworkorder.service.dao.CoolPointIvt; -import org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper.CoolPointIvtMapper; -import org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper.RawfoilWorkOrderMapper; -import org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper.SbPointIvtMapper; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.*; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper.*; +import org.nl.wms.pdm.rawfoilworkorder.service.dto.HotPointIvtDto; import org.nl.wms.sch.tasks.CutConveyorTask; import org.nl.wms.sch.tasks.InCoolIvtTask; import org.nl.wms.sch.tasks.InHotTask; @@ -38,7 +47,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; +import java.util.List; @Service @RequiredArgsConstructor @@ -55,6 +68,18 @@ public class BakingServiceImpl implements BakingService { private RawfoilWorkOrderMapper rawfoilWorkOrderMapper; @Autowired private SbPointIvtMapper sbPointIvtMapper; + @Autowired + private SchBasePointMapper schBasePointMapper; + @Autowired + private HotPointIvtMapper hotPointIvtMapper; + @Autowired + private StIvtCoolregionioMapper stIvtCoolregionioMapper; + @Autowired + private MdMeMaterialBaseMapper mdMeMaterialBaseMapper; + @Autowired + private SchBaseTaskMapper schBaseTaskMapper; + @Autowired + private HotPointIvtIoMstMapper hotPointIvtIoMstMapper; /* * 业务流程: @@ -77,15 +102,6 @@ public class BakingServiceImpl implements BakingService { String option = whereJson.getString("option"); // 1-入箱 2-出箱 - WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point"); // 点位表 - WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表 - WQLObject coolIvtTab = WQLObject.getWQLObject("ST_IVT_CoolPointIvt"); // 冷却区点位库存表 - WQLObject hosIvtTab = WQLObject.getWQLObject("ST_IVT_HotPointIvt"); // 烤箱区点位库存表 - WQLObject hosReMstTab = WQLObject.getWQLObject("ST_IVT_HotRegionIOMst"); // 烤箱区出入主表 - WQLObject coolTab = WQLObject.getWQLObject("ST_IVT_CoolRegionIO"); // 冷却区出入表 - WQLObject rawTab = WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder"); // 生箔工单表 - WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase"); // 物料表 - //获取人员对应的区域 UserAreaServiceImpl userAreaService = new UserAreaServiceImpl(); String in_area_id = userAreaService.getInArea(); @@ -103,23 +119,25 @@ public class BakingServiceImpl implements BakingService { } //校验该设备是否启用,且母卷MES是否请求烘烤 //查询该母卷号、设备号对应的生箔工单 - JSONObject raw_jo = WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").query("container_name ='" + container_name + "'").uniqueResult(0); + RawfoilWorkOrder rawfoilWorkOrder = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper() + .eq(RawfoilWorkOrder::getContainer_name, container_name)); - if (ObjectUtil.isEmpty(raw_jo)) { + if (ObjectUtil.isEmpty(rawfoilWorkOrder)) { throw new BadRequestException("未查询到对应的生箔工单!"); } - if (raw_jo.getString("order_type").equals("1")) { + if ("1".equals(rawfoilWorkOrder.getOrder_type())) { throw new BadRequestException("当前工单为标箔工单,不允许烘烤!"); } - String resource_name = raw_jo.getString("resource_name"); - JSONObject sb_jo = WQLObject.getWQLObject("st_ivt_sbpointivt").query("ext_code ='" + resource_name + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(sb_jo)) { + String resource_name = rawfoilWorkOrder.getResource_name(); + SbPointIvt sbPointIvt = sbPointIvtMapper.selectOne(new LambdaQueryWrapper() + .eq(SbPointIvt::getExt_code, resource_name)); + if (ObjectUtil.isEmpty(sbPointIvt)) { throw new BadRequestException("未查询到母卷号:" + container_name + "对应的生箔机台编号!"); } String mes_used = paramService.findByCode("mes_used").getValue(); if (StrUtil.equals("1", mes_used)) { - if (!"1".equals(raw_jo.getString("is_baking"))) { + if (!"1".equals(rawfoilWorkOrder.getIs_baking())) { throw new BadRequestException("该母卷在MES上未进行决策入烘箱,不允许进行入烘箱操作!"); } } @@ -139,32 +157,31 @@ public class BakingServiceImpl implements BakingService { /* * 根据点位判断是 冷却区入烘箱还是烘箱对接位入烘箱 */ - JSONObject jsonPointZc = pointTab.query("point_code = '" + point_code1 + "' AND point_type = '5'").uniqueResult(0); - - String point_type = "1"; + SchBasePoint schBasePoint = schBasePointMapper.selectOne(new LambdaQueryWrapper() + .eq(SchBasePoint::getPoint_code, point_code1) + .eq(SchBasePoint::getPoint_type, "5")); // 冷却点 - JSONObject jsonCoolIvt = coolIvtTab.query("full_point_code = '" + point_code1 + "' and is_used = '1' AND point_type = '" + point_type + "'").uniqueResult(0); -// CoolPointIvt coolPointIvt = coolPointIvtMapper.selectOne(new LambdaQueryWrapper() -// .eq(ObjectUtil.isNotEmpty(point_code1), CoolPointIvt::getPoint_code, point_code1)); - if (ObjectUtil.isNotEmpty(jsonPointZc)) { - if (!in_area_id.contains(jsonPointZc.getString("product_area"))) { - throw new BadRequestException("当前登录人员暂无【" + jsonPointZc.getString("product_area") + "】操作权限"); + CoolPointIvt jsonCoolIvt = coolPointIvtMapper.selectOne(new LambdaQueryWrapper().eq(CoolPointIvt::getFull_point_code, point_code1) + .eq(CoolPointIvt::getIs_used, "1") + .eq(CoolPointIvt::getPoint_type, "1")); + if (ObjectUtil.isNotEmpty(schBasePoint)) { + if (!in_area_id.contains(schBasePoint.getProduct_area())) { + throw new BadRequestException("当前登录人员暂无【" + schBasePoint.getProduct_area() + "】操作权限"); } /* * 暂存区入烘箱 */ // 1.查询烘箱对应的空位 JSONObject jsonMap = new JSONObject(); - jsonMap.put("flag", "1"); - jsonMap.put("product_area", jsonPointZc.getString("product_area")); + jsonMap.put("product_area", schBasePoint.getProduct_area()); //获取温度幅度 - jsonMap.put("point_location", jsonPointZc.getString("point_location")); - JSONArray hot_rows = WQL.getWO("PDA_BAKING_01").addParamMap(jsonMap).process().getResultJSONArray(0); - JSONObject jsonHotIvt = new JSONObject(); + jsonMap.put("point_location", schBasePoint.getPoint_location()); + List hot_rows = hotPointIvtMapper.selectHotPointIvt(jsonMap); + HotPointIvt jsonHotIvt = null; log.debug("获取温度幅度hot_rows:" + hot_rows); for (int i = 0; i < hot_rows.size(); i++) { - JSONObject hot_row = hot_rows.getJSONObject(i); - String point_code = hot_row.getString("point_code"); + HotPointIvt hotPointIvt = hot_rows.get(i); + String point_code = hotPointIvt.getPoint_code(); boolean exists = redisUtils.hHasKey(point_code, "temperature"); String point_temperature = ""; if (exists) { @@ -172,7 +189,7 @@ public class BakingServiceImpl implements BakingService { } if (ObjectUtil.isNotEmpty(point_temperature)) { if (point_temperature.equals(temperature)) { - jsonHotIvt = hot_row; + jsonHotIvt = hotPointIvt; log.debug("获取满足温度幅度jsonHotIvt:" + jsonHotIvt); break; } @@ -182,28 +199,29 @@ public class BakingServiceImpl implements BakingService { JSONObject param = new JSONObject(); param.put("type", "2"); // 1- 冷却区入烘箱 2- 暂存位入烘箱 param.put("point_code1", point_code1); - param.put("point_code2", jsonHotIvt.getString("point_code")); + param.put("point_code2", jsonHotIvt.getPoint_code()); param.put("material_code", container_name); - param.put("product_area", jsonPointZc.getString("product_area")); + param.put("product_area", schBasePoint.getProduct_area()); param.put("request_param", NumberUtil.mul(Double.parseDouble(hours), 60)); InHotTask inHotTask = new InHotTask(); String task_id = inHotTask.createTask(param); // 3.插入主表 - JSONObject jsonRaw = rawTab.query("container_name = '" + container_name + "' and is_delete = '0'").uniqueResult(0); - JSONObject jsonMater = materTab.query("material_code = '" + jsonRaw.getString("product_name") + "'").uniqueResult(0); + RawfoilWorkOrder jsonRaw = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper().eq(RawfoilWorkOrder::getContainer_name, container_name) + .eq(RawfoilWorkOrder::getIs_delete, "0")); + MdMeMaterialBase jsonMater = mdMeMaterialBaseMapper.selectOne(new LambdaQueryWrapper().eq(MdMeMaterialBase::getMaterial_code, jsonRaw.getProduct_name())); JSONObject hotParam = new JSONObject(); hotParam.put("container_name", container_name); - hotParam.put("workorder_id", jsonRaw.getString("workorder_id")); - hotParam.put("material_id", jsonMater.getString("material_id")); - hotParam.put("qty", jsonRaw.get("productin_qty")); + hotParam.put("workorder_id", jsonRaw.getWorkorder_id()); + hotParam.put("material_id", jsonMater.getMaterial_id()); + hotParam.put("qty", jsonRaw.getProductin_qty()); hotParam.put("io_type", "0"); - hotParam.put("qty_unit_id", jsonMater.getString("base_unit_id")); + hotParam.put("qty_unit_id", jsonMater.getBase_unit_id()); hotParam.put("task_id", task_id); hotParam.put("start_point_code", point_code1); - hotParam.put("end_point_code", jsonHotIvt.getString("point_code")); + hotParam.put("end_point_code", jsonHotIvt.getPoint_code()); hotParam.put("temperature", temperature); hotParam.put("oven_time", hours); this.createHotIoMst(hotParam); @@ -214,8 +232,8 @@ public class BakingServiceImpl implements BakingService { // hint: 两个都找不到点位,可能是使用了满轴位请求,查找冷却区域 // 1.根据冷却区此母卷的点位找到对应的暂存区、找到空位 - String product_area = jsonCoolIvt.getString("product_area"); // 生产区域 - String point_location = jsonCoolIvt.getString("point_location"); // 位置 + String product_area = jsonCoolIvt.getProduct_area(); // 生产区域 + String point_location = jsonCoolIvt.getPoint_location(); // 位置 String reging_id = ""; if (!in_area_id.contains(product_area)) { @@ -248,15 +266,16 @@ public class BakingServiceImpl implements BakingService { map.put("point_type", "4"); String point_code2 = ""; - JSONObject point_code2_jo = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(map).process().uniqueResult(0); + List point_code2_jo = schBasePointMapper.selectList(map); if (ObjectUtil.isNotEmpty(point_code2_jo)) { - point_code2 = point_code2_jo.getString("point_code"); + point_code2 = point_code2_jo.get(0).getPoint_code(); } String point_code3 = ""; - JSONObject jsonHotIvt = getJsonObject(product_area, point_code2_jo, temperature); + SchBasePoint point = point_code2_jo.get(0); + HotPointIvt jsonHotIvt = getJsonObject(product_area, point, temperature); if (ObjectUtil.isNotEmpty(jsonHotIvt)) { - point_code3 = jsonHotIvt.getString("point_code"); + point_code3 = jsonHotIvt.getPoint_code(); } // 3.创建冷却区 --> 烘烤区任务 @@ -276,22 +295,23 @@ public class BakingServiceImpl implements BakingService { String task_id = inHotTask.createTask(param); // 4.插入烘箱区出入主表 - JSONObject jsonRaw = rawTab.query("container_name = '" + container_name + "' and is_delete = '0'").uniqueResult(0); - JSONObject jsonMater = materTab.query("material_code = '" + jsonRaw.getString("product_name") + "'").uniqueResult(0); + RawfoilWorkOrder jsonRaw = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper().eq(RawfoilWorkOrder::getContainer_name, container_name) + .eq(RawfoilWorkOrder::getIs_delete, "0")); + MdMeMaterialBase jsonMater = mdMeMaterialBaseMapper.selectOne(new LambdaQueryWrapper().eq(MdMeMaterialBase::getMaterial_code, jsonRaw.getProduct_name())); if (ObjectUtil.isEmpty(jsonMater)) { throw new BadRequestException("物料基础信息中无此物料!"); } JSONObject hotParam = new JSONObject(); hotParam.put("container_name", container_name); - hotParam.put("workorder_id", jsonRaw.getString("workorder_id")); - hotParam.put("material_id", jsonMater.getString("material_id")); - hotParam.put("qty", jsonRaw.get("productin_qty")); - hotParam.put("qty_unit_id", jsonMater.getString("base_unit_id")); + hotParam.put("workorder_id", jsonRaw.getWorkorder_id()); + hotParam.put("material_id", jsonMater.getMaterial_id()); + hotParam.put("qty", jsonRaw.getProductin_qty()); + hotParam.put("qty_unit_id", jsonMater.getBase_unit_id()); hotParam.put("task_id", task_id); hotParam.put("io_type", "0"); hotParam.put("start_point_code", point_code1); - hotParam.put("end_point_code", jsonHotIvt.getString("point_code")); + hotParam.put("end_point_code", jsonHotIvt.getPoint_code()); hotParam.put("temperature", temperature); hotParam.put("oven_time", hours); this.createHotIoMst(hotParam); @@ -301,29 +321,29 @@ public class BakingServiceImpl implements BakingService { String currentUserId = SecurityUtils.getCurrentUserId(); String currentUsername = SecurityUtils.getCurrentUsername(); - JSONObject jsonCool = new JSONObject(); - jsonCool.put("iostorinv_id", IdUtil.getSnowflake(1, 1).nextId()); - jsonCool.put("bill_code", CodeUtil.getNewCode("COOLREGION_BILL_CODE")); - jsonCool.put("io_type", "1"); - jsonCool.put("material_id", jsonMater.getString("material_id")); - jsonCool.put("pcsn", container_name); - jsonCool.put("bill_status", "50"); - jsonCool.put("qty", jsonRaw.get("productin_qty")); - jsonCool.put("task_id", task_id); - jsonCool.put("qty_unit_id", jsonMater.getString("base_unit_id")); - jsonCool.put("start_point_code", point_code1); - jsonCool.put("end_point_code", jsonHotIvt.getString("point_code")); - jsonCool.put("create_mode", "03"); - jsonCool.put("create_id", currentUserId); - jsonCool.put("create_name", currentUsername); - jsonCool.put("create_time", DateUtil.now()); - jsonCool.put("update_optid", currentUserId); - jsonCool.put("update_optname", currentUsername); - jsonCool.put("update_time", DateUtil.now()); - jsonCool.put("confirm_optid", currentUserId); - jsonCool.put("confirm_optname", currentUsername); - jsonCool.put("confirm_time", DateUtil.now()); - coolTab.insert(jsonCool); + StIvtCoolregionio stIvtCoolregionio = new StIvtCoolregionio(); + stIvtCoolregionio.setIostorinv_id(IdUtil.getSnowflake(1, 1).nextId() + ""); + stIvtCoolregionio.setBill_code(CodeUtil.getNewCode("COOLREGION_BILL_CODE")); + stIvtCoolregionio.setIo_type("1"); + stIvtCoolregionio.setMaterial_id(Long.getLong(jsonMater.getMaterial_id())); + stIvtCoolregionio.setPcsn(container_name); + stIvtCoolregionio.setBill_status("50"); + stIvtCoolregionio.setQty(jsonRaw.getProductin_qty()); + stIvtCoolregionio.setTask_id(Long.getLong(task_id)); + stIvtCoolregionio.setQty_unit_id(Long.getLong(jsonMater.getBase_unit_id())); + stIvtCoolregionio.setStart_point_code(point_code1); + stIvtCoolregionio.setEnd_point_code(jsonHotIvt.getPoint_code()); + stIvtCoolregionio.setCreate_mode("03"); + stIvtCoolregionio.setCreate_id(currentUserId); + stIvtCoolregionio.setCreate_name(currentUsername); + stIvtCoolregionio.setCreate_time(DateUtil.now()); + stIvtCoolregionio.setUpdate_optid(currentUserId); + stIvtCoolregionio.setUpdate_optname(currentUsername); + stIvtCoolregionio.setUpdate_time(DateUtil.now()); + stIvtCoolregionio.setConfirm_optid(currentUserId); + stIvtCoolregionio.setConfirm_optname(currentUsername); + stIvtCoolregionio.setConfirm_time(DateUtil.now()); + stIvtCoolregionioMapper.insert(stIvtCoolregionio); } else { throw new BadRequestException("请扫描正确的冷却区点位或烘箱对接点位!"); } @@ -333,7 +353,7 @@ public class BakingServiceImpl implements BakingService { if (ObjectUtil.isEmpty(point_code1)) { throw new BadRequestException("点位不能为空"); } - JSONObject jsonHotIvt = hosIvtTab.query("point_code = '" + point_code1 + "'").uniqueResult(0); + HotPointIvt jsonHotIvt = hotPointIvtMapper.selectOne(new LambdaQueryWrapper().eq(HotPointIvt::getPoint_code, point_code1)); if (ObjectUtil.isEmpty(jsonHotIvt)) { throw new BadRequestException("烘烤区域无此点位!"); } @@ -343,11 +363,11 @@ public class BakingServiceImpl implements BakingService { if (have_task) { throw new BadRequestException("该点位存在未完成的任务!"); } - if (StrUtil.isEmpty(jsonHotIvt.getString("container_name"))) { + if (StrUtil.isEmpty(jsonHotIvt.getContainer_name())) { throw new BadRequestException("该点位不存在母卷!"); } // 1.查询暂存位有没有空位 - String product_area = jsonHotIvt.getString("product_area"); + String product_area = jsonHotIvt.getProduct_area(); // 出烘箱,创建桁架任务到对接位 if (!in_area_id.contains(product_area)) { throw new BadRequestException("当前登录人员暂无【" + product_area + "】操作权限"); @@ -375,11 +395,11 @@ public class BakingServiceImpl implements BakingService { JSONObject map = new JSONObject(); map.put("flag", "1"); map.put("reging_id", reging_id); - map.put("point_location", jsonHotIvt.getString("point_location")); + map.put("point_location", jsonHotIvt.getPoint_location()); //只找出箱点位 map.put("point_type", "5"); - JSONArray pointArr = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(map).process().getResultJSONArray(0); + List pointArr = schBasePointMapper.selectDjwPoints(map); if (ObjectUtil.isEmpty(pointArr)) { throw new BadRequestException("没有无货且没有任务的点位类型为出箱的烘箱对接位!"); } @@ -387,13 +407,13 @@ public class BakingServiceImpl implements BakingService { // 2.判断暂存位是否有任务:找到无任务的暂存位 String point_code2 = ""; for (int i = 0; i < pointArr.size(); i++) { - JSONObject jsonPoint = pointArr.getJSONObject(i); - String point_code = jsonPoint.getString("point_code"); + SchBasePoint jsonPoint = pointArr.get(i); + String point_code = jsonPoint.getPoint_code(); - JSONObject json_point_code1 = taskTab.query("point_code1 = '" + point_code + "' and task_status != '07' and is_delete = '0'").uniqueResult(0); - JSONObject json_point_code2 = taskTab.query("point_code2 = '" + point_code + "' and task_status != '07' and is_delete = '0'").uniqueResult(0); - JSONObject json_point_code3 = taskTab.query("point_code3 = '" + point_code + "' and task_status != '07' and is_delete = '0'").uniqueResult(0); - JSONObject json_point_code4 = taskTab.query("point_code4 = '" + point_code + "' and task_status != '07' and is_delete = '0'").uniqueResult(0); + SchBaseTask json_point_code1 = schBaseTaskMapper.selectOne(new LambdaQueryWrapper().eq(SchBaseTask::getPoint_code1, point_code).ne(SchBaseTask::getTask_status, "07").eq(SchBaseTask::getIs_delete, "0")); + SchBaseTask json_point_code2 = schBaseTaskMapper.selectOne(new LambdaQueryWrapper().eq(SchBaseTask::getPoint_code2, point_code).ne(SchBaseTask::getTask_status, "07").eq(SchBaseTask::getIs_delete, "0")); + SchBaseTask json_point_code3 = schBaseTaskMapper.selectOne(new LambdaQueryWrapper().eq(SchBaseTask::getPoint_code3, point_code).ne(SchBaseTask::getTask_status, "07").eq(SchBaseTask::getIs_delete, "0")); + SchBaseTask json_point_code4 = schBaseTaskMapper.selectOne(new LambdaQueryWrapper().eq(SchBaseTask::getPoint_code4, point_code).ne(SchBaseTask::getTask_status, "07").eq(SchBaseTask::getIs_delete, "0")); if (ObjectUtil.isEmpty(json_point_code1) && ObjectUtil.isEmpty(json_point_code2) && ObjectUtil.isEmpty(json_point_code3) && ObjectUtil.isEmpty(json_point_code4)) { point_code2 = point_code; break; @@ -407,30 +427,31 @@ public class BakingServiceImpl implements BakingService { JSONObject param = new JSONObject(); param.put("point_code1", point_code1); param.put("point_code2", point_code2); - param.put("material_code", jsonHotIvt.getString("container_name")); - param.put("product_area", jsonHotIvt.getString("product_area")); + param.put("material_code", jsonHotIvt.getContainer_name()); + param.put("product_area", jsonHotIvt.getProduct_area()); OutHotTask outHotTask = new OutHotTask(); String task_id = outHotTask.createTask(param); - JSONObject jsonRaw = rawTab.query("container_name = '" + jsonHotIvt.getString("container_name") + "' and is_delete = '0'").uniqueResult(0); + RawfoilWorkOrder jsonRaw = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper().eq(RawfoilWorkOrder::getContainer_name, jsonHotIvt.getContainer_name()).eq(RawfoilWorkOrder::getIs_delete, "0")); if (ObjectUtil.isEmpty(jsonRaw)) { - throw new BadRequestException("未查询到母卷号:" + jsonHotIvt.getString("container_name") + "对应的生箔工单!"); + throw new BadRequestException("未查询到母卷号:" + jsonHotIvt.getContainer_name() + "对应的生箔工单!"); } - JSONObject jsonMater = materTab.query("material_code = '" + jsonRaw.getString("product_name") + "'").uniqueResult(0); + MdMeMaterialBase jsonMater = mdMeMaterialBaseMapper.selectOne(new LambdaQueryWrapper().eq(MdMeMaterialBase::getMaterial_code, jsonRaw.getProduct_name())); if (ObjectUtil.isEmpty(jsonMater)) { throw new BadRequestException("物料基础信息中无此物料!"); } //查询该母卷对应最近的一条入烘箱记录 - JSONObject last_hot_mst = WQLObject.getWQLObject("ST_IVT_HotRegionIOMst").query("container_name = '" + jsonHotIvt.getString("container_name") + "' AND io_type = '0' order by confirm_time desc").uniqueResult(0); + List last_hot_msts = hotPointIvtIoMstMapper.selectList(new LambdaQueryWrapper().eq(HotRegionIoMst::getContainer_name, jsonHotIvt.getContainer_name()).eq(HotRegionIoMst::getIo_type, "0").orderByDesc(HotRegionIoMst::getConfirm_time)); + HotRegionIoMst last_hot_mst = last_hot_msts.get(0); JSONObject hotParam = new JSONObject(); - hotParam.put("container_name", jsonRaw.getString("container_name")); - hotParam.put("workorder_id", jsonRaw.getString("workorder_id")); - hotParam.put("material_id", jsonMater.getString("material_id")); - hotParam.put("qty", jsonRaw.get("qty")); + hotParam.put("container_name", jsonRaw.getContainer_name()); + hotParam.put("workorder_id", jsonRaw.getWorkorder_id()); + hotParam.put("material_id", jsonMater.getMaterial_id()); + hotParam.put("qty", jsonRaw.getProductin_qty()); hotParam.put("io_type", "1"); - hotParam.put("qty_unit_id", jsonMater.getString("base_unit_id")); + hotParam.put("qty_unit_id", jsonMater.getBase_unit_id()); hotParam.put("task_id", task_id); hotParam.put("start_point_code", point_code1); hotParam.put("end_point_code", point_code2); @@ -445,7 +466,7 @@ public class BakingServiceImpl implements BakingService { if (ObjectUtil.isEmpty(last_hot_mst)) { hotParam.put("oven_time", "480"); } else { - hotParam.put("oven_time", last_hot_mst.getString("oven_time")); + hotParam.put("oven_time", last_hot_mst.getOven_time()); } this.createHotIoMst(hotParam); } @@ -458,15 +479,6 @@ public class BakingServiceImpl implements BakingService { @Transactional(rollbackFor = Exception.class) public JSONObject inHotByPoint(JSONObject whereJson) { - WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point"); // 点位表 - WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表 - WQLObject coolIvtTab = WQLObject.getWQLObject("ST_IVT_CoolPointIvt"); // 冷却区点位库存表 - WQLObject hosIvtTab = WQLObject.getWQLObject("ST_IVT_HotPointIvt"); // 烤箱区点位库存表 - WQLObject hosReMstTab = WQLObject.getWQLObject("ST_IVT_HotRegionIOMst"); // 烤箱区出入主表 - WQLObject coolTab = WQLObject.getWQLObject("ST_IVT_CoolRegionIO"); // 冷却区出入表 - WQLObject rawTab = WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder"); // 生箔工单表 - WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase"); // 物料表 - //获取人员对应的区域 UserAreaServiceImpl userAreaService = new UserAreaServiceImpl(); String in_area_id = userAreaService.getInArea(); @@ -506,23 +518,23 @@ public class BakingServiceImpl implements BakingService { //校验该设备是否启用,且母卷MES是否请求烘烤 //查询该母卷号、设备号对应的生箔工单 - JSONObject raw_jo = WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").query("container_name ='" + container_name + "'").uniqueResult(0); + RawfoilWorkOrder raw_jo = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper().eq(RawfoilWorkOrder::getContainer_name, container_name)); if (ObjectUtil.isEmpty(raw_jo)) { throw new BadRequestException("未查询到对应的生箔工单!"); } - if (raw_jo.getString("order_type").equals("1")) { + if (raw_jo.getOrder_type().equals("1")) { throw new BadRequestException("当前工单为标箔工单,不允许烘烤!"); } - String resource_name = raw_jo.getString("resource_name"); - JSONObject sb_jo = WQLObject.getWQLObject("st_ivt_sbpointivt").query("ext_code ='" + resource_name + "'").uniqueResult(0); + String resource_name = raw_jo.getResource_name(); + SbPointIvt sb_jo = sbPointIvtMapper.selectOne(new LambdaQueryWrapper().eq(SbPointIvt::getExt_code, resource_name)); if (ObjectUtil.isEmpty(sb_jo)) { throw new BadRequestException("未查询到母卷号:" + container_name + "对应的生箔机台编号!"); } String mes_used = paramService.findByCode("mes_used").getValue(); if (StrUtil.equals("1", mes_used)) { - if (!"1".equals(raw_jo.getString("is_baking"))) { + if (!"1".equals(raw_jo.getIs_baking())) { throw new BadRequestException("该母卷在MES上未进行决策入烘箱,不允许进行入烘箱操作!"); } } @@ -530,25 +542,26 @@ public class BakingServiceImpl implements BakingService { /* * 根据点位判断是 冷却区入烘箱还是烘箱对接位入烘箱 */ - JSONObject jsonPointZc = pointTab.query("point_code = '" + point_code1 + "' AND point_type = '5'").uniqueResult(0); + SchBasePoint jsonPointZc = schBasePointMapper.selectOne(new LambdaQueryWrapper().eq(SchBasePoint::getPoint_code, point_code1).eq(SchBasePoint::getPoint_type, "5")); String point_type = "1"; // 冷却点 - JSONObject jsonCoolIvt = coolIvtTab.query("full_point_code = '" + point_code1 + "' and is_used = '1' AND point_type = '" + point_type + "'").uniqueResult(0); -// CoolPointIvt coolPointIvt = coolPointIvtMapper.selectOne(new LambdaQueryWrapper() -// .eq(ObjectUtil.isNotEmpty(point_code1), CoolPointIvt::getPoint_code, point_code1)); + CoolPointIvt jsonCoolIvt = coolPointIvtMapper.selectOne(new LambdaQueryWrapper() + .eq(CoolPointIvt::getIs_used, "1") + .eq(ObjectUtil.isNotEmpty(point_code1), CoolPointIvt::getFull_point_code, point_code1) + .eq(ObjectUtil.isNotEmpty(point_type), CoolPointIvt::getPoint_type, point_type)); if (ObjectUtil.isNotEmpty(jsonPointZc)) { - if (!in_area_id.contains(jsonPointZc.getString("product_area"))) { - throw new BadRequestException("当前登录人员暂无【" + jsonPointZc.getString("product_area") + "】操作权限"); + if (!in_area_id.contains(jsonPointZc.getProduct_area())) { + throw new BadRequestException("当前登录人员暂无【" + jsonPointZc.getProduct_area() + "】操作权限"); } /* * 暂存区入烘箱 */ - JSONObject jsonHotIvt = hosIvtTab.query("point_code = '" + point_code3 + "'").uniqueResult(0); + HotPointIvt jsonHotIvt = hotPointIvtMapper.selectOne(new LambdaQueryWrapper().eq(HotPointIvt::getPoint_code, point_code3)); if (ObjectUtil.isEmpty(jsonHotIvt)) { throw new BadRequestException("烘烤区域无此点位!"); } - if (!jsonPointZc.getString("point_location").equals(jsonHotIvt.getString("point_location"))) { + if (!jsonPointZc.getPoint_location().equals(jsonHotIvt.getPoint_location())) { throw new BadRequestException("暂存位和烘烤区域点位位置不一致!请选择点位位置一致的烘箱位置或者暂存位"); } @@ -569,28 +582,28 @@ public class BakingServiceImpl implements BakingService { JSONObject param = new JSONObject(); param.put("type", "2"); // 1- 冷却区入烘箱 2- 暂存位入烘箱 param.put("point_code1", point_code1); - param.put("point_code2", jsonHotIvt.getString("point_code")); + param.put("point_code2", jsonHotIvt.getPoint_code()); param.put("material_code", container_name); - param.put("product_area", jsonPointZc.getString("product_area")); + param.put("product_area", jsonPointZc.getProduct_area()); param.put("request_param", NumberUtil.mul(Double.parseDouble(hours), 60)); InHotTask inHotTask = new InHotTask(); String task_id = inHotTask.createTask(param); // 3.插入主表 - JSONObject jsonRaw = rawTab.query("container_name = '" + container_name + "' and is_delete = '0'").uniqueResult(0); - JSONObject jsonMater = materTab.query("material_code = '" + jsonRaw.getString("product_name") + "'").uniqueResult(0); + RawfoilWorkOrder jsonRaw = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper().eq(RawfoilWorkOrder::getContainer_name, container_name).eq(RawfoilWorkOrder::getIs_delete, "0")); + MdMeMaterialBase jsonMater = mdMeMaterialBaseMapper.selectOne(new LambdaQueryWrapper().eq(MdMeMaterialBase::getMaterial_code, jsonRaw.getProduct_name())); JSONObject hotParam = new JSONObject(); hotParam.put("container_name", container_name); - hotParam.put("workorder_id", jsonRaw.getString("workorder_id")); - hotParam.put("material_id", jsonMater.getString("material_id")); - hotParam.put("qty", jsonRaw.get("productin_qty")); + hotParam.put("workorder_id", jsonRaw.getWorkorder_id()); + hotParam.put("material_id", jsonMater.getMaterial_id()); + hotParam.put("qty", jsonRaw.getProductin_qty()); hotParam.put("io_type", "0"); - hotParam.put("qty_unit_id", jsonMater.getString("base_unit_id")); + hotParam.put("qty_unit_id", jsonMater.getBase_unit_id()); hotParam.put("task_id", task_id); hotParam.put("start_point_code", point_code1); - hotParam.put("end_point_code", jsonHotIvt.getString("point_code")); + hotParam.put("end_point_code", jsonHotIvt.getPoint_code()); hotParam.put("temperature", temperature); hotParam.put("oven_time", hours); this.createHotIoMst(hotParam); @@ -601,7 +614,7 @@ public class BakingServiceImpl implements BakingService { // hint: // 1.根据烘箱点位此母卷的点位找到对应的暂存区 - JSONObject jsonHotIvt = hosIvtTab.query("point_code = '" + point_code3 + "'").uniqueResult(0); + HotPointIvt jsonHotIvt = hotPointIvtMapper.selectOne(new LambdaQueryWrapper().eq(HotPointIvt::getPoint_code, point_code3)); if (ObjectUtil.isEmpty(jsonHotIvt)) { throw new BadRequestException("烘烤区域无此点位!"); } @@ -619,8 +632,8 @@ public class BakingServiceImpl implements BakingService { } } - String product_area = jsonHotIvt.getString("product_area"); // 生产区域 - String point_location = jsonHotIvt.getString("point_location"); // 位置 + String product_area = jsonHotIvt.getProduct_area(); // 生产区域 + String point_location = jsonHotIvt.getPoint_location(); // 位置 String reging_id = ""; if (!in_area_id.contains(product_area)) { @@ -652,17 +665,17 @@ public class BakingServiceImpl implements BakingService { //只找入箱点位 map.put("point_type", "4"); - JSONObject point_code2_jo = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(map).process().uniqueResult(0); + List point_code2_jo = schBasePointMapper.selectList(map); if (ObjectUtil.isEmpty(point_code2_jo)) { throw new BadRequestException("未查询到可用的点位类型为入箱的冷却位对接位!"); } - + String point_code2 = point_code2_jo.get(0).getPoint_code(); // 3.创建冷却区 --> 烘烤区任务 JSONObject param = new JSONObject(); param.put("type", "1"); // 1- 冷却区入烘箱 2- 暂存位入烘箱 param.put("point_code1", point_code1); - param.put("point_code2", point_code2_jo.getString("point_code")); + param.put("point_code2", point_code2); param.put("point_code3", point_code3); param.put("material_code", container_name); param.put("product_area", product_area); @@ -675,22 +688,22 @@ public class BakingServiceImpl implements BakingService { String task_id = inHotTask.createTask(param); // 4.插入烘箱区出入主表 - JSONObject jsonRaw = rawTab.query("container_name = '" + container_name + "' and is_delete = '0'").uniqueResult(0); - JSONObject jsonMater = materTab.query("material_code = '" + jsonRaw.getString("product_name") + "'").uniqueResult(0); + RawfoilWorkOrder jsonRaw = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper().eq(RawfoilWorkOrder::getContainer_name, container_name).eq(RawfoilWorkOrder::getIs_delete, "0")); + MdMeMaterialBase jsonMater = mdMeMaterialBaseMapper.selectOne(new LambdaQueryWrapper().eq(MdMeMaterialBase::getMaterial_code, jsonRaw.getProduct_name())); if (ObjectUtil.isEmpty(jsonMater)) { throw new BadRequestException("物料基础信息中无此物料!"); } JSONObject hotParam = new JSONObject(); hotParam.put("container_name", container_name); - hotParam.put("workorder_id", jsonRaw.getString("workorder_id")); - hotParam.put("material_id", jsonMater.getString("material_id")); - hotParam.put("qty", jsonRaw.get("productin_qty")); - hotParam.put("qty_unit_id", jsonMater.getString("base_unit_id")); + hotParam.put("workorder_id", jsonRaw.getWorkorder_id()); + hotParam.put("material_id", jsonMater.getMaterial_id()); + hotParam.put("qty", jsonRaw.getProductin_qty()); + hotParam.put("qty_unit_id", jsonMater.getBase_unit_id()); hotParam.put("task_id", task_id); hotParam.put("io_type", "0"); hotParam.put("start_point_code", point_code1); - hotParam.put("end_point_code", jsonHotIvt.getString("point_code")); + hotParam.put("end_point_code", jsonHotIvt.getPoint_code()); hotParam.put("temperature", temperature); hotParam.put("oven_time", hours); this.createHotIoMst(hotParam); @@ -699,30 +712,30 @@ public class BakingServiceImpl implements BakingService { // 生成冷却区出入表 String currentUserId = SecurityUtils.getCurrentUserId(); String currentUsername = SecurityUtils.getCurrentUsername(); + StIvtCoolregionio jsonCool = new StIvtCoolregionio(); + jsonCool.setIostorinv_id(IdUtil.getSnowflake(1, 1).nextId() + ""); + jsonCool.setBill_code(CodeUtil.getNewCode("COOLREGION_BILL_CODE")); + jsonCool.setIo_type("1"); + jsonCool.setMaterial_id(Long.getLong(jsonMater.getMaterial_id())); + jsonCool.setPcsn(container_name); + jsonCool.setBill_status("50"); + jsonCool.setQty(jsonRaw.getProductin_qty()); + jsonCool.setQty_unit_id(Long.getLong(jsonMater.getBase_unit_id())); + jsonCool.setTask_id(Long.getLong(task_id)); + jsonCool.setStart_point_code(point_code1); + jsonCool.setEnd_point_code(jsonHotIvt.getPoint_code()); + jsonCool.setCreate_mode("03"); + jsonCool.setCreate_id(currentUserId); + jsonCool.setCreate_name(currentUsername); + jsonCool.setCreate_time(DateUtil.now()); + jsonCool.setUpdate_optid(currentUserId); + jsonCool.setUpdate_optname(currentUsername); + jsonCool.setUpdate_time(DateUtil.now()); + jsonCool.setConfirm_optid(currentUserId); + jsonCool.setConfirm_optname(currentUsername); + jsonCool.setConfirm_time(DateUtil.now()); + stIvtCoolregionioMapper.insert(jsonCool); - JSONObject jsonCool = new JSONObject(); - jsonCool.put("iostorinv_id", IdUtil.getSnowflake(1, 1).nextId()); - jsonCool.put("bill_code", CodeUtil.getNewCode("COOLREGION_BILL_CODE")); - jsonCool.put("io_type", "1"); - jsonCool.put("material_id", jsonMater.getString("material_id")); - jsonCool.put("pcsn", container_name); - jsonCool.put("bill_status", "50"); - jsonCool.put("qty", jsonRaw.get("productin_qty")); - jsonCool.put("task_id", task_id); - jsonCool.put("qty_unit_id", jsonMater.getString("base_unit_id")); - jsonCool.put("start_point_code", point_code1); - jsonCool.put("end_point_code", jsonHotIvt.getString("point_code")); - jsonCool.put("create_mode", "03"); - jsonCool.put("create_id", currentUserId); - jsonCool.put("create_name", currentUsername); - jsonCool.put("create_time", DateUtil.now()); - jsonCool.put("update_optid", currentUserId); - jsonCool.put("update_optname", currentUsername); - jsonCool.put("update_time", DateUtil.now()); - jsonCool.put("confirm_optid", currentUserId); - jsonCool.put("confirm_optname", currentUsername); - jsonCool.put("confirm_time", DateUtil.now()); - coolTab.insert(jsonCool); } else { throw new BadRequestException("请扫描正确的冷却区点位或烘箱对接点位!"); } @@ -731,19 +744,19 @@ public class BakingServiceImpl implements BakingService { return result; } - public JSONObject getJsonObject(String product_area, JSONObject point_code2_jo, String temperature) { + public HotPointIvt getJsonObject(String product_area, SchBasePoint point_code2_jo, String temperature) { if (ObjectUtil.isEmpty(point_code2_jo)) { throw new BadRequestException("烘箱对接没有可用位置!"); } JSONObject jsonMap = new JSONObject(); jsonMap.put("flag", "1"); jsonMap.put("product_area", product_area); - jsonMap.put("point_location", point_code2_jo.getString("point_location")); - JSONArray hot_rows = WQL.getWO("PDA_BAKING_01").addParamMap(jsonMap).process().getResultJSONArray(0); - JSONObject jsonHotIvt = new JSONObject(); + jsonMap.put("point_location", point_code2_jo.getPoint_location()); + List hot_rows = hotPointIvtMapper.selectHotPointList(jsonMap); + HotPointIvt jsonHotIvt = null; for (int i = 0; i < hot_rows.size(); i++) { - JSONObject hot_row = hot_rows.getJSONObject(i); - String point_code = hot_row.getString("point_code"); + HotPointIvt hot_row = hot_rows.get(i); + String point_code = hot_row.getPoint_code(); boolean exists = redisUtils.hHasKey(point_code, "temperature"); String point_temperature = ""; if (exists) { @@ -763,12 +776,6 @@ public class BakingServiceImpl implements BakingService { @Transactional(rollbackFor = Exception.class) public JSONObject inCoolIvt(JSONObject whereJson) { // 手持-烘烤-质检合格 - WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point"); // 点位点 - WQLObject coolTab = WQLObject.getWQLObject("ST_IVT_CoolRegionIO"); // 冷却区出入表 - WQLObject rawTab = WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder"); // 生箔工单表 - WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase"); // 物料表 - - String point_code1 = whereJson.getString("point_code"); // 暂存位:起点 String container_name = whereJson.getString("container_name"); // 母卷号 @@ -785,55 +792,59 @@ public class BakingServiceImpl implements BakingService { //校验该设备是否启用,且母卷MES是否请求烘烤 //查询该母卷号、设备号对应的生箔工单 - JSONObject raw_jo = WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").query("container_name ='" + container_name + "'").uniqueResult(0); + RawfoilWorkOrder raw_jo = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper().eq(RawfoilWorkOrder::getContainer_name, container_name)); +// JSONObject raw_jo = WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").query("container_name ='" + container_name + "'").uniqueResult(0); if (ObjectUtil.isEmpty(raw_jo)) { throw new BadRequestException("未查询到对应的生箔工单!"); } - String resource_name = raw_jo.getString("resource_name"); - JSONObject sb_jo = WQLObject.getWQLObject("st_ivt_sbpointivt").query("ext_code ='" + resource_name + "'").uniqueResult(0); + String resource_name = raw_jo.getResource_name(); + SbPointIvt sb_jo = sbPointIvtMapper.selectOne(new LambdaQueryWrapper().eq(SbPointIvt::getExt_code, resource_name)); +// JSONObject sb_jo = WQLObject.getWQLObject("st_ivt_sbpointivt").query("ext_code ='" + resource_name + "'").uniqueResult(0); if (ObjectUtil.isEmpty(sb_jo)) { throw new BadRequestException("未查询到母卷号:" + container_name + "对应的生箔机台编号!"); } String mes_used = paramService.findByCode("mes_used").getValue(); if (StrUtil.equals("1", mes_used)) { - if (!"1".equals(raw_jo.getString("is_instor"))) { + if (!"1".equals(raw_jo.getIs_instor())) { throw new BadRequestException("该母卷在MES上未进行决策入半成品库,不允许进行入冷却操作!"); } } // 1.获取此暂存位的生产区域和上下位置 - JSONObject jsonPoint = pointTab.query("point_code = '" + point_code1 + "' and point_type = '5'").uniqueResult(0); + SchBasePoint jsonPoint = schBasePointMapper.selectOne(new LambdaQueryWrapper().eq(SchBasePoint::getPoint_code, point_code1).eq(SchBasePoint::getPoint_type, "5")); +// JSONObject jsonPoint = pointTab.query("point_code = '" + point_code1 + "' and point_type = '5'").uniqueResult(0); if (ObjectUtil.isEmpty(jsonPoint)) { throw new BadRequestException("请扫描点位类型为出箱的烘箱对接位!"); } - if (!in_area_id.contains(jsonPoint.getString("product_area"))) { - throw new BadRequestException("当前登录人员暂无【" + jsonPoint.getString("product_area") + "】操作权限"); + if (!in_area_id.contains(jsonPoint.getProduct_area())) { + throw new BadRequestException("当前登录人员暂无【" + jsonPoint.getProduct_area() + "】操作权限"); } - // 2.找冷却区空货位 + // 2.找冷却区空货位//TODO 优先找靠近分切机的冷却区点位 JSONObject map = new JSONObject(); map.put("flag", "2"); - map.put("product_area", jsonPoint.getString("product_area")); - map.put("point_location", jsonPoint.getString("point_location")); + map.put("product_area", jsonPoint.getProduct_area()); + map.put("point_location", jsonPoint.getPoint_location()); map.put("point_type", "1"); String endPointCode = null; - JSONObject jsonCooIvt = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(map).process().uniqueResult(0); + List coolPointIvts = coolPointIvtMapper.getEmptyCoolPoint(map); // 如果为空 - if (ObjectUtil.isEmpty(jsonCooIvt)) { - if (StrUtil.equals(jsonPoint.getString("point_location"), "0")) { + if (ObjectUtil.isEmpty(coolPointIvts)) { + if (StrUtil.equals(jsonPoint.getPoint_location(), "0")) { map.put("point_location", "1"); } - if (StrUtil.equals(jsonPoint.getString("point_location"), "1")) { + if (StrUtil.equals(jsonPoint.getPoint_location(), "1")) { map.put("point_location", "0"); } - jsonCooIvt = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(map).process().uniqueResult(0); + coolPointIvts = coolPointIvtMapper.getEmptyCoolPoint(map); } - if (ObjectUtil.isEmpty(jsonCooIvt)) { + if (ObjectUtil.isEmpty(coolPointIvts)) { throw new BadRequestException("冷却区空位不足"); } - endPointCode = jsonCooIvt.getString("full_point_code"); + CoolPointIvt jsonCooIvt = coolPointIvts.get(0); + endPointCode = jsonCooIvt.getFull_point_code(); // 3.创建任务 JSONObject param = new JSONObject(); @@ -841,7 +852,7 @@ public class BakingServiceImpl implements BakingService { param.put("point_code2", endPointCode); param.put("container_name", container_name); param.put("request_param", "2");//1-不合格入冷却 2-合格入冷却 - param.put("product_area", jsonPoint.getString("product_area")); + param.put("product_area", jsonPoint.getProduct_area()); InCoolIvtTask inCoolIvtTask = new InCoolIvtTask(); @@ -851,35 +862,35 @@ public class BakingServiceImpl implements BakingService { String currentUserId = SecurityUtils.getCurrentUserId(); String currentUsername = SecurityUtils.getCurrentUsername(); - JSONObject jsonRaw = rawTab.query("container_name = '" + container_name + "' and is_delete = '0'").uniqueResult(0); - JSONObject jsonMater = materTab.query("material_code = '" + jsonRaw.getString("product_name") + "'").uniqueResult(0); + RawfoilWorkOrder jsonRaw = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper().eq(RawfoilWorkOrder::getContainer_name, container_name).eq(RawfoilWorkOrder::getIs_delete, "0")); + MdMeMaterialBase jsonMater = mdMeMaterialBaseMapper.selectOne(new LambdaQueryWrapper().eq(MdMeMaterialBase::getMaterial_code, jsonRaw.getProduct_name())); if (ObjectUtil.isEmpty(jsonMater)) { throw new BadRequestException("物料基础信息中无此物料!"); } - JSONObject jsonCool = new JSONObject(); - jsonCool.put("iostorinv_id", IdUtil.getSnowflake(1, 1).nextId()); - jsonCool.put("bill_code", CodeUtil.getNewCode("COOLREGION_BILL_CODE")); - jsonCool.put("io_type", "0"); - jsonCool.put("material_id", jsonMater.getString("material_id")); - jsonCool.put("pcsn", container_name); - jsonCool.put("bill_status", "10"); - jsonCool.put("qty", jsonRaw.get("productin_qty")); - jsonCool.put("qty_unit_id", jsonMater.get("base_unit_id")); - jsonCool.put("task_id", task_id); - jsonCool.put("start_point_code", point_code1); - jsonCool.put("end_point_code", endPointCode); - jsonCool.put("create_mode", "03"); - jsonCool.put("create_id", currentUserId); - jsonCool.put("create_name", currentUsername); - jsonCool.put("create_time", DateUtil.now()); - jsonCool.put("update_optid", currentUserId); - jsonCool.put("update_optname", currentUsername); - jsonCool.put("update_time", DateUtil.now()); - jsonCool.put("confirm_optid", currentUserId); - jsonCool.put("confirm_optname", currentUsername); - jsonCool.put("confirm_time", DateUtil.now()); - coolTab.insert(jsonCool); + StIvtCoolregionio jsonCool = new StIvtCoolregionio(); + jsonCool.setIostorinv_id(IdUtil.getSnowflake(1, 1).nextId() + ""); + jsonCool.setBill_code(CodeUtil.getNewCode("COOLREGION_BILL_CODE")); + jsonCool.setIo_type("0"); + jsonCool.setMaterial_id(Long.getLong(jsonMater.getMaterial_id())); + jsonCool.setPcsn(container_name); + jsonCool.setBill_status("10"); + jsonCool.setQty(jsonRaw.getProductin_qty()); + jsonCool.setQty_unit_id(Long.getLong(jsonMater.getBase_unit_id())); + jsonCool.setTask_id(Long.getLong(task_id)); + jsonCool.setStart_point_code(point_code1); + jsonCool.setEnd_point_code(endPointCode); + jsonCool.setCreate_mode("03"); + jsonCool.setCreate_id(currentUserId); + jsonCool.setCreate_name(currentUsername); + jsonCool.setCreate_time(DateUtil.now()); + jsonCool.setUpdate_optid(currentUserId); + jsonCool.setUpdate_optname(currentUsername); + jsonCool.setUpdate_time(DateUtil.now()); + jsonCool.setConfirm_optid(currentUserId); + jsonCool.setConfirm_optname(currentUsername); + jsonCool.setConfirm_time(DateUtil.now()); + stIvtCoolregionioMapper.insert(jsonCool); JSONObject result = new JSONObject(); result.put("message", "操作成功!"); @@ -891,37 +902,36 @@ public class BakingServiceImpl implements BakingService { /* * 创建烘箱区出入主表 */ - WQLObject hotMstTab = WQLObject.getWQLObject("ST_IVT_HotRegionIOMst"); // 烘箱区出入主表 String currentUserId = SecurityUtils.getCurrentUserId(); String currentUsername = SecurityUtils.getCurrentUsername(); - JSONObject jsonHotMst = new JSONObject(); - jsonHotMst.put("iostorinv_id", IdUtil.getSnowflake(1, 1).nextId()); - jsonHotMst.put("bill_code", CodeUtil.getNewCode("HOT_BILL_CODE")); - jsonHotMst.put("container_name", param.getString("container_name")); - jsonHotMst.put("workorder_id", param.getString("workorder_id")); - jsonHotMst.put("material_id", param.get("material_id")); - jsonHotMst.put("qty", param.getString("qty")); - jsonHotMst.put("io_type", param.getString("io_type")); - jsonHotMst.put("bill_status", "50"); - jsonHotMst.put("qty_unit_id", param.getString("qty_unit_id")); - jsonHotMst.put("start_point_code", param.getString("start_point_code")); - jsonHotMst.put("end_point_code", param.getString("end_point_code")); - jsonHotMst.put("create_mode", "03"); - jsonHotMst.put("task_id", param.getString("task_id")); - jsonHotMst.put("task_type", param.getString("task_type")); - jsonHotMst.put("temperature", param.getString("temperature")); - jsonHotMst.put("oven_time", param.getString("oven_time")); - jsonHotMst.put("create_id", currentUserId); - jsonHotMst.put("create_name", currentUsername); - jsonHotMst.put("create_time", DateUtil.now()); - jsonHotMst.put("confirm_optid", currentUserId); - jsonHotMst.put("confirm_optname", currentUsername); - jsonHotMst.put("confirm_time", DateUtil.now()); - hotMstTab.insert(jsonHotMst); + HotRegionIoMst hotRegionIoMst = new HotRegionIoMst(); + hotRegionIoMst.setIostorinv_id(IdUtil.getSnowflake(1, 1).nextId()); + hotRegionIoMst.setBill_code(CodeUtil.getNewCode("HOT_BILL_CODE")); + hotRegionIoMst.setContainer_name(param.getString("container_name")); + hotRegionIoMst.setWorkorder_id(param.getString("workorder_id")); + hotRegionIoMst.setMaterial_id(param.getString("material_id")); + hotRegionIoMst.setQty(param.getBigDecimal("qty")); + hotRegionIoMst.setIo_type(param.getString("io_type")); + hotRegionIoMst.setBill_status("50"); + hotRegionIoMst.setQty_unit_id(param.getString("qty_unit_id")); + hotRegionIoMst.setStart_point_code(param.getString("start_point_code")); + hotRegionIoMst.setEnd_point_code(param.getString("end_point_code")); + hotRegionIoMst.setCreate_mode("03"); + hotRegionIoMst.setTask_id(Long.getLong(param.getString("task_id"))); + hotRegionIoMst.setTask_type(param.getString("task_type")); + hotRegionIoMst.setTemperature(param.getBigDecimal("temperature")); + hotRegionIoMst.setOven_time(param.getBigDecimal("oven_time")); + hotRegionIoMst.setCreate_id(currentUserId); + hotRegionIoMst.setCreate_name(currentUsername); + hotRegionIoMst.setCreate_time(DateUtil.now()); + hotRegionIoMst.setConfirm_optid(currentUserId); + hotRegionIoMst.setConfirm_optname(currentUsername); + hotRegionIoMst.setConfirm_time(DateUtil.now()); + hotPointIvtIoMstMapper.insert(hotRegionIoMst); - return jsonHotMst.getString("iostorinv_id"); + return hotRegionIoMst.getIostorinv_id().toString(); } @Override @@ -935,23 +945,21 @@ public class BakingServiceImpl implements BakingService { if (ObjectUtil.isEmpty(type)) { throw new BadRequestException("请选择类型!"); } - JSONObject raw_jo = WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").query("container_name ='" + container_name + "'").uniqueResult(0); + RawfoilWorkOrder raw_jo = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper().eq(RawfoilWorkOrder::getContainer_name, container_name)); if (ObjectUtil.isEmpty(raw_jo)) { throw new BadRequestException("未查询到对应的生箔工单!"); } if (type.equals("1")) { //更新生箔工单的是否下发烘烤为是 - HashMap map = new HashMap<>(); - map.put("is_baking", "1"); - WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").update(map, "container_name = '" + container_name + "'"); + raw_jo.setIs_baking("1"); + rawfoilWorkOrderMapper.updateById(raw_jo); log.info("母卷:" + container_name + "被决策入烘箱,请求烘烤标识改为1"); } if (type.equals("2")) { //更新生箔工单的是否下发入半成品库为是 - HashMap map = new HashMap<>(); - map.put("is_instor", "1"); - WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").update(map, "container_name = '" + container_name + "'"); + raw_jo.setIs_instor("1"); + rawfoilWorkOrderMapper.updateById(raw_jo); log.info("母卷:" + container_name + "被决策入半成品库,请求入半成品库标识改为1"); } JSONObject result = new JSONObject(); @@ -1024,15 +1032,6 @@ public class BakingServiceImpl implements BakingService { public JSONObject inCoolOrOven(JSONObject whereJson) { String option = whereJson.getString("type"); // 1-入冷却 2-入烘箱 - WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point"); // 点位表 - WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表 - WQLObject coolIvtTab = WQLObject.getWQLObject("ST_IVT_CoolPointIvt"); // 冷却区点位库存表 - WQLObject hosIvtTab = WQLObject.getWQLObject("ST_IVT_HotPointIvt"); // 烤箱区点位库存表 - WQLObject hosReMstTab = WQLObject.getWQLObject("ST_IVT_HotRegionIOMst"); // 烤箱区出入主表 - WQLObject coolTab = WQLObject.getWQLObject("ST_IVT_CoolRegionIO"); // 冷却区出入表 - WQLObject rawTab = WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder"); // 生箔工单表 - WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase"); // 物料表 - //获取人员对应的区域 UserAreaServiceImpl userAreaService = new UserAreaServiceImpl(); String in_area_id = userAreaService.getInArea(); @@ -1045,29 +1044,31 @@ public class BakingServiceImpl implements BakingService { String hours = whereJson.getString("hours"); // 时间 String point_code1 = whereJson.getString("point_code"); // 点位 //查询该点位是否存在未完成的任务 - JSONObject hasTask = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code1 = '" + point_code1 + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); + List hasTask = schBaseTaskMapper.selectList(new LambdaQueryWrapper().eq(SchBaseTask::getPoint_code1, point_code1).lt(SchBaseTask::getTask_status, "07").eq(SchBaseTask::getIs_delete, "0")); if (hasTask != null) { - throw new BadRequestException("当前点位" + point_code1 + "存在正在执行的任务" + hasTask.getString("task_code")); + SchBaseTask schBaseTask = hasTask.get(0); + throw new BadRequestException("当前点位" + point_code1 + "存在正在执行的任务" + schBaseTask.getTask_code()); } //校验该设备是否启用,且母卷MES是否请求烘烤 //查询该母卷号、设备号对应的生箔工单 - JSONObject raw_jo = WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").query("container_name ='" + container_name + "'").uniqueResult(0); + RawfoilWorkOrder raw_jo = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper().eq(RawfoilWorkOrder::getContainer_name, container_name)); + if (ObjectUtil.isEmpty(raw_jo)) { throw new BadRequestException("未查询到对应的生箔工单!"); } - if (raw_jo.getString("order_type").equals("1")) { + if (raw_jo.getOrder_type().equals("1")) { throw new BadRequestException("当前工单为标箔工单,不允许烘烤!"); } - String resource_name = raw_jo.getString("resource_name"); - JSONObject sb_jo = WQLObject.getWQLObject("st_ivt_sbpointivt").query("ext_code ='" + resource_name + "'").uniqueResult(0); + String resource_name = raw_jo.getResource_name(); + SbPointIvt sb_jo = sbPointIvtMapper.selectOne(new LambdaQueryWrapper().eq(SbPointIvt::getExt_code, resource_name)); if (ObjectUtil.isEmpty(sb_jo)) { throw new BadRequestException("未查询到母卷号:" + container_name + "对应的生箔机台编号!"); } String mes_used = paramService.findByCode("mes_used").getValue(); if (StrUtil.equals("1", mes_used)) { - if (!"1".equals(raw_jo.getString("is_baking"))) { + if (!"1".equals(raw_jo.getIs_baking())) { throw new BadRequestException("该母卷在MES上未进行决策入烘箱,不允许进行入烘箱操作!"); } } @@ -1086,11 +1087,11 @@ public class BakingServiceImpl implements BakingService { } - JSONObject jsonPointZc = pointTab.query("point_code = '" + point_code1 + "' and point_type = '5'").uniqueResult(0); + SchBasePoint jsonPointZc = schBasePointMapper.selectOne(new LambdaQueryWrapper().eq(SchBasePoint::getPoint_code, point_code1).eq(SchBasePoint::getPoint_type, "5")); if (ObjectUtil.isNotEmpty(jsonPointZc)) { - if (!in_area_id.contains(jsonPointZc.getString("product_area"))) { - throw new BadRequestException("当前登录人员暂无【" + jsonPointZc.getString("product_area") + "】操作权限"); + if (!in_area_id.contains(jsonPointZc.getProduct_area())) { + throw new BadRequestException("当前登录人员暂无【" + jsonPointZc.getProduct_area() + "】操作权限"); } /* * 暂存区入烘箱 @@ -1098,15 +1099,15 @@ public class BakingServiceImpl implements BakingService { // 1.查询烘箱对应的空位 JSONObject jsonMap = new JSONObject(); jsonMap.put("flag", "1"); - jsonMap.put("product_area", jsonPointZc.getString("product_area")); + jsonMap.put("product_area", jsonPointZc.getProduct_area()); //获取温度幅度 - jsonMap.put("point_location", jsonPointZc.getString("point_location")); - JSONArray hot_rows = WQL.getWO("PDA_BAKING_01").addParamMap(jsonMap).process().getResultJSONArray(0); - JSONObject jsonHotIvt = new JSONObject(); + jsonMap.put("point_location", jsonPointZc.getPoint_location()); + List hot_rows = hotPointIvtMapper.selectHotPointIvt(jsonMap); + HotPointIvt jsonHotIvt = null; log.debug("获取温度幅度hot_rows:" + hot_rows); for (int i = 0; i < hot_rows.size(); i++) { - JSONObject hot_row = hot_rows.getJSONObject(i); - String point_code = hot_row.getString("point_code"); + HotPointIvt hot_row = hot_rows.get(i); + String point_code = hot_row.getPoint_code(); boolean exists = redisUtils.hHasKey(point_code, "temperature"); String point_temperature = ""; if (exists) { @@ -1127,28 +1128,28 @@ public class BakingServiceImpl implements BakingService { JSONObject param = new JSONObject(); param.put("type", "2"); // 1- 冷却区入烘箱 2- 暂存位入烘箱 param.put("point_code1", point_code1); - param.put("point_code2", jsonHotIvt.getString("point_code")); + param.put("point_code2", jsonHotIvt.getPoint_code()); param.put("material_code", container_name); - param.put("product_area", jsonPointZc.getString("product_area")); + param.put("product_area", jsonPointZc.getProduct_area()); param.put("request_param", NumberUtil.mul(Double.parseDouble(hours), 60)); InHotTask inHotTask = new InHotTask(); String task_id = inHotTask.createTask(param); // 3.插入主表 - JSONObject jsonRaw = rawTab.query("container_name = '" + container_name + "' and is_delete = '0'").uniqueResult(0); - JSONObject jsonMater = materTab.query("material_code = '" + jsonRaw.getString("product_name") + "'").uniqueResult(0); + RawfoilWorkOrder jsonRaw = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper().eq(RawfoilWorkOrder::getContainer_name, container_name).eq(RawfoilWorkOrder::getIs_delete, "0")); + MdMeMaterialBase jsonMater = mdMeMaterialBaseMapper.selectOne(new LambdaQueryWrapper().eq(MdMeMaterialBase::getMaterial_code, jsonRaw.getProduct_name())); JSONObject hotParam = new JSONObject(); hotParam.put("container_name", container_name); - hotParam.put("workorder_id", jsonRaw.getString("workorder_id")); - hotParam.put("material_id", jsonMater.getString("material_id")); - hotParam.put("qty", jsonRaw.get("productin_qty")); + hotParam.put("workorder_id", jsonRaw.getWorkorder_id()); + hotParam.put("material_id", jsonMater.getMaterial_id()); + hotParam.put("qty", jsonRaw.getProductin_qty()); hotParam.put("io_type", "0"); - hotParam.put("qty_unit_id", jsonMater.getString("base_unit_id")); + hotParam.put("qty_unit_id", jsonMater.getBase_unit_id()); hotParam.put("task_id", task_id); hotParam.put("start_point_code", point_code1); - hotParam.put("end_point_code", jsonHotIvt.getString("point_code")); + hotParam.put("end_point_code", jsonHotIvt.getPoint_code()); hotParam.put("temperature", temperature); hotParam.put("oven_time", hours); this.createHotIoMst(hotParam); @@ -1169,62 +1170,63 @@ public class BakingServiceImpl implements BakingService { //校验该设备是否启用,且母卷MES是否请求烘烤 //查询该母卷号、设备号对应的生箔工单 - JSONObject raw_jo = WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").query("container_name ='" + container_name + "'").uniqueResult(0); + RawfoilWorkOrder raw_jo = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper().eq(RawfoilWorkOrder::getContainer_name, container_name)); if (ObjectUtil.isEmpty(raw_jo)) { throw new BadRequestException("未查询到对应的生箔工单!"); } - String resource_name = raw_jo.getString("resource_name"); - JSONObject sb_jo = WQLObject.getWQLObject("st_ivt_sbpointivt").query("ext_code ='" + resource_name + "'").uniqueResult(0); + String resource_name = raw_jo.getResource_name(); + SbPointIvt sb_jo = sbPointIvtMapper.selectOne(new LambdaQueryWrapper().eq(SbPointIvt::getExt_code, resource_name)); if (ObjectUtil.isEmpty(sb_jo)) { throw new BadRequestException("未查询到母卷号:" + container_name + "对应的生箔机台编号!"); } String mes_used = paramService.findByCode("mes_used").getValue(); if (StrUtil.equals("1", mes_used)) { - if (!"1".equals(raw_jo.getString("is_instor"))) { + if (!"1".equals(raw_jo.getIs_instor())) { throw new BadRequestException("该母卷在MES上未进行决策入半成品库,不允许进行入冷却操作!"); } } // 1.获取此暂存位的生产区域和上下位置 - JSONObject jsonPoint = pointTab.query("point_code = '" + point_code1 + "' and point_type = '5'").uniqueResult(0); + SchBasePoint jsonPoint = schBasePointMapper.selectOne(new LambdaQueryWrapper().eq(SchBasePoint::getPoint_code, point_code1).eq(SchBasePoint::getPoint_type, "5")); if (ObjectUtil.isEmpty(jsonPoint)) { throw new BadRequestException("请扫描点位类型为出箱的烘箱对接位!"); } - if (!in_area_id.contains(jsonPoint.getString("product_area"))) { - throw new BadRequestException("当前登录人员暂无【" + jsonPoint.getString("product_area") + "】操作权限"); + if (!in_area_id.contains(jsonPoint.getProduct_area())) { + throw new BadRequestException("当前登录人员暂无【" + jsonPoint.getProduct_area() + "】操作权限"); } // 2.找冷却区空货位 JSONObject map = new JSONObject(); map.put("flag", "2"); - map.put("product_area", jsonPoint.getString("product_area")); - map.put("point_location", jsonPoint.getString("point_location")); + map.put("product_area", jsonPoint.getProduct_area()); + map.put("point_location", jsonPoint.getPoint_location()); map.put("point_type", "1"); String endPointCode = null; - JSONObject jsonCooIvt = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(map).process().uniqueResult(0); + List coolPointIvts = coolPointIvtMapper.getEmptyCoolPoint(map); // 如果为空 - if (ObjectUtil.isEmpty(jsonCooIvt)) { - if (StrUtil.equals(jsonPoint.getString("point_location"), "0")) { + if (ObjectUtil.isEmpty(coolPointIvts)) { + if (StrUtil.equals(jsonPoint.getPoint_location(), "0")) { map.put("point_location", "1"); } - if (StrUtil.equals(jsonPoint.getString("point_location"), "1")) { + if (StrUtil.equals(jsonPoint.getPoint_location(), "1")) { map.put("point_location", "0"); } - jsonCooIvt = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(map).process().uniqueResult(0); + coolPointIvts = coolPointIvtMapper.getEmptyCoolPoint(map); } - if (ObjectUtil.isEmpty(jsonCooIvt)) { + if (ObjectUtil.isEmpty(coolPointIvts)) { throw new BadRequestException("冷却区空位不足"); } - endPointCode = jsonCooIvt.getString("full_point_code"); + CoolPointIvt jsonCooIvt = coolPointIvts.get(0); + endPointCode = jsonCooIvt.getFull_point_code(); // 3.创建任务 JSONObject param = new JSONObject(); param.put("point_code1", point_code1); param.put("point_code2", endPointCode); param.put("container_name", container_name); - param.put("product_area", jsonPoint.getString("product_area")); + param.put("product_area", jsonPoint.getProduct_area()); param.put("request_param", "1");//1-不合格入冷却 2-合格入冷却 @@ -1235,36 +1237,35 @@ public class BakingServiceImpl implements BakingService { String currentUserId = SecurityUtils.getCurrentUserId(); String currentUsername = SecurityUtils.getCurrentUsername(); - JSONObject jsonRaw = rawTab.query("container_name = '" + container_name + "' and is_delete = '0'").uniqueResult(0); - JSONObject jsonMater = materTab.query("material_code = '" + jsonRaw.getString("product_name") + "'").uniqueResult(0); + RawfoilWorkOrder jsonRaw = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper().eq(RawfoilWorkOrder::getContainer_name, container_name).eq(RawfoilWorkOrder::getIs_delete, "0")); + MdMeMaterialBase jsonMater = mdMeMaterialBaseMapper.selectOne(new LambdaQueryWrapper().eq(MdMeMaterialBase::getMaterial_code, jsonRaw.getProduct_name())); if (ObjectUtil.isEmpty(jsonMater)) { throw new BadRequestException("物料基础信息中无此物料!"); } - JSONObject jsonCool = new JSONObject(); - jsonCool.put("iostorinv_id", IdUtil.getSnowflake(1, 1).nextId()); - jsonCool.put("bill_code", CodeUtil.getNewCode("COOLREGION_BILL_CODE")); - jsonCool.put("io_type", "0"); - jsonCool.put("material_id", jsonMater.getString("material_id")); - jsonCool.put("pcsn", container_name); - jsonCool.put("bill_status", "10"); - jsonCool.put("qty", jsonRaw.get("productin_qty")); - jsonCool.put("qty_unit_id", jsonMater.get("base_unit_id")); - jsonCool.put("task_id", task_id); - jsonCool.put("start_point_code", point_code1); - jsonCool.put("end_point_code", endPointCode); - jsonCool.put("create_mode", "03"); - jsonCool.put("create_id", currentUserId); - jsonCool.put("create_name", currentUsername); - jsonCool.put("create_time", DateUtil.now()); - jsonCool.put("update_optid", currentUserId); - jsonCool.put("update_optname", currentUsername); - jsonCool.put("update_time", DateUtil.now()); - jsonCool.put("confirm_optid", currentUserId); - jsonCool.put("confirm_optname", currentUsername); - jsonCool.put("confirm_time", DateUtil.now()); - coolTab.insert(jsonCool); - + StIvtCoolregionio jsonCool = new StIvtCoolregionio(); + jsonCool.setIostorinv_id(IdUtil.getSnowflake(1, 1).nextId() + ""); + jsonCool.setBill_code(CodeUtil.getNewCode("COOLREGION_BILL_CODE")); + jsonCool.setIo_type("0"); + jsonCool.setMaterial_id(Long.getLong(jsonMater.getMaterial_id())); + jsonCool.setPcsn(container_name); + jsonCool.setBill_status("10"); + jsonCool.setQty(jsonRaw.getProductin_qty()); + jsonCool.setQty_unit_id(Long.getLong(jsonMater.getBase_unit_id())); + jsonCool.setTask_id(Long.getLong(task_id)); + jsonCool.setStart_point_code(point_code1); + jsonCool.setEnd_point_code(endPointCode); + jsonCool.setCreate_mode("03"); + jsonCool.setCreate_id(currentUserId); + jsonCool.setCreate_name(currentUsername); + jsonCool.setCreate_time(DateUtil.now()); + jsonCool.setUpdate_optid(currentUserId); + jsonCool.setUpdate_optname(currentUsername); + jsonCool.setUpdate_time(DateUtil.now()); + jsonCool.setConfirm_optid(currentUserId); + jsonCool.setConfirm_optname(currentUsername); + jsonCool.setConfirm_time(DateUtil.now()); + stIvtCoolregionioMapper.insert(jsonCool); } JSONObject result = new JSONObject(); @@ -1274,6 +1275,7 @@ public class BakingServiceImpl implements BakingService { @Override public JSONObject queryHotPoints(JSONObject whereJson, HttpContext ctx) { + PageHelper.startPage(Integer.parseInt(ctx.getPage()), Integer.parseInt(ctx.getRows())); //获取人员对应的区域 UserAreaServiceImpl userAreaService = new UserAreaServiceImpl(); String in_area_id = userAreaService.getInArea(); @@ -1283,15 +1285,22 @@ public class BakingServiceImpl implements BakingService { map.put("product_area", whereJson.get("product_area")); map.put("container_name", whereJson.getString("container_name")); + List areas = new ArrayList<>(); if (ObjectUtil.isNotEmpty(in_area_id)) { - map.put("in_area_id", in_area_id); + String[] array = in_area_id.replaceAll("^\\s*\\(|\\)\\s*$", "") // 去除首尾括号 + .split("\\s*,\\s*"); + List list = Arrays.asList(array); + for (int i = 0; i < list.size(); i++) { + String replace = list.get(i).replace("'", ""); + areas.add(replace); + } } - JSONObject json = WQL.getWO("ST_IVT_HOTPOINTIVT").addParamMap(map).pageQuery(ctx, "container_name"); - JSONArray rows = json.getJSONArray("content"); + List rows = hotPointIvtMapper.queryHotPoints(map,areas); + PageInfo pageInfo = new PageInfo<>(rows); JSONObject jo = new JSONObject(); jo.put("data", rows); - jo.put("size", json.getString("totalElements")); + jo.put("size", pageInfo.getTotal()); jo.put("message", "查询成功!"); return jo; } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/FeedingServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/FeedingServiceImpl.java index 9c3da5b..d7eee26 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/FeedingServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/FeedingServiceImpl.java @@ -6,8 +6,22 @@ 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.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.mapper.PdmBiSlittingproductionplanMapper; +import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dto.PdmBiSlittingproductionplanDto; +import org.nl.b_lms.sch.point.dao.StIvtCoolregionio; +import org.nl.b_lms.sch.point.dao.StIvtCutpointivt; +import org.nl.b_lms.sch.point.dao.mapper.StIvtCoolregionioMapper; +import org.nl.b_lms.sch.point.dao.mapper.StIvtCutpointivtMapper; +import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper; +import org.nl.b_lms.storage_manage.md.dao.MdMeMaterialBase; +import org.nl.b_lms.storage_manage.md.dao.mapper.MdMeMaterialBaseMapper; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.common.utils.CodeUtil; @@ -19,27 +33,55 @@ import org.nl.wms.basedata.st.service.impl.UserAreaServiceImpl; import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.pda.mps.eum.RegionTypeEnum; import org.nl.wms.pda.mps.service.FeedingService; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.CoolPointIvt; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.RawfoilWorkOrder; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.SbPointIvt; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper.CoolPointIvtMapper; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper.RawfoilWorkOrderMapper; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper.SbPointIvtMapper; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.tasks.CoolCutTask; import org.nl.wms.sch.tasks.OutHotTask; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; +import java.util.List; @Service @RequiredArgsConstructor @Slf4j public class FeedingServiceImpl implements FeedingService { + @Autowired + private PdmBiSlittingproductionplanMapper pdmBiSlittingproductionplanMapper; + @Autowired + private CoolPointIvtMapper coolPointIvtMapper; + @Autowired + private StIvtCutpointivtMapper stIvtCutpointivtMapper; + @Autowired + private RawfoilWorkOrderMapper rawfoilWorkOrderMapper; + @Autowired + private MdMeMaterialBaseMapper mdMeMaterialBaseMapper; + @Autowired + private StIvtCoolregionioMapper stIvtCoolregionioMapper; + @Autowired + private SbPointIvtMapper sbPointIvtMapper; + @Autowired + private SchBaseTaskMapper schBaseTaskMapper; + @Override public JSONObject queryMaterialInfo(JSONObject whereJson, HttpContext ctx) { + PageHelper.startPage(Integer.parseInt(ctx.getPage()), Integer.parseInt(ctx.getRows())); String product_area = whereJson.getString("product_area"); String point_code = whereJson.getString("point_code"); String source_container_name = whereJson.getString("source_container_name"); - HashMap map = new HashMap(); + JSONObject map = new JSONObject(); map.put("flag", "11"); if (StrUtil.isNotEmpty(product_area)) { map.put("product_area", product_area); @@ -53,13 +95,22 @@ public class FeedingServiceImpl implements FeedingService { //获取人员对应的区域 UserAreaServiceImpl userAreaService = new UserAreaServiceImpl(); String in_area_id = userAreaService.getInArea(); + System.out.println("区域:"+in_area_id); + List areas = new ArrayList<>(); if (ObjectUtil.isNotEmpty(in_area_id)) { - map.put("in_area_id", in_area_id); + String[] array = in_area_id.replaceAll("^\\s*\\(|\\)\\s*$", "") // 去除首尾括号 + .split("\\s*,\\s*"); + List list = Arrays.asList(array); + for (int i = 0; i < list.size(); i++) { + String replace = list.get(i).replace("'", ""); + areas.add(replace); + } } - JSONObject rows = WQL.getWO("PDA_02").addParamMap(map).pageQuery(ctx, "container_name"); + List rows = pdmBiSlittingproductionplanMapper.querySlitterPlans(map,areas); + PageInfo pageInfo = new PageInfo<>(rows); JSONObject jo = new JSONObject(); - jo.put("data", rows.getJSONArray("content")); - jo.put("size", rows.getString("totalElements")); + jo.put("data", rows); + jo.put("size", pageInfo.getTotal()); jo.put("message", "查询成功!"); return jo; } @@ -72,9 +123,9 @@ public class FeedingServiceImpl implements FeedingService { throw new BadRequestException("输入的点位不能为空!"); } - JSONObject cool_jo = WQLObject.getWQLObject("st_ivt_coolpointivt").query("full_point_code = '" + point_code + "'").uniqueResult(0); + CoolPointIvt cool_jo = coolPointIvtMapper.selectOne(new LambdaQueryWrapper().eq(CoolPointIvt::getFull_point_code, point_code)); if (ObjectUtil.isEmpty(cool_jo)) { - cool_jo = WQLObject.getWQLObject("st_ivt_coolpointivt").query("point_code = '" + point_code + "'").uniqueResult(0); + cool_jo = coolPointIvtMapper.selectOne(new LambdaQueryWrapper().eq(CoolPointIvt::getFull_point_code, point_code)); } if (ObjectUtil.isEmpty(cool_jo)) { @@ -83,12 +134,12 @@ public class FeedingServiceImpl implements FeedingService { //获取人员对应的区域 UserAreaServiceImpl userAreaService = new UserAreaServiceImpl(); String in_area_id = userAreaService.getInArea(); - if (!in_area_id.contains(cool_jo.getString("product_area"))) { - throw new BadRequestException("当前登录人员暂无【" + cool_jo.getString("product_area") + "】操作权限"); + if (!in_area_id.contains(cool_jo.getProduct_area())) { + throw new BadRequestException("当前登录人员暂无【" + cool_jo.getProduct_area() + "】操作权限"); } } - if (!StrUtil.equals(cool_jo.getString("full_point_status"), "02")) { + if (!StrUtil.equals(cool_jo.getFull_point_status(), "02")) { throw new BadRequestException("该点位上不存在母卷!"); } @@ -104,51 +155,51 @@ public class FeedingServiceImpl implements FeedingService { JSONObject json = form.getJSONObject("raw_jo"); String next_point_code = json.getString("point_code"); String container_name = json.getString("container_name"); - JSONObject cut_jo = WQLObject.getWQLObject("st_ivt_cutpointivt").query("point_code = '" + next_point_code + "'").uniqueResult(0); + StIvtCutpointivt cut_jo = stIvtCutpointivtMapper.selectOne(new LambdaQueryWrapper().eq(StIvtCutpointivt::getPoint_code, next_point_code)); if (ObjectUtil.isEmpty(cut_jo)) { throw new BadRequestException("找不到分切机:" + next_point_code + "的点位!"); } - JSONObject cool_jo = WQLObject.getWQLObject("st_ivt_coolpointivt").query("container_name = '" + container_name + "'").uniqueResult(0); + CoolPointIvt cool_jo = coolPointIvtMapper.selectOne(new LambdaQueryWrapper().eq(CoolPointIvt::getContainer_name, container_name)); if (ObjectUtil.isEmpty(cool_jo)) { throw new BadRequestException("找不到母卷号:" + container_name + "的冷却区满轴位的点位!"); } else { //获取人员对应的区域 UserAreaServiceImpl userAreaService = new UserAreaServiceImpl(); String in_area_id = userAreaService.getInArea(); - if (!in_area_id.contains(cool_jo.getString("product_area"))) { - throw new BadRequestException("当前登录人员暂无【" + cool_jo.getString("product_area") + "】操作权限"); + if (!in_area_id.contains(cool_jo.getProduct_area())) { + throw new BadRequestException("当前登录人员暂无【" + cool_jo.getProduct_area() + "】操作权限"); } } - String point_code = cool_jo.getString("point_code"); + String point_code = cool_jo.getPoint_code(); - if (!StrUtil.equals(cool_jo.getString("full_point_status"), "02")) { + if (!StrUtil.equals(cool_jo.getFull_point_status(), "02")) { throw new BadRequestException("该点位上不存在母卷!"); } - if (!StrUtil.equals(cool_jo.getString("container_name"), container_name)) { + if (!StrUtil.equals(cool_jo.getContainer_name(), container_name)) { throw new BadRequestException("该点位:" + point_code + "不存在母卷:" + container_name); } JSONObject result = new JSONObject(); result.put("message", "操作成功!"); JSONObject jo = new JSONObject(); - if (StrUtil.isNotEmpty(cut_jo.getString("container_name")) || "02".equals(cut_jo.getString("full_point_status"))) { + if (StrUtil.isNotEmpty(cut_jo.getContainer_name()) || "02".equals(cut_jo.getFull_point_status())) { throw new BadRequestException("该分切机对应的上料位存在母卷,不能下发搬运任务!"); } - if (StrUtil.equals("01", cut_jo.getString("empty_point_status"))) { + if (StrUtil.equals("01", cut_jo.getEmpty_point_status())) { jo.put("point_code1", point_code); jo.put("point_code2", next_point_code); - jo.put("vehicle_code", cool_jo.getString("container_name")); - jo.put("product_area", cut_jo.getString("product_area")); + jo.put("vehicle_code", cool_jo.getContainer_name()); + jo.put("product_area", cut_jo.getProduct_area()); jo.put("task_type", "010302"); } else { jo.put("point_code1", point_code); jo.put("point_code2", next_point_code); - jo.put("point_code3", cut_jo.getString("empty_point_code")); - jo.put("point_code4", cool_jo.getString("empty_point_code")); - jo.put("vehicle_code", cool_jo.getString("container_name")); - jo.put("vehicle_code2", cut_jo.getString("empty_vehicle_code")); - jo.put("product_area", cut_jo.getString("product_area")); + jo.put("point_code3", cut_jo.getEmpty_point_code()); + jo.put("point_code4", cool_jo.getEmpty_point_code()); + jo.put("vehicle_code", cool_jo.getContainer_name()); + jo.put("vehicle_code2", cut_jo.getEmpty_vehicle_code()); + jo.put("product_area", cut_jo.getProduct_area()); jo.put("task_type", "010301"); } @@ -157,44 +208,42 @@ public class FeedingServiceImpl implements FeedingService { String task_id = coolCutTask.createTask(jo); //查询该母卷号对应的生箔信息 - JSONObject raw_jo = WQLObject.getWQLObject("pdm_bi_rawfoilworkorder").query("container_name = '" + cool_jo.getString("container_name") + "'").uniqueResult(0); + RawfoilWorkOrder raw_jo = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper().eq(RawfoilWorkOrder::getContainer_name, cool_jo.getContainer_name())); if (ObjectUtil.isEmpty(raw_jo)) { - throw new BadRequestException("未查询到母卷:" + cool_jo.getString("container_name") + ",对应的生箔信息!"); + throw new BadRequestException("未查询到母卷:" + cool_jo.getContainer_name() + ",对应的生箔信息!"); } - JSONObject mater_jo = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + raw_jo.getString("product_name") + "'").uniqueResult(0); + MdMeMaterialBase mater_jo = mdMeMaterialBaseMapper.selectOne(new LambdaQueryWrapper().eq(MdMeMaterialBase::getMaterial_code, raw_jo.getProduct_name())); if (ObjectUtil.isEmpty(mater_jo)) { - throw new BadRequestException("未查询到物料:" + raw_jo.getString("product_name") + "基础信息!"); + throw new BadRequestException("未查询到物料:" + raw_jo.getProduct_name() + "基础信息!"); } //生成半成品出库单据 String currentUserId = SecurityUtils.getCurrentUserId(); String currentUsername = SecurityUtils.getCurrentUsername(); - JSONObject jsonCool = new JSONObject(); - jsonCool.put("iostorinv_id", IdUtil.getSnowflake(1, 1).nextId()); - jsonCool.put("bill_code", CodeUtil.getNewCode("COOLREGION_BILL_CODE")); - jsonCool.put("io_type", "1"); - jsonCool.put("material_id", mater_jo.getString("material_id")); - jsonCool.put("pcsn", cool_jo.getString("container_name")); - jsonCool.put("bill_status", "50"); - jsonCool.put("task_id", task_id); - jsonCool.put("qty_unit_id", "1"); - jsonCool.put("start_point_code", cool_jo.getString("full_point_code")); - jsonCool.put("end_point_code", cut_jo.getString("full_point_code")); - jsonCool.put("create_mode", "03"); - jsonCool.put("create_id", currentUserId); - jsonCool.put("create_name", currentUsername); - jsonCool.put("create_time", DateUtil.now()); - jsonCool.put("update_optid", currentUserId); - jsonCool.put("update_optname", currentUsername); - jsonCool.put("update_time", DateUtil.now()); - jsonCool.put("confirm_optid", currentUserId); - jsonCool.put("confirm_optname", currentUsername); - jsonCool.put("confirm_time", DateUtil.now()); - WQLObject.getWQLObject("ST_IVT_CoolRegionIO").insert(jsonCool); - - + StIvtCoolregionio jsonCool = new StIvtCoolregionio(); + jsonCool.setIostorinv_id(IdUtil.getSnowflake(1, 1).nextId() + ""); + jsonCool.setBill_code(CodeUtil.getNewCode("COOLREGION_BILL_CODE")); + jsonCool.setIo_type("1"); + jsonCool.setMaterial_id(Long.getLong(mater_jo.getMaterial_id())); + jsonCool.setPcsn(cool_jo.getContainer_name()); + jsonCool.setBill_status("50"); + jsonCool.setQty_unit_id(Long.getLong("1")); + jsonCool.setTask_id(Long.getLong(task_id)); + jsonCool.setStart_point_code(cool_jo.getFull_point_code()); + jsonCool.setEnd_point_code(cut_jo.getFull_point_code()); + jsonCool.setCreate_mode("03"); + jsonCool.setCreate_id(currentUserId); + jsonCool.setCreate_name(currentUsername); + jsonCool.setCreate_time(DateUtil.now()); + jsonCool.setUpdate_optid(currentUserId); + jsonCool.setUpdate_optname(currentUsername); + jsonCool.setUpdate_time(DateUtil.now()); + jsonCool.setConfirm_optid(currentUserId); + jsonCool.setConfirm_optname(currentUsername); + jsonCool.setConfirm_time(DateUtil.now()); + stIvtCoolregionioMapper.insert(jsonCool); result.put("message", "操作成功!"); return result; } @@ -211,35 +260,36 @@ public class FeedingServiceImpl implements FeedingService { //空轴送回 if (type.equals("1")) { //查询对应的分切点位是否存在 - JSONObject cut_jo = WQLObject.getWQLObject("st_ivt_cutpointivt").query("empty_point_code = '" + point_code + "'").uniqueResult(0); + StIvtCutpointivt cut_jo = stIvtCutpointivtMapper.selectOne(new LambdaQueryWrapper().eq(StIvtCutpointivt::getEmpty_point_code, point_code)); if (ObjectUtil.isEmpty(cut_jo)) { throw new BadRequestException("请输入或者扫码分切区域的空轴点位!"); } - if (StrUtil.equals("01", cut_jo.getString("empty_point_status"))) { + if (StrUtil.equals("01", cut_jo.getEmpty_point_status())) { throw new BadRequestException("该点位库存状态不存在空轴!"); } // 2.找冷却区空货位 JSONObject map = new JSONObject(); map.put("flag", "2"); - map.put("product_area", cut_jo.getString("product_area")); + map.put("product_area", cut_jo.getProduct_area()); map.put("point_location", "0"); - JSONObject jsonCooIvt = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(map).process().uniqueResult(0); + List jsonCooIvts = coolPointIvtMapper.selectCoolPoints(map); // 如果为空 - if (ObjectUtil.isEmpty(jsonCooIvt)) { + if (ObjectUtil.isEmpty(jsonCooIvts)) { map.put("point_location", "1"); - jsonCooIvt = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(map).process().uniqueResult(0); + jsonCooIvts = coolPointIvtMapper.selectCoolPoints(map); } - if (ObjectUtil.isEmpty(jsonCooIvt)) { + if (ObjectUtil.isEmpty(jsonCooIvts)) { throw new BadRequestException("冷却区空位不足"); } + CoolPointIvt jsonCooIvt = jsonCooIvts.get(0); // 3.创建任务 JSONObject param = new JSONObject(); param.put("point_code1", point_code); - param.put("point_code2", jsonCooIvt.getString("empty_point_code")); - param.put("product_area", cut_jo.getString("product_area")); + param.put("point_code2", jsonCooIvt.getEmpty_point_code()); + param.put("product_area", cut_jo.getProduct_area()); param.put("task_type", "010303"); AbstractAcsTask task = new CoolCutTask(); task.createTask(param); @@ -248,44 +298,45 @@ public class FeedingServiceImpl implements FeedingService { //满轴送回 if (type.equals("2")) { //查询对应的分切点位是否存在 - JSONObject cut_jo = WQLObject.getWQLObject("st_ivt_cutpointivt").query("full_point_code = '" + point_code + "'").uniqueResult(0); + StIvtCutpointivt cut_jo = stIvtCutpointivtMapper.selectOne(new LambdaQueryWrapper().eq(StIvtCutpointivt::getFull_point_code, point_code)); if (ObjectUtil.isEmpty(cut_jo)) { throw new BadRequestException("请输入或者扫码分切区域的满轴点位!"); } - if (StrUtil.equals("01", cut_jo.getString("full_point_status"))) { + if (StrUtil.equals("01", cut_jo.getFull_point_status())) { throw new BadRequestException("该点位库存状态不存在满轴!"); } - String container_name = cut_jo.getString("container_name"); + String container_name = cut_jo.getContainer_name(); if (StrUtil.isEmpty(container_name)) { throw new BadRequestException("该点位上不存在母卷,或LMS系统上未维护母卷号!"); } - JSONObject raw_jo = WQLObject.getWQLObject("pdm_bi_rawfoilworkorder").query("container_name = '" + container_name + "'").uniqueResult(0); + RawfoilWorkOrder raw_jo = rawfoilWorkOrderMapper.selectOne(new QueryWrapper().eq("container_name", container_name)); if (ObjectUtil.isEmpty(raw_jo)) { throw new BadRequestException("未查询到【" + container_name + "】对应的母卷号!"); } - JSONObject device_jo = WQLObject.getWQLObject("st_ivt_sbpointivt").query("ext_code = '" + raw_jo.getString("resource_name") + "'").uniqueResult(0); - String point_location = device_jo.getString("point_location"); + SbPointIvt device_jo = sbPointIvtMapper.selectOne(new QueryWrapper().eq("ext_code", raw_jo.getResource_name())); + String point_location = device_jo.getPoint_location(); // 2.找冷却区空货位 JSONObject map = new JSONObject(); map.put("flag", "2"); - map.put("product_area", cut_jo.getString("product_area")); + map.put("product_area", cut_jo.getProduct_area()); map.put("point_location", point_location); - JSONObject jsonCooIvt = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(map).process().uniqueResult(0); + List jsonCooIvts = coolPointIvtMapper.selectCoolPoints(map); // 如果为空 - if (ObjectUtil.isEmpty(jsonCooIvt)) { + if (ObjectUtil.isEmpty(jsonCooIvts)) { throw new BadRequestException("冷却区空位不足"); } + CoolPointIvt jsonCooIvt = jsonCooIvts.get(0); // 3.创建任务 JSONObject param = new JSONObject(); param.put("point_code1", point_code); - param.put("point_code2", jsonCooIvt.getString("full_point_code")); - param.put("product_area", cut_jo.getString("product_area")); + param.put("point_code2", jsonCooIvt.getFull_point_code()); + param.put("product_area", cut_jo.getProduct_area()); param.put("vehicle_code", container_name); param.put("task_type", "010304"); AbstractAcsTask task = new CoolCutTask(); @@ -304,19 +355,20 @@ public class FeedingServiceImpl implements FeedingService { if (ObjectUtil.isEmpty(point_code)) { throw new BadRequestException("输入设备点位编码不能为空!"); } - JSONObject cut_jo = WQLObject.getWQLObject("st_ivt_cutpointivt").query("full_point_code = '" + point_code + "'").uniqueResult(0); + StIvtCutpointivt cut_jo = stIvtCutpointivtMapper.selectOne(new LambdaQueryWrapper().eq(StIvtCutpointivt::getFull_point_code, point_code)); //查询该母卷号对应的任务 - JSONObject task_jo = WQLObject.getWQLObject("SCH_BASE_Task").query("(point_code2 = '" + point_code + "' OR point_code1 = '" + point_code + "') and task_status <> '07' AND is_delete = '0'").uniqueResult(0); + SchBaseTask task_jo = schBaseTaskMapper.selectOne(new QueryWrapper().lt("task_status", "07").eq("is_delete", "0").eq("point_code2", point_code).or().eq("point_code1", point_code)); if (ObjectUtil.isEmpty(task_jo)) { throw new BadRequestException("未查询到点位[" + point_code + "]对应的任务!"); } + //下发ACS,执行取满放空的AGV动作 JSONArray paramArr = new JSONArray(); JSONObject param = new JSONObject(); - param.put("device_code", cut_jo.getString("point_code")); - param.put("task_code", task_jo.getString("task_code")); - param.put("product_area", cut_jo.getString("product_area")); + param.put("device_code", cut_jo.getPoint_code()); + param.put("task_code", task_jo.getTask_code()); + param.put("product_area", cut_jo.getProduct_area()); param.put("option", "1"); paramArr.add(param); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilServiceImpl.java index 8f7ebee..5d16629 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilServiceImpl.java @@ -10,12 +10,14 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.b_lms.sch.point.dao.StIvtSbpointivt; import org.nl.b_lms.sch.point.dao.mapper.StIvtSbpointivtMapper; +import org.nl.common.utils.CodeUtil; import org.nl.common.utils.TaskUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.RedisUtils; @@ -23,12 +25,15 @@ import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.core.content.HttpContext; import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.system.service.dict.dao.Dict; +import org.nl.system.service.dict.dao.mapper.SysDictMapper; import org.nl.wms.basedata.st.service.impl.UserAreaServiceImpl; import org.nl.wms.ext.acs.service.AcsToWmsService; import org.nl.wms.ext.acs.service.impl.WmsToAcsServiceImpl; import org.nl.wms.pda.mps.eum.RegionTypeEnum; import org.nl.wms.pda.mps.service.BakingService; import org.nl.wms.pda.mps.service.RawFoilService; +import org.nl.wms.pda.st.service.impl.PrintServiceImpl; import org.nl.wms.pdm.rawfoilworkorder.service.dao.CoolPointIvt; import org.nl.wms.pdm.rawfoilworkorder.service.dao.RawfoilWorkOrder; import org.nl.wms.pdm.rawfoilworkorder.service.dao.SbPointIvt; @@ -44,10 +49,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Date; -import java.util.List; +import java.util.*; @Service @RequiredArgsConstructor @@ -61,13 +63,22 @@ public class RawFoilServiceImpl implements RawFoilService { @Autowired CoolPointIvtMapper coolPointIvtMapper; + @Autowired + SysDictMapper sysDictMapper; @Override public JSONObject queryProductArea() { - JSONObject map = new JSONObject(); - map.put("flag", "3"); - JSONArray jsonArr = WQL.getWO("PDA_RAWFOIL_01").addParam("flag", "3").process().getResultJSONArray(0); + List list = sysDictMapper.selectList(new QueryWrapper().eq("code", "product_area")); + JSONArray jsonArr = new JSONArray(); + if (ObjectUtil.isNotEmpty(list)) { + for (Dict dict : list) { + JSONObject json = new JSONObject(); + json.put("text", dict.getLabel()); + json.put("value", dict.getValue()); + jsonArr.add(json); + } + } JSONObject jo = new JSONObject(); jo.put("data", jsonArr); jo.put("message", "查询成功!"); @@ -82,18 +93,25 @@ public class RawFoilServiceImpl implements RawFoilService { String product_area = whereJson.getString("product_area"); //获取人员对应的区域 -// UserAreaServiceImpl userAreaService = new UserAreaServiceImpl(); -// String in_area_id = userAreaService.getInArea(); + UserAreaServiceImpl userAreaService = new UserAreaServiceImpl(); + String in_area_id = userAreaService.getInArea(); JSONArray resultArr = new JSONArray(); JSONObject map = new JSONObject(); map.put("point_code", point_code); map.put("container_name", container_name); map.put("product_area", product_area); -// if (ObjectUtil.isNotEmpty(in_area_id)) { -// map.put("in_area_id", in_area_id); -// } - List list = rawfoilWorkOrderMapper.queryRawFoil(map); + List areas = new ArrayList<>(); + if (ObjectUtil.isNotEmpty(in_area_id)) { + String[] array = in_area_id.replaceAll("^\\s*\\(|\\)\\s*$", "") // 去除首尾括号 + .split("\\s*,\\s*"); + List list = Arrays.asList(array); + for (int i = 0; i < list.size(); i++) { + String replace = list.get(i).replace("'", ""); + areas.add(replace); + } + } + List list = rawfoilWorkOrderMapper.queryRawFoil(map, areas); PageInfo pageInfo = new PageInfo<>(list); if (ObjectUtil.isNotEmpty(list)) { for (RawfoilWorkOrder rawfoilWorkOrder : list) { @@ -153,13 +171,20 @@ public class RawFoilServiceImpl implements RawFoilService { map.put("point_code", whereJson.getString("point_code")); map.put("container_name", whereJson.getString("container_name")); map.put("product_area", whereJson.getString("product_area")); -// //获取人员对应的区域 -// UserAreaServiceImpl userAreaService = new UserAreaServiceImpl(); -// String in_area_id = userAreaService.getInArea(); -// if (ObjectUtil.isNotEmpty(in_area_id)) { -// map.put("in_area_id", in_area_id); -// } - List rawfoilWorkOrderList = rawfoilWorkOrderMapper.queryRawFoilList(map); + //获取人员对应的区域 + UserAreaServiceImpl userAreaService = new UserAreaServiceImpl(); + String in_area_id = userAreaService.getInArea(); + List areas = new ArrayList<>(); + if (ObjectUtil.isNotEmpty(in_area_id)) { + String[] array = in_area_id.replaceAll("^\\s*\\(|\\)\\s*$", "") // 去除首尾括号 + .split("\\s*,\\s*"); + List list = Arrays.asList(array); + for (int i = 0; i < list.size(); i++) { + String replace = list.get(i).replace("'", ""); + areas.add(replace); + } + } + List rawfoilWorkOrderList = rawfoilWorkOrderMapper.queryRawFoilList(map, areas); PageInfo rawfoilWorkOrderPageInfo = new PageInfo<>(rawfoilWorkOrderList); JSONObject jo = new JSONObject(); jo.put("data", rawfoilWorkOrderList); @@ -177,30 +202,39 @@ public class RawFoilServiceImpl implements RawFoilService { SbPointIvt stIvtSbpointivt = sbPointIvtMapper.selectOne(new LambdaQueryWrapper() .eq(ObjectUtil.isNotEmpty(whereJson.getString("point_code")), SbPointIvt::getPoint_code, whereJson.getString("point_code"))); if (ObjectUtil.isEmpty(stIvtSbpointivt)) { - throw new BadRequestException("点位设备不存在"); + throw new BadRequestException("点位设备【" + whereJson.getString("point_code") + "】不存在"); } String container_name = whereJson.getString("container_name"); RawfoilWorkOrder rawfoilWorkOrder = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper() .eq(ObjectUtil.isNotEmpty(container_name), RawfoilWorkOrder::getContainer_name, container_name)); if (ObjectUtil.isNotEmpty(rawfoilWorkOrder)) { - throw new BadRequestException("当前母卷已存在生箔工单,不允许重复创建!"); + throw new BadRequestException("当前母卷【" + container_name + "】已存在生箔工单,不允许重复创建!"); } // 插入生箔工序工单表 RawfoilWorkOrder order = new RawfoilWorkOrder(); order.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextId()); order.setContainer_name(container_name); order.setResource_name(stIvtSbpointivt.getExt_code()); - order.setMfg_order_name(IdUtil.getSnowflake(1, 1).nextIdStr()); + order.setMfg_order_name("SB" + TaskUtils.getDateTime("yyMMddHHmmss") + CodeUtil.getNewCode("SBGD_CODE")); order.setProduct_name("741011000000361"); order.setDescription("铜箔|双面光|原箔|6微米|1350"); order.setTheory_height(BigDecimal.valueOf(2000.00)); order.setEqp_velocity(BigDecimal.valueOf(20.00)); order.setUp_coiler_date(DateUtil.now()); order.setIs_reload_send("0"); - order.setOrder_type(stIvtSbpointivt.getDevice_type()); + order.setOrder_type("2"); order.setProduct_area(stIvtSbpointivt.getProduct_area()); + order.setPoint_code(stIvtSbpointivt.getPoint_code()); order.setRealstart_time(DateUtil.now()); - order.setStatus("00"); + order.setPscn("N" + TaskUtils.getDateTime("yyMMdd") + CodeUtil.getNewCode("SAP_CODE")); + List list = rawfoilWorkOrderMapper.selectList(new LambdaQueryWrapper<>(RawfoilWorkOrder.class) + .eq(RawfoilWorkOrder::getPoint_code, stIvtSbpointivt.getPoint_code()) + .eq(RawfoilWorkOrder::getStatus, "30")); + if (list.size() > 0) { + order.setStatus("00"); + } else { + order.setStatus("30"); + } order.setIs_delete("0"); order.setAgvno("0"); order.setProductin_qty(BigDecimal.valueOf(0)); @@ -215,29 +249,17 @@ public class RawFoilServiceImpl implements RawFoilService { @Override public JSONObject confirmBlanking(JSONObject whereJson) { - WQLObject pdmBiRawfoilworkorderService = WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder"); // 生箔工单 - WQLObject stIvtSbpointivtService = WQLObject.getWQLObject("st_ivt_sbpointivt"); // 生箔点位库存表 + String point_code = whereJson.getString("point_code"); - JSONObject raw_jo = whereJson.getJSONObject("raw_jo"); - if (ObjectUtil.isEmpty(raw_jo)) { - throw new BadRequestException("请先选择生箔工单!"); - } - RawfoilWorkOrder rawfoilWorkOrder = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper() - .eq(ObjectUtil.isNotEmpty(raw_jo.getString("workorder_id")), RawfoilWorkOrder::getWorkorder_id, raw_jo.getString("workorder_id"))); - if (!StrUtil.equals(rawfoilWorkOrder.getStatus(), "10")) { - throw new BadRequestException("工单状态不为配送中"); - } - - //查询该母卷号对应的任务 - String container_name = rawfoilWorkOrder.getContainer_name(); - JSONObject task_jo = WQLObject.getWQLObject("SCH_BASE_Task").query("material_code = '" + container_name + "' and task_status <> '07' AND is_delete = '0'").uniqueResult(0); + //查询该点位对应的任务 + JSONObject task_jo = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code1 = '" + point_code + "' OR point_code2 = '" + point_code + "' OR point_code3 = '" + point_code + "' OR point_code4 = '" + point_code + "' and task_status <> '07' AND is_delete = '0'").uniqueResult(0); if (ObjectUtil.isEmpty(task_jo)) { - throw new BadRequestException("母卷号是" + container_name + "的任务不存在!"); + throw new BadRequestException("点位编码【" + point_code + "】的任务不存在!"); } // 查询生箔点位库存表 SbPointIvt stIvtSbpointivt = sbPointIvtMapper.selectOne(new LambdaQueryWrapper() - .eq(ObjectUtil.isNotEmpty(rawfoilWorkOrder.getResource_name()), SbPointIvt::getExt_code, rawfoilWorkOrder.getResource_name())); + .eq(SbPointIvt::getPoint_code, point_code.substring(0, point_code.length()-2))); if (ObjectUtil.isEmpty(stIvtSbpointivt)) { throw new BadRequestException("点位设备不存在"); } @@ -258,11 +280,6 @@ public class RawFoilServiceImpl implements RawFoilService { throw new BadRequestException("操作失败:" + result.getString("message ")); } - // 更新工单状态为确认下卷 - rawfoilWorkOrder.setStatus("20"); - rawfoilWorkOrder.setUpdate_time(DateUtil.now()); - rawfoilWorkOrderMapper.updateById(rawfoilWorkOrder); - JSONObject jo = new JSONObject(); jo.put("message", "操作成功!"); return jo; @@ -300,6 +317,37 @@ public class RawFoilServiceImpl implements RawFoilService { return jo; } + @Override + public JSONObject scrollDowmTest(JSONObject whereJson) { + SbPointIvt sbPointIvt = sbPointIvtMapper.selectOne(new LambdaQueryWrapper().eq(ObjectUtil.isNotEmpty(whereJson.getString("point_code")), SbPointIvt::getPoint_code, whereJson.getString("point_code"))); + if (ObjectUtil.isEmpty(sbPointIvt)) { + throw new BadRequestException("点位设备不存在"); + } + RawfoilWorkOrder rawfoilWorkOrder = new RawfoilWorkOrder(); + rawfoilWorkOrder.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextId()); + rawfoilWorkOrder.setContainer_name(whereJson.getString("container_name")); + rawfoilWorkOrder.setResource_name(sbPointIvt.getExt_code()); + rawfoilWorkOrder.setMfg_order_name("test"); + rawfoilWorkOrder.setProduct_name("741011000000361"); + rawfoilWorkOrder.setDescription("铜箔|双面光|原箔|6微米|1350"); + rawfoilWorkOrder.setTheory_height(BigDecimal.valueOf(2000.00)); + rawfoilWorkOrder.setEqp_velocity(BigDecimal.valueOf(20.00)); + rawfoilWorkOrder.setUp_coiler_date(DateUtil.now()); + rawfoilWorkOrder.setIs_reload_send("0"); + rawfoilWorkOrder.setOrder_type("2"); + rawfoilWorkOrder.setProduct_area("B2"); + rawfoilWorkOrder.setRealstart_time(DateUtil.now()); + rawfoilWorkOrder.setStatus("00"); + rawfoilWorkOrder.setIs_delete("0"); + rawfoilWorkOrder.setAgvno("0"); + rawfoilWorkOrder.setProductin_qty(BigDecimal.valueOf(0)); + rawfoilWorkOrder.setCreate_id("1"); + rawfoilWorkOrder.setCreate_name("管理员"); + rawfoilWorkOrder.setCreate_name(DateUtil.now()); + rawfoilWorkOrderMapper.insert(rawfoilWorkOrder); + return null; + } + @Override public JSONObject query(JSONObject whereJson, HttpContext ctx) { PageHelper.startPage(Integer.parseInt(ctx.getPage()), Integer.parseInt(ctx.getRows())); @@ -325,10 +373,10 @@ public class RawFoilServiceImpl implements RawFoilService { public JSONObject confirmWeight(JSONObject whereJson) { BigDecimal weight = whereJson.getBigDecimal("weight"); String container_name = whereJson.getString("container_name"); - if (ObjectUtil.isEmpty(weight)){ + if (ObjectUtil.isEmpty(weight)) { throw new BadRequestException("请输入称重值!"); } - if (ObjectUtil.isEmpty(container_name)){ + if (ObjectUtil.isEmpty(container_name)) { throw new BadRequestException("请输入母卷号!"); } RawfoilWorkOrder rawfoilWorkOrder = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper().eq(RawfoilWorkOrder::getContainer_name, container_name)); @@ -339,6 +387,25 @@ public class RawFoilServiceImpl implements RawFoilService { return jo; } + @Override + public void print(JSONObject whereJson) { + JSONObject print_info = WQLObject.getWQLObject("pdm_bi_printinfo").query("print_name = 'parentvolume_tag'").uniqueResult(0); + RawfoilWorkOrder rawfoilWorkOrder = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper().eq(RawfoilWorkOrder::getContainer_name, whereJson.getString("container_name"))); + JSONObject print_jo = new JSONObject(); + print_jo.put("container_name", rawfoilWorkOrder.getContainer_name()); + print_jo.put("resource_name", rawfoilWorkOrder.getResource_name()); + print_jo.put("theory_height", rawfoilWorkOrder.getTheory_height()); + print_jo.put("description", rawfoilWorkOrder.getDescription()); + print_jo.put("pscn", rawfoilWorkOrder.getPscn()); + print_jo.put("print_type", print_info.getString("print_id")); + new PrintServiceImpl().parentVolume_print(print_jo); + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + private void handleType1And3(JSONObject raw_jo, JSONObject param, String type) { if (ObjectUtil.isEmpty(raw_jo)) { throw new BadRequestException("生箔工单不能为空!"); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/PrintServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/PrintServiceImpl.java index dd289a7..b473996 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/PrintServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/service/impl/PrintServiceImpl.java @@ -584,7 +584,7 @@ public class PrintServiceImpl implements PrintService { JSONObject jsonPrint = printTab.query("print_id = '" + whereJson.getString("print_type") + "'").uniqueResult(0); //10.1.3.21/LMSPrinter/ String time = String.valueOf(DateUtil.current()); - String filePath = jsonPrint.getString("print_route") +time+"外包标签.txt"; + String filePath = jsonPrint.getString("print_route") +time+"子卷标签.txt"; FileWriter fw = null; try { File file = new File(filePath); @@ -635,7 +635,7 @@ public class PrintServiceImpl implements PrintService { JSONObject jsonPrint = printTab.query("print_id = '" + whereJson.getString("print_type") + "'").uniqueResult(0); //10.1.3.21/LMSPrinter/ String time = String.valueOf(DateUtil.current()); - String filePath = jsonPrint.getString("print_route") +time+"外包标签.txt"; + String filePath = jsonPrint.getString("print_route") +time+"管标标签.txt"; FileWriter fw = null; try { File file = new File(filePath); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/rest/HotPointIvtController.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/rest/HotPointIvtController.java index b598d5d..b16eeab 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/rest/HotPointIvtController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/rest/HotPointIvtController.java @@ -1,80 +1,80 @@ -package org.nl.wms.pdm.ivt.rest; - - -import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.modules.logging.annotation.Log; -import org.nl.wms.pdm.ivt.service.HotPointIvtService; -import org.nl.wms.pdm.ivt.service.dto.HotPointIvtDto; -import org.springframework.data.domain.Pageable; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.Map; - -/** - * @author lyd - * @date 2022-10-09 - **/ -@RestController -@RequiredArgsConstructor - -@RequestMapping("/api/hotpointivt") -@Slf4j -public class HotPointIvtController { - - private final HotPointIvtService hotpointivtService; - - @GetMapping - @Log("查询烘烤区点位库存") - - //@SaCheckPermission("@el.check('hotpointivt:list')") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { - return new ResponseEntity<>(hotpointivtService.queryAll(whereJson, page), HttpStatus.OK); - } - - @PostMapping - @Log("新增烘烤区点位库存") - - //@SaCheckPermission("@el.check('hotpointivt:add')") - public ResponseEntity create(@Validated @RequestBody HotPointIvtDto dto) { - hotpointivtService.create(dto); - return new ResponseEntity<>(HttpStatus.CREATED); - } - - @PutMapping - @Log("修改烘烤区点位库存") - - //@SaCheckPermission("@el.check('hotpointivt:edit')") - public ResponseEntity update(@Validated @RequestBody HotPointIvtDto dto) { - hotpointivtService.update(dto); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - - @Log("删除烘烤区点位库存") - - //@SaCheckPermission("@el.check('hotpointivt:del')") - @DeleteMapping - public ResponseEntity delete(@RequestBody Long[] ids) { - hotpointivtService.deleteAll(ids); - return new ResponseEntity<>(HttpStatus.OK); - } - - @GetMapping("/taskDtlQuery") - @Log("查询烘烤任务明细") - - public ResponseEntity taskDtlQuery(@RequestParam Map whereJson, Pageable page) { - return new ResponseEntity<>(hotpointivtService.taskDtlQuery(whereJson, page), HttpStatus.OK); - } - - @PostMapping("/uploadMes") - @Log("手动回传MES") - - public ResponseEntity uploadMes(@RequestBody JSONObject form) { - hotpointivtService.uploadMes(form); - return new ResponseEntity<>(HttpStatus.OK); - } -} +//package org.nl.wms.pdm.ivt.rest; +// +// +//import com.alibaba.fastjson.JSONObject; +//import lombok.RequiredArgsConstructor; +//import lombok.extern.slf4j.Slf4j; +//import org.nl.modules.logging.annotation.Log; +//import org.nl.wms.pdm.ivt.service.HotPointIvtService; +//import org.nl.wms.pdm.ivt.service.dto.HotPointIvtDto; +//import org.springframework.data.domain.Pageable; +//import org.springframework.http.HttpStatus; +//import org.springframework.http.ResponseEntity; +//import org.springframework.validation.annotation.Validated; +//import org.springframework.web.bind.annotation.*; +// +//import java.util.Map; +// +///** +// * @author lyd +// * @date 2022-10-09 +// **/ +//@RestController +//@RequiredArgsConstructor +// +//@RequestMapping("/api/hotpointivt") +//@Slf4j +//public class HotPointIvtController { +// +// private final HotPointIvtService hotpointivtService; +// +// @GetMapping +// @Log("查询烘烤区点位库存") +// +// //@SaCheckPermission("@el.check('hotpointivt:list')") +// public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { +// return new ResponseEntity<>(hotpointivtService.queryAll(whereJson, page), HttpStatus.OK); +// } +// +// @PostMapping +// @Log("新增烘烤区点位库存") +// +// //@SaCheckPermission("@el.check('hotpointivt:add')") +// public ResponseEntity create(@Validated @RequestBody HotPointIvtDto dto) { +// hotpointivtService.create(dto); +// return new ResponseEntity<>(HttpStatus.CREATED); +// } +// +// @PutMapping +// @Log("修改烘烤区点位库存") +// +// //@SaCheckPermission("@el.check('hotpointivt:edit')") +// public ResponseEntity update(@Validated @RequestBody HotPointIvtDto dto) { +// hotpointivtService.update(dto); +// return new ResponseEntity<>(HttpStatus.NO_CONTENT); +// } +// +// @Log("删除烘烤区点位库存") +// +// //@SaCheckPermission("@el.check('hotpointivt:del')") +// @DeleteMapping +// public ResponseEntity delete(@RequestBody Long[] ids) { +// hotpointivtService.deleteAll(ids); +// return new ResponseEntity<>(HttpStatus.OK); +// } +// +// @GetMapping("/taskDtlQuery") +// @Log("查询烘烤任务明细") +// +// public ResponseEntity taskDtlQuery(@RequestParam Map whereJson, Pageable page) { +// return new ResponseEntity<>(hotpointivtService.taskDtlQuery(whereJson, page), HttpStatus.OK); +// } +// +// @PostMapping("/uploadMes") +// @Log("手动回传MES") +// +// public ResponseEntity uploadMes(@RequestBody JSONObject form) { +// hotpointivtService.uploadMes(form); +// return new ResponseEntity<>(HttpStatus.OK); +// } +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/HotPointIvtService.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/HotPointIvtService.java index 9abfa2f..2358a6c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/HotPointIvtService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/HotPointIvtService.java @@ -1,83 +1,83 @@ -package org.nl.wms.pdm.ivt.service; - -import com.alibaba.fastjson.JSONObject; -import org.nl.wms.pdm.ivt.service.dto.HotPointIvtDto; -import org.springframework.data.domain.Pageable; - -import java.util.List; -import java.util.Map; - -/** - * @author lyd - * @description 服务接口 - * @date 2022-10-09 - **/ -public interface HotPointIvtService { - - /** - * 查询数据分页 - * - * @param whereJson 条件 - * @param page 分页参数 - * @return Map - */ - Map queryAll(Map whereJson, Pageable page); - - /** - * 查询所有数据不分页 - * - * @param whereJson 条件参数 - * @return List - */ - List queryAll(Map whereJson); - - /** - * 根据ID查询 - * - * @param ivt_id ID - * @return Hotpointivt - */ - HotPointIvtDto findById(Long ivt_id); - - /** - * 根据编码查询 - * - * @param code code - * @return Hotpointivt - */ - HotPointIvtDto findByCode(String code); - - - /** - * 创建 - * - * @param dto / - */ - void create(HotPointIvtDto dto); - - /** - * 编辑 - * - * @param dto / - */ - void update(HotPointIvtDto dto); - - /** - * 多选删除 - * - * @param ids / - */ - void deleteAll(Long[] ids); - - /** - * 任务明细分页查询 - * - * @param whereJson 条件 - * @param page 分页参数 - * @return Map - */ - Map taskDtlQuery(Map whereJson, Pageable page); - - void uploadMes(JSONObject form); - -} \ No newline at end of file +//package org.nl.wms.pdm.ivt.service; +// +//import com.alibaba.fastjson.JSONObject; +//import org.nl.wms.pdm.ivt.service.dto.HotPointIvtDto; +//import org.springframework.data.domain.Pageable; +// +//import java.util.List; +//import java.util.Map; +// +///** +// * @author lyd +// * @description 服务接口 +// * @date 2022-10-09 +// **/ +//public interface HotPointIvtService { +// +// /** +// * 查询数据分页 +// * +// * @param whereJson 条件 +// * @param page 分页参数 +// * @return Map +// */ +// Map queryAll(Map whereJson, Pageable page); +// +// /** +// * 查询所有数据不分页 +// * +// * @param whereJson 条件参数 +// * @return List +// */ +// List queryAll(Map whereJson); +// +// /** +// * 根据ID查询 +// * +// * @param ivt_id ID +// * @return Hotpointivt +// */ +// HotPointIvtDto findById(Long ivt_id); +// +// /** +// * 根据编码查询 +// * +// * @param code code +// * @return Hotpointivt +// */ +// HotPointIvtDto findByCode(String code); +// +// +// /** +// * 创建 +// * +// * @param dto / +// */ +// void create(HotPointIvtDto dto); +// +// /** +// * 编辑 +// * +// * @param dto / +// */ +// void update(HotPointIvtDto dto); +// +// /** +// * 多选删除 +// * +// * @param ids / +// */ +// void deleteAll(Long[] ids); +// +// /** +// * 任务明细分页查询 +// * +// * @param whereJson 条件 +// * @param page 分页参数 +// * @return Map +// */ +// Map taskDtlQuery(Map whereJson, Pageable page); +// +// void uploadMes(JSONObject form); +// +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/HotPointIvtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/HotPointIvtServiceImpl.java index e01c473..c502621 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/HotPointIvtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/ivt/service/impl/HotPointIvtServiceImpl.java @@ -1,252 +1,252 @@ -package org.nl.wms.pdm.ivt.service.impl; - - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.ObjectUtil; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.common.utils.SecurityUtils; -import org.nl.modules.common.exception.BadRequestException; -import org.nl.modules.common.utils.RedisUtils; -import org.nl.modules.wql.WQL; -import org.nl.modules.wql.core.bean.WQLObject; -import org.nl.modules.wql.util.SpringContextHolder; -import org.nl.modules.wql.util.WqlUtil; -import org.nl.system.service.param.impl.SysParamServiceImpl; -import org.nl.wms.basedata.st.service.impl.UserAreaServiceImpl; -import org.nl.wms.ext.mes.service.LmsToMesService; -import org.nl.wms.ext.mes.service.impl.LmsToMesServiceImpl; -import org.nl.wms.pdm.ivt.service.HotPointIvtService; -import org.nl.wms.pdm.ivt.service.dto.HotPointIvtDto; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * @author lyd - * @description 服务实现 - * @date 2022-10-09 - **/ -@Service -@RequiredArgsConstructor -@Slf4j -public class HotPointIvtServiceImpl implements HotPointIvtService { - - @Autowired - private RedisUtils redisUtils; - - @Override - public Map queryAll(Map whereJson, Pageable page) { - //获取人员对应的区域 - UserAreaServiceImpl userAreaService = new UserAreaServiceImpl(); - String in_area_id = userAreaService.getInArea(); - HashMap map = new HashMap(); - map.put("flag", "1"); - if (whereJson.get("point_code") != null) { - map.put("point_code", "%" + whereJson.get("point_code") + "%"); - } - map.put("point_status", whereJson.get("point_status")); - map.put("product_area", whereJson.get("product_area")); - map.put("is_used", whereJson.get("is_used")); - map.put("begin_time", whereJson.get("begin_time")); - map.put("end_time", whereJson.get("end_time")); - map.put("point_location", whereJson.get("point_location")); - - if (ObjectUtil.isNotEmpty(in_area_id)) { - map.put("in_area_id", in_area_id); - } - JSONObject json = WQL.getWO("ST_IVT_HOTPOINTIVT").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "product_area,point_code"); - JSONArray rows = json.getJSONArray("content"); - JSONArray new_rows = new JSONArray(); - for (int i = 0; i < rows.size(); i++) { - JSONObject row = rows.getJSONObject(i); - String temperature = (String) redisUtils.hget(row.getString("point_code"), "temperature"); - String last_time = (String) redisUtils.hget(row.getString("point_code"), "last_time"); - row.put("temperature", temperature); - row.put("last_time", last_time); - new_rows.add(row); - } - json.put("content", new_rows); - return json; - } - - @Override - public List queryAll(Map whereJson) { - WQLObject wo = WQLObject.getWQLObject("st_ivt_hotpointivt"); - JSONArray arr = wo.query().getResultJSONArray(0); - if (ObjectUtil.isNotEmpty(arr)) { - return arr.toJavaList(HotPointIvtDto.class); - } - return null; - } - - @Override - public HotPointIvtDto findById(Long ivt_id) { - WQLObject wo = WQLObject.getWQLObject("st_ivt_hotpointivt"); - JSONObject json = wo.query("ivt_id = '" + ivt_id + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(json)) { - return json.toJavaObject(HotPointIvtDto.class); - } - return null; - } - - @Override - public HotPointIvtDto findByCode(String code) { - WQLObject wo = WQLObject.getWQLObject("st_ivt_hotpointivt"); - JSONObject json = wo.query("code ='" + code + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(json)) { - return json.toJavaObject(HotPointIvtDto.class); - } - return null; - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void create(HotPointIvtDto dto) { - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - String now = DateUtil.now(); - - dto.setIvt_id(IdUtil.getSnowflake(1, 1).nextId()); - dto.setCreate_id(currentUserId); - dto.setCreate_name(nickName); - dto.setUpdate_optid(currentUserId); - dto.setUpdate_optname(nickName); - dto.setUpdate_time(now); - dto.setCreate_time(now); - - WQLObject wo = WQLObject.getWQLObject("st_ivt_hotpointivt"); - JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); - wo.insert(json); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void update(HotPointIvtDto dto) { - HotPointIvtDto entity = this.findById(dto.getIvt_id()); - if (entity == null) { - throw new BadRequestException("被删除或无权限,操作失败!"); - } - - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - - String now = DateUtil.now(); - dto.setUpdate_time(now); - dto.setUpdate_optid(currentUserId); - dto.setUpdate_optname(nickName); - - WQLObject wo = WQLObject.getWQLObject("st_ivt_hotpointivt"); - JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); - if (!json.containsKey("temperature")) { - json.put("temperature", null); - } - wo.update(json); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void deleteAll(Long[] ids) { - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - String now = DateUtil.now(); - - WQLObject wo = WQLObject.getWQLObject("st_ivt_hotpointivt"); - for (Long ivt_id : ids) { - JSONObject param = new JSONObject(); - param.put("ivt_id", String.valueOf(ivt_id)); - param.put("is_delete", "1"); - param.put("update_optid", currentUserId); - param.put("update_optname", nickName); - param.put("update_time", now); - wo.update(param); - } - } - - @Override - public void uploadMes(JSONObject form) { - String flag = form.getString("flag"); - - LmsToMesService lmsToMesService = SpringContextHolder.getBean(LmsToMesService.class); - // 将入烘箱信息发送给mes - JSONObject param = new JSONObject(); - String userName = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_USERNAME").getValue(); - String passWord = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_PASSWORD").getValue(); - param.put("iContainerName", form.getString("container_name")); - param.put("iResourceName", form.getString("ext_code")); - param.put("UserName", userName); - param.put("PassWord", passWord); - - //入箱回传 - if ("1".equals(flag)) { - //判断该接口是否需要回传 - param.put("iMoveInDate", DateUtil.now()); - param.put("iPlanBakingTemperature", form.getDoubleValue("temperature")); - param.put("iPlanBakingTimer", form.getDoubleValue("oven_time")); - JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'momRollBakeInBound'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(back_jo) && "1".equals(back_jo.getString("is_back"))) { - lmsToMesService.momRollBakeInBound(param); - } - - //将该母卷的入烘箱标识改为0 - HashMap map = new HashMap<>(); - map.put("is_baking", "0"); - WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").update(map, "container_name = '" + form.getString("container_name") + "'"); - log.info("母卷:" + form.getString("container_name") + "对应的入烘箱任务完成,请求烘烤标识改为0"); - } - //出箱回传 - if ("2".equals(flag)) { - param.put("iMoveOutDate", DateUtil.now()); - param.put("iabxActualBakingTemperature", form.getDoubleValue("temperature")); - param.put("iabxActualBakingTimer", form.getDoubleValue("oven_time")); - //判断该接口是否需要回传 - JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'momRollBakeOutBound'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(back_jo) && "1".equals(back_jo.getString("is_back"))) { - lmsToMesService.momRollBakeOutBound(param); - } - } - - - } - - @Override - public Map taskDtlQuery(Map whereJson, Pageable page) { - - String task_code = MapUtil.getStr(whereJson, "task_code"); - String start_point_code = MapUtil.getStr(whereJson, "start_point_code"); - String next_point_code = MapUtil.getStr(whereJson, "next_point_code"); - String container_name = MapUtil.getStr(whereJson, "container_name"); - - JSONObject map = new JSONObject(); - map.put("flag", "2"); - map.put("bill_code", MapUtil.getStr(whereJson, "bill_code")); - map.put("dtl_status", MapUtil.getStr(whereJson, "dtl_status")); - map.put("begin_time", whereJson.get("begin_time")); - map.put("end_time", whereJson.get("end_time")); - map.put("container_name", container_name); - if (ObjectUtil.isNotEmpty(task_code)) { - map.put("task_code", "%" + task_code + "%"); - } - if (ObjectUtil.isNotEmpty(start_point_code)) { - map.put("start_point_code", "%" + start_point_code + "%"); - } - if (ObjectUtil.isNotEmpty(next_point_code)) { - map.put("next_point_code", "%" + next_point_code + "%"); - } - - JSONObject json = WQL.getWO("ST_IVT_HOTPOINTIVT").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "create_time DESC"); - - return json; - } - -} +//package org.nl.wms.pdm.ivt.service.impl; +// +// +//import cn.hutool.core.date.DateUtil; +//import cn.hutool.core.map.MapUtil; +//import cn.hutool.core.util.IdUtil; +//import cn.hutool.core.util.ObjectUtil; +//import com.alibaba.fastjson.JSON; +//import com.alibaba.fastjson.JSONArray; +//import com.alibaba.fastjson.JSONObject; +//import lombok.RequiredArgsConstructor; +//import lombok.extern.slf4j.Slf4j; +//import org.nl.common.utils.SecurityUtils; +//import org.nl.modules.common.exception.BadRequestException; +//import org.nl.modules.common.utils.RedisUtils; +//import org.nl.modules.wql.WQL; +//import org.nl.modules.wql.core.bean.WQLObject; +//import org.nl.modules.wql.util.SpringContextHolder; +//import org.nl.modules.wql.util.WqlUtil; +//import org.nl.system.service.param.impl.SysParamServiceImpl; +//import org.nl.wms.basedata.st.service.impl.UserAreaServiceImpl; +//import org.nl.wms.ext.mes.service.LmsToMesService; +//import org.nl.wms.ext.mes.service.impl.LmsToMesServiceImpl; +//import org.nl.wms.pdm.ivt.service.HotPointIvtService; +//import org.nl.wms.pdm.ivt.service.dto.HotPointIvtDto; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.data.domain.Pageable; +//import org.springframework.stereotype.Service; +//import org.springframework.transaction.annotation.Transactional; +// +//import java.util.HashMap; +//import java.util.List; +//import java.util.Map; +// +///** +// * @author lyd +// * @description 服务实现 +// * @date 2022-10-09 +// **/ +//@Service +//@RequiredArgsConstructor +//@Slf4j +//public class HotPointIvtServiceImpl implements HotPointIvtService { +// +// @Autowired +// private RedisUtils redisUtils; +// +// @Override +// public Map queryAll(Map whereJson, Pageable page) { +// //获取人员对应的区域 +// UserAreaServiceImpl userAreaService = new UserAreaServiceImpl(); +// String in_area_id = userAreaService.getInArea(); +// HashMap map = new HashMap(); +// map.put("flag", "1"); +// if (whereJson.get("point_code") != null) { +// map.put("point_code", "%" + whereJson.get("point_code") + "%"); +// } +// map.put("point_status", whereJson.get("point_status")); +// map.put("product_area", whereJson.get("product_area")); +// map.put("is_used", whereJson.get("is_used")); +// map.put("begin_time", whereJson.get("begin_time")); +// map.put("end_time", whereJson.get("end_time")); +// map.put("point_location", whereJson.get("point_location")); +// +// if (ObjectUtil.isNotEmpty(in_area_id)) { +// map.put("in_area_id", in_area_id); +// } +// JSONObject json = WQL.getWO("ST_IVT_HOTPOINTIVT").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "product_area,point_code"); +// JSONArray rows = json.getJSONArray("content"); +// JSONArray new_rows = new JSONArray(); +// for (int i = 0; i < rows.size(); i++) { +// JSONObject row = rows.getJSONObject(i); +// String temperature = (String) redisUtils.hget(row.getString("point_code"), "temperature"); +// String last_time = (String) redisUtils.hget(row.getString("point_code"), "last_time"); +// row.put("temperature", temperature); +// row.put("last_time", last_time); +// new_rows.add(row); +// } +// json.put("content", new_rows); +// return json; +// } +// +// @Override +// public List queryAll(Map whereJson) { +// WQLObject wo = WQLObject.getWQLObject("st_ivt_hotpointivt"); +// JSONArray arr = wo.query().getResultJSONArray(0); +// if (ObjectUtil.isNotEmpty(arr)) { +// return arr.toJavaList(HotPointIvtDto.class); +// } +// return null; +// } +// +// @Override +// public HotPointIvtDto findById(Long ivt_id) { +// WQLObject wo = WQLObject.getWQLObject("st_ivt_hotpointivt"); +// JSONObject json = wo.query("ivt_id = '" + ivt_id + "'").uniqueResult(0); +// if (ObjectUtil.isNotEmpty(json)) { +// return json.toJavaObject(HotPointIvtDto.class); +// } +// return null; +// } +// +// @Override +// public HotPointIvtDto findByCode(String code) { +// WQLObject wo = WQLObject.getWQLObject("st_ivt_hotpointivt"); +// JSONObject json = wo.query("code ='" + code + "'").uniqueResult(0); +// if (ObjectUtil.isNotEmpty(json)) { +// return json.toJavaObject(HotPointIvtDto.class); +// } +// return null; +// } +// +// @Override +// @Transactional(rollbackFor = Exception.class) +// public void create(HotPointIvtDto dto) { +// String currentUserId = SecurityUtils.getCurrentUserId(); +// String nickName = SecurityUtils.getCurrentNickName(); +// String now = DateUtil.now(); +// +// dto.setIvt_id(IdUtil.getSnowflake(1, 1).nextId()); +// dto.setCreate_id(currentUserId); +// dto.setCreate_name(nickName); +// dto.setUpdate_optid(currentUserId); +// dto.setUpdate_optname(nickName); +// dto.setUpdate_time(now); +// dto.setCreate_time(now); +// +// WQLObject wo = WQLObject.getWQLObject("st_ivt_hotpointivt"); +// JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); +// wo.insert(json); +// } +// +// @Override +// @Transactional(rollbackFor = Exception.class) +// public void update(HotPointIvtDto dto) { +// HotPointIvtDto entity = this.findById(dto.getIvt_id()); +// if (entity == null) { +// throw new BadRequestException("被删除或无权限,操作失败!"); +// } +// +// String currentUserId = SecurityUtils.getCurrentUserId(); +// String nickName = SecurityUtils.getCurrentNickName(); +// +// String now = DateUtil.now(); +// dto.setUpdate_time(now); +// dto.setUpdate_optid(currentUserId); +// dto.setUpdate_optname(nickName); +// +// WQLObject wo = WQLObject.getWQLObject("st_ivt_hotpointivt"); +// JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); +// if (!json.containsKey("temperature")) { +// json.put("temperature", null); +// } +// wo.update(json); +// } +// +// @Override +// @Transactional(rollbackFor = Exception.class) +// public void deleteAll(Long[] ids) { +// String currentUserId = SecurityUtils.getCurrentUserId(); +// String nickName = SecurityUtils.getCurrentNickName(); +// String now = DateUtil.now(); +// +// WQLObject wo = WQLObject.getWQLObject("st_ivt_hotpointivt"); +// for (Long ivt_id : ids) { +// JSONObject param = new JSONObject(); +// param.put("ivt_id", String.valueOf(ivt_id)); +// param.put("is_delete", "1"); +// param.put("update_optid", currentUserId); +// param.put("update_optname", nickName); +// param.put("update_time", now); +// wo.update(param); +// } +// } +// +// @Override +// public void uploadMes(JSONObject form) { +// String flag = form.getString("flag"); +// +// LmsToMesService lmsToMesService = SpringContextHolder.getBean(LmsToMesService.class); +// // 将入烘箱信息发送给mes +// JSONObject param = new JSONObject(); +// String userName = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_USERNAME").getValue(); +// String passWord = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_PASSWORD").getValue(); +// param.put("iContainerName", form.getString("container_name")); +// param.put("iResourceName", form.getString("ext_code")); +// param.put("UserName", userName); +// param.put("PassWord", passWord); +// +// //入箱回传 +// if ("1".equals(flag)) { +// //判断该接口是否需要回传 +// param.put("iMoveInDate", DateUtil.now()); +// param.put("iPlanBakingTemperature", form.getDoubleValue("temperature")); +// param.put("iPlanBakingTimer", form.getDoubleValue("oven_time")); +// JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'momRollBakeInBound'").uniqueResult(0); +// if (ObjectUtil.isNotEmpty(back_jo) && "1".equals(back_jo.getString("is_back"))) { +// lmsToMesService.momRollBakeInBound(param); +// } +// +// //将该母卷的入烘箱标识改为0 +// HashMap map = new HashMap<>(); +// map.put("is_baking", "0"); +// WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").update(map, "container_name = '" + form.getString("container_name") + "'"); +// log.info("母卷:" + form.getString("container_name") + "对应的入烘箱任务完成,请求烘烤标识改为0"); +// } +// //出箱回传 +// if ("2".equals(flag)) { +// param.put("iMoveOutDate", DateUtil.now()); +// param.put("iabxActualBakingTemperature", form.getDoubleValue("temperature")); +// param.put("iabxActualBakingTimer", form.getDoubleValue("oven_time")); +// //判断该接口是否需要回传 +// JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'momRollBakeOutBound'").uniqueResult(0); +// if (ObjectUtil.isNotEmpty(back_jo) && "1".equals(back_jo.getString("is_back"))) { +// lmsToMesService.momRollBakeOutBound(param); +// } +// } +// +// +// } +// +// @Override +// public Map taskDtlQuery(Map whereJson, Pageable page) { +// +// String task_code = MapUtil.getStr(whereJson, "task_code"); +// String start_point_code = MapUtil.getStr(whereJson, "start_point_code"); +// String next_point_code = MapUtil.getStr(whereJson, "next_point_code"); +// String container_name = MapUtil.getStr(whereJson, "container_name"); +// +// JSONObject map = new JSONObject(); +// map.put("flag", "2"); +// map.put("bill_code", MapUtil.getStr(whereJson, "bill_code")); +// map.put("dtl_status", MapUtil.getStr(whereJson, "dtl_status")); +// map.put("begin_time", whereJson.get("begin_time")); +// map.put("end_time", whereJson.get("end_time")); +// map.put("container_name", container_name); +// if (ObjectUtil.isNotEmpty(task_code)) { +// map.put("task_code", "%" + task_code + "%"); +// } +// if (ObjectUtil.isNotEmpty(start_point_code)) { +// map.put("start_point_code", "%" + start_point_code + "%"); +// } +// if (ObjectUtil.isNotEmpty(next_point_code)) { +// map.put("next_point_code", "%" + next_point_code + "%"); +// } +// +// JSONObject json = WQL.getWO("ST_IVT_HOTPOINTIVT").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "create_time DESC"); +// +// return json; +// } +// +//} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/controller/HotPointIvtController.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/controller/HotPointIvtController.java new file mode 100644 index 0000000..70c7e0d --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/controller/HotPointIvtController.java @@ -0,0 +1,76 @@ +package org.nl.wms.pdm.rawfoilworkorder.controller; + +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.modules.logging.annotation.Log; +import org.nl.wms.pdm.ivt.service.dto.HotPointIvtDto; +import org.nl.wms.pdm.rawfoilworkorder.service.HotPointIvtService; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.HotPointIvt; +import org.springframework.data.domain.Pageable; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +@RestController +@RequiredArgsConstructor + +@RequestMapping("/api/hotpointivt") +@Slf4j +public class HotPointIvtController { + + private final HotPointIvtService hotPointIvtService; + + @GetMapping + @Log("查询烘烤区点位库存") + + //@SaCheckPermission("@el.check('hotpointivt:list')") + public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { + return new ResponseEntity<>(hotPointIvtService.queryAll(whereJson, page), HttpStatus.OK); + } + + @PostMapping + @Log("新增烘烤区点位库存") + + //@SaCheckPermission("@el.check('hotpointivt:add')") + public ResponseEntity create(@Validated @RequestBody HotPointIvt dto) { + hotPointIvtService.create(dto); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改烘烤区点位库存") + + //@SaCheckPermission("@el.check('hotpointivt:edit')") + public ResponseEntity update(@Validated @RequestBody HotPointIvt dto) { + hotPointIvtService.update(dto); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @Log("删除烘烤区点位库存") + + //@SaCheckPermission("@el.check('hotpointivt:del')") + @DeleteMapping + public ResponseEntity delete(@RequestBody Long[] ids) { + hotPointIvtService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + @GetMapping("/taskDtlQuery") + @Log("查询烘烤任务明细") + + public ResponseEntity taskDtlQuery(@RequestParam Map whereJson, Pageable page) { + return new ResponseEntity<>(hotPointIvtService.taskDtlQuery(whereJson, page), HttpStatus.OK); + } + + @PostMapping("/uploadMes") + @Log("手动回传MES") + + public ResponseEntity uploadMes(@RequestBody JSONObject form) { + hotPointIvtService.uploadMes(form); + return new ResponseEntity<>(HttpStatus.OK); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/controller/HotPointIvtIoMstController.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/controller/HotPointIvtIoMstController.java new file mode 100644 index 0000000..aae8e8a --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/controller/HotPointIvtIoMstController.java @@ -0,0 +1,14 @@ +package org.nl.wms.pdm.rawfoilworkorder.controller; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor + +@RequestMapping("/api/hotpointivtiomst") +@Slf4j +public class HotPointIvtIoMstController { +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/controller/RawfoilWorkOrderController.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/controller/RawfoilWorkOrderController.java index 44537d5..5200a3f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/controller/RawfoilWorkOrderController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/controller/RawfoilWorkOrderController.java @@ -37,6 +37,14 @@ public class RawfoilWorkOrderController { return new ResponseEntity<>(rawfoilworkorderService.queryAll(whereJson, page), HttpStatus.OK); } + @GetMapping("/selectResource") + @Log("查询生箔工序工单") + + //@SaCheckPermission("@el.check('rawfoilworkorder:list')") + public ResponseEntity selectResource(@RequestParam String whereJson) { + return new ResponseEntity<>(rawfoilworkorderService.selectResource(whereJson), HttpStatus.OK); + } + @PostMapping @Log("新增生箔工序工单") diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/HotPointIvtIoMstService.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/HotPointIvtIoMstService.java new file mode 100644 index 0000000..665966c --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/HotPointIvtIoMstService.java @@ -0,0 +1,4 @@ +package org.nl.wms.pdm.rawfoilworkorder.service; + +public interface HotPointIvtIoMstService { +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/HotPointIvtService.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/HotPointIvtService.java new file mode 100644 index 0000000..fc8d26d --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/HotPointIvtService.java @@ -0,0 +1,77 @@ +package org.nl.wms.pdm.rawfoilworkorder.service; + +import com.alibaba.fastjson.JSONObject; +import org.nl.wms.pdm.ivt.service.dto.HotPointIvtDto; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.HotPointIvt; +import org.springframework.data.domain.Pageable; + +import java.util.List; +import java.util.Map; + +public interface HotPointIvtService { + /** + * 查询数据分页 + * + * @param whereJson 条件 + * @param page 分页参数 + * @return Map + */ + Map queryAll(Map whereJson, Pageable page); + + /** + * 查询所有数据不分页 + * + * @param whereJson 条件参数 + * @return List + */ + List queryAll(Map whereJson); + + /** + * 根据ID查询 + * + * @param ivt_id ID + * @return Hotpointivt + */ + HotPointIvt findById(Long ivt_id); + + /** + * 根据编码查询 + * + * @param code code + * @return Hotpointivt + */ + HotPointIvt findByCode(String code); + + + /** + * 创建 + * + * @param dto / + */ + void create(HotPointIvt dto); + + /** + * 编辑 + * + * @param dto / + */ + void update(HotPointIvt dto); + + /** + * 多选删除 + * + * @param ids / + */ + void deleteAll(Long[] ids); + + /** + * 任务明细分页查询 + * + * @param whereJson 条件 + * @param page 分页参数 + * @return Map + */ + Map taskDtlQuery(Map whereJson, Pageable page); + + void uploadMes(JSONObject form); +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/RawfoilWorkOrderService.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/RawfoilWorkOrderService.java index 73b3728..9ab63a0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/RawfoilWorkOrderService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/RawfoilWorkOrderService.java @@ -83,4 +83,6 @@ public interface RawfoilWorkOrderService extends IService { void confirm(JSONObject whereJson); void print(List list); + + JSONObject selectResource(String whereJson); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/HotPointIvt.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/HotPointIvt.java new file mode 100644 index 0000000..fcb29d6 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/HotPointIvt.java @@ -0,0 +1,148 @@ +package org.nl.wms.pdm.rawfoilworkorder.service.dao; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +@TableName("st_ivt_hotpointivt") +public class HotPointIvt implements Serializable { + /** 库存记录标识 */ + /** + * 防止精度丢失 + */ + @TableId(value = "ivt_id", type = IdType.NONE) + @JsonSerialize(using = ToStringSerializer.class) + private Long ivt_id; + + /** + * 点位编码 + */ + private String point_code; + + /** + * 点位状态 + */ + private String point_status; + + /** + * 母卷号 + */ + private String container_name; + + /** + * 母卷工单标识 + */ + private String workorder_id; + + /** + * 母卷轴编码 + */ + private String full_vehicle_code; + + /** + * 批次 + */ + private String pcsn; + + /** + * 库存数 + */ + private BigDecimal ivt_qty; + + /** + * 计量单位标识 + */ + private Long qty_unit_id; + + /** + * 入库时间 + */ + private String instorage_time; + + /** + * 生产区域 + */ + private String product_area; + + /** + * 温度 + */ + private BigDecimal temperature; + + /** + * 组别 + */ + private String group_name; + + /** + * 位置 + */ + private String point_location; + + /** + * 顺序号 + */ + private BigDecimal sort_seq; + + /** + * 是否启用 + */ + private String is_used; + + /** + * 备注 + */ + private String remark; + + /** + * 创建人 + */ + private String create_id; + + /** + * 创建人姓名 + */ + private String create_name; + + /** + * 创建时间 + */ + private String create_time; + + /** + * 修改人 + */ + private String update_optid; + + /** + * 修改人姓名 + */ + private String update_optname; + + /** + * 修改时间 + */ + private String update_time; + + /** + * 规划 + */ + private String plan; + + /** + * 倒计时 + */ + private String last_time; + + /** + * 外部编码 + */ + private String ext_code; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/HotRegionIoMst.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/HotRegionIoMst.java new file mode 100644 index 0000000..050d264 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/HotRegionIoMst.java @@ -0,0 +1,148 @@ +package org.nl.wms.pdm.rawfoilworkorder.service.dao; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +@TableName("st_ivt_hotregioniomst") +public class HotRegionIoMst implements Serializable { + /** 库存记录标识 */ + /** + * 防止精度丢失 + */ + @TableId(value = "iostorinv_id", type = IdType.NONE) + @JsonSerialize(using = ToStringSerializer.class) + private Long iostorinv_id; + + /** + * 出入类型 + */ + private String io_type; + + /** + * 单据编号 + */ + private String bill_code; + + /** + * 母卷号 + */ + private String container_name; + + /** + * 母卷工单标识 + */ + private String workorder_id; + + /** + * 物料标识 + */ + private String material_id; + + /** + * 批次 + */ + private String pcsn; + + /** + * 载具编码 + */ + private String vehicle_code; + + /** + * 数量 + */ + private BigDecimal qty; + + /** + * 数量单位标识 + */ + private String qty_unit_id; + + /** + * 单据状态 + */ + private String bill_status; + + /** + * 生成方式 + */ + private String create_mode; + + /** + * 起始点位编码 + */ + private String start_point_code; + + /** + * 终点点位编码 + */ + private String end_point_code; + + /** + * 任务类型 + */ + private String task_type; + + /** + * 任务标识 + */ + private Long task_id; + + /** + * 烘烤时间 + */ + private BigDecimal oven_time; + + /** + * 烘箱温度 + */ + private BigDecimal temperature; + + /** + * 备注 + */ + private String remark; + + /** + * 创建人 + */ + private String create_id; + + /** + * 创建人姓名 + */ + private String create_name; + + /** + * 创建时间 + */ + private String create_time; + + /** + * 创建人 + */ + private String confirm_optid; + + /** + * 创建人姓名 + */ + private String confirm_optname; + + /** + * 创建时间 + */ + private String confirm_time; + + /** + * 是否删除 + */ + private String is_delete; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/CoolPointIvtMapper.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/CoolPointIvtMapper.java index c7f1907..0f61b74 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/CoolPointIvtMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/CoolPointIvtMapper.java @@ -15,4 +15,10 @@ public interface CoolPointIvtMapper extends BaseMapper { List queryCoolPointIvt(@Param("map") JSONObject map); List selectCoolIvt(@Param("map") JSONObject map); + + CoolPointIvt selectCoolPointIvt(@Param("parent_container_name") String parent_container_name); + + List getEmptyCoolPoint(@Param("param") JSONObject map); + + List selectCoolPoints(@Param("param") JSONObject map); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/CoolPointIvtMapper.xml b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/CoolPointIvtMapper.xml index 9dce48d..f7a2577 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/CoolPointIvtMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/CoolPointIvtMapper.xml @@ -34,7 +34,7 @@ AND ivt.product_area = #{map.product_area} - + AND ivt.point_location = #{map.point_location} @@ -83,4 +83,99 @@ AND ivt.container_name = #{map.container_name} + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/HotPointIvtIoMstMapper.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/HotPointIvtIoMstMapper.java new file mode 100644 index 0000000..ae9e574 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/HotPointIvtIoMstMapper.java @@ -0,0 +1,9 @@ +package org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.HotRegionIoMst; + +@Mapper +public interface HotPointIvtIoMstMapper extends BaseMapper { +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/HotPointIvtMapper.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/HotPointIvtMapper.java new file mode 100644 index 0000000..9215a8d --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/HotPointIvtMapper.java @@ -0,0 +1,20 @@ +package org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.HotPointIvt; +import org.nl.wms.pdm.rawfoilworkorder.service.dto.HotPointIvtDto; + +import java.util.HashMap; +import java.util.List; + +@Mapper +public interface HotPointIvtMapper extends BaseMapper { + List selectHotPointIvt(@Param("jsonMap") JSONObject jsonMap); + + List selectHotPointList(@Param("param") JSONObject jsonMap); + + List queryHotPoints(@Param("param") HashMap map,@Param("areas") List areas); +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/HotPointIvtMapper.xml b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/HotPointIvtMapper.xml new file mode 100644 index 0000000..721d81b --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/HotPointIvtMapper.xml @@ -0,0 +1,95 @@ + + + + + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/RawfoilWorkOrderMapper.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/RawfoilWorkOrderMapper.java index 86efe93..f771e9b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/RawfoilWorkOrderMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/RawfoilWorkOrderMapper.java @@ -14,9 +14,9 @@ import java.util.List; public interface RawfoilWorkOrderMapper extends BaseMapper { IPage queryAllPage(@Param("rawfoilWorkOrderDto")RawfoilWorkOrderDto rawfoilWorkOrderDto , @Param("page") IPage page); - List queryRawFoil(@Param("map") JSONObject map); + List queryRawFoil(@Param("map") JSONObject map,@Param("areas") List areas); - List queryRawFoilList(@Param("map") JSONObject map); + List queryRawFoilList(@Param("map") JSONObject map, @Param("areas") List areas); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/RawfoilWorkOrderMapper.xml b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/RawfoilWorkOrderMapper.xml index 5e99b5c..e9cb537 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/RawfoilWorkOrderMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dao/mapper/RawfoilWorkOrderMapper.xml @@ -36,6 +36,10 @@ der.status = '00' OR der.status = '10' AND der.is_delete = '0' + AND sb.product_area IN + + #{areaId} + AND sb.point_code = #{map.point_code} @@ -74,6 +78,10 @@ WHERE der.is_delete = '0' AND der.status != '40' + AND ivt.product_area IN + + #{areaId} + AND ivt.point_code = #{map.point_code} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dto/HotPointIvtDto.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dto/HotPointIvtDto.java new file mode 100644 index 0000000..e9799dd --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/dto/HotPointIvtDto.java @@ -0,0 +1,145 @@ +package org.nl.wms.pdm.rawfoilworkorder.service.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +public class HotPointIvtDto implements Serializable { + /** 库存记录标识 */ + /** + * 防止精度丢失 + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long ivt_id; + + /** + * 点位编码 + */ + private String point_code; + + /** + * 点位状态 + */ + private String point_status; + + /** + * 母卷号 + */ + private String container_name; + + /** + * 母卷工单标识 + */ + private String workorder_id; + + /** + * 母卷轴编码 + */ + private String full_vehicle_code; + + /** + * 批次 + */ + private String pcsn; + + /** + * 库存数 + */ + private BigDecimal ivt_qty; + + /** + * 计量单位标识 + */ + private Long qty_unit_id; + + /** + * 入库时间 + */ + private String instorage_time; + + /** + * 生产区域 + */ + private String product_area; + + /** + * 温度 + */ + private BigDecimal temperature; + + /** + * 组别 + */ + private String group_name; + + /** + * 位置 + */ + private String point_location; + + /** + * 顺序号 + */ + private BigDecimal sort_seq; + + /** + * 是否启用 + */ + private String is_used; + + /** + * 备注 + */ + private String remark; + + /** + * 创建人 + */ + private String create_id; + + /** + * 创建人姓名 + */ + private String create_name; + + /** + * 创建时间 + */ + private String create_time; + + /** + * 修改人 + */ + private String update_optid; + + /** + * 修改人姓名 + */ + private String update_optname; + + /** + * 修改时间 + */ + private String update_time; + + /** + * 规划 + */ + private String plan; + + /** + * 倒计时 + */ + private String last_time; + + /** + * 外部编码 + */ + private String ext_code; + + private String roll_status; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/impl/HotPointIvtIoMstImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/impl/HotPointIvtIoMstImpl.java new file mode 100644 index 0000000..75bad6a --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/impl/HotPointIvtIoMstImpl.java @@ -0,0 +1,14 @@ +package org.nl.wms.pdm.rawfoilworkorder.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.HotRegionIoMst; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper.HotPointIvtIoMstMapper; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +@Slf4j +public class HotPointIvtIoMstImpl extends ServiceImpl { +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/impl/HotPointIvtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/impl/HotPointIvtServiceImpl.java new file mode 100644 index 0000000..9625e08 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/impl/HotPointIvtServiceImpl.java @@ -0,0 +1,221 @@ +package org.nl.wms.pdm.rawfoilworkorder.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.utils.SecurityUtils; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.common.utils.RedisUtils; +import org.nl.modules.wql.WQL; +import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.modules.wql.util.WqlUtil; +import org.nl.system.service.param.impl.SysParamServiceImpl; +import org.nl.wms.ext.mes.service.LmsToMesService; +import org.nl.wms.pdm.rawfoilworkorder.service.HotPointIvtService; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.CoolPointIvt; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.HotPointIvt; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper.HotPointIvtMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +@RequiredArgsConstructor +@Slf4j +public class HotPointIvtServiceImpl extends ServiceImpl implements HotPointIvtService { + + @Autowired + private RedisUtils redisUtils; + @Autowired + private HotPointIvtMapper hotPointIvtMapper; + @Override + public Map queryAll(Map whereJson, Pageable page) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.like(ObjectUtil.isNotEmpty(whereJson.get("point_code")), HotPointIvt::getPoint_code, whereJson.get("point_code")); + wrapper.eq(ObjectUtil.isNotEmpty(whereJson.get("point_status")), HotPointIvt::getPoint_status, whereJson.get("point_status")); + wrapper.eq(ObjectUtil.isNotEmpty(whereJson.get("product_area")), HotPointIvt::getProduct_area, whereJson.get("product_area")); + wrapper.eq(ObjectUtil.isNotEmpty(whereJson.get("is_used")), HotPointIvt::getIs_used, whereJson.get("is_used")); + wrapper.eq(ObjectUtil.isNotEmpty(whereJson.get("point_location")), HotPointIvt::getPoint_location, whereJson.get("point_location")); + wrapper.ge(ObjectUtil.isNotEmpty(whereJson.get("begin_time")), HotPointIvt::getInstorage_time, whereJson.get("begin_time")); + wrapper.le(ObjectUtil.isNotEmpty(whereJson.get("end_time")), HotPointIvt::getInstorage_time, whereJson.get("end_time")); + IPage pages = new Page<>(page.getOffset() + 1, page.getPageSize()); + IPage hotPointIvtList = this.page(pages, wrapper); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("totalElements", hotPointIvtList.getTotal()); + jsonObject.put("content", hotPointIvtList.getRecords()); + JSONArray rows = jsonObject.getJSONArray("content"); + JSONArray new_rows = new JSONArray(); + for (int i = 0; i < rows.size(); i++) { + JSONObject row = rows.getJSONObject(i); + String temperature = (String) redisUtils.hget(row.getString("point_code"), "temperature"); + String last_time = (String) redisUtils.hget(row.getString("point_code"), "last_time"); + row.put("temperature", temperature); + row.put("last_time", last_time); + new_rows.add(row); + } + jsonObject.put("content", new_rows); + return jsonObject; + } + + @Override + public List queryAll(Map whereJson) { + List list = hotPointIvtMapper.selectList(null); + if (ObjectUtil.isNotEmpty(list)){ + return list; + } + return null; + } + + @Override + public HotPointIvt findById(Long ivt_id) { + HotPointIvt hotPointIvt = hotPointIvtMapper.selectById(ivt_id); + if (ObjectUtil.isNotEmpty(hotPointIvt)){ + return hotPointIvt; + } + return null; + } + + @Override + public HotPointIvt findByCode(String code) { + HotPointIvt hotPointIvt = hotPointIvtMapper.selectOne(new LambdaQueryWrapper().eq(HotPointIvt::getPoint_code, code)); + if (ObjectUtil.isNotEmpty(hotPointIvt)){ + return hotPointIvt; + } + return null; + } + + @Override + public void create(HotPointIvt dto) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + + dto.setIvt_id(IdUtil.getSnowflake(1, 1).nextId()); + dto.setCreate_id(currentUserId); + dto.setCreate_name(nickName); + dto.setUpdate_optid(currentUserId); + dto.setUpdate_optname(nickName); + dto.setUpdate_time(now); + dto.setCreate_time(now); + hotPointIvtMapper.insert(dto); + } + + @Override + public void update(HotPointIvt dto) { + HotPointIvt entity = this.findById(dto.getIvt_id()); + if (entity == null) { + throw new BadRequestException("被删除或无权限,操作失败!"); + } + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + + String now = DateUtil.now(); + dto.setUpdate_time(now); + dto.setUpdate_optid(currentUserId); + dto.setUpdate_optname(nickName); + hotPointIvtMapper.updateById(dto); + } + + @Override + public void deleteAll(Long[] ids) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + List hotPointIvts = hotPointIvtMapper.selectBatchIds(Arrays.asList(ids)); + for (HotPointIvt hotPointIvt : hotPointIvts) { + hotPointIvt.setIs_used("0"); + hotPointIvt.setUpdate_time(now); + hotPointIvt.setUpdate_optid(currentUserId); + hotPointIvt.setUpdate_optname(nickName); + hotPointIvtMapper.updateById(hotPointIvt); + } + } + + @Override + public Map taskDtlQuery(Map whereJson, Pageable page) { + String task_code = MapUtil.getStr(whereJson, "task_code"); + String start_point_code = MapUtil.getStr(whereJson, "start_point_code"); + String next_point_code = MapUtil.getStr(whereJson, "next_point_code"); + String container_name = MapUtil.getStr(whereJson, "container_name"); + + JSONObject map = new JSONObject(); + map.put("flag", "2"); + map.put("bill_code", MapUtil.getStr(whereJson, "bill_code")); + map.put("dtl_status", MapUtil.getStr(whereJson, "dtl_status")); + map.put("begin_time", whereJson.get("begin_time")); + map.put("end_time", whereJson.get("end_time")); + map.put("container_name", container_name); + if (ObjectUtil.isNotEmpty(task_code)) { + map.put("task_code", "%" + task_code + "%"); + } + if (ObjectUtil.isNotEmpty(start_point_code)) { + map.put("start_point_code", "%" + start_point_code + "%"); + } + if (ObjectUtil.isNotEmpty(next_point_code)) { + map.put("next_point_code", "%" + next_point_code + "%"); + } + + JSONObject json = WQL.getWO("ST_IVT_HOTPOINTIVT").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "create_time DESC"); + + return json; + } + + @Override + public void uploadMes(JSONObject form) { + String flag = form.getString("flag"); + + LmsToMesService lmsToMesService = SpringContextHolder.getBean(LmsToMesService.class); + // 将入烘箱信息发送给mes + JSONObject param = new JSONObject(); + String userName = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_USERNAME").getValue(); + String passWord = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_PASSWORD").getValue(); + param.put("iContainerName", form.getString("container_name")); + param.put("iResourceName", form.getString("ext_code")); + param.put("UserName", userName); + param.put("PassWord", passWord); + + //入箱回传 + if ("1".equals(flag)) { + //判断该接口是否需要回传 + param.put("iMoveInDate", DateUtil.now()); + param.put("iPlanBakingTemperature", form.getDoubleValue("temperature")); + param.put("iPlanBakingTimer", form.getDoubleValue("oven_time")); + JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'momRollBakeInBound'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(back_jo) && "1".equals(back_jo.getString("is_back"))) { + lmsToMesService.momRollBakeInBound(param); + } + + //将该母卷的入烘箱标识改为0 + HashMap map = new HashMap<>(); + map.put("is_baking", "0"); + WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").update(map, "container_name = '" + form.getString("container_name") + "'"); + log.info("母卷:" + form.getString("container_name") + "对应的入烘箱任务完成,请求烘烤标识改为0"); + } + //出箱回传 + if ("2".equals(flag)) { + param.put("iMoveOutDate", DateUtil.now()); + param.put("iabxActualBakingTemperature", form.getDoubleValue("temperature")); + param.put("iabxActualBakingTimer", form.getDoubleValue("oven_time")); + //判断该接口是否需要回传 + JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'momRollBakeOutBound'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(back_jo) && "1".equals(back_jo.getString("is_back"))) { + lmsToMesService.momRollBakeOutBound(param); + } + } + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/impl/RawfoilWorkOrderServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/impl/RawfoilWorkOrderServiceImpl.java index 2aa49b5..2ba3445 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/impl/RawfoilWorkOrderServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/rawfoilworkorder/service/impl/RawfoilWorkOrderServiceImpl.java @@ -125,19 +125,6 @@ public class RawfoilWorkOrderServiceImpl extends ServiceImpl(Materialbase.class) -// .eq(Materialbase::getMaterial_code,dto.getProduct_name()) -// .eq(Materialbase::getIs_delete,"0").eq(Materialbase::getIs_used,"1")); -// if (ObjectUtil.isEmpty(materialbase)) { -// throw new BadRequestException("物料不存在"); -// } - WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase"); - JSONObject josnMater = materTab.query("material_code ='" + dto.getProduct_name() + "' and is_delete = '0' and is_used = '1'").uniqueResult(0); - if (ObjectUtil.isEmpty(josnMater)) { - throw new BadRequestException("物料不存在"); - } - - dto.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextId()); dto.setCreate_id(currentUserId); dto.setCreate_name(nickName); @@ -151,8 +138,6 @@ public class RawfoilWorkOrderServiceImpl extends ServiceImpl() + .eq("ext_code", whereJson)); + if (ObjectUtil.isEmpty(stIvtSbpointivt)) { + throw new BadRequestException("点位设备不存在"); + } + JSONObject jo = new JSONObject(); + jo.put("point_code", stIvtSbpointivt.getPoint_code()); + jo.put("product_area", stIvtSbpointivt.getProduct_area()); + return jo; + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CallEmpReelTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CallEmpReelTask.java index d25bda3..2e3fc22 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CallEmpReelTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CallEmpReelTask.java @@ -8,14 +8,20 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper; +import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.TaskUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.system.service.dict.dao.Dict; +import org.nl.system.service.dict.dao.mapper.SysDictMapper; import org.nl.wms.pda.mps.eum.RegionTypeEnum; import org.nl.wms.pda.mps.service.impl.BakingServiceImpl; import org.nl.wms.pdm.rawfoilworkorder.service.dao.CoolPointIvt; @@ -54,34 +60,42 @@ public class CallEmpReelTask extends AbstractAcsTask { @Autowired CoolPointIvtMapper coolPointIvtMapper; + @Autowired + SchBaseTaskMapper schBaseTaskMapper; + @Autowired + SysDictMapper sysDictMapper; @Override public List addTask() { /* * 下发给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); + List arr = schBaseTaskMapper.selectList(new LambdaQueryWrapper() + .eq(SchBaseTask::getHandle_class, THIS_CLASS) + .eq(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode()) + .eq(SchBaseTask::getIs_delete, "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); + SchBaseTask schBaseTask = arr.get(i); - String product_area = json.getString("product_area"); + String product_area = schBaseTask.getProduct_area(); String agv_system_type = "2"; AcsTaskDto dto = AcsTaskDto.builder() - .ext_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_code2")) - .start_device_code2(json.getString("point_code3")) - .next_device_code2(json.getString("point_code4")) - .vehicle_code(json.getString("vehicle_code")) + .ext_task_id(schBaseTask.getTask_id()) + .task_code(schBaseTask.getTask_code()) + .task_type(schBaseTask.getAcs_task_type()) + .start_device_code(schBaseTask.getPoint_code1()) + .next_device_code(schBaseTask.getPoint_code2()) + .start_device_code2(schBaseTask.getPoint_code3()) + .next_device_code2(schBaseTask.getPoint_code4()) + .vehicle_code(schBaseTask.getVehicle_code()) .agv_system_type(agv_system_type) - .priority(json.getString("priority")) - .remark(json.getString("remark")) + .priority(schBaseTask.getPriority()) + .remark(schBaseTask.getRemark()) .product_area(product_area) - .car_no(json.getString("car_no")) + .car_no(schBaseTask.getCar_no()) .build(); resultList.add(dto); } @@ -98,16 +112,16 @@ public class CallEmpReelTask extends AbstractAcsTask { WQLObject point_tab = WQLObject.getWQLObject("sch_base_point"); // 生箔区域点位表 String task_id = taskObj.getString("task_id"); - JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0); + SchBaseTask schBaseTask = schBaseTaskMapper.selectById(task_id); String currentUserId = SecurityUtils.getCurrentUserId(); String currentUsername = SecurityUtils.getCurrentUsername(); //更新车号和重量 RawfoilWorkOrder rawfoilWorkOrder = null; - if (ObjectUtil.isNotEmpty(jsonTask.getString("material_code"))) { + if (ObjectUtil.isNotEmpty(schBaseTask.getMaterial_code())) { rawfoilWorkOrder = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper() - .eq(RawfoilWorkOrder::getContainer_name, jsonTask.getString("material_code")) + .eq(RawfoilWorkOrder::getContainer_name, schBaseTask.getMaterial_code()) .ne(RawfoilWorkOrder::getStatus, "40") .eq(RawfoilWorkOrder::getIs_delete, "0")); } @@ -126,9 +140,9 @@ public class CallEmpReelTask extends AbstractAcsTask { } if (StrUtil.equals(status, "0")) { // 更新删除字段 - jsonTask.put("is_delete", "1"); - jsonTask.put("update_time", DateUtil.now()); - taskTab.update(jsonTask); + schBaseTask.setIs_delete("1"); + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTaskMapper.updateById(schBaseTask); // 更新生箔工单状态为初始化、清除称重信息 if (rawfoilWorkOrder != null) { @@ -141,18 +155,18 @@ public class CallEmpReelTask extends AbstractAcsTask { if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 - jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode()); - jsonTask.put("update_time", DateUtil.now()); - taskTab.update(jsonTask); + schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTaskMapper.updateById(schBaseTask); } if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { - String point_code1 = jsonTask.getString("point_code1"); - String point_code2 = jsonTask.getString("point_code2"); - String point_code3 = jsonTask.getString("point_code3"); - String point_code4 = jsonTask.getString("point_code4"); + String point_code1 = schBaseTask.getPoint_code1(); + String point_code2 = schBaseTask.getPoint_code2(); + String point_code3 = schBaseTask.getPoint_code3(); + String point_code4 = schBaseTask.getPoint_code4(); // 取空取满放空放满 - if ("010101".equals(jsonTask.getString("task_type"))) { + if ("010101".equals(schBaseTask.getTask_type())) { if (rawfoilWorkOrder == null) { throw new BadRequestException("工单不存在"); } @@ -162,7 +176,7 @@ public class CallEmpReelTask extends AbstractAcsTask { updateIvtIvt(point_code4, "02", "01", rawfoilWorkOrder); } //取满放满 - if ("010102".equals(jsonTask.getString("task_type"))) { + if ("010102".equals(schBaseTask.getTask_type())) { if (rawfoilWorkOrder == null) { throw new BadRequestException("工单不存在"); } @@ -172,20 +186,20 @@ public class CallEmpReelTask extends AbstractAcsTask { updateIvtIvt(point_code2, "02", null, rawfoilWorkOrder); } //起点是冷却区 取空放空 - if ("010103".equals(jsonTask.getString("task_type"))) { + if ("010103".equals(schBaseTask.getTask_type())) { //更新生箔机点位库存 updateSbIvt(point_code2, null, "02"); //更新冷却区点位库存 updateIvtIvt(point_code1, null, "01", rawfoilWorkOrder); } //起点是生箔机 取空放空 - if ("010104".equals(jsonTask.getString("task_type"))) { + if ("010104".equals(schBaseTask.getTask_type())) { //更新生箔机点位库存 updateSbIvt(point_code1, null, "01"); //更新冷却区点位库存 updateIvtIvt(point_code2, null, "02", rawfoilWorkOrder); } - if ("010101".equals(jsonTask.getString("task_type")) || "010102".equals(jsonTask.getString("task_type"))) { + if ("010101".equals(schBaseTask.getTask_type()) || "010102".equals(schBaseTask.getTask_type())) { //更新母卷工单状态 HashMap map = new HashMap<>(); rawfoilWorkOrder.setStatus("40"); @@ -199,11 +213,11 @@ public class CallEmpReelTask extends AbstractAcsTask { rawfoilWorkOrderMapper.updateById(rawfoilWorkOrder); } // 更改任务状态为完成 - jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode()); - jsonTask.put("update_optid", SecurityUtils.getCurrentUserId()); - jsonTask.put("update_optname", SecurityUtils.getCurrentUsername()); - jsonTask.put("update_time", DateUtil.now()); - taskTab.update(jsonTask); + schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); + schBaseTask.setUpdate_optid(currentUserId); + schBaseTask.setUpdate_optname(currentUsername); + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTaskMapper.updateById(schBaseTask); } } @@ -288,53 +302,55 @@ public class CallEmpReelTask extends AbstractAcsTask { throw new BadRequestException("点位:" + point_code4 + "存在未完成的任务!"); } - JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); - json.put("material_code", form.getString("material_code")); - json.put("point_code1", form.getString("point_code1")); - json.put("point_code2", form.getString("point_code2")); - json.put("point_code3", form.getString("point_code3")); - json.put("point_code4", form.getString("point_code4")); - json.put("task_type", form.getString("task_type")); - json.put("product_area", form.getString("product_area")); - json.put("handle_class", THIS_CLASS); - json.put("sort_seq", "1"); - json.put("request_param", JSONObject.toJSONString(form)); - json.put("car_no", form.getString("car_no")); - json.put("create_id", currentUserId); - json.put("create_name", currentUsername); - json.put("create_time", DateUtil.now()); + SchBaseTask task = new SchBaseTask(); + task.setTask_id(IdUtil.getSnowflake(1, 1).nextId() + ""); + task.setTask_code(IdUtil.getSnowflake(1, 1).nextId() + ""); + task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + task.setMaterial_code(form.getString("material_code")); + task.setPoint_code1(point_code1); + task.setPoint_code2(point_code2); + task.setPoint_code3(point_code3); + task.setPoint_code4(point_code4); + task.setTask_type(form.getString("task_type")); + task.setProduct_area(form.getString("product_area")); + task.setHandle_class(THIS_CLASS); + task.setSort_seq(BigDecimal.valueOf(1)); + task.setRequest_param(JSONObject.toJSONString(form)); + task.setCar_no(form.getString("car_no")); + task.setCreate_id(currentUserId); + task.setCreate_name(currentUsername); + task.setCreate_time(DateUtil.now()); //根据类型获取对应的任务优先级 - JSONObject priority_jo = WQL.getWO("PDA_COOLIN").addParam("flag", "3").addParam("task_type", json.getString("task_type")).process().uniqueResult(0); + Dict priority_jo = sysDictMapper.selectOne(new QueryWrapper().eq("code", "task_priority").eq("label", task.getTask_type())); if (ObjectUtil.isEmpty(priority_jo)) { - json.put("priority", "1"); + task.setPriority("1"); } else { - json.put("priority", priority_jo.getString("value")); + task.setPriority(priority_jo.getValue()); } if ("010101".equals(form.getString("task_type"))) { - json.put("acs_task_type", "1"); + task.setAcs_task_type("1"); } else { - json.put("acs_task_type", "3"); + task.setAcs_task_type("3"); } - tab.insert(json); + schBaseTaskMapper.insert(task); - this.immediateNotifyAcs(json.getString("task_id")); - return json.getString("task_id"); + this.immediateNotifyAcs(task.getTask_id()); + return task.getTask_id(); } @Override @Transactional(rollbackFor = Exception.class) public void forceFinish(String task_id) { - JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); + SchBaseTask schBaseTask = schBaseTaskMapper.selectById(task_id); + JSONObject taskObj = (JSONObject) JSONObject.toJSON(schBaseTask); this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode()); } @Override public void cancel(String task_id) { - JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); - this.updateTaskStatus(taskObj, "0"); + SchBaseTask schBaseTask = schBaseTaskMapper.selectById(task_id); + JSONObject taskObj = (JSONObject) JSONObject.toJSON(schBaseTask); + this.updateTaskStatus(taskObj, IOSEnum.ACS_RESULT.code("取消")); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CoolCutTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CoolCutTask.java index 105f62f..a20907c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CoolCutTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CoolCutTask.java @@ -6,19 +6,39 @@ 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.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; +import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.mapper.PdmBiSlittingproductionplanMapper; +import org.nl.b_lms.sch.point.dao.StIvtCoolregionio; +import org.nl.b_lms.sch.point.dao.StIvtCutpointivt; +import org.nl.b_lms.sch.point.dao.mapper.SchBasePointMapper; +import org.nl.b_lms.sch.point.dao.mapper.StIvtCoolregionioMapper; +import org.nl.b_lms.sch.point.dao.mapper.StIvtCutpointivtMapper; +import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper; +import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.system.service.dict.dao.Dict; +import org.nl.system.service.dict.dao.mapper.SysDictMapper; import org.nl.wms.ext.mes.service.impl.LmsToMesServiceImpl; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.CoolPointIvt; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.RawfoilWorkOrder; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper.CoolPointIvtMapper; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper.RawfoilWorkOrderMapper; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -34,6 +54,20 @@ import java.util.List; public class CoolCutTask extends AbstractAcsTask { private final String THIS_CLASS = CoolCutTask.class.getName(); + @Autowired + SysDictMapper sysDictMapper; + @Autowired + SchBaseTaskMapper schBaseTaskMapper; + @Autowired + private CoolPointIvtMapper coolPointIvtMapper; + @Autowired + private StIvtCoolregionioMapper stIvtCoolregionioMapper; + @Autowired + private StIvtCutpointivtMapper stIvtCutpointivtMapper; + @Autowired + private PdmBiSlittingproductionplanMapper pdmBiSlittingproductionplanMapper; + @Autowired + private RawfoilWorkOrderMapper rawfoilWorkOrderMapper; @Override @@ -41,26 +75,29 @@ public class CoolCutTask 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); + List arr = schBaseTaskMapper.selectList(new LambdaQueryWrapper() + .eq(SchBaseTask::getHandle_class, THIS_CLASS) + .eq(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode()) + .eq(SchBaseTask::getIs_delete, "0")); ArrayList resultList = new ArrayList<>(); for (int i = 0; i < arr.size(); i++) { - JSONObject json = arr.getJSONObject(i); + SchBaseTask schBaseTask = arr.get(i); - String product_area = json.getString("product_area"); + String product_area = schBaseTask.getProduct_area(); String agv_system_type = "2"; AcsTaskDto dto = AcsTaskDto.builder() - .ext_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_code2")) - .start_device_code2(json.getString("point_code3")) - .next_device_code2(json.getString("point_code4")) - .vehicle_code(json.getString("vehicle_code")) - .priority(json.getString("priority")) + .ext_task_id(schBaseTask.getTask_id()) + .task_code(schBaseTask.getTask_code()) + .task_type(schBaseTask.getAcs_task_type()) + .start_device_code(schBaseTask.getPoint_code1()) + .next_device_code(schBaseTask.getPoint_code2()) + .start_device_code2(schBaseTask.getPoint_code3()) + .next_device_code2(schBaseTask.getPoint_code4()) + .vehicle_code(schBaseTask.getVehicle_code()) + .priority(schBaseTask.getPriority()) .agv_system_type(agv_system_type) - .remark(json.getString("remark")) + .remark(schBaseTask.getRemark()) .product_area(product_area) .build(); resultList.add(dto); @@ -75,96 +112,86 @@ public class CoolCutTask extends AbstractAcsTask { WQLObject ivtTab = WQLObject.getWQLObject("ST_IVT_CoolRegionIO"); String task_id = taskObj.getString("task_id"); - JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0); + SchBaseTask schBaseTask = schBaseTaskMapper.selectById(task_id); - String currentUserId = SecurityUtils.getCurrentUserId(); - String currentUsername = SecurityUtils.getCurrentUsername(); if (StrUtil.equals(status, "0")) { // 更新删除字段 - jsonTask.put("is_delete", "1"); - jsonTask.put("update_time", DateUtil.now()); - taskTab.update(jsonTask); + schBaseTask.setIs_delete("1"); + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTaskMapper.updateById(schBaseTask); - ivtTab.delete("task_id = '" + task_id + "'"); + // 删除冷却区出入表 + stIvtCoolregionioMapper.delete(new LambdaQueryWrapper().eq(StIvtCoolregionio::getTask_id, task_id)); } if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 - jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode()); - jsonTask.put("update_time", DateUtil.now()); - taskTab.update(jsonTask); + schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTaskMapper.updateById(schBaseTask); } if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { - // 更改任务状态为完成 - jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode()); - jsonTask.put("update_optid", SecurityUtils.getCurrentUserId()); - jsonTask.put("update_optname", SecurityUtils.getCurrentUsername()); - jsonTask.put("update_time", DateUtil.now()); - taskTab.update(jsonTask); + String currentUserId = SecurityUtils.getCurrentUserId(); + String currentUsername = SecurityUtils.getCurrentUsername(); - String point_code1 = jsonTask.getString("point_code1"); - String point_code2 = jsonTask.getString("point_code2"); - String point_code3 = jsonTask.getString("point_code3"); - String point_code4 = jsonTask.getString("point_code4"); - String product_area = jsonTask.getString("product_area"); + // 更改任务状态为完成 + schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); + schBaseTask.setUpdate_optid(currentUserId); + schBaseTask.setUpdate_optname(currentUsername); + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTaskMapper.updateById(schBaseTask); + + String point_code1 = schBaseTask.getPoint_code1(); + String point_code2 = schBaseTask.getPoint_code2(); + String point_code3 = schBaseTask.getPoint_code3(); + String point_code4 = schBaseTask.getPoint_code4(); //下空轴上满卷 - if ("010301".equals(jsonTask.getString("task_type"))) { + if ("010301".equals(schBaseTask.getTask_type())) { // 更新主表状态 - JSONObject coolMst = ivtTab.query("task_id = '" + task_id + "'").uniqueResult(0); - coolMst.put("bill_status", "50"); - ivtTab.update(coolMst); + StIvtCoolregionio coolMst = stIvtCoolregionioMapper.selectOne(new LambdaQueryWrapper().eq(StIvtCoolregionio::getTask_id, task_id)); + coolMst.setBill_status("50"); + stIvtCoolregionioMapper.updateById(coolMst); +// JSONObject coolMst = ivtTab.query("task_id = '" + task_id + "'").uniqueResult(0); +// coolMst.put("bill_status", "50"); +// ivtTab.update(coolMst); //更新冷却区母卷库存 - JSONObject jsonCoolIvt = WQLObject.getWQLObject("st_ivt_coolpointivt").query("full_point_code = '" + point_code1 + "'").uniqueResult(0); - String container_name = jsonCoolIvt.getString("container_name"); // 母卷号 + CoolPointIvt jsonCoolIvt = coolPointIvtMapper.selectOne(new LambdaQueryWrapper().eq(CoolPointIvt::getFull_point_code, point_code1)); +// JSONObject jsonCoolIvt = WQLObject.getWQLObject("st_ivt_coolpointivt").query("full_point_code = '" + point_code1 + "'").uniqueResult(0); + String container_name = jsonCoolIvt.getContainer_name(); // 母卷号 - jsonCoolIvt.put("full_point_status", "01"); - jsonCoolIvt.put("container_name", ""); - jsonCoolIvt.put("workorder_id", ""); - jsonCoolIvt.put("ivt_qty", "0"); - jsonCoolIvt.put("cool_ivt_status", "01"); - jsonCoolIvt.put("instorage_time", ""); - jsonCoolIvt.put("update_optid", currentUserId); - jsonCoolIvt.put("update_optname", currentUsername); - jsonCoolIvt.put("update_time", DateUtil.now()); - WQLObject.getWQLObject("st_ivt_coolpointivt").update(jsonCoolIvt); + jsonCoolIvt.setFull_point_status("01"); + jsonCoolIvt.setContainer_name(""); + jsonCoolIvt.setEmpty_point_status("02"); + jsonCoolIvt.setEmpty_vehicle_code(schBaseTask.getVehicle_code2()); + jsonCoolIvt.setWorkorder_id(""); + jsonCoolIvt.setIvt_qty(BigDecimal.valueOf(0)); + jsonCoolIvt.setCool_ivt_status("01"); + jsonCoolIvt.setInstorage_time(""); + jsonCoolIvt.setUpdate_optid(currentUserId); + jsonCoolIvt.setUpdate_optname(currentUsername); + jsonCoolIvt.setUpdate_time(DateUtil.now()); + coolPointIvtMapper.updateById(jsonCoolIvt); //更新分切区母卷库存 - JSONObject cut_jo = WQLObject.getWQLObject("ST_IVT_CutPointIvt").query("full_point_code = '" + point_code2 + "'").uniqueResult(0); - cut_jo.put("full_point_status", "02"); - cut_jo.put("container_name", container_name); - cut_jo.put("update_optid", currentUserId); - cut_jo.put("update_optname", currentUsername); - cut_jo.put("update_time", DateUtil.now()); - WQLObject.getWQLObject("ST_IVT_CutPointIvt").update(cut_jo); + StIvtCutpointivt cut_jo = stIvtCutpointivtMapper.selectOne(new LambdaQueryWrapper().eq(StIvtCutpointivt::getFull_point_code, point_code2)); + cut_jo.setFull_point_status("02"); + cut_jo.setContainer_name(container_name); + cut_jo.setEmpty_point_status("01"); + cut_jo.setEmpty_vehicle_code(""); + cut_jo.setUpdate_optid(Long.getLong(currentUserId)); + cut_jo.setUpdate_optname(currentUsername); + cut_jo.setUpdate_time(DateUtil.now()); + stIvtCutpointivtMapper.updateById(cut_jo); - //更新分切区空轴库存 - JSONObject cut_jo2 = WQLObject.getWQLObject("ST_IVT_CutPointIvt").query("empty_point_code = '" + point_code3 + "'").uniqueResult(0); - cut_jo2.put("empty_point_status", "01"); - cut_jo2.put("empty_vehicle_code", ""); - cut_jo2.put("update_optid", currentUserId); - cut_jo2.put("update_optname", currentUsername); - cut_jo2.put("update_time", DateUtil.now()); - WQLObject.getWQLObject("ST_IVT_CutPointIvt").update(cut_jo2); - - //更新冷却区空轴库存 - JSONObject jsonCoolIvt2 = WQLObject.getWQLObject("st_ivt_coolpointivt").query("empty_point_code = '" + point_code4 + "'").uniqueResult(0); - jsonCoolIvt2.put("empty_point_status", "02"); - jsonCoolIvt2.put("empty_vehicle_code", jsonTask.getString("vehicle_code2")); - jsonCoolIvt2.put("cool_ivt_status", "01"); - jsonCoolIvt2.put("instorage_time", ""); - jsonCoolIvt2.put("update_optid", currentUserId); - jsonCoolIvt2.put("update_optname", currentUsername); - jsonCoolIvt2.put("update_time", DateUtil.now()); - WQLObject.getWQLObject("st_ivt_coolpointivt").update(jsonCoolIvt2); //更新该母卷对应分切计划的状态 - HashMap map = new HashMap<>(); - map.put("is_parent_ok", "1"); - WQLObject.getWQLObject("PDM_BI_SlittingProductionPlan").update(map, "parent_container_name = '" + container_name + "'"); + PdmBiSlittingproductionplan pdmBiSlittingproductionplan = pdmBiSlittingproductionplanMapper.selectOne(new LambdaQueryWrapper().eq(PdmBiSlittingproductionplan::getParent_container_name, container_name)); + pdmBiSlittingproductionplan.setIs_paper_ok("1"); + pdmBiSlittingproductionplanMapper.updateById(pdmBiSlittingproductionplan); //回传MES // JSONObject mom_jo = new JSONObject(); @@ -179,111 +206,114 @@ public class CoolCutTask extends AbstractAcsTask { } //单送满卷 - if ("010302".equals(jsonTask.getString("task_type"))) { + if ("010302".equals(schBaseTask.getTask_status())) { // 更新主表状态 - JSONObject coolMst = ivtTab.query("task_id = '" + task_id + "'").uniqueResult(0); - coolMst.put("bill_status", "50"); - ivtTab.update(coolMst); + StIvtCoolregionio coolMst = stIvtCoolregionioMapper.selectOne(new LambdaQueryWrapper().eq(StIvtCoolregionio::getTask_id, task_id)); +// JSONObject coolMst = ivtTab.query("task_id = '" + task_id + "'").uniqueResult(0); + coolMst.setBill_status("50"); + stIvtCoolregionioMapper.updateById(coolMst); //更新冷却区母卷库存 - JSONObject jsonCoolIvt = WQLObject.getWQLObject("st_ivt_coolpointivt").query("full_point_code = '" + point_code1 + "'").uniqueResult(0); - String container_name = jsonCoolIvt.getString("container_name"); // 母卷号 + CoolPointIvt jsonCoolIvt = coolPointIvtMapper.selectOne(new LambdaQueryWrapper().eq(CoolPointIvt::getFull_point_code, point_code1)); +// JSONObject jsonCoolIvt = WQLObject.getWQLObject("st_ivt_coolpointivt").query("full_point_code = '" + point_code1 + "'").uniqueResult(0); + String container_name = jsonCoolIvt.getContainer_name(); // 母卷号 - jsonCoolIvt.put("full_point_status", "01"); - jsonCoolIvt.put("container_name", ""); - jsonCoolIvt.put("workorder_id", ""); - jsonCoolIvt.put("ivt_qty", "0"); - jsonCoolIvt.put("cool_ivt_status", "01"); - jsonCoolIvt.put("instorage_time", ""); - jsonCoolIvt.put("update_optid", currentUserId); - jsonCoolIvt.put("update_optname", currentUsername); - jsonCoolIvt.put("update_time", DateUtil.now()); - WQLObject.getWQLObject("st_ivt_coolpointivt").update(jsonCoolIvt); + jsonCoolIvt.setFull_point_status("01"); + jsonCoolIvt.setContainer_name(""); + jsonCoolIvt.setWorkorder_id(""); + jsonCoolIvt.setIvt_qty(BigDecimal.valueOf(0)); + jsonCoolIvt.setCool_ivt_status("01"); + jsonCoolIvt.setInstorage_time(""); + jsonCoolIvt.setUpdate_optid(currentUserId); + jsonCoolIvt.setUpdate_optname(currentUsername); + jsonCoolIvt.setUpdate_time(DateUtil.now()); + coolPointIvtMapper.updateById(jsonCoolIvt); //更新分切区母卷库存 - JSONObject cut_jo = WQLObject.getWQLObject("ST_IVT_CutPointIvt").query("full_point_code = '" + point_code2 + "'").uniqueResult(0); - cut_jo.put("full_point_status", "02"); - cut_jo.put("container_name", container_name); - cut_jo.put("update_optid", currentUserId); - cut_jo.put("update_optname", currentUsername); - cut_jo.put("update_time", DateUtil.now()); - WQLObject.getWQLObject("ST_IVT_CutPointIvt").update(cut_jo); + StIvtCutpointivt cut_jo = stIvtCutpointivtMapper.selectOne(new LambdaQueryWrapper().eq(StIvtCutpointivt::getFull_point_code, point_code2)); + cut_jo.setFull_point_status("02"); + cut_jo.setContainer_name(container_name); + cut_jo.setUpdate_optid(Long.getLong(currentUserId)); + cut_jo.setUpdate_optname(currentUsername); + cut_jo.setUpdate_time(DateUtil.now()); + stIvtCutpointivtMapper.updateById(cut_jo); //更新该母卷对应分切计划的状态 - HashMap map = new HashMap<>(); - map.put("is_parent_ok", "1"); - WQLObject.getWQLObject("PDM_BI_SlittingProductionPlan").update(map, "parent_container_name = '" + container_name + "'"); + PdmBiSlittingproductionplan pdmBiSlittingproductionplan = pdmBiSlittingproductionplanMapper.selectOne(new LambdaQueryWrapper().eq(PdmBiSlittingproductionplan::getParent_container_name, container_name)); + pdmBiSlittingproductionplan.setIs_paper_ok("1"); + pdmBiSlittingproductionplanMapper.updateById(pdmBiSlittingproductionplan); //回传MES - JSONObject mom_jo = new JSONObject(); - mom_jo.put("contain_name", container_name); - mom_jo.put("warehouse", "1"); - //判断该接口是否需要回传 - JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'cutPlanMomRollDeliveryComplete'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(back_jo) && "1".equals(back_jo.getString("is_back"))) { - new LmsToMesServiceImpl().cutPlanMomRollDeliveryComplete(mom_jo); - } +// JSONObject mom_jo = new JSONObject(); +// mom_jo.put("contain_name", container_name); +// mom_jo.put("warehouse", "1"); +// //判断该接口是否需要回传 +// JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'cutPlanMomRollDeliveryComplete'").uniqueResult(0); +// if (ObjectUtil.isNotEmpty(back_jo) && "1".equals(back_jo.getString("is_back"))) { +// new LmsToMesServiceImpl().cutPlanMomRollDeliveryComplete(mom_jo); +// } } //空轴送回 - if ("010303".equals(jsonTask.getString("task_type"))) { + if ("010303".equals(schBaseTask.getTask_type())) { //更新分切区空轴库存 - JSONObject cut_jo2 = WQLObject.getWQLObject("ST_IVT_CutPointIvt").query("empty_point_code = '" + point_code1 + "'").uniqueResult(0); - cut_jo2.put("empty_point_status", "01"); - cut_jo2.put("empty_vehicle_code", ""); - cut_jo2.put("update_optid", currentUserId); - cut_jo2.put("update_optname", currentUsername); - cut_jo2.put("update_time", DateUtil.now()); - WQLObject.getWQLObject("ST_IVT_CutPointIvt").update(cut_jo2); + StIvtCutpointivt cut_jo2 = stIvtCutpointivtMapper.selectOne(new LambdaQueryWrapper().eq(StIvtCutpointivt::getEmpty_point_code, point_code1)); + cut_jo2.setEmpty_point_status("01"); + cut_jo2.setEmpty_vehicle_code(""); + cut_jo2.setUpdate_optid(Long.getLong(currentUserId)); + cut_jo2.setUpdate_optname(currentUsername); + cut_jo2.setUpdate_time(DateUtil.now()); + stIvtCutpointivtMapper.updateById(cut_jo2); //更新冷却区空轴库存 - JSONObject jsonCoolIvt2 = WQLObject.getWQLObject("st_ivt_coolpointivt").query("empty_point_code = '" + point_code2 + "'").uniqueResult(0); - jsonCoolIvt2.put("empty_point_status", "02"); - jsonCoolIvt2.put("empty_vehicle_code", jsonTask.getString("vehicle_code")); - jsonCoolIvt2.put("cool_ivt_status", "01"); - jsonCoolIvt2.put("instorage_time", ""); - jsonCoolIvt2.put("update_optid", currentUserId); - jsonCoolIvt2.put("update_optname", currentUsername); - jsonCoolIvt2.put("update_time", DateUtil.now()); - WQLObject.getWQLObject("st_ivt_coolpointivt").update(jsonCoolIvt2); + CoolPointIvt jsonCoolIvt2 = coolPointIvtMapper.selectOne(new LambdaQueryWrapper().eq(CoolPointIvt::getEmpty_point_code, point_code2)); + jsonCoolIvt2.setEmpty_point_status("02"); + jsonCoolIvt2.setEmpty_vehicle_code(schBaseTask.getVehicle_code()); + jsonCoolIvt2.setCool_ivt_status("01"); + jsonCoolIvt2.setInstorage_time(""); + jsonCoolIvt2.setUpdate_optid(currentUserId); + jsonCoolIvt2.setUpdate_optname(currentUsername); + jsonCoolIvt2.setUpdate_time(DateUtil.now()); + coolPointIvtMapper.updateById(jsonCoolIvt2); } //满轴送回 - if ("010304".equals(jsonTask.getString("task_type"))) { + if ("010304".equals(schBaseTask.getTask_type())) { //更新分切区空轴库存 String container_name = ""; //若起点是ST_IVT_CutPointIvt表 - JSONObject cut_jo2 = WQLObject.getWQLObject("ST_IVT_CutPointIvt").query("full_point_code = '" + point_code1 + "'").uniqueResult(0); - container_name = cut_jo2.getString("container_name"); - cut_jo2.put("full_point_status", "01"); - cut_jo2.put("full_vehicle_code", ""); - cut_jo2.put("container_name", ""); - cut_jo2.put("update_optid", currentUserId); - cut_jo2.put("update_optname", currentUsername); - cut_jo2.put("update_time", DateUtil.now()); - WQLObject.getWQLObject("ST_IVT_CutPointIvt").update(cut_jo2); + StIvtCutpointivt cut_jo2 = stIvtCutpointivtMapper.selectOne(new LambdaQueryWrapper().eq(StIvtCutpointivt::getFull_point_code, point_code1)); +// JSONObject cut_jo2 = WQLObject.getWQLObject("ST_IVT_CutPointIvt").query("full_point_code = '" + point_code1 + "'").uniqueResult(0); + container_name = cut_jo2.getContainer_name(); + cut_jo2.setEmpty_point_status("01"); + cut_jo2.setEmpty_vehicle_code(""); + cut_jo2.setContainer_name(""); + cut_jo2.setUpdate_optid(Long.getLong(currentUserId)); + cut_jo2.setUpdate_optname(currentUsername); + cut_jo2.setUpdate_time(DateUtil.now()); + stIvtCutpointivtMapper.updateById(cut_jo2); //更新冷却区空轴库存 - JSONObject jsonCoolIvt2 = WQLObject.getWQLObject("st_ivt_coolpointivt").query("full_point_code = '" + point_code2 + "'").uniqueResult(0); - jsonCoolIvt2.put("full_point_status", "02"); - jsonCoolIvt2.put("container_name", container_name); - jsonCoolIvt2.put("cool_ivt_status", "02"); - jsonCoolIvt2.put("instorage_time", ""); - jsonCoolIvt2.put("update_optid", currentUserId); - jsonCoolIvt2.put("update_optname", currentUsername); - jsonCoolIvt2.put("update_time", DateUtil.now()); - WQLObject.getWQLObject("st_ivt_coolpointivt").update(jsonCoolIvt2); + CoolPointIvt jsonCoolIvt = coolPointIvtMapper.selectOne(new LambdaQueryWrapper().eq(CoolPointIvt::getFull_point_code, point_code2)); + jsonCoolIvt.setFull_point_status("02"); + jsonCoolIvt.setContainer_name(container_name); + jsonCoolIvt.setCool_ivt_status("02"); + jsonCoolIvt.setInstorage_time(""); + jsonCoolIvt.setUpdate_optid(currentUserId); + jsonCoolIvt.setUpdate_optname(currentUsername); + jsonCoolIvt.setUpdate_time(DateUtil.now()); + coolPointIvtMapper.updateById(jsonCoolIvt); //更新母卷状态 - HashMap map = new HashMap<>(); - map.put("origin", "3"); - map.put("roll_status", "3"); - map.put("update_optid", currentUserId + ""); - map.put("update_optname", currentUsername); - map.put("update_time", DateUtil.now()); - WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").update(map, "container_name = '" + jsonTask.getString("material_code") + "'"); + RawfoilWorkOrder rawfoilWorkOrder = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper().eq(RawfoilWorkOrder::getContainer_name, schBaseTask.getMaterial_code())); + rawfoilWorkOrder.setOrigin("3"); + rawfoilWorkOrder.setRoll_status("3"); + rawfoilWorkOrder.setUpdate_optid(currentUserId); + rawfoilWorkOrder.setUpdate_optname(currentUsername); + rawfoilWorkOrder.setUpdate_time(DateUtil.now()); + rawfoilWorkOrderMapper.updateById(rawfoilWorkOrder); } } @@ -303,6 +333,7 @@ public class CoolCutTask extends AbstractAcsTask { @Transactional(rollbackFor = Exception.class) public String createTask(JSONObject form) { WQLObject tab = WQLObject.getWQLObject("SCH_BASE_Task"); + CutConveyorTask cutConveyorTask = new CutConveyorTask(); String currentUserId = SecurityUtils.getCurrentUserId(); String currentUsername = SecurityUtils.getCurrentUsername(); @@ -310,91 +341,87 @@ public class CoolCutTask extends AbstractAcsTask { String point_code2 = form.getString("point_code2"); String point_code3 = form.getString("point_code3"); String point_code4 = form.getString("point_code4"); - JSONObject task1 = isSingleTask(point_code1); - if (ObjectUtil.isNotEmpty(task1)) { - throw new BadRequestException("点位:" + point_code1 + "存在未完成的任务:" + task1.getString("task_code")); + if (cutConveyorTask.isSingleTask(point_code1)) { + throw new BadRequestException("点位:" + point_code1 + "存在未完成的任务!"); } - JSONObject task2 = isSingleTask(point_code2); - if (ObjectUtil.isNotEmpty(task2)) { - throw new BadRequestException("点位:" + point_code2 + "存在未完成的任务:" + task2.getString("task_code")); + if (cutConveyorTask.isSingleTask(point_code2)) { + throw new BadRequestException("点位:" + point_code2 + "存在未完成的任务!"); } - JSONObject task3 = isSingleTask(point_code3); - if (ObjectUtil.isNotEmpty(task3)) { - throw new BadRequestException("点位:" + point_code3 + "存在未完成的任务:" + task3.getString("task_code")); + if (cutConveyorTask.isSingleTask(point_code3)) { + throw new BadRequestException("点位:" + point_code3 + "存在未完成的任务!"); } - JSONObject task4 = isSingleTask(point_code4); - if (ObjectUtil.isNotEmpty(task4)) { - throw new BadRequestException("点位:" + point_code4 + "存在未完成的任务:" + task4.getString("task_code")); + if (cutConveyorTask.isSingleTask(point_code4)) { + throw new BadRequestException("点位:" + point_code4 + "存在未完成的任务!"); } - JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_type", form.getString("task_type")); - json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); - json.put("point_code1", point_code1); - json.put("point_code2", point_code2); - json.put("point_code3", point_code3); - json.put("point_code4", point_code4); - json.put("vehicle_code", form.getString("vehicle_code")); - json.put("vehicle_code2", form.getString("vehicle_code2")); - json.put("product_area", form.getString("product_area")); - json.put("material_code", form.getString("material_code")); - json.put("handle_class", THIS_CLASS); - json.put("create_id", currentUserId); - json.put("create_name", currentUsername); - json.put("create_time", DateUtil.now()); + SchBaseTask task = new SchBaseTask(); + task.setTask_id(IdUtil.getSnowflake(1, 1).nextId() + ""); + task.setTask_code(IdUtil.getSnowflake(1, 1).nextId() + ""); + task.setTask_type(form.getString("task_type")); + task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + task.setPoint_code1(point_code1); + task.setPoint_code2(point_code2); + task.setPoint_code3(point_code3); + task.setPoint_code4(point_code4); + task.setVehicle_code(form.getString("vehicle_code")); + task.setVehicle_code2(form.getString("vehicle_code2")); + task.setProduct_area(form.getString("product_area")); + task.setMaterial_code(form.getString("material_code")); + task.setHandle_class(THIS_CLASS); + task.setCreate_id(currentUserId); + task.setCreate_name(currentUsername); + task.setCreate_time(DateUtil.now()); //根据类型获取对应的任务优先级 - JSONObject priority_jo = WQL.getWO("PDA_COOLIN").addParam("flag", "3").addParam("task_type", json.getString("task_type")).process().uniqueResult(0); + Dict priority_jo = sysDictMapper.selectOne(new QueryWrapper().eq("code", "task_priority").eq("label", task.getTask_type())); if (ObjectUtil.isEmpty(priority_jo)) { - json.put("priority", "1"); + task.setPriority("1"); } else { - json.put("priority", priority_jo.getString("value")); + task.setPriority(priority_jo.getValue()); } if ("010301".equals(form.getString("task_type"))) { - json.put("acs_task_type", "2"); + task.setAcs_task_type("2"); } else { - json.put("acs_task_type", "3"); + task.setAcs_task_type("3"); } - - tab.insert(json); - + schBaseTaskMapper.insert(task); this.immediateNotifyAcs(null); - return json.getString("task_id"); + return task.getTask_id(); } @Override @Transactional(rollbackFor = Exception.class) public void forceFinish(String task_id) { - JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); + SchBaseTask schBaseTask = schBaseTaskMapper.selectById(task_id); + JSONObject taskObj = (JSONObject) JSONObject.toJSON(schBaseTask); this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode()); } @Override public void cancel(String task_id) { - JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); - this.updateTaskStatus(taskObj, "0"); + SchBaseTask schBaseTask = schBaseTaskMapper.selectById(task_id); + JSONObject taskObj = (JSONObject) JSONObject.toJSON(schBaseTask); + this.updateTaskStatus(taskObj, IOSEnum.ACS_RESULT.code("取消")); } //判断该点位是否存在未完成的任务 - public JSONObject isSingleTask(String point_code) { - JSONObject task1 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code1 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); - JSONObject task2 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code2 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); - JSONObject task3 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code3 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); - JSONObject task4 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code4 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); - - if (ObjectUtil.isNotEmpty(task1)) { - return task1; - } else if (ObjectUtil.isNotEmpty(task2)) { - return task2; - } else if (ObjectUtil.isNotEmpty(task3)) { - return task3; - } else if (ObjectUtil.isNotEmpty(task4)) { - return task4; - } - - return null; - } +// public JSONObject isSingleTask(String point_code) { +// SchBaseTask task1 = schBaseTaskMapper.selectOne(new LambdaQueryWrapper().eq(SchBaseTask::getPoint_code1, point_code).lt(SchBaseTask::getTask_status, "07").eq(SchBaseTask::getIs_delete, "0")); +// SchBaseTask task2 = schBaseTaskMapper.selectOne(new LambdaQueryWrapper().eq(SchBaseTask::getPoint_code2, point_code).lt(SchBaseTask::getTask_status, "07").eq(SchBaseTask::getIs_delete, "0")); +// SchBaseTask task3 = schBaseTaskMapper.selectOne(new LambdaQueryWrapper().eq(SchBaseTask::getPoint_code3, point_code).lt(SchBaseTask::getTask_status, "07").eq(SchBaseTask::getIs_delete, "0")); +// SchBaseTask task4 = schBaseTaskMapper.selectOne(new LambdaQueryWrapper().eq(SchBaseTask::getPoint_code4, point_code).lt(SchBaseTask::getTask_status, "07").eq(SchBaseTask::getIs_delete, "0")); +// +// if (ObjectUtil.isNotEmpty(task1)) { +// return task1; +// } else if (ObjectUtil.isNotEmpty(task2)) { +// return task2; +// } else if (ObjectUtil.isNotEmpty(task3)) { +// return task3; +// } else if (ObjectUtil.isNotEmpty(task4)) { +// return task4; +// } +// +// return null; +// } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutConveyorTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutConveyorTask.java index 61c6fe2..4fea379 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutConveyorTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutConveyorTask.java @@ -6,8 +6,11 @@ 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.LambdaQueryWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.WQL; @@ -18,6 +21,7 @@ import org.nl.wms.ext.mes.service.LmsToMesService; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -36,6 +40,8 @@ import java.util.List; public class CutConveyorTask extends AbstractAcsTask { private final String THIS_CLASS = CutConveyorTask.class.getName(); + @Autowired + private SchBaseTaskMapper schBaseTaskMapper; @Override public List addTask() { @@ -453,10 +459,10 @@ public class CutConveyorTask extends AbstractAcsTask { //判断该点位是否存在未完成的任务 public boolean isSingleTask(String point_code) { - JSONObject task1 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code1 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); - JSONObject task2 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code2 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); - JSONObject task3 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code3 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); - JSONObject task4 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code4 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0); + SchBaseTask task1 = schBaseTaskMapper.selectOne(new LambdaQueryWrapper().eq(SchBaseTask::getPoint_code1, point_code).lt(SchBaseTask::getTask_status, "07").eq(SchBaseTask::getIs_delete, "0")); + SchBaseTask task2 = schBaseTaskMapper.selectOne(new LambdaQueryWrapper().eq(SchBaseTask::getPoint_code2, point_code).lt(SchBaseTask::getTask_status, "07").eq(SchBaseTask::getIs_delete, "0")); + SchBaseTask task3 = schBaseTaskMapper.selectOne(new LambdaQueryWrapper().eq(SchBaseTask::getPoint_code3, point_code).lt(SchBaseTask::getTask_status, "07").eq(SchBaseTask::getIs_delete, "0")); + SchBaseTask task4 = schBaseTaskMapper.selectOne(new LambdaQueryWrapper().eq(SchBaseTask::getPoint_code4, point_code).lt(SchBaseTask::getTask_status, "07").eq(SchBaseTask::getIs_delete, "0")); if (ObjectUtil.isNotEmpty(task1) || ObjectUtil.isNotEmpty(task2) || ObjectUtil.isNotEmpty(task3) || ObjectUtil.isNotEmpty(task4)) { return true; diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InCoolIvtTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InCoolIvtTask.java index b622492..9a9818b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InCoolIvtTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InCoolIvtTask.java @@ -6,24 +6,41 @@ 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.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.sch.point.dao.SchBasePoint; +import org.nl.b_lms.sch.point.dao.StIvtCoolregionio; +import org.nl.b_lms.sch.point.dao.mapper.SchBasePointMapper; +import org.nl.b_lms.sch.point.dao.mapper.StIvtCoolregionioMapper; +import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper; +import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.system.service.dict.dao.Dict; +import org.nl.system.service.dict.dao.mapper.SysDictMapper; import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.wms.ext.mes.service.LmsToMesService; import org.nl.wms.ext.mes.service.impl.LmsToMesServiceImpl; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.CoolPointIvt; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.RawfoilWorkOrder; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper.CoolPointIvtMapper; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper.RawfoilWorkOrderMapper; import org.nl.wms.sch.AcsTaskDto; 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.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -33,31 +50,46 @@ import java.util.List; @Slf4j public class InCoolIvtTask extends AbstractAcsTask { private final String THIS_CLASS = InCoolIvtTask.class.getName(); + @Autowired + SysDictMapper sysDictMapper; + @Autowired + SchBaseTaskMapper schBaseTaskMapper; + @Autowired + private CoolPointIvtMapper coolPointIvtMapper; + @Autowired + private StIvtCoolregionioMapper stIvtCoolregionioMapper; + @Autowired + private SchBasePointMapper schBasePointMapper; + @Autowired + private RawfoilWorkOrderMapper rawfoilWorkOrderMapper; @Override public List addTask() { /* * 下发给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); + List arr = schBaseTaskMapper.selectList(new LambdaQueryWrapper() + .eq(SchBaseTask::getHandle_class, THIS_CLASS) + .eq(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode()) + .eq(SchBaseTask::getIs_delete, "0")); ArrayList resultList = new ArrayList<>(); for (int i = 0; i < arr.size(); i++) { - JSONObject json = arr.getJSONObject(i); + SchBaseTask schBaseTask = arr.get(i); - String product_area = json.getString("product_area"); + String product_area = schBaseTask.getProduct_area(); String agv_system_type = "2"; AcsTaskDto dto = AcsTaskDto.builder() - .ext_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_code2")) + .ext_task_id(schBaseTask.getTask_id()) + .task_code(schBaseTask.getTask_code()) + .task_type(schBaseTask.getAcs_task_type()) + .start_device_code(schBaseTask.getPoint_code1()) + .next_device_code(schBaseTask.getPoint_code2()) .agv_system_type(agv_system_type) - .vehicle_code(json.getString("vehicle_code")) - .priority(json.getString("priority")) - .remark(json.getString("remark")) + .vehicle_code(schBaseTask.getVehicle_code()) + .priority(schBaseTask.getPriority()) + .remark(schBaseTask.getRemark()) .product_area(product_area) .build(); resultList.add(dto); @@ -68,79 +100,96 @@ public class InCoolIvtTask extends AbstractAcsTask { @Override @Transactional(rollbackFor = Exception.class) 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 coolTab = WQLObject.getWQLObject("ST_IVT_CoolRegionIO"); // 冷却区出入表 - WQLObject pdm_bi_rawfoilworkorder = WQLObject.getWQLObject("pdm_bi_rawfoilworkorder"); String task_id = taskObj.getString("task_id"); - JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0); + SchBaseTask schBaseTask = schBaseTaskMapper.selectById(task_id); if (StrUtil.equals(status, "0")) { // 取消删除任务 - jsonTask.put("is_delete", "1"); - jsonTask.put("update_time", DateUtil.now()); - taskTab.update(jsonTask); + schBaseTask.setIs_delete("1"); + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTaskMapper.updateById(schBaseTask); // 删除冷却区出入表 - coolTab.delete("task_id = '" + task_id + "'"); + stIvtCoolregionioMapper.delete(new LambdaQueryWrapper().eq(StIvtCoolregionio::getTask_id, task_id)); } if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 - jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode()); - jsonTask.put("update_time", DateUtil.now()); - taskTab.update(jsonTask); + schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTaskMapper.updateById(schBaseTask); } if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String currentUsername = SecurityUtils.getCurrentUsername(); + // 更改任务状态为完成 - jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode()); - jsonTask.put("update_optid", SecurityUtils.getCurrentUserId()); - jsonTask.put("update_optname", SecurityUtils.getCurrentUsername()); - jsonTask.put("update_time", DateUtil.now()); - taskTab.update(jsonTask); + schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); + schBaseTask.setUpdate_optid(currentUserId); + schBaseTask.setUpdate_optname(currentUsername); + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTaskMapper.updateById(schBaseTask); - String point_code1 = jsonTask.getString("point_code1"); - String point_code2 = jsonTask.getString("point_code2"); + String point_code1 = schBaseTask.getPoint_code1(); + String point_code2 = schBaseTask.getPoint_code2(); - PointService point = SpringContextHolder.getBean(PointService.class); - // 校验起点是否存在 - PointDto startDto = point.findByCode(point_code1); + SchBasePoint startDto = schBasePointMapper.selectOne(new LambdaQueryWrapper().eq(SchBasePoint::getPoint_code, point_code1)); +// PointService point = SpringContextHolder.getBean(PointService.class); +//// // 校验起点是否存在 +// PointDto startDto = point.findByCode(point_code1); if (ObjectUtil.isEmpty(startDto)) { throw new BadRequestException("起点未找到可用点位:" + point_code1); } // 校验终点是否存在 - JSONObject jsonIvt = ivtTab.query("full_point_code ='" + point_code2 + "'").uniqueResult(0); + CoolPointIvt jsonIvt = coolPointIvtMapper.selectOne(new LambdaQueryWrapper().eq(CoolPointIvt::getFull_point_code, point_code2)); +// JSONObject jsonIvt = ivtTab.query("full_point_code ='" + point_code2 + "'").uniqueResult(0); //更新生箔工单母卷信息 - JSONObject raw_jo = pdm_bi_rawfoilworkorder.query("container_name = '" + jsonTask.getString("material_code") + "'").uniqueResult(0); - String requestParam = jsonTask.getString("request_param"); + RawfoilWorkOrder raw_jo = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper().eq(RawfoilWorkOrder::getContainer_name, schBaseTask.getMaterial_code())); +// JSONObject raw_jo = pdm_bi_rawfoilworkorder.query("container_name = '" + jsonTask.getString("material_code") + "'").uniqueResult(0); + String requestParam = schBaseTask.getRequest_param(); if ("1".equals(requestParam)) { - raw_jo.put("origin", "2"); - raw_jo.put("roll_status", "4"); + raw_jo.setRoll_status("4"); + raw_jo.setOrigin("2"); +// raw_jo.put("origin", "2"); +// raw_jo.put("roll_status", "4"); }else if ("2".equals(requestParam)){ - raw_jo.put("origin", "2"); - raw_jo.put("roll_status", "3"); + raw_jo.setRoll_status("3"); + raw_jo.setOrigin("2"); +// raw_jo.put("origin", "2"); +// raw_jo.put("roll_status", "3"); } - pdm_bi_rawfoilworkorder.update(raw_jo); + rawfoilWorkOrderMapper.updateById(raw_jo); +// pdm_bi_rawfoilworkorder.update(raw_jo); + jsonIvt.setFull_point_status("02"); + jsonIvt.setCool_ivt_status("04"); + jsonIvt.setInstorage_time(DateUtil.now()); + jsonIvt.setContainer_name(raw_jo.getContainer_name()); + jsonIvt.setWorkorder_id(raw_jo.getWorkorder_id().toString()); + jsonIvt.setIvt_qty(raw_jo.getProductin_qty()); + coolPointIvtMapper.updateById(jsonIvt); // 更新冷却库存状态 - jsonIvt.put("full_point_status", "02"); - jsonIvt.put("cool_ivt_status", "04"); - jsonIvt.put("instorage_time", DateUtil.now()); - jsonIvt.put("container_name", raw_jo.getString("container_name")); - jsonIvt.put("workorder_id", raw_jo.getString("workorder_id")); - jsonIvt.put("ivt_qty", raw_jo.getString("qty")); - ivtTab.update(jsonIvt); +// jsonIvt.put("full_point_status", "02"); +// jsonIvt.put("cool_ivt_status", "04"); +// jsonIvt.put("instorage_time", DateUtil.now()); +// jsonIvt.put("container_name", raw_jo.getString("container_name")); +// jsonIvt.put("workorder_id", raw_jo.getString("workorder_id")); +// jsonIvt.put("ivt_qty", raw_jo.getString("qty")); +// ivtTab.update(jsonIvt); // 更新暂存位状态为空位 - JSONObject jsonPoint = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0); - jsonPoint.put("point_status", "1"); - jsonPoint.put("material_code", ""); - pointTab.update(jsonPoint); + SchBasePoint jsonPoint = schBasePointMapper.selectOne(new LambdaQueryWrapper().eq(SchBasePoint::getPoint_code, point_code1)); + jsonPoint.setPoint_status("1"); + jsonPoint.setMaterial_code(""); + schBasePointMapper.updateById(jsonPoint); +// JSONObject jsonPoint = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0); +// jsonPoint.put("point_status", "1"); +// jsonPoint.put("material_code", ""); +// pointTab.update(jsonPoint); // 将入冷却信息发送给mes // JSONObject param = new JSONObject(); @@ -162,10 +211,10 @@ public class InCoolIvtTask extends AbstractAcsTask { // } //将该母卷的入冷却标识改为0 - HashMap map = new HashMap<>(); - map.put("is_instor", "0"); - WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").update(map, "container_name = '" + jsonTask.getString("material_code") + "'"); - log.info("母卷:" + jsonTask.getString("material_code") + "对应的入冷却任务完成,请求入半成品库标识改为0"); + RawfoilWorkOrder rawfoilWorkOrder = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper().eq(RawfoilWorkOrder::getContainer_name, schBaseTask.getMaterial_code())); + rawfoilWorkOrder.setIs_instor("0"); + rawfoilWorkOrderMapper.updateById(rawfoilWorkOrder); + log.info("母卷:" + schBaseTask.getMaterial_code() + "对应的入冷却任务完成,请求入半成品库标识改为0"); } } @@ -183,7 +232,6 @@ public class InCoolIvtTask extends AbstractAcsTask { @Override @Transactional(rollbackFor = Exception.class) public String createTask(JSONObject form) { - WQLObject tab = WQLObject.getWQLObject("SCH_BASE_Task"); CutConveyorTask cutConveyorTask = new CutConveyorTask(); String currentUserId = SecurityUtils.getCurrentUserId(); @@ -198,48 +246,51 @@ public class InCoolIvtTask extends AbstractAcsTask { throw new BadRequestException("点位:" + point_code2 + "存在未完成的任务!"); } - JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_type", "010204"); - json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); - json.put("point_code1", point_code1); - json.put("point_code2", point_code2); - json.put("material_code", form.getString("container_name")); - json.put("product_area", form.getString("product_area")); - json.put("sort_seq", "1"); - json.put("handle_class", THIS_CLASS); - json.put("request_param", form.getString("request_param")); - json.put("create_id", currentUserId); - json.put("create_name", currentUsername); - json.put("create_time", DateUtil.now()); + SchBaseTask task = new SchBaseTask(); + task.setTask_id(IdUtil.getSnowflake(1, 1).nextId() + ""); + task.setTask_code(IdUtil.getSnowflake(1, 1).nextId() + ""); + task.setTask_type("010204"); + task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + task.setPoint_code1(point_code1); + task.setPoint_code2(point_code2); + task.setMaterial_code(form.getString("container_name")); + task.setProduct_area(form.getString("product_area")); + task.setSort_seq(BigDecimal.valueOf(1)); + task.setHandle_class(THIS_CLASS); + task.setRequest_param(form.getString("request_param")); + task.setCreate_id(currentUserId); + task.setCreate_name(currentUsername); + task.setCreate_time(DateUtil.now()); + //根据类型获取对应的任务优先级 - JSONObject priority_jo = WQL.getWO("PDA_COOLIN").addParam("flag", "3").addParam("task_type", json.getString("task_type")).process().uniqueResult(0); + Dict priority_jo = sysDictMapper.selectOne(new QueryWrapper().eq("code", "task_priority").eq("label", task.getTask_type())); if (ObjectUtil.isEmpty(priority_jo)) { - json.put("priority", "1"); + task.setPriority("1"); } else { - json.put("priority", priority_jo.getString("value")); + task.setPriority(priority_jo.getValue()); } - json.put("acs_task_type", "3"); - tab.insert(json); + task.setAcs_task_type("3"); + schBaseTaskMapper.insert(task); this.immediateNotifyAcs(null); - return json.getString("task_id"); + return task.getTask_id(); } @Override @Transactional(rollbackFor = Exception.class) public void forceFinish(String task_id) { - JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); + SchBaseTask schBaseTask = schBaseTaskMapper.selectById(task_id); + JSONObject taskObj = (JSONObject) JSONObject.toJSON(schBaseTask); this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode()); } @Override public void cancel(String task_id) { - JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); - this.updateTaskStatus(taskObj, "0"); + SchBaseTask schBaseTask = schBaseTaskMapper.selectById(task_id); + JSONObject taskObj = (JSONObject) JSONObject.toJSON(schBaseTask); + this.updateTaskStatus(taskObj, IOSEnum.ACS_RESULT.code("取消")); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InHotTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InHotTask.java index 9b098ed..a911ced 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InHotTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InHotTask.java @@ -6,23 +6,44 @@ 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.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.sch.point.dao.SchBasePoint; +import org.nl.b_lms.sch.point.dao.StIvtCoolregionio; +import org.nl.b_lms.sch.point.dao.mapper.SchBasePointMapper; +import org.nl.b_lms.sch.point.dao.mapper.StIvtCoolregionioMapper; +import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper; +import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.system.service.dict.dao.Dict; +import org.nl.system.service.dict.dao.mapper.SysDictMapper; import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.wms.ext.mes.service.LmsToMesService; import org.nl.wms.ext.mes.service.impl.LmsToMesServiceImpl; import org.nl.wms.pda.mps.service.mapper.HotMapper; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.CoolPointIvt; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.HotPointIvt; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.HotRegionIoMst; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.RawfoilWorkOrder; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper.CoolPointIvtMapper; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper.HotPointIvtIoMstMapper; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper.HotPointIvtMapper; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper.RawfoilWorkOrderMapper; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -32,38 +53,57 @@ import java.util.List; @Slf4j public class InHotTask extends AbstractAcsTask { private final String THIS_CLASS = InHotTask.class.getName(); + @Autowired + SchBaseTaskMapper schBaseTaskMapper; + @Autowired + SysDictMapper sysDictMapper; + @Autowired + private HotPointIvtIoMstMapper hotPointIvtIoMstMapper; + @Autowired + private HotPointIvtMapper hotPointIvtMapper; + @Autowired + private SchBasePointMapper schBasePointMapper; + @Autowired + private RawfoilWorkOrderMapper rawfoilWorkOrderMapper; + @Autowired + private CoolPointIvtMapper coolPointIvtMapper; + @Autowired + private StIvtCoolregionioMapper stIvtCoolregionioMapper; @Override public List addTask() { /* * 下发给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); + List arr = schBaseTaskMapper.selectList(new LambdaQueryWrapper() + .eq(SchBaseTask::getHandle_class, THIS_CLASS) + .eq(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode()) + .eq(SchBaseTask::getIs_delete, "0")); ArrayList resultList = new ArrayList<>(); for (int i = 0; i < arr.size(); i++) { - JSONObject json = arr.getJSONObject(i); + SchBaseTask schBaseTask = arr.get(i); - String product_area = json.getString("product_area"); + String product_area = schBaseTask.getProduct_area(); String agv_system_type = "2"; AcsTaskDto dto = AcsTaskDto.builder() - .ext_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")) - .vehicle_code(json.getString("vehicle_code")) + .ext_task_id(schBaseTask.getTask_id()) + .task_code(schBaseTask.getTask_code()) + .task_type(schBaseTask.getAcs_task_type()) + .start_device_code(schBaseTask.getPoint_code1()) + .vehicle_code(schBaseTask.getVehicle_code()) .agv_system_type(agv_system_type) - .oven_time(json.getString("request_param")) - .priority(json.getString("priority")) - .remark(json.getString("remark")) + .oven_time(schBaseTask.getRequest_param()) + .priority(schBaseTask.getPriority()) + .remark(schBaseTask.getRemark()) .product_area(product_area) .build(); - if (StrUtil.isNotEmpty(json.getString("point_code3"))) { - dto.setNext_device_code(json.getString("point_code3")); - dto.setPut_device_code(json.getString("point_code2")); + if (StrUtil.isNotEmpty(schBaseTask.getPoint_code3())) { + dto.setNext_device_code(schBaseTask.getPoint_code3()); + dto.setPut_device_code(schBaseTask.getPoint_code2()); } else { - dto.setNext_device_code(json.getString("point_code2")); + dto.setNext_device_code(schBaseTask.getPoint_code2()); } resultList.add(dto); @@ -74,32 +114,29 @@ public class InHotTask extends AbstractAcsTask { @Override @Transactional(rollbackFor = Exception.class) public void updateTaskStatus(JSONObject taskObj, String status) { - WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表 - WQLObject pointTab = WQLObject.getWQLObject("sch_base_point"); // 点位表 - WQLObject coolIvtTab = WQLObject.getWQLObject("ST_IVT_CoolPointIvt"); // 冷却区库存表 - WQLObject hotIvtTab = WQLObject.getWQLObject("ST_IVT_HotPointIvt"); // 烘箱区库存表 - WQLObject hotMstTab = WQLObject.getWQLObject("ST_IVT_HotRegionIOMst"); // 烘箱区出入主表 - WQLObject coolIoTab = WQLObject.getWQLObject("ST_IVT_CoolRegionIO"); // 冷却区出入表 String task_id = taskObj.getString("task_id"); - JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0); + SchBaseTask schBaseTask = schBaseTaskMapper.selectById(task_id); + if (StrUtil.equals(status, "0")) { // 更新删除字段 - jsonTask.put("is_delete", "1"); - jsonTask.put("update_time", DateUtil.now()); - taskTab.update(jsonTask); + schBaseTask.setIs_delete("1"); + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTaskMapper.updateById(schBaseTask); - coolIoTab.delete("task_id = '" + task_id + "'"); + stIvtCoolregionioMapper.delete(new LambdaQueryWrapper().eq(StIvtCoolregionio::getTask_id, task_id)); +// coolIoTab.delete("task_id = '" + task_id + "'"); - hotMstTab.delete("task_id = '" + task_id + "'"); + hotPointIvtIoMstMapper.delete(new LambdaQueryWrapper().eq(HotRegionIoMst::getTask_id, taskObj.getString("task_id"))); +// hotMstTab.delete("task_id = '" + task_id + "'"); } if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 - jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode()); - jsonTask.put("update_time", DateUtil.now()); - taskTab.update(jsonTask); + schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTaskMapper.updateById(schBaseTask); } if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { @@ -107,38 +144,39 @@ public class InHotTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); // 更改任务状态为完成 - jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode()); - jsonTask.put("update_optid", currentUserId); - jsonTask.put("update_optname", currentUsername); - jsonTask.put("update_time", DateUtil.now()); - taskTab.update(jsonTask); + schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); + schBaseTask.setUpdate_optid(currentUserId); + schBaseTask.setUpdate_optname(currentUsername); + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTaskMapper.updateById(schBaseTask); // 更新主表: 什么时候更新主表 - JSONObject jsonHotMst = hotMstTab.query("task_id = '" + task_id + "'").uniqueResult(0); + HotRegionIoMst jsonHotMst = hotPointIvtIoMstMapper.selectOne(new LambdaQueryWrapper().eq(HotRegionIoMst::getTask_id, taskObj.getString("task_id"))); + String hot_point_code = ""; // 判断此任务是否有三个点位 - if (ObjectUtil.isEmpty(jsonTask.getString("point_code3"))) { + if (ObjectUtil.isEmpty(schBaseTask.getPoint_code3())) { /* * 暂存区入烘箱任务 */ // 更新烘箱区库存状态 - JSONObject jsonHotIvt = hotIvtTab.query("point_code = '" + jsonTask.getString("point_code2") + "'").uniqueResult(0); - jsonHotIvt.put("point_status", "02"); - jsonHotIvt.put("container_name", jsonHotMst.getString("container_name")); - jsonHotIvt.put("workorder_id", jsonHotMst.getString("workorder_id")); - jsonHotIvt.put("ivt_qty", jsonHotMst.getString("qty")); - jsonHotIvt.put("instorage_time", DateUtil.now()); - jsonHotIvt.put("update_optid", currentUserId); - jsonHotIvt.put("update_optname", currentUsername); - jsonHotIvt.put("update_time", DateUtil.now()); - hotIvtTab.update(jsonHotIvt); + HotPointIvt jsonHotIvt = hotPointIvtMapper.selectOne(new LambdaQueryWrapper().eq(HotPointIvt::getPoint_code, schBaseTask.getPoint_code2())); + jsonHotIvt.setPoint_status("02"); + jsonHotIvt.setContainer_name(jsonHotMst.getContainer_name()); + jsonHotIvt.setWorkorder_id(jsonHotMst.getWorkorder_id()); + jsonHotIvt.setIvt_qty(jsonHotMst.getQty()); + jsonHotIvt.setInstorage_time(DateUtil.now()); + jsonHotIvt.setUpdate_optid(currentUserId); + jsonHotIvt.setUpdate_optname(currentUsername); + jsonHotIvt.setUpdate_time(DateUtil.now()); + hotPointIvtMapper.updateById(jsonHotIvt); // 更新暂存区点位状态为空位 - JSONObject jsonPoint = pointTab.query("point_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0); - jsonPoint.put("point_status", "1"); - jsonPoint.put("material_code", ""); - pointTab.update(jsonPoint); - hot_point_code = jsonHotIvt.getString("ext_code"); + SchBasePoint jsonPoint = schBasePointMapper.selectOne(new LambdaQueryWrapper().eq(SchBasePoint::getPoint_code, schBaseTask.getPoint_code1())); + jsonPoint.setPoint_status("1"); + jsonPoint.setMaterial_code(""); + schBasePointMapper.updateById(jsonPoint); + hot_point_code = jsonHotIvt.getExt_code(); } else { /* @@ -146,46 +184,42 @@ public class InHotTask extends AbstractAcsTask { */ // 更新冷却出入主表状态 - JSONObject jsonCool = coolIoTab.query("task_id = '" + task_id + "'").uniqueResult(0); - jsonCool.put("bill_status", "50"); - coolIoTab.update(jsonCool); + StIvtCoolregionio jsonCool = stIvtCoolregionioMapper.selectOne(new LambdaQueryWrapper().eq(StIvtCoolregionio::getTask_id, task_id)); + jsonCool.setBill_status("50"); + stIvtCoolregionioMapper.updateById(jsonCool); + // 更新冷却区库存状态 - JSONObject jsonCoolIvt = coolIvtTab.query("full_point_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0); - String container_name = jsonCoolIvt.getString("container_name"); // 母卷号 - String workorder_id = jsonCoolIvt.getString("workorder_id"); // 母卷工单标识 - String ivt_qty = jsonCoolIvt.getString("ivt_qty"); // 库存 + CoolPointIvt jsonCoolIvt = coolPointIvtMapper.selectOne(new LambdaQueryWrapper().eq(CoolPointIvt::getFull_point_code, schBaseTask.getPoint_code1())); + String container_name = jsonCoolIvt.getContainer_name(); // 母卷号 + String workorder_id = jsonCoolIvt.getWorkorder_id(); // 母卷工单标识 + + + jsonCoolIvt.setFull_point_status("01"); + jsonCoolIvt.setCool_ivt_status("01"); + jsonCoolIvt.setContainer_name(""); + jsonCoolIvt.setWorkorder_id(""); + jsonCoolIvt.setIvt_qty(BigDecimal.valueOf(0)); + jsonCoolIvt.setInstorage_time(""); + jsonCoolIvt.setUpdate_optid(currentUserId); + jsonCoolIvt.setUpdate_optname(currentUsername); + jsonCoolIvt.setUpdate_time(DateUtil.now()); + coolPointIvtMapper.updateById(jsonCoolIvt); - jsonCoolIvt.put("full_point_status", "01"); - jsonCoolIvt.put("cool_ivt_status", "01"); - jsonCoolIvt.put("container_name", ""); - jsonCoolIvt.put("workorder_id", ""); - jsonCoolIvt.put("ivt_qty", "0"); - jsonCoolIvt.put("instorage_time", ""); - jsonCoolIvt.put("update_optid", currentUserId); - jsonCoolIvt.put("update_optname", currentUsername); - jsonCoolIvt.put("update_time", DateUtil.now()); - coolIvtTab.update(jsonCoolIvt); // 更新烘箱区库存状态 - JSONObject jsonHotIvt = hotIvtTab.query("point_code = '" + jsonTask.getString("point_code3") + "'").uniqueResult(0); - jsonHotIvt.put("point_status", "02"); - jsonHotIvt.put("container_name", container_name); - jsonHotIvt.put("workorder_id", workorder_id); - jsonHotIvt.put("ivt_qty", ivt_qty); - jsonHotIvt.put("instorage_time", DateUtil.now()); - jsonHotIvt.put("update_optid", currentUserId); - jsonHotIvt.put("update_optname", currentUsername); - jsonHotIvt.put("update_time", DateUtil.now()); + HotPointIvt jsonHotIvt = hotPointIvtMapper.selectOne(new LambdaQueryWrapper().eq(HotPointIvt::getPoint_code, schBaseTask.getPoint_code3())); + jsonHotIvt.setPoint_status("02"); + jsonHotIvt.setContainer_name(container_name); + jsonHotIvt.setWorkorder_id(workorder_id); + jsonHotIvt.setIvt_qty(jsonCoolIvt.getIvt_qty()); + jsonHotIvt.setInstorage_time(DateUtil.now()); + jsonHotIvt.setUpdate_optid(currentUserId); + jsonHotIvt.setUpdate_optname(currentUsername); + jsonHotIvt.setUpdate_time(DateUtil.now()); + hotPointIvtMapper.updateById(jsonHotIvt); - log.info("入烘箱wql执行update语句!"); - hotIvtTab.update(jsonHotIvt); - - log.info("入烘箱mybatis执行update语句!"); - HotMapper hotMapper = SpringContextHolder.getBean(HotMapper.class); - hotMapper.updateHotByObject(jsonHotIvt); - - hot_point_code = jsonHotIvt.getString("ext_code"); + hot_point_code = jsonHotIvt.getExt_code(); } // 将入烘箱信息发送给mes @@ -210,11 +244,11 @@ public class InHotTask extends AbstractAcsTask { // } //将该母卷的入烘箱标识改为0 - HashMap map = new HashMap<>(); - map.put("is_baking", "0"); - map.put("roll_status", "2");//母卷状态改为正在烘烤 - WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").update(map, "container_name = '" + jsonHotMst.getString("container_name") + "'"); - log.info("母卷:" + jsonHotMst.getString("container_name") + "对应的入烘箱任务完成,请求烘烤标识改为0"); + RawfoilWorkOrder rawfoilWorkOrder = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper().eq(RawfoilWorkOrder::getContainer_name, jsonHotMst.getContainer_name())); + rawfoilWorkOrder.setIs_baking("0"); + rawfoilWorkOrder.setRoll_status("2");//母卷状态改为正在烘烤 + rawfoilWorkOrderMapper.updateById(rawfoilWorkOrder); + log.info("母卷:" + jsonHotMst.getContainer_name() + "对应的入烘箱任务完成,请求烘烤标识改为0"); } } @@ -231,7 +265,6 @@ public class InHotTask extends AbstractAcsTask { @Override @Transactional(rollbackFor = Exception.class) public String createTask(JSONObject form) { - WQLObject tab = WQLObject.getWQLObject("SCH_BASE_Task"); CutConveyorTask cutConveyorTask = new CutConveyorTask(); String currentUserId = SecurityUtils.getCurrentUserId(); @@ -256,51 +289,49 @@ public class InHotTask extends AbstractAcsTask { throw new BadRequestException("点位:" + point_code3 + "存在未完成的任务!"); } } - JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_type", "010201"); + SchBaseTask task = new SchBaseTask(); + task.setTask_id(IdUtil.getSnowflake(1, 1).nextId() + ""); + task.setTask_code(IdUtil.getSnowflake(1, 1).nextId() + ""); + task.setTask_type("010201"); if (StrUtil.isNotEmpty(point_code2) && StrUtil.isNotEmpty(point_code3)) { - json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); - json.put("task_status", TaskStatusEnum.SURE_START.getCode()); - json.put("remark", form); - json.put("point_code2", form.getString("point_code2")); - json.put("point_code3", form.getString("point_code3")); + task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + task.setPoint_code2(form.getString("point_code2")); + task.setPoint_code3(form.getString("point_code3")); } else { - json.put("remark", form); - json.put("point_code2", ""); - json.put("point_code3", ""); - json.put("task_status", TaskStatusEnum.SURE_START.getCode()); + task.setTask_status(TaskStatusEnum.SURE_START.getCode()); + task.setPoint_code2(""); + task.setPoint_code3(""); + task.setRemark(form.toJSONString()); } - json.put("point_code1", form.getString("point_code1")); - json.put("product_area", form.getString("product_area")); - json.put("request_param", form.getString("request_param")); - json.put("sort_seq", "1"); - json.put("handle_class", THIS_CLASS); - json.put("create_id", currentUserId); - json.put("material_code", form.getString("material_code")); - json.put("create_name", currentUsername); - json.put("create_time", DateUtil.now()); + task.setPoint_code1(form.getString("point_code1")); + task.setProduct_area(form.getString("product_area")); + task.setRequest_param(form.getString("request_param")); + task.setSort_seq(BigDecimal.valueOf(1)); + task.setHandle_class(THIS_CLASS); + task.setCreate_id(currentUserId); + task.setMaterial_code(form.getString("material_code")); + task.setCreate_name(currentUsername); + task.setCreate_time(DateUtil.now()); //根据类型获取对应的任务优先级 - JSONObject priority_jo = WQL.getWO("PDA_COOLIN").addParam("flag", "3").addParam("task_type", json.getString("task_type")).process().uniqueResult(0); + Dict priority_jo = sysDictMapper.selectOne(new QueryWrapper().eq("code", "task_priority").eq("label", task.getTask_type())); if (ObjectUtil.isEmpty(priority_jo)) { - json.put("priority", "1"); + task.setPriority("1"); } else { - json.put("priority", priority_jo.getString("value")); + task.setPriority(priority_jo.getValue()); } - json.put("acs_task_type", "8"); - tab.insert(json); - task_id = json.getString("task_id"); - if ("04".equals(json.getString("task_status"))) { + task.setAcs_task_type("8"); + schBaseTaskMapper.insert(task); + task_id = task.getTask_id(); + if ("04".equals(task.getTask_status())) { immediateNotifyAcs(task_id); } //更新对应点位库存为已裹膜 - JSONObject cool_ivt = WQLObject.getWQLObject("st_ivt_coolpointivt").query("full_point_code = '" + form.getString("point_code1") + "'").uniqueResult(0); + CoolPointIvt cool_ivt = coolPointIvtMapper.selectOne(new LambdaQueryWrapper().eq(CoolPointIvt::getFull_point_code, form.getString("point_code1"))); if (ObjectUtil.isEmpty(cool_ivt)) { throw new BadRequestException("未查询到对应的冷却区点位!"); } - cool_ivt.put("cool_ivt_status", "02"); - WQLObject.getWQLObject("st_ivt_coolpointivt").update(cool_ivt); + cool_ivt.setCool_ivt_status("02"); + coolPointIvtMapper.updateById(cool_ivt); } @@ -315,30 +346,30 @@ public class InHotTask extends AbstractAcsTask { throw new BadRequestException("点位:" + point_code2 + "存在未完成的任务!"); } - JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_type", "010203"); - json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); - json.put("point_code1", form.getString("point_code1")); - json.put("point_code2", form.getString("point_code2")); - json.put("product_area", form.getString("product_area")); - json.put("request_param", form.getString("request_param")); - json.put("sort_seq", "1"); - json.put("handle_class", THIS_CLASS); - json.put("create_id", currentUserId); - json.put("create_name", currentUsername); - json.put("create_time", DateUtil.now()); + SchBaseTask task = new SchBaseTask(); + task.setTask_id(IdUtil.getSnowflake(1, 1).nextId() + ""); + task.setTask_code(IdUtil.getSnowflake(1, 1).nextId() + ""); + task.setTask_type("010203"); + task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + task.setPoint_code1(form.getString("point_code1")); + task.setPoint_code2(form.getString("point_code2")); + task.setProduct_area(form.getString("product_area")); + task.setRequest_param(form.getString("request_param")); + task.setSort_seq(BigDecimal.valueOf(1)); + task.setHandle_class(THIS_CLASS); + task.setCreate_id(currentUserId); + task.setCreate_name(currentUsername); + task.setCreate_time(DateUtil.now()); //根据类型获取对应的任务优先级 - JSONObject priority_jo = WQL.getWO("PDA_COOLIN").addParam("flag", "3").addParam("task_type", json.getString("task_type")).process().uniqueResult(0); + Dict priority_jo = sysDictMapper.selectOne(new QueryWrapper().eq("code", "task_priority").eq("label", task.getTask_type())); if (ObjectUtil.isEmpty(priority_jo)) { - json.put("priority", "1"); + task.setPriority("1"); } else { - json.put("priority", priority_jo.getString("value")); + task.setPriority(priority_jo.getValue()); } - json.put("acs_task_type", "6"); - tab.insert(json); - task_id = json.getString("task_id"); + task.setAcs_task_type("6"); + schBaseTaskMapper.insert(task); + task_id = task.getTask_id(); immediateNotifyAcs(task_id); } return task_id; @@ -346,15 +377,17 @@ public class InHotTask extends AbstractAcsTask { @Override public void forceFinish(String task_id) { - JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); + SchBaseTask schBaseTask = schBaseTaskMapper.selectById(task_id); + JSONObject taskObj = (JSONObject) JSONObject.toJSON(schBaseTask); this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode()); } @Override public void cancel(String task_id) { - JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); - this.updateTaskStatus(taskObj, "0"); + SchBaseTask schBaseTask = schBaseTaskMapper.selectById(task_id); + JSONObject taskObj = (JSONObject) JSONObject.toJSON(schBaseTask); + this.updateTaskStatus(taskObj, IOSEnum.ACS_RESULT.code("取消")); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutHotTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutHotTask.java index 4c95023..7313e9a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutHotTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutHotTask.java @@ -6,22 +6,39 @@ 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.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.sch.point.dao.SchBasePoint; +import org.nl.b_lms.sch.point.dao.mapper.SchBasePointMapper; +import org.nl.b_lms.sch.task.dao.SchBaseTask; +import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper; +import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.system.service.dict.dao.Dict; +import org.nl.system.service.dict.dao.mapper.SysDictMapper; import org.nl.wms.ext.mes.service.LmsToMesService; import org.nl.wms.ext.mes.service.impl.LmsToMesServiceImpl; import org.nl.wms.pda.mps.service.mapper.HotMapper; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.HotPointIvt; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.HotRegionIoMst; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.RawfoilWorkOrder; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper.HotPointIvtIoMstMapper; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper.HotPointIvtMapper; +import org.nl.wms.pdm.rawfoilworkorder.service.dao.mapper.RawfoilWorkOrderMapper; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -31,32 +48,47 @@ import java.util.List; @Slf4j public class OutHotTask extends AbstractAcsTask { private final String THIS_CLASS = OutHotTask.class.getName(); + @Autowired + SchBaseTaskMapper schBaseTaskMapper; + @Autowired + SysDictMapper sysDictMapper; + @Autowired + private HotPointIvtIoMstMapper hotPointIvtIoMstMapper; + @Autowired + private HotPointIvtMapper hotPointIvtMapper; + @Autowired + private SchBasePointMapper schBasePointMapper; + @Autowired + private RawfoilWorkOrderMapper rawfoilWorkOrderMapper; @Override public List addTask() { /* * 下发给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); + List arr = schBaseTaskMapper.selectList(new LambdaQueryWrapper() + .eq(SchBaseTask::getHandle_class, THIS_CLASS) + .eq(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode()) + .eq(SchBaseTask::getIs_delete, "0")); ArrayList resultList = new ArrayList<>(); for (int i = 0; i < arr.size(); i++) { - JSONObject json = arr.getJSONObject(i); + SchBaseTask schBaseTask = arr.get(i); - String product_area = json.getString("product_area"); + String product_area = schBaseTask.getProduct_area(); String agv_system_type = "2"; AcsTaskDto dto = AcsTaskDto.builder() - .ext_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_code2")) - .vehicle_code(json.getString("vehicle_code")) + .ext_task_id(schBaseTask.getTask_id()) + .task_code(schBaseTask.getTask_code()) + .task_type(schBaseTask.getAcs_task_type()) + .start_device_code(schBaseTask.getPoint_code1()) + .next_device_code(schBaseTask.getPoint_code2()) + .vehicle_code(schBaseTask.getVehicle_code()) .agv_system_type(agv_system_type) - .priority(json.getString("priority")) + .priority(schBaseTask.getPriority()) .product_area(product_area) - .remark(json.getString("remark")) + .remark(schBaseTask.getRemark()) .build(); resultList.add(dto); } @@ -66,29 +98,23 @@ public class OutHotTask extends AbstractAcsTask { @Override @Transactional(rollbackFor = Exception.class) public void updateTaskStatus(JSONObject taskObj, String status) { - WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表 - WQLObject pointTab = WQLObject.getWQLObject("sch_base_point"); // 点位表 - WQLObject hotIvtTab = WQLObject.getWQLObject("ST_IVT_HotPointIvt"); // 烘箱区库存表 - WQLObject hotMstTab = WQLObject.getWQLObject("ST_IVT_HotRegionIOMst"); // 烘箱区出入主表 - WQLObject ivtTab = WQLObject.getWQLObject("ST_IVT_CoolPointIvt"); // 冷却区库存表 - String task_id = taskObj.getString("task_id"); - JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0); + SchBaseTask schBaseTask = schBaseTaskMapper.selectById(taskObj.getString("task_id")); if (StrUtil.equals(status, "0")) { // 更新删除字段 - jsonTask.put("is_delete", "1"); - jsonTask.put("update_time", DateUtil.now()); - taskTab.update(jsonTask); + schBaseTask.setIs_delete("1"); + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTaskMapper.updateById(schBaseTask); - hotMstTab.delete("task_id = '" + task_id + "'"); + hotPointIvtIoMstMapper.delete(new LambdaQueryWrapper().eq(HotRegionIoMst::getTask_id, taskObj.getString("task_id"))); } if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { // 更新任务状态为执行中 - jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode()); - jsonTask.put("update_time", DateUtil.now()); - taskTab.update(jsonTask); + schBaseTask.setTask_status(TaskStatusEnum.EXECUTING.getCode()); + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTaskMapper.updateById(schBaseTask); } @@ -97,51 +123,40 @@ public class OutHotTask extends AbstractAcsTask { String currentUsername = SecurityUtils.getCurrentUsername(); // 更改任务状态为完成 - jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode()); - jsonTask.put("update_optid", currentUserId); - jsonTask.put("update_optname", currentUsername); - jsonTask.put("update_time", DateUtil.now()); - taskTab.update(jsonTask); + schBaseTask.setTask_status(TaskStatusEnum.FINISHED.getCode()); + schBaseTask.setUpdate_optid(currentUserId); + schBaseTask.setUpdate_optname(currentUsername); + schBaseTask.setUpdate_time(DateUtil.now()); + schBaseTaskMapper.updateById(schBaseTask); + + HotPointIvt jsonHotIvt = hotPointIvtMapper.selectOne(new LambdaQueryWrapper().eq(HotPointIvt::getPoint_code, schBaseTask.getPoint_code1())); - JSONObject jsonHotIvt = hotIvtTab.query("point_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0); // 更新主表: 什么时候更新主表 - JSONObject jsonHotMst = hotMstTab.query("task_id = '" + task_id + "'").uniqueResult(0); + HotRegionIoMst jsonHotMst = hotPointIvtIoMstMapper.selectOne(new LambdaQueryWrapper().eq(HotRegionIoMst::getTask_id, taskObj.getString("task_id"))); // 更新暂存区点位状态 - JSONObject jsonPoint2 = pointTab.query("point_code = '" + jsonTask.getString("point_code2") + "'").uniqueResult(0); - jsonPoint2.put("point_status", "2"); - jsonPoint2.put("material_code", jsonHotIvt.getString("container_name")); - pointTab.update(jsonPoint2); + SchBasePoint jsonPoint2 = schBasePointMapper.selectOne(new LambdaQueryWrapper().eq(SchBasePoint::getPoint_code, schBaseTask.getPoint_code2())); + jsonPoint2.setPoint_status("2"); + jsonPoint2.setMaterial_code(jsonHotIvt.getContainer_name()); + schBasePointMapper.updateById(jsonPoint2); // 更新烘箱区库存状态 - jsonHotIvt.put("point_status", "01"); - jsonHotIvt.put("container_name", ""); - jsonHotIvt.put("workorder_id", ""); - jsonHotIvt.put("ivt_qty", 0); - jsonHotIvt.put("instorage_time", ""); - jsonHotIvt.put("update_optid", currentUserId); - jsonHotIvt.put("update_optname", currentUsername); - jsonHotIvt.put("update_time", DateUtil.now()); + jsonHotIvt.setPoint_status("01"); + jsonHotIvt.setContainer_name(""); + jsonHotIvt.setWorkorder_id(""); + jsonHotIvt.setIvt_qty(BigDecimal.valueOf(0)); + jsonHotIvt.setInstorage_time(""); + jsonHotIvt.setUpdate_optid(currentUserId); + jsonHotIvt.setUpdate_optname(currentUsername); + jsonHotIvt.setUpdate_time(DateUtil.now()); + hotPointIvtMapper.updateById(jsonHotIvt); - log.info("出烘箱wql执行update语句!"); - hotIvtTab.update(jsonHotIvt); - JSONObject update_ivt = hotIvtTab.query("point_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0); - log.info("更新完后烘箱库存为:-----------------" + update_ivt.toString()); - - log.info("出烘箱mybatis执行update语句!"); - HotMapper hotMapper = SpringContextHolder.getBean(HotMapper.class); - hotMapper.updateHotByObject(jsonHotIvt); - JSONObject update_ivt2 = hotIvtTab.query("point_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0); - log.info("更新完后烘箱库存为:-----------------" + update_ivt2.toString()); - - if (!update_ivt2.getString("container_name").equals(update_ivt.getString("container_name"))) { - log.info("出烘箱WQL更新不成功!"); - } - HashMap map = new HashMap<>(); - map.put("roll_status","1");//母卷状态改为待质检 - WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").update(map, "container_name = '" + jsonHotMst.getString("container_name") + "'"); + //母卷状态改为待质检 + RawfoilWorkOrder rawfoilWorkOrder = rawfoilWorkOrderMapper.selectOne(new LambdaQueryWrapper().eq(RawfoilWorkOrder::getContainer_name, jsonHotMst.getContainer_name())); + rawfoilWorkOrder.setRoll_status("1"); + rawfoilWorkOrderMapper.updateById(rawfoilWorkOrder); // 将出烘箱信息发送给mes // JSONObject param = new JSONObject(); @@ -197,50 +212,55 @@ public class OutHotTask extends AbstractAcsTask { throw new BadRequestException("点位:" + point_code3 + "存在未完成的任务!"); } } - JSONObject json = new JSONObject(); - json.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); - json.put("task_code", IdUtil.getSnowflake(1, 1).nextId()); + SchBaseTask task = new SchBaseTask(); +// JSONObject json = new JSONObject(); + task.setTask_id(IdUtil.getSnowflake(1, 1).nextId() + ""); + task.setTask_code(IdUtil.getSnowflake(1, 1).nextId() + ""); String task_type = form.getString("task_type"); if (StrUtil.isNotEmpty(task_type)) { - json.put("task_type", task_type); + task.setTask_type(task_type); +// json.put("task_type", task_type); } else { - json.put("task_type", "010202"); + task.setTask_type("010202"); +// json.put("task_type", "010202"); } - json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); - json.put("point_code1", form.getString("point_code1")); - json.put("point_code2", form.getString("point_code2")); - json.put("point_code3", form.getString("point_code3")); - json.put("product_area", form.getString("product_area")); - json.put("material_code", form.getString("material_code")); - json.put("sort_seq", "1"); - json.put("handle_class", THIS_CLASS); - json.put("create_id", currentUserId); - json.put("create_name", currentUsername); - json.put("create_time", DateUtil.now()); + task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); + task.setPoint_code1(form.getString("point_code1")); + task.setPoint_code2(form.getString("point_code2")); + task.setPoint_code3(form.getString("point_code3")); + task.setProduct_area(form.getString("product_area")); + task.setMaterial_code(form.getString("material_code")); + task.setSort_seq(BigDecimal.valueOf(1)); + task.setHandle_class(THIS_CLASS); + task.setCreate_id(currentUserId); + task.setCreate_name(currentUsername); + task.setCreate_time(DateUtil.now()); //根据类型获取对应的任务优先级 - JSONObject priority_jo = WQL.getWO("PDA_COOLIN").addParam("flag", "3").addParam("task_type", json.getString("task_type")).process().uniqueResult(0); + Dict priority_jo = sysDictMapper.selectOne(new QueryWrapper().eq("code", "task_priority").eq("label", task.getTask_type())); if (ObjectUtil.isEmpty(priority_jo)) { - json.put("priority", "1"); + task.setPriority("1"); } else { - json.put("priority", priority_jo.getString("value")); + task.setPriority(priority_jo.getValue()); } - json.put("acs_task_type", "6"); - tab.insert(json); - immediateNotifyAcs(json.getString("task_id")); - return json.getString("task_id"); + task.setAcs_task_type("6"); + schBaseTaskMapper.insert(task); + immediateNotifyAcs(task.getTask_id()); + return task.getTask_id(); } @Override public void forceFinish(String task_id) { - JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); + SchBaseTask schBaseTask = schBaseTaskMapper.selectById(task_id); + JSONObject taskObj = (JSONObject) JSONObject.toJSON(schBaseTask); this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode()); } @Override public void cancel(String task_id) { - JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); - this.updateTaskStatus(taskObj, "0"); + SchBaseTask schBaseTask = schBaseTaskMapper.selectById(task_id); + JSONObject taskObj = (JSONObject) JSONObject.toJSON(schBaseTask); + this.updateTaskStatus(taskObj, IOSEnum.ACS_RESULT.code("取消")); } } diff --git a/lms/nladmin-ui/src/views/wms/pdm/order/rawfoilworkorder/index.vue b/lms/nladmin-ui/src/views/wms/pdm/order/rawfoilworkorder/index.vue index ff4a16a..aca3c09 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/order/rawfoilworkorder/index.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/order/rawfoilworkorder/index.vue @@ -153,11 +153,6 @@ - - - - - @@ -165,6 +160,11 @@ + + + + + @@ -195,9 +195,43 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -277,7 +311,7 @@ const defaultForm = { product_name: null, description: null, theory_height: null, - eqp_velocity: null, + eqp_velocity: '0.2', up_coiler_date: null, is_reload_send: '0', productin_qty: null, @@ -287,18 +321,20 @@ const defaultForm = { finish_type: null, agvno: null, remark: null, + point_code: null, + product_area: null, + order_type: '2', create_id: null, create_name: null, create_time: null, update_optid: null, update_optname: null, update_time: null, - is_delete: null, - pscn: null + is_delete: null } export default { name: 'Rawfoilworkorder', - dicts: ['product_area', 'product_status', 'IS_OR_NOT', 'ROLL_STATUS_TYPE', 'ORIGIN_TYPE'], + dicts: ['product_area', 'product_status', 'IS_OR_NOT', 'ROLL_STATUS_TYPE', 'ORIGIN_TYPE', 'sb_order_type'], components: { pagination, crudOperation, rrOperation, udOperation, Dialog, MaterDialog, SbpointivtDialog }, mixins: [presenter(), header(), form(defaultForm), crud()], cruds() { @@ -350,9 +386,6 @@ export default { ], up_coiler_date: [ { required: true, message: '上卷开始时间不能为空', trigger: 'blur' } - ], - pscn: [ - { required: true, message: '批次号不能为空', trigger: 'blur' } ] } } @@ -420,6 +453,8 @@ export default { }, setSbpointivtValue(row) { this.form.resource_name = row.ext_code + this.form.product_area = row.product_area + this.form.point_code = row.point_code }, print() { const _selectData = this.$refs.table.selection diff --git a/lms/nladmin-ui/src/views/wms/pdm/order/rawfoilworkorder/rawfoilworkorder.js b/lms/nladmin-ui/src/views/wms/pdm/order/rawfoilworkorder/rawfoilworkorder.js index c6952f0..044fdd9 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/order/rawfoilworkorder/rawfoilworkorder.js +++ b/lms/nladmin-ui/src/views/wms/pdm/order/rawfoilworkorder/rawfoilworkorder.js @@ -56,4 +56,12 @@ export function start(data) { }) } -export default { add, edit, del, compelEnd, confirm, print, start } +export function selectResource(data) { + return request({ + url: 'api/rawfoilworkorder/selectResource', + method: 'get', + data + }) +} + +export default { add, edit, del, compelEnd, confirm, print, start, selectResource } diff --git a/lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/AddDialog.vue b/lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/AddDialog.vue index 96022dc..19c62ab 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/AddDialog.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/order/slittingplan/AddDialog.vue @@ -43,7 +43,23 @@ - + + + @@ -96,25 +112,22 @@ placeholder="选择日期" /> - - - - - - - - - - - - - - - - - - - + + + + @@ -148,9 +161,9 @@ :header-cell-style="{background:'#f5f7fa',color:'#606266'}" > - + @@ -164,7 +177,7 @@ placeholder="请选择" class="filter-item" style="width: 100px" - @change="hand2" + @change="hand2(scope.row)" > - + - +