From 6bf6e23d0b0cf3bd3befd5a8330a4a5724b603e1 Mon Sep 17 00:00:00 2001 From: liuxy Date: Fri, 30 Jun 2023 15:37:00 +0800 Subject: [PATCH 1/2] =?UTF-8?q?rev=EF=BC=9A=E5=8D=8A=E6=88=90=E5=93=81?= =?UTF-8?q?=E5=87=BA=E5=BA=93=E3=80=81=E5=8D=8A=E6=88=90=E5=93=81=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E3=80=81=E5=8D=8A=E6=88=90=E5=93=81=E7=9B=98=E7=82=B9?= =?UTF-8?q?=E3=80=81=E5=8D=8A=E6=88=90=E5=93=81=E6=8B=BC=E7=9B=98=E3=80=81?= =?UTF-8?q?=E6=88=90=E5=93=81=E5=85=A5=E5=BA=93=E4=B8=80=E4=BD=93=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/nl/common/enums/AcsTaskEnum.java | 1 + .../material/IMdMeMaterialbaseService.java | 4 + .../dao/mapper/MdMeMaterialbaseMapper.java | 5 + .../dao/mapper/MdMeMaterialbaseMapper.xml | 14 + .../impl/MdMeMaterialbaseServiceImpl.java | 7 + .../saleOrder/IMpsSaleOrderService.java | 6 + .../dao/mapper/MpsSaleOrderMapper.java | 4 + .../dao/mapper/xml/MpsSaleOrderMapper.xml | 36 +++ .../impl/MpsSaleOrderServiceImpl.java | 6 + .../nl/wms/storage_manage/pda/PDAEnum.java | 39 +++ .../pda/service/PdaStBcpInService.java | 9 + .../impl/PdaStBcpCheckServiceImpl.java | 140 +++++++++- .../service/impl/PdaStBcpInServiceImpl.java | 239 +++++++++++++++++- .../service/impl/PdaStBcpOutServiceImpl.java | 117 ++++++++- .../service/impl/PdaStBcpShutServiceImpl.java | 30 ++- .../service/impl/PdaStCpInServiceImpl.java | 237 ++++++++++++++++- .../iostorInv/IStIvtIostorinvCpService.java | 9 + .../dao/mapper/StIvtIostorinvCpMapper.java | 6 + .../dao/mapper/xml/StIvtIostorinvCpMapper.xml | 54 ++++ .../impl/StIvtIostorinvCpServiceImpl.java | 23 ++ .../storage_manage/semimanage/TASKEnum.java | 5 + .../check/IStIvtCheckmstBcpService.java | 2 + .../dao/mapper/StIvtCheckmstBcpMapper.java | 5 + .../dao/mapper/xml/StIvtCheckdtlBcpMapper.xml | 7 +- .../dao/mapper/xml/StIvtCheckmstBcpMapper.xml | 42 +++ .../impl/StIvtCheckmstBcpServiceImpl.java | 186 +++++++++++--- .../iostorInv/IStIvtIostorinvBcpService.java | 2 + .../dao/mapper/StIvtIostorinvBcpMapper.java | 3 + .../mapper/xml/StIvtIostorinvBcpMapper.xml | 40 +++ .../impl/StIvtIostorinvBcpOutServiceImpl.java | 5 + .../impl/StIvtIostorinvBcpServiceImpl.java | 12 +- .../IStIvtShutframeinvBcpService.java | 2 + .../mapper/StIvtShutframeinvBcpMapper.java | 3 + .../mapper/xml/StIvtShutframeinvBcpMapper.xml | 42 +++ .../impl/StIvtShutframeinvBcpServiceImpl.java | 5 + .../structIvt/IStIvtStructivtBcpService.java | 4 + .../dao/mapper/StIvtStructivtBcpMapper.java | 3 + .../mapper/xml/StIvtStructivtBcpMapper.xml | 67 +++++ .../impl/StIvtStructivtBcpServiceImpl.java | 10 + .../product/productIn/AddDialog.vue | 5 +- .../product/productIn/ViewDialog.vue | 4 +- .../product/productIn/index.vue | 8 +- .../product/productOut/AddDialog.vue | 4 +- .../product/productOut/ViewDialog.vue | 4 +- .../product/productOut/index.vue | 6 +- .../semiproduct/semiproductout/AddDialog.vue | 4 +- .../semiproduct/semiproductout/ViewDialog.vue | 4 +- .../semiproduct/semiproductout/index.vue | 6 +- 48 files changed, 1383 insertions(+), 93 deletions(-) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/PDAEnum.java diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/AcsTaskEnum.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/AcsTaskEnum.java index 3d99f488..3c965083 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/AcsTaskEnum.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/enums/AcsTaskEnum.java @@ -38,6 +38,7 @@ public enum AcsTaskEnum { TASK_STRUCT_CHECK("14","半成品-盘点"), TASK_STRUCT_SHUT("15","半成品-拼盘任务出"), TASK_STRUCT_SHUT_IN("16","半成品-拼盘任务入"), + TASK_STRUCT_BCP_EMPOUT("17","半成品-空托盘出库"), TASK_STRUCT_CP_IN("11","入库-成品-生产入库"), TASK_STRUCT_CP_OUT("12","出库-成品-生产出库"), TASK_STRUCT_CP_CHECK("13","成品-盘点"), diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/IMdMeMaterialbaseService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/IMdMeMaterialbaseService.java index c64e3307..048cfe18 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/IMdMeMaterialbaseService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/IMdMeMaterialbaseService.java @@ -1,8 +1,11 @@ package org.nl.wms.masterdata_manage.service.material; +import com.alibaba.fastjson.JSONObject; import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** *

* 物料基本信息表 服务类 @@ -13,4 +16,5 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface IMdMeMaterialbaseService extends IService { + List getPdaBcpGetMaterial(JSONObject whereJson); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/mapper/MdMeMaterialbaseMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/mapper/MdMeMaterialbaseMapper.java index 590823ba..db5153bd 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/mapper/MdMeMaterialbaseMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/mapper/MdMeMaterialbaseMapper.java @@ -1,8 +1,12 @@ package org.nl.wms.masterdata_manage.service.material.dao.mapper; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; +import java.util.List; +import java.util.Map; + /** *

* 物料基本信息表 Mapper 接口 @@ -13,4 +17,5 @@ import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; */ public interface MdMeMaterialbaseMapper extends BaseMapper { + List getPdaBcpGetMaterial(JSONObject map); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/mapper/MdMeMaterialbaseMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/mapper/MdMeMaterialbaseMapper.xml index f90a9350..5bce5642 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/mapper/MdMeMaterialbaseMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/dao/mapper/MdMeMaterialbaseMapper.xml @@ -2,4 +2,18 @@ + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/impl/MdMeMaterialbaseServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/impl/MdMeMaterialbaseServiceImpl.java index cd3f8b0b..536ddbcf 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/impl/MdMeMaterialbaseServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/material/impl/MdMeMaterialbaseServiceImpl.java @@ -1,11 +1,14 @@ package org.nl.wms.masterdata_manage.service.material.impl; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService; import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; import org.nl.wms.masterdata_manage.service.material.dao.mapper.MdMeMaterialbaseMapper; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 物料基本信息表 服务实现类 @@ -17,4 +20,8 @@ import org.springframework.stereotype.Service; @Service public class MdMeMaterialbaseServiceImpl extends ServiceImpl implements IMdMeMaterialbaseService { + @Override + public List getPdaBcpGetMaterial(JSONObject whereJson) { + return this.baseMapper.getPdaBcpGetMaterial(whereJson); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/IMpsSaleOrderService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/IMpsSaleOrderService.java index 7d2c3655..845f23ee 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/IMpsSaleOrderService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/IMpsSaleOrderService.java @@ -1,10 +1,14 @@ package org.nl.wms.mps_manage.ordermanage.service.saleOrder; +import com.alibaba.fastjson.JSONObject; import org.nl.common.domain.query.PageQuery; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao.MpsSaleOrder; import org.nl.wms.mps_manage.ordermanage.service.saleOrder.dto.OrderQuery; +import java.util.List; +import java.util.Map; + /** *

* 生产订单表 服务类 @@ -21,4 +25,6 @@ public interface IMpsSaleOrderService extends IService { * @return JSONObject */ Object pageQuery(OrderQuery query, PageQuery page); + + List getPdaMaterial(JSONObject json); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/mapper/MpsSaleOrderMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/mapper/MpsSaleOrderMapper.java index f6e32569..86afc6c2 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/mapper/MpsSaleOrderMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/mapper/MpsSaleOrderMapper.java @@ -1,5 +1,6 @@ package org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao.mapper; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.nl.common.domain.query.PageQuery; @@ -20,4 +21,7 @@ import java.util.Map; public interface MpsSaleOrderMapper extends BaseMapper { List pageQuery(@Param("query") OrderQuery query, @Param("pageQuery") PageQuery pageQuery); + + List getPdaMaterial(JSONObject json); + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/mapper/xml/MpsSaleOrderMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/mapper/xml/MpsSaleOrderMapper.xml index 2d2e221c..188f1f10 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/mapper/xml/MpsSaleOrderMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/mapper/xml/MpsSaleOrderMapper.xml @@ -8,6 +8,7 @@ mater.material_code, mater.material_name, mater.material_spec, + mater.net_weight AS unit_weight, unit.unit_name AS qty_unit_name FROM mps_sale_order der @@ -34,4 +35,39 @@ + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/impl/MpsSaleOrderServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/impl/MpsSaleOrderServiceImpl.java index 0e7ee167..2307e63f 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/impl/MpsSaleOrderServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/impl/MpsSaleOrderServiceImpl.java @@ -1,5 +1,6 @@ package org.nl.wms.mps_manage.ordermanage.service.saleOrder.impl; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; @@ -33,4 +34,9 @@ public class MpsSaleOrderServiceImpl extends ServiceImpl getPdaMaterial(JSONObject json) { + return this.baseMapper.getPdaMaterial(json); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/PDAEnum.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/PDAEnum.java new file mode 100644 index 00000000..38d01ae4 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/PDAEnum.java @@ -0,0 +1,39 @@ +package org.nl.wms.storage_manage.pda; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import org.apache.commons.lang3.StringUtils; +import org.nl.common.utils.MapOf; +import org.nl.modules.common.exception.BadRequestException; + +import java.util.Map; + +@AllArgsConstructor +@Getter +public enum PDAEnum { + //点位区域 + REGION_CODE(MapOf.of("半成品入库区域", "A1_BCPRK01", "半成品出库区域", "A1_BCPCK01","成品入库区域", "A1_CPRK01","半成品盘点区域", "A1_BCP_PD01")), + //库区编码 + SECT_CODE(MapOf.of("半成品库区", "KQ005")), + //库区id + SECT_ID(MapOf.of("成品库区", "1528631043496742912")), + ; + private Map code; + + public String code(String desc) { + String code = this.getCode().get(desc); + if (StringUtils.isNotEmpty(code)) { + return code; + } + throw new BadRequestException(this.name() + "对应类型" + desc + "未定义"); + } + + public String check(String code) { + for (Map.Entry entry : this.getCode().entrySet()) { + if (entry.getValue().equals("code")) { + return entry.getValue(); + } + } + throw new BadRequestException(this.name() + "对应类型" + code + "未定义"); + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/PdaStBcpInService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/PdaStBcpInService.java index bc2a0d69..ed00c916 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/PdaStBcpInService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/PdaStBcpInService.java @@ -63,4 +63,13 @@ public interface PdaStBcpInService { * @return JSONObject / */ JSONObject confirm(JSONObject whereJson); + + /** + * 任务操作 + * @param whereJson + * { + * "" + * } + */ + void taskOperate(JSONObject whereJson); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStBcpCheckServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStBcpCheckServiceImpl.java index 9cf6c869..0a895b11 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStBcpCheckServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStBcpCheckServiceImpl.java @@ -7,14 +7,22 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService; import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr; +import org.nl.wms.scheduler_manage.service.point.ISchBasePointService; +import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; import org.nl.wms.storage_manage.IOSEnum; +import org.nl.wms.storage_manage.pda.PDAEnum; import org.nl.wms.storage_manage.pda.service.PdaStBcpCheckService; +import org.nl.wms.storage_manage.semimanage.service.check.IStIvtCheckmstBcpService; +import org.nl.wms.storage_manage.semimanage.service.check.dao.StIvtCheckdtlBcp; +import org.nl.wms.storage_manage.semimanage.service.structIvt.IStIvtStructivtBcpService; import org.nl.wms.system_manage.service.dict.ISysDictService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -36,6 +44,15 @@ public class PdaStBcpCheckServiceImpl implements PdaStBcpCheckService { @Autowired private ISysDictService iSysDictService; // 字典服务 + @Autowired + private IStIvtStructivtBcpService iStIvtStructivtBcpService; // 半成品库存服务 + + @Autowired + private IStIvtCheckmstBcpService iStIvtCheckmstBcpService; // 半成品盘点主表服务 + + @Autowired + private ISchBasePointService iSchBasePointService; // 点位服务 + @Override public JSONObject getBcpStor() { List storList = storattrService.list( @@ -53,46 +70,153 @@ public class PdaStBcpCheckServiceImpl implements PdaStBcpCheckService { @Override @Transactional public JSONObject getMaterialIvt(JSONObject whereJson) { - return null; + List list = iStIvtStructivtBcpService.getPdaBcpMaterialIvt(whereJson); + + JSONObject result = new JSONObject(); + result.put("data", JSONArray.parseArray(JSON.toJSONString(list))); + result.put("message", "查询成功"); + return result; } @Override @Transactional public JSONObject create(JSONObject whereJson) { - return null; + + // 组织主表数据 + JSONObject param = new JSONObject(); + param.put("check_type", whereJson.getString("check_type")); + param.put("stor_id", whereJson.getString("stor_id")); + param.put("remark", whereJson.getString("remark")); + + // 组织明细数据 + JSONArray tableData = new JSONArray(); + + JSONArray rows = whereJson.getJSONArray("rows"); + + for (int i = 0; i < rows.size(); i++) { + JSONObject json = rows.getJSONObject(i); + + JSONObject row = new JSONObject(); + row.put("sect_id", json.getString("sect_id")); + row.put("sect_name", json.getString("sect_name")); + row.put("struct_id", json.getString("struct_id")); + row.put("struct_name", json.getString("struct_name")); + row.put("storagevehicle_code", json.getString("storagevehicle_code")); + row.put("material_id", json.getString("material_id")); + row.put("base_qty", json.getString("base_qty")); + row.put("qty_unit_id", json.getString("qty_unit_id")); + row.put("qty_unit_name", json.getString("qty_unit_name")); + + tableData.add(row); + } + + param.put("tableData",tableData); + iStIvtCheckmstBcpService.create(param); + + JSONObject result = new JSONObject(); + result.put("data", ""); + result.put("message", "生成成功"); + return result; } @Override public JSONObject getDtlAll(JSONObject whereJson) { - return null; + List list = iStIvtCheckmstBcpService.getPdaDtlAll(whereJson); + + JSONObject result = new JSONObject(); + result.put("data", JSONArray.parseArray(JSON.toJSONString(list))); + result.put("message", "查询成功"); + return result; } @Override public JSONObject getPoint() { - return null; + List pointList = iSchBasePointService.list( + new QueryWrapper().lambda() + .eq(SchBasePoint::getRegion_code, PDAEnum.REGION_CODE.code("半成品盘点区域")) + .eq(SchBasePoint::getIs_used, IOSEnum.IS_USED.code("是")) + ); + + JSONObject result = new JSONObject(); + result.put("data", JSONArray.parseArray(JSON.toJSONString(pointList))); + result.put("message", "查询成功"); + return result; } @Override @Transactional public JSONObject sendTask(JSONObject whereJson) { - return null; + iStIvtCheckmstBcpService.issueTask(whereJson); + + JSONObject result = new JSONObject(); + result.put("data", ""); + result.put("message", "下发成功"); + return result; } @Override @Transactional public JSONObject confirm(JSONObject whereJson) { - return null; + JSONArray rows = whereJson.getJSONArray("rows"); + + List dtlList = JSON.parseArray(JSON.toJSONString(rows), StIvtCheckdtlBcp.class); + + // 根据主表进行分组 + Map> collect = dtlList.stream() + .collect(Collectors.groupingBy(StIvtCheckdtlBcp::getCheck_id)); + + for (List list : collect.values()) { + // 调用PC确认服务 + JSONObject param = new JSONObject(); + + JSONObject row = new JSONObject(); + row.put("check_id", list.get(0).getCheck_id()); + + param.put("row",row); + param.put("rows", JSONArray.parseArray(JSON.toJSONString(list))); + + iStIvtCheckmstBcpService.confirm(param); + } + + JSONObject result = new JSONObject(); + result.put("data", ""); + result.put("message", "确认成功"); + return result; } @Override @Transactional public JSONObject confirmOffer(JSONObject whereJson) { - return null; + JSONObject param = new JSONObject(); + + JSONObject form = new JSONObject(); + form.put("check_id", whereJson.getString("check_id")); + param.put("form",form); + param.put("row", whereJson); + + iStIvtCheckmstBcpService.process1(param); + + JSONObject result = new JSONObject(); + result.put("data", ""); + result.put("message", "操作成功"); + return result; } @Override @Transactional public JSONObject confirmFinance(JSONObject whereJson) { - return null; + JSONObject param = new JSONObject(); + + JSONObject form = new JSONObject(); + form.put("check_id", whereJson.getString("check_id")); + param.put("form",form); + param.put("row", whereJson); + + iStIvtCheckmstBcpService.process0(param); + + JSONObject result = new JSONObject(); + result.put("data", ""); + result.put("message", "操作成功"); + return result; } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStBcpInServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStBcpInServiceImpl.java index cb920974..d762ab20 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStBcpInServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStBcpInServiceImpl.java @@ -1,14 +1,40 @@ package org.nl.wms.storage_manage.pda.service.impl; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.json.JSONUtil; +import com.alibaba.druid.sql.visitor.functions.If; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import org.nl.common.enums.AcsTaskEnum; +import org.nl.common.publish.BussEventMulticaster; +import org.nl.common.publish.event.PointEvent; +import org.nl.common.utils.IdUtil; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.wms.ext.acs.service.WmsToAcsService; +import org.nl.wms.masterdata_manage.service.master.IMdPbMeasureunitService; +import org.nl.wms.masterdata_manage.service.master.dao.MdPbMeasureunit; +import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService; +import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService; import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; +import org.nl.wms.product_manage.sch.manage.TaskStatusEnum; +import org.nl.wms.scheduler_manage.service.point.ISchBasePointService; +import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; +import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; +import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; import org.nl.wms.storage_manage.IOSEnum; +import org.nl.wms.storage_manage.IVTEnum; +import org.nl.wms.storage_manage.pda.PDAEnum; import org.nl.wms.storage_manage.pda.service.PdaStBcpInService; +import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpService; import org.nl.wms.system_manage.service.dict.ISysDictService; import org.nl.wms.system_manage.service.dict.dao.Dict; import org.springframework.beans.factory.annotation.Autowired; @@ -16,6 +42,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Map; +import java.util.function.Consumer; /** *

@@ -37,6 +65,21 @@ public class PdaStBcpInServiceImpl implements PdaStBcpInService { @Autowired private ISysDictService iSysDictService; // 字典服务 + @Autowired + private IMdMeMaterialbaseService iMdMeMaterialbaseService; // 物料服务 + + @Autowired + private IMdPbMeasureunitService iMdPbMeasureunitService; // 计量单位服务 + + @Autowired + private ISchBasePointService iSchBasePointService; // 点位服务 + + @Autowired + private ISchBaseTaskService iSchBaseTaskService; // 任务服务 + + @Autowired + private IStIvtIostorinvBcpService iStIvtIostorinvBcpService; // PC半成品入库服务 + @Override public JSONObject getBcpStor() { List storList = storattrService.list( @@ -63,34 +106,218 @@ public class PdaStBcpInServiceImpl implements PdaStBcpInService { @Override public JSONObject getMaterial(JSONObject whereJson) { - return null; + List list = iMdMeMaterialbaseService.getPdaBcpGetMaterial(whereJson); + + JSONObject result = new JSONObject(); + result.put("data", JSONArray.parseArray(JSON.toJSONString(list))); + result.put("message", "查询成功"); + return result; } @Override public JSONObject getPoint() { - return null; + List pointList = iSchBasePointService.list( + new QueryWrapper().lambda() + .eq(SchBasePoint::getRegion_code, PDAEnum.REGION_CODE.code("半成品入库区域")) + .eq(SchBasePoint::getIs_used, IOSEnum.IS_USED.code("是")) + ); + + JSONObject result = new JSONObject(); + result.put("data", JSONArray.parseArray(JSON.toJSONString(pointList))); + result.put("message", "查询成功"); + return result; } @Override @Transactional public JSONObject callVehicle() { - return null; + // 1.查入库点位 + SchBasePoint pointDao = iSchBasePointService.getOne( + new QueryWrapper().lambda() + .eq(SchBasePoint::getRegion_code, PDAEnum.REGION_CODE.code("半成品入库区域")) + .eq(SchBasePoint::getIs_used, IOSEnum.IS_USED.code("是")), false + ); + + // 2.判断此入库点是否有正在执行的任务 + List taskList = iSchBaseTaskService.list( + new QueryWrapper().lambda() + .eq(SchBaseTask::getIs_delete, false) + .ne(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()) + .and(qr -> qr.eq(SchBaseTask::getPoint_code1, pointDao.getPoint_code()) + .or() + .eq(SchBaseTask::getPoint_code2, pointDao.getPoint_code()) + ) + ); + + if (ObjectUtil.isNotEmpty(taskList)) throw new BadRequestException("有正在执行中的任务,请稍后在尝试!"); + + // 3.找一个空载具 + StIvtStructattr attrDao = structattrService.getOne( + new QueryWrapper().lambda() + .eq(StIvtStructattr::getIs_emptyvehicle,IOSEnum.IS_USED.code("是")) + .eq(StIvtStructattr::getSect_code, PDAEnum.SECT_CODE.code("半成品库区")) + .eq(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) + .eq(StIvtStructattr::getIs_used,true) + .and(qr -> qr.isNotNull(StIvtStructattr::getStoragevehicle_code) + .or() + .ne(StIvtStructattr::getStoragevehicle_code, "") + ),false + ); + + if (ObjectUtil.isEmpty(attrDao)) throw new BadRequestException("未找到空载具!"); + + // 4.创建任务 + PointEvent event = PointEvent.builder() + .type(AcsTaskEnum.TASK_STRUCT_BCP_EMPOUT.getCode()) + .acs_task_type("7") + .task_group_id(IdUtil.getStringId()) + .point_code1(attrDao.getStruct_code()) + .point_code2(pointDao.getPoint_code()) + .vehicle_code(attrDao.getStoragevehicle_code()) + .product_area("A1") // 暂时写死 + .build(); + BussEventMulticaster.Publish(event); + + // 5.锁住仓位 + attrDao.setLock_type(IOSEnum.LOCK_TYPE.code("其他锁")); + structattrService.updateById(attrDao); + + + // 6.下发任务 + String task_id = iSchBaseTaskService.getOne( + new QueryWrapper().lambda() + .eq(SchBaseTask::getTask_group_id, event.getTask_group_id()) + ).getTask_id(); + + sendTask(task_id); + + // 反馈 + JSONObject result = new JSONObject(); + result.put("data", ""); + result.put("message", "下发成功"); + return result; } @Override @Transactional public JSONObject createIn(JSONObject whereJson) { - return null; + + // 组织数据 + JSONObject param = new JSONObject(); + param.put("biz_date", DateUtil.today()); + param.put("bill_type", whereJson.getString("bill_type")); + param.put("remark", whereJson.getString("remark")); + param.put("product_code", "A1"); + param.put("point_code", whereJson.getString("point_code")); + param.put("stor_id", whereJson.getString("stor_id")); + param.put("auto_send", true); + + JSONArray tableData = new JSONArray(); + JSONObject row = new JSONObject(); + row.put("material_id", whereJson.getString("material_id")); + row.put("plan_qty", whereJson.getString("total_qty")); + row.put("quality_scode", IVTEnum.QUALITY_SCODE.code("合格品")); + + MdMeMaterialbase materDao = iMdMeMaterialbaseService.getById(whereJson.getString("material_id")); + MdPbMeasureunit unitDao = iMdPbMeasureunitService.getById(materDao.getBase_unit_id()); + + row.put("base_unit_id", unitDao.getMeasure_unit_id()); + row.put("base_unit_name", unitDao.getUnit_name()); + row.put("unit_weight", whereJson.getString("unit_weight")); + row.put("storagevehicle_code", whereJson.getString("storagevehicle_code")); + + tableData.add(row); + param.put("tableData",tableData); + + // 调用PC半成品入库服务 + iStIvtIostorinvBcpService.create(param); + + // 反馈 + JSONObject result = new JSONObject(); + result.put("data", ""); + result.put("message", "入库成功"); + return result; } @Override public JSONObject getAll(JSONObject whereJson) { - return null; + whereJson.put("io_type", IOSEnum.IO_TYPE.code("入库")); + List pdaAll = iStIvtIostorinvBcpService.getPdaAll(whereJson); + + JSONObject result = new JSONObject(); + result.put("data", JSONArray.parseArray(JSON.toJSONString(pdaAll))); + result.put("message", "查询成功"); + return result; } @Override @Transactional public JSONObject confirm(JSONObject whereJson) { - return null; + iStIvtIostorinvBcpService.confirm(whereJson); + + JSONObject result = new JSONObject(); + result.put("data", ""); + result.put("message", "确认成功"); + return result; } + + @Override + public void taskOperate(JSONObject form) { + String task_id = form.getString("task_id"); + String status = form.getString("status"); + + SchBaseTask taskDao = iSchBaseTaskService.getById(task_id); + + // 更新任务状态为完成 + if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) { + + // 更新任务为完成 + taskDao.setTask_status(TaskStatusEnum.FINISHED.getCode()); + + // 解锁仓位 + structattrService.update( + new UpdateWrapper().lambda() + .set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) + .eq(StIvtStructattr::getStruct_code, taskDao.getPoint_code1()) + ); + + } else if (status.equals(AcsTaskEnum.STATUS_START.getCode())) { + // 更新任务为执行中 + taskDao.setTask_status(TaskStatusEnum.EXECUTING.getCode()); + + } else if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) { + // 取消任务 + taskDao.setTask_status(TaskStatusEnum.CANCEL.getCode()); + + // 解锁仓位 + structattrService.update( + new UpdateWrapper().lambda() + .set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) + .eq(StIvtStructattr::getStruct_code, taskDao.getPoint_code1()) + ); + } + iSchBaseTaskService.updateById(taskDao); + } + + public void sendTask(String task_id) { + + SchBaseTask taskDao = iSchBaseTaskService.getById(task_id); + JSONArray param = new JSONArray(); + param.add(JSON.parseObject(JSONUtil.toJsonStr(taskDao))); + // 1.下发任务 + WmsToAcsService bean = SpringContextHolder.getBean(WmsToAcsService.class); + Map result = bean.issueTaskToAcs3(param); + + // 反馈失败报错 + if (!ObjectUtil.equal(MapUtil.getStr(result, "status"),"200")) { + throw new BadRequestException("下发失败:"+MapUtil.getStr(result, "message")); + } + + // 2.更新任务状态 + taskDao.setTask_status(TaskStatusEnum.ISSUE.getCode()); + iSchBaseTaskService.updateById(taskDao); + + } + + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStBcpOutServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStBcpOutServiceImpl.java index 04b210ed..100f3cd5 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStBcpOutServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStBcpOutServiceImpl.java @@ -1,14 +1,28 @@ package org.nl.wms.storage_manage.pda.service.impl; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.nl.wms.masterdata_manage.service.master.IMdPbMeasureunitService; +import org.nl.wms.masterdata_manage.service.master.dao.MdPbMeasureunit; +import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService; +import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService; import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; +import org.nl.wms.scheduler_manage.service.point.ISchBasePointService; +import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; import org.nl.wms.storage_manage.IOSEnum; +import org.nl.wms.storage_manage.IVTEnum; +import org.nl.wms.storage_manage.pda.PDAEnum; import org.nl.wms.storage_manage.pda.service.PdaStBcpOutService; +import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpOutService; +import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpService; +import org.nl.wms.storage_manage.semimanage.service.structIvt.IStIvtStructivtBcpService; import org.nl.wms.system_manage.service.dict.ISysDictService; import org.nl.wms.system_manage.service.dict.dao.Dict; import org.springframework.beans.factory.annotation.Autowired; @@ -16,6 +30,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Map; /** *

@@ -37,6 +52,24 @@ public class PdaStBcpOutServiceImpl implements PdaStBcpOutService { @Autowired private ISysDictService iSysDictService; // 字典服务 + @Autowired + private IStIvtStructivtBcpService iStIvtStructivtBcpService; // 半成品库存服务 + + @Autowired + private ISchBasePointService iSchBasePointService; // 点位服务 + + @Autowired + private IMdMeMaterialbaseService iMdMeMaterialbaseService; // 物料服务 + + @Autowired + private IMdPbMeasureunitService iMdPbMeasureunitService; // 计量单位服务 + + @Autowired + private IStIvtIostorinvBcpOutService iStIvtIostorinvBcpOutService; // 半成品出库服务 + + @Autowired + private IStIvtIostorinvBcpService iStIvtIostorinvBcpService; // PC半成品入库服务 + @Override public JSONObject getBcpStor() { List storList = storattrService.list( @@ -53,7 +86,7 @@ public class PdaStBcpOutServiceImpl implements PdaStBcpOutService { @Override public JSONObject getBillType() { - List dictList = iSysDictService.getDictByName("ST_INV_BCP_IN_TYPE"); + List dictList = iSysDictService.getDictByName("ST_INV_BCP_OUT_TYPE"); JSONObject result = new JSONObject(); result.put("data", JSONArray.parseArray(JSON.toJSONString(dictList))); @@ -63,28 +96,100 @@ public class PdaStBcpOutServiceImpl implements PdaStBcpOutService { @Override public JSONObject getMaterial(JSONObject whereJson) { - return null; + List list = iStIvtStructivtBcpService.getPdaBcpIvt(whereJson); + + JSONObject result = new JSONObject(); + result.put("data", JSONArray.parseArray(JSON.toJSONString(list))); + result.put("message", "查询成功"); + return result; } @Override public JSONObject getPoint() { - return null; + List pointList = iSchBasePointService.list( + new QueryWrapper().lambda() + .eq(SchBasePoint::getRegion_code, PDAEnum.REGION_CODE.code("半成品出库区域")) + .eq(SchBasePoint::getIs_used, IOSEnum.IS_USED.code("是")) + ); + + JSONObject result = new JSONObject(); + result.put("data", JSONArray.parseArray(JSON.toJSONString(pointList))); + result.put("message", "查询成功"); + return result; } @Override @Transactional public JSONObject createIn(JSONObject whereJson) { - return null; + // 组织数据 + JSONObject param = new JSONObject(); + param.put("biz_date", DateUtil.today()); + param.put("bill_type", whereJson.getString("bill_type")); + param.put("remark", whereJson.getString("remark")); + param.put("product_code", "A1"); + param.put("point_code", whereJson.getString("point_code")); + param.put("stor_id", whereJson.getString("stor_id")); + param.put("auto_send", true); + + JSONArray tableData = new JSONArray(); + JSONObject row = new JSONObject(); + row.put("material_id", whereJson.getString("material_id")); + row.put("plan_qty", whereJson.getString("total_qty")); + row.put("quality_scode", IVTEnum.QUALITY_SCODE.code("合格品")); + + MdMeMaterialbase materDao = iMdMeMaterialbaseService.getById(whereJson.getString("material_id")); + MdPbMeasureunit unitDao = iMdPbMeasureunitService.getById(materDao.getBase_unit_id()); + + row.put("qty_unit_id", unitDao.getMeasure_unit_id()); + row.put("qty_unit_name", unitDao.getUnit_name()); + row.put("unit_weight", whereJson.getString("unit_weight")); + row.put("storagevehicle_code", whereJson.getString("storagevehicle_code")); + + StIvtStructattr attrDao = structattrService.getOne( + new QueryWrapper().lambda() + .eq(StIvtStructattr::getStruct_code, whereJson.getString("struct_code")) + .eq(StIvtStructattr::getIs_used, IOSEnum.IS_USED.code("是")), false + ); + + row.put("sect_id", attrDao.getSect_id()); + row.put("sect_code", attrDao.getSect_code()); + row.put("sect_name", attrDao.getSect_name()); + row.put("struct_id", attrDao.getStruct_id()); + row.put("struct_code", attrDao.getStruct_code()); + row.put("struct_name", attrDao.getStruct_name()); + + tableData.add(row); + param.put("tableData",tableData); + + // 调用PC半成品出库服务 + iStIvtIostorinvBcpOutService.create(param); + + // 反馈 + JSONObject result = new JSONObject(); + result.put("data", ""); + result.put("message", "出库成功"); + return result; } @Override public JSONObject getAll(JSONObject whereJson) { - return null; + whereJson.put("io_type", IOSEnum.IO_TYPE.code("出库")); + List pdaAll = iStIvtIostorinvBcpService.getPdaAll(whereJson); + + JSONObject result = new JSONObject(); + result.put("data", JSONArray.parseArray(JSON.toJSONString(pdaAll))); + result.put("message", "查询成功"); + return result; } @Override @Transactional public JSONObject confirm(JSONObject whereJson) { - return null; + iStIvtIostorinvBcpOutService.confirm(whereJson); + + JSONObject result = new JSONObject(); + result.put("data", ""); + result.put("message", "确认成功"); + return result; } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStBcpShutServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStBcpShutServiceImpl.java index 6650ca45..efb921eb 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStBcpShutServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStBcpShutServiceImpl.java @@ -9,12 +9,15 @@ import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrServ import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr; import org.nl.wms.storage_manage.IOSEnum; import org.nl.wms.storage_manage.pda.service.PdaStBcpShutService; +import org.nl.wms.storage_manage.semimanage.service.shutFrame.IStIvtShutframeinvBcpService; import org.nl.wms.system_manage.service.dict.ISysDictService; +import org.nl.wms.system_manage.service.dict.dao.Dict; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Map; /** *

@@ -27,15 +30,15 @@ import java.util.List; @Service public class PdaStBcpShutServiceImpl implements PdaStBcpShutService { - @Autowired - private IStIvtStructattrService structattrService; // 仓位服务 - @Autowired private IStIvtBsrealstorattrService storattrService; // 实物属性服务 @Autowired private ISysDictService iSysDictService; // 字典服务 + @Autowired + private IStIvtShutframeinvBcpService iStIvtShutframeinvBcpService; // 半成品拼盘服务 + @Override public JSONObject getBcpStor() { List storList = storattrService.list( @@ -52,17 +55,32 @@ public class PdaStBcpShutServiceImpl implements PdaStBcpShutService { @Override public JSONObject getBillType() { - return null; + List dictList = iSysDictService.getDictByName("SHUTFRAME_BILL_STATUS"); + + JSONObject result = new JSONObject(); + result.put("data", JSONArray.parseArray(JSON.toJSONString(dictList))); + result.put("message", "查询成功"); + return result; } @Override public JSONObject getdtl(JSONObject whereJson) { - return null; + List list = iStIvtShutframeinvBcpService.getPdaAll(whereJson); + + JSONObject result = new JSONObject(); + result.put("data", JSONArray.parseArray(JSON.toJSONString(list))); + result.put("message", "查询成功"); + return result; } @Override @Transactional public JSONObject confirm(JSONObject whereJson) { - return null; + iStIvtShutframeinvBcpService.confirmOne(whereJson); + + JSONObject result = new JSONObject(); + result.put("data", ""); + result.put("message", "拼盘成功"); + return result; } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStCpInServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStCpInServiceImpl.java index e40e17f8..6cd160be 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStCpInServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStCpInServiceImpl.java @@ -1,14 +1,25 @@ package org.nl.wms.storage_manage.pda.service.impl; +import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.nl.modules.system.util.CodeUtil; import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService; import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr; +import org.nl.wms.mps_manage.ordermanage.service.saleOrder.IMpsSaleOrderService; +import org.nl.wms.scheduler_manage.service.point.ISchBasePointService; +import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; import org.nl.wms.storage_manage.IOSEnum; +import org.nl.wms.storage_manage.pda.PDAEnum; import org.nl.wms.storage_manage.pda.service.PdaStCpInService; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpService; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisCpService; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdtlCpService; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp; import org.nl.wms.system_manage.service.dict.ISysDictService; import org.nl.wms.system_manage.service.dict.dao.Dict; import org.springframework.beans.factory.annotation.Autowired; @@ -16,6 +27,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Map; /** *

@@ -37,12 +49,27 @@ public class PdaStCpInServiceImpl implements PdaStCpInService { @Autowired private ISysDictService iSysDictService; // 字典服务 + @Autowired + private ISchBasePointService iSchBasePointService; // 点位服务 + + @Autowired + private IMpsSaleOrderService iMpsSaleOrderService; // 订单服务 + + @Autowired + private IStIvtIostorinvCpService iStIvtIostorinvCpService; // 成品入库服务 + + @Autowired + protected IStIvtIostorinvdtlCpService iostorinvdtlCpService; // 成品出入库明细表服务 + + @Autowired + protected IStIvtIostorinvdisCpService iostorinvdisCpService; // 成品出入库分配表服务 + @Override public JSONObject getBcpStor() { List storList = storattrService.list( new QueryWrapper().lambda() .eq(StIvtBsrealstorattr::getIs_used, IOSEnum.IS_USED.code("是")) - .eq(StIvtBsrealstorattr::getStor_id, IOSEnum.STOR_CODE.code("半成品仓库")) + .eq(StIvtBsrealstorattr::getStor_id, IOSEnum.STOR_CODE.code("成品库")) ); JSONObject result = new JSONObject(); @@ -53,7 +80,7 @@ public class PdaStCpInServiceImpl implements PdaStCpInService { @Override public JSONObject getBillType() { - List dictList = iSysDictService.getDictByName("ST_INV_BCP_IN_TYPE"); + List dictList = iSysDictService.getDictByName("ST_INV_CP_IN_TYPE"); JSONObject result = new JSONObject(); result.put("data", JSONArray.parseArray(JSON.toJSONString(dictList))); @@ -63,29 +90,225 @@ public class PdaStCpInServiceImpl implements PdaStCpInService { @Override public JSONObject getPoint() { - return null; + List pointList = iSchBasePointService.list( + new QueryWrapper().lambda() + .eq(SchBasePoint::getRegion_code, PDAEnum.REGION_CODE.code("成品入库区域")) + .eq(SchBasePoint::getIs_used, IOSEnum.IS_USED.code("是")) + ); + + JSONObject result = new JSONObject(); + result.put("data", JSONArray.parseArray(JSON.toJSONString(pointList))); + result.put("message", "查询成功"); + return result; } @Override public JSONObject getMaterial(JSONObject whereJson) { - return null; + List list = iMpsSaleOrderService.getPdaMaterial(whereJson); + + JSONObject result = new JSONObject(); + result.put("data", JSONArray.parseArray(JSON.toJSONString(list))); + result.put("message", "查询成功"); + return result; } @Override @Transactional public JSONObject confirmIn(JSONObject whereJson) { - return null; + /* + * 入库单创建 + */ + // 1.组织入库数据 + JSONObject paramIn = createInData(whereJson); + + // 2.调用PC成品入库服务创建入库单 + String iostorinv_id = iStIvtIostorinvCpService.createPda(paramIn); + + /* + * 组盘 + */ + // 1.组织拼盘数据 + whereJson.put("iostorinv_id", iostorinv_id); + JSONObject paramVehicle = createVehicleData(whereJson); + + // 2.调用PC成品入库服务拼盘 + iStIvtIostorinvCpService.confirmvehicle(paramVehicle); + + /* + * 分配货位 + */ + // 1.组织分配货位数据 + JSONObject paramDiv = createDivData(whereJson); + + // 2.调用PC成品入库服务分配货位 + iStIvtIostorinvCpService.divStruct(whereJson); + + /* + * 设置起点 + */ + // 1.组织设置起点数据 + JSONObject paramPoint = createPointData(whereJson); + + // 2.调用PC成品入库服务设置起点 + iStIvtIostorinvCpService.setPoint(paramPoint); + + /* + * 下发任务 + */ + // 1.组织下发任务数据 + JSONObject paramTask = createTaskData(whereJson); + + // 2.调用PC成品入库服务下发任务 + iStIvtIostorinvCpService.sendTask(paramTask); + + JSONObject result = new JSONObject(); + result.put("data", ""); + result.put("message", "入库成功"); + return result; } @Override public JSONObject getAll(JSONObject whereJson) { - return null; + List list = iStIvtIostorinvCpService.getPdaAll(whereJson); + + JSONObject result = new JSONObject(); + result.put("data", JSONArray.parseArray(JSON.toJSONString(list))); + result.put("message", "查询成功"); + return result; } @Override @Transactional public JSONObject confirm(JSONObject whereJson) { - return null; + iStIvtIostorinvCpService.confirm(whereJson); + + JSONObject result = new JSONObject(); + result.put("data", ""); + result.put("message", "确认成功"); + return result; + } + + /** + * 组织入库数据 + * @param whereJson / + * @return JSONObject + */ + public JSONObject createInData(JSONObject whereJson) { + // 1.组织主表数据 + JSONObject param = new JSONObject(); + param.put("bill_type", whereJson.getString("bill_type")); + param.put("biz_date", DateUtil.today()); + param.put("stor_id", whereJson.getString("stor_id")); + param.put("point_code", whereJson.getString("point_code")); + param.put("remark", whereJson.getString("remark")); + + // 2.组织明细数据 + JSONArray tableData = new JSONArray(); + double total_qty = 0; + JSONArray rows = whereJson.getJSONArray("rows"); + for (int i = 0; i < rows.size(); i++) { + JSONObject json = rows.getJSONObject(i); + + JSONObject row = new JSONObject(); + row.put("base_bill_code", json.getString("sale_code")); + row.put("base_bill_table", json.getString("seq_no")); + row.put("material_code", json.getString("material_code")); + row.put("plan_qty", json.getString("sale_qty")); + row.put("qty_unit_id", json.getString("qty_unit_id")); + row.put("qty_unit_name", json.getString("qty_unit_name")); + row.put("unit_weight", json.getString("unit_weight")); + + total_qty += json.getDoubleValue("sale_qty"); + tableData.add(row); + } + param.put("total_qty", total_qty); + param.put("tableData",tableData); + + return param; + } + + /** + * 组织拼盘数据 + * @param whereJson / + * @return JSONObject + */ + public JSONObject createVehicleData(JSONObject whereJson) { + JSONObject param = new JSONObject(); + param.put("vehicle_code", CodeUtil.getNewCode("VEHICCLE_CODE_CDMTP")); + + JSONArray tableMater = new JSONArray(); + // 查找明细 + List dtlList = iostorinvdtlCpService.list( + new QueryWrapper().lambda() + .eq(StIvtIostorinvdtlCp::getIostorinv_id, whereJson.getString("iostorinv_id")) + ); + + for (StIvtIostorinvdtlCp dao : dtlList) { + JSONObject row = new JSONObject(); + + row.put("storagevehicle_code", param.getString("vehicle_code")); + row.put("iostorinvdtl_id", dao.getIostorinvdtl_id()); + row.put("material_id", dao.getMaterial_id()); + row.put("qty", dao.getPlan_qty()); + tableMater.add(row); + } + + param.put("tableMater",tableMater); + return param; + } + + /** + * 组织分配数据 + * @param whereJson / + * @return JSONObject + */ + public JSONObject createDivData(JSONObject whereJson) { + // 查找一条分配 + StIvtIostorinvdisCp disDao = iostorinvdisCpService.getOne( + new QueryWrapper().lambda() + .eq(StIvtIostorinvdisCp::getIostorinv_id, whereJson.getString("iostorinv_id")), + false + ); + + JSONObject param = JSONObject.parseObject(JSON.toJSONString(disDao)); + param.put("vehicle_overstruct_type",IOSEnum.VEHICLE_OVER_TYPE.code("标准")); + param.put("stor_id",IOSEnum.STOR_CODE.code("成品库")); + param.put("sect_id",PDAEnum.SECT_ID.code("成品库区")); + return param; + } + + /** + * 组织设置起点数据 + * @param whereJson / + * @return JSONObject + */ + public JSONObject createPointData(JSONObject whereJson) { + // 查找一条分配 + StIvtIostorinvdisCp disDao = iostorinvdisCpService.getOne( + new QueryWrapper().lambda() + .eq(StIvtIostorinvdisCp::getIostorinv_id, whereJson.getString("iostorinv_id")), + false + ); + + JSONObject param = JSONObject.parseObject(JSON.toJSONString(disDao)); + param.put("point_code",whereJson.getString("point_code")); + return param; + } + + /** + * 组织下发任务数据 + * @param whereJson / + * @return JSONObject + */ + public JSONObject createTaskData(JSONObject whereJson) { + // 查找一条分配 + StIvtIostorinvdisCp disDao = iostorinvdisCpService.getOne( + new QueryWrapper().lambda() + .eq(StIvtIostorinvdisCp::getIostorinv_id, whereJson.getString("iostorinv_id")), + false + ); + + return JSONObject.parseObject(JSON.toJSONString(disDao)); } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpService.java index 90e91f5e..19427c19 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpService.java @@ -7,6 +7,7 @@ import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostor import org.nl.wms.storage_manage.productmanage.service.iostorInv.dto.IostorInvQuery; import java.util.List; +import java.util.Map; /** *

@@ -31,6 +32,12 @@ public interface IStIvtIostorinvCpService extends IService { */ void create(JSONObject form); + /** + * 一体机创建 + * @param form / + */ + String createPda(JSONObject form); + /** * 更新相关联的表 * @param form / @@ -189,4 +196,6 @@ public interface IStIvtIostorinvCpService extends IService { * } */ void confirmTask(JSONObject whereJson); + + List getPdaAll(JSONObject whereJson); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/StIvtIostorinvCpMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/StIvtIostorinvCpMapper.java index 85c91aa6..cb4fff92 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/StIvtIostorinvCpMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/StIvtIostorinvCpMapper.java @@ -1,8 +1,12 @@ package org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvCp; +import java.util.List; +import java.util.Map; + /** *

* 出入库单主表 Mapper 接口 @@ -13,4 +17,6 @@ import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostor */ public interface StIvtIostorinvCpMapper extends BaseMapper { + List getPdaAll(JSONObject whereJson); + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvCpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvCpMapper.xml index 60f2bec3..af51c100 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvCpMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvCpMapper.xml @@ -2,4 +2,58 @@ + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java index ceb13b1c..f98368b1 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java @@ -154,6 +154,24 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl getPdaAll(JSONObject whereJson) { + return this.baseMapper.getPdaAll(whereJson); + } + @NotNull private StIvtIostorinvCp packageMstForm(StIvtIostorinvCp stIvtIostorinvCp,JSONObject whereJson,Boolean isUpdate) { JSONArray rows = whereJson.getJSONArray("tableData"); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/TASKEnum.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/TASKEnum.java index 1d3d8057..73b783c1 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/TASKEnum.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/TASKEnum.java @@ -5,6 +5,7 @@ import lombok.AllArgsConstructor; import lombok.Getter; import org.nl.common.enums.AcsTaskEnum; import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.wms.storage_manage.pda.service.PdaStBcpInService; import org.nl.wms.storage_manage.productmanage.service.check.IStIvtCheckmstCpService; import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpOutService; import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpService; @@ -40,6 +41,10 @@ public enum TASKEnum implements FunctionStrategy { IStIvtShutframeinvBcpService bean = SpringContextHolder.getBean(IStIvtShutframeinvBcpService.class); bean.taskOperate2(form); }), + EMP_TASK_OUT(type -> AcsTaskEnum.TASK_STRUCT_BCP_EMPOUT.getCode().equals(type), form -> { + PdaStBcpInService bean = SpringContextHolder.getBean(PdaStBcpInService.class); + bean.taskOperate(form); + }), CP_IN_TASK(type -> AcsTaskEnum.TASK_STRUCT_CP_IN.getCode().equals(type), form -> { IStIvtIostorinvCpService bean = SpringContextHolder.getBean(IStIvtIostorinvCpService.class); bean.taskOperate(form); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/IStIvtCheckmstBcpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/IStIvtCheckmstBcpService.java index 75b0f8fa..3c491215 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/IStIvtCheckmstBcpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/IStIvtCheckmstBcpService.java @@ -52,4 +52,6 @@ public interface IStIvtCheckmstBcpService extends IService { void issueTask(JSONObject jo); void taskOperate(JSONObject jo); + + List getPdaDtlAll(JSONObject jo); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/mapper/StIvtCheckmstBcpMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/mapper/StIvtCheckmstBcpMapper.java index 877b8b58..063f4840 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/mapper/StIvtCheckmstBcpMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/mapper/StIvtCheckmstBcpMapper.java @@ -1,8 +1,12 @@ package org.nl.wms.storage_manage.semimanage.service.check.dao.mapper; +import com.alibaba.fastjson.JSONObject; import org.nl.wms.storage_manage.semimanage.service.check.dao.StIvtCheckmstBcp; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import java.util.List; +import java.util.Map; + /** *

* 盘点单主表 Mapper 接口 @@ -13,4 +17,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface StIvtCheckmstBcpMapper extends BaseMapper { + List getPdaDtlAll(JSONObject jo); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/mapper/xml/StIvtCheckdtlBcpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/mapper/xml/StIvtCheckdtlBcpMapper.xml index 48a0ce45..5fd422bc 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/mapper/xml/StIvtCheckdtlBcpMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/mapper/xml/StIvtCheckdtlBcpMapper.xml @@ -43,10 +43,15 @@ dtl.* FROM sch_base_task task - LEFT JOIN st_ivt_structattr sa ON sa.struct_code = task.point_code2 + LEFT JOIN st_ivt_structattr sa ON (sa.struct_code = task.point_code2 OR sa.struct_code = task.point_code1) LEFT JOIN st_ivt_checkdtl_bcp dtl ON dtl.struct_id = sa.struct_id + LEFT JOIN st_ivt_checkmst_bcp mst ON mst.check_id = dtl.check_id task.task_id = #{map.task_id} + AND + dtl.`status` not IN ('01','99') + AND + mst.is_delete = '0' diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/mapper/xml/StIvtCheckmstBcpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/mapper/xml/StIvtCheckmstBcpMapper.xml index 290f1010..1b2ffa05 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/mapper/xml/StIvtCheckmstBcpMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/mapper/xml/StIvtCheckmstBcpMapper.xml @@ -2,4 +2,46 @@ + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/impl/StIvtCheckmstBcpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/impl/StIvtCheckmstBcpServiceImpl.java index 58b0e6a7..63362e7b 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/impl/StIvtCheckmstBcpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/impl/StIvtCheckmstBcpServiceImpl.java @@ -38,6 +38,8 @@ import org.nl.wms.scheduler_manage.service.point.dao.mapper.SchBasePointMapper; import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; import org.nl.wms.storage_manage.CHECKEnum; +import org.nl.wms.storage_manage.IOSEnum; +import org.nl.wms.storage_manage.pda.PDAEnum; import org.nl.wms.storage_manage.semimanage.MLEnum; import org.nl.wms.storage_manage.semimanage.service.check.IStIvtCheckdtlBcpService; import org.nl.wms.storage_manage.semimanage.service.check.IStIvtCheckmstBcpService; @@ -46,6 +48,7 @@ import org.nl.wms.storage_manage.semimanage.service.check.dao.StIvtCheckmstBcp; import org.nl.wms.storage_manage.semimanage.service.check.dao.mapper.StIvtCheckdtlBcpMapper; import org.nl.wms.storage_manage.semimanage.service.check.dao.mapper.StIvtCheckmstBcpMapper; import org.nl.wms.storage_manage.semimanage.service.check.dto.CheckQuery; +import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.StIvtIostorinvBcp; import org.nl.wms.storage_manage.semimanage.service.moveOrLess.IStIvtMoreorlessmstBcpService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -56,6 +59,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -83,9 +87,13 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl finish_list = checkdtlBcpService.list(new QueryWrapper().eq("check_id", form.getString("check_id")).in("status", new String[]{"99", "07"})); //说明全部确认 if (finish_list.size() == jo_mst.getDtl_num().intValue()) { - checkdtlBcpService.update(new UpdateWrapper().set("status", "99").eq("check_id", form.getString("check_id"))); + // 判断是否有任务 + List collect = finish_list.stream() + .filter(item -> Integer.parseInt(item.getIs_down()) > 0) + .collect(Collectors.toList()); + + if (ObjectUtil.isEmpty(collect)) { + checkdtlBcpService.update(new UpdateWrapper().set("status", "99").eq("check_id", form.getString("check_id"))); + + jo_mst.setStatus(CHECKEnum.BILL_STATUS.code("完成")); + jo_mst.setConfirm_optid(SecurityUtils.getCurrentUserId()); + jo_mst.setConfirm_optname(SecurityUtils.getCurrentNickName()); + jo_mst.setConfirm_time(DateUtil.now()); + //锁定起点点位、仓位 + set.forEach(struct_id -> structattrService.update(new UpdateWrapper().set("lock_type", "0").set("inv_code", "").eq("struct_id", struct_id))); + } - jo_mst.setStatus(CHECKEnum.BILL_STATUS.code("完成")); - jo_mst.setConfirm_optid(SecurityUtils.getCurrentUserId()); - jo_mst.setConfirm_optname(SecurityUtils.getCurrentNickName()); - jo_mst.setConfirm_time(DateUtil.now()); - //锁定起点点位、仓位 - set.forEach(struct_id -> structattrService.update(new UpdateWrapper().set("lock_type", "0").set("inv_code", "").eq("struct_id", struct_id))); } this.updateById(jo_mst); } + /* + 创建回去的任务 + */ + private void createBackTask(StIvtCheckdtlBcp dtl,String product_area) { + + String task_group_id = IdUtil.getStringId(); + StIvtStructattr attrDao = structattrService.getById(dtl.getStruct_id()); + + PointEvent event = PointEvent.builder() + .acs_task_type("7") + .type(AcsTaskEnum.TASK_STRUCT_CHECK.getCode()) + .point_code1(dtl.getCheckpoint_id()) + .point_code2(attrDao.getStruct_code()) + .vehicle_code(dtl.getStoragevehicle_code()) + .task_group_id(task_group_id) + .product_area(product_area) + .build(); + BussEventMulticaster.Publish(event); + + // 下发任务 + List taskList = taskService.list( + new QueryWrapper().lambda() + .eq(SchBaseTask::getTask_group_id, task_group_id) + ); + + taskList.forEach(this::sendTask); + } + @Override @Transactional @@ -266,21 +319,36 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl finish_list = checkdtlBcpService.list(new QueryWrapper().eq("check_id", form.getString("check_id")).in("status", new String[]{"99", "07"})); //说明全部确认 if (finish_list.size() == jo_mst.getDtl_num().intValue()) { - checkdtlBcpService.update(new UpdateWrapper().set("status", "99").eq("check_id", form.getString("check_id"))); + // 判断是否有任务 + List collect = finish_list.stream() + .filter(item -> Integer.parseInt(item.getIs_down()) > 0) + .collect(Collectors.toList()); - jo_mst.setStatus(CHECKEnum.BILL_STATUS.code("完成")); - jo_mst.setConfirm_optid(SecurityUtils.getCurrentUserId()); - jo_mst.setConfirm_optname(SecurityUtils.getCurrentNickName()); - jo_mst.setConfirm_time(DateUtil.now()); - //解锁起点点位、仓位 - finish_list.stream() - .map(finish -> finish.getStruct_id()) - .distinct() - .forEach(struct_id -> structattrService.update(new UpdateWrapper().set("inv_code", "").set("lock_type", "0").eq("struct_id", struct_id))); + if (ObjectUtil.isEmpty(collect)) { + checkdtlBcpService.update(new UpdateWrapper().set("status", "99").eq("check_id", form.getString("check_id"))); + + jo_mst.setStatus(CHECKEnum.BILL_STATUS.code("完成")); + jo_mst.setConfirm_optid(SecurityUtils.getCurrentUserId()); + jo_mst.setConfirm_optname(SecurityUtils.getCurrentNickName()); + jo_mst.setConfirm_time(DateUtil.now()); + //解锁起点点位、仓位 + finish_list.stream() + .map(finish -> finish.getStruct_id()) + .distinct() + .forEach(struct_id -> structattrService.update(new UpdateWrapper().set("inv_code", "").set("lock_type", "0").eq("struct_id", struct_id))); + } } this.updateById(jo_mst); } @@ -296,8 +364,10 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl(); - map.put("region_code", "A1_BCP_PD"); + map.put("region_code", PDAEnum.REGION_CODE.code("半成品盘点区域")); List maps = pointMapper.canUsePoint(map); StIvtCheckmstBcp mst = this.getById(dtl.getCheck_id()); @@ -309,14 +379,14 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl taskList = taskService.list( new QueryWrapper().lambda() .eq(SchBaseTask::getTask_group_id, task_group_id) @@ -326,7 +396,7 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl() .set("is_down", "1") - .set("checkpoint_id", (String) maps.get(0).get("point_code")) + .set("checkpoint_id", ObjectUtil.isEmpty(point_code) ? (String) maps.get(0).get("point_code") : point_code) .set("status", CHECKEnum.DTL_STATUS.code("盘点中")) .eq("struct_id", dtl.getStruct_id()) .eq("check_id", dtl.getCheck_id())); @@ -353,31 +423,60 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl() - .set("status", CHECKEnum.DTL_STATUS.code("完成")) + .set("status", CHECKEnum.DTL_STATUS.code("确认完成")) .eq("struct_id", dtl.getStruct_id()) .eq("check_id", dtl.getCheck_id())); + + // 更新起点 + iSchBasePointService.update( + new UpdateWrapper().lambda() + .set(SchBasePoint::getVehicle_code, "") + .eq(SchBasePoint::getPoint_code, dtl.getCheckpoint_id()) + ); + //判断是否存在未完成的明细 List list = checkdtlBcpService.list(new QueryWrapper().eq("check_id", dtl.getCheck_id()) - .ne("status", CHECKEnum.DTL_STATUS.code("完成"))); + .ne("status", CHECKEnum.DTL_STATUS.code("确认完成"))); if (list.size() == 0) { StIvtCheckmstBcp jo_mst = this.getOne(new QueryWrapper().eq("check_id", dtl.getCheck_id())); jo_mst.setStatus(CHECKEnum.BILL_STATUS.code("完成")); jo_mst.setConfirm_optid(SecurityUtils.getCurrentUserId()); jo_mst.setConfirm_optname(SecurityUtils.getCurrentNickName()); jo_mst.setConfirm_time(DateUtil.now()); - //解锁起点点位、仓位 + this.updateById(jo_mst); + //解锁终点 List finish_list = checkdtlBcpService.list(new QueryWrapper().eq("check_id", dtl.getCheck_id()) - .eq("status", CHECKEnum.DTL_STATUS.code("完成"))); + .eq("status", CHECKEnum.DTL_STATUS.code("确认完成"))); finish_list.stream() - .map(finish -> finish.getStruct_id()) + .map(StIvtCheckdtlBcp::getStruct_id) .distinct() .forEach(struct_id -> structattrService.update(new UpdateWrapper().set("inv_code", "").set("lock_type", "0").eq("struct_id", struct_id))); } } + // 更新任务 + iSchBaseTaskService.update( + new UpdateWrapper().lambda() + .set(SchBaseTask::getTask_status,TaskStatusEnum.FINISHED.getCode()) + .eq(SchBaseTask::getTask_id,task_id ) + ); + + } else if (status.equals(AcsTaskEnum.STATUS_START.getCode())) { + // 更新任务 + iSchBaseTaskService.update( + new UpdateWrapper().lambda() + .set(SchBaseTask::getTask_status,TaskStatusEnum.EXECUTING.getCode()) + .eq(SchBaseTask::getTask_id,task_id ) + ); + } } + @Override + public List getPdaDtlAll(JSONObject jo) { + return this.baseMapper.getPdaDtlAll(jo); + } + @Override @Transactional public void process1(JSONObject whereJson) { @@ -428,21 +527,36 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl finish_list = checkdtlBcpService.list(new QueryWrapper().eq("check_id", form.getString("check_id")).in("status", new String[]{"99", "07"})); //说明全部确认 if (finish_list.size() == jo_mst.getDtl_num().intValue()) { - checkdtlBcpService.update(new UpdateWrapper().set("status", "99").eq("check_id", form.getString("check_id"))); + // 判断是否有任务 + List collect = finish_list.stream() + .filter(item -> Integer.parseInt(item.getIs_down()) > 0) + .collect(Collectors.toList()); - jo_mst.setStatus(CHECKEnum.BILL_STATUS.code("完成")); - jo_mst.setConfirm_optid(SecurityUtils.getCurrentUserId()); - jo_mst.setConfirm_optname(SecurityUtils.getCurrentNickName()); - jo_mst.setConfirm_time(DateUtil.now()); - //解锁起点点位、仓位 - finish_list.stream() - .map(finish -> finish.getStruct_id()) - .distinct() - .forEach(struct_id -> structattrService.update(new UpdateWrapper().set("inv_code", "").set("lock_type", "0").eq("struct_id", struct_id))); + if (ObjectUtil.isEmpty(collect)) { + checkdtlBcpService.update(new UpdateWrapper().set("status", "99").eq("check_id", form.getString("check_id"))); + + jo_mst.setStatus(CHECKEnum.BILL_STATUS.code("完成")); + jo_mst.setConfirm_optid(SecurityUtils.getCurrentUserId()); + jo_mst.setConfirm_optname(SecurityUtils.getCurrentNickName()); + jo_mst.setConfirm_time(DateUtil.now()); + //解锁起点点位、仓位 + finish_list.stream() + .map(finish -> finish.getStruct_id()) + .distinct() + .forEach(struct_id -> structattrService.update(new UpdateWrapper().set("inv_code", "").set("lock_type", "0").eq("struct_id", struct_id))); + } } this.updateById(jo_mst); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/IStIvtIostorinvBcpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/IStIvtIostorinvBcpService.java index df7569e5..ddbb85da 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/IStIvtIostorinvBcpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/IStIvtIostorinvBcpService.java @@ -50,4 +50,6 @@ public interface IStIvtIostorinvBcpService extends IService { void taskOperate(JSONObject form); + List getPdaAll(JSONObject form); + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/mapper/StIvtIostorinvBcpMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/mapper/StIvtIostorinvBcpMapper.java index daa0175a..cb665126 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/mapper/StIvtIostorinvBcpMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/mapper/StIvtIostorinvBcpMapper.java @@ -1,5 +1,6 @@ package org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.mapper; +import com.alibaba.fastjson.JSONObject; import org.apache.ibatis.annotations.Param; import org.nl.common.anno.Datazhuazhua; import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.StIvtIostorinvBcp; @@ -20,4 +21,6 @@ import java.util.Map; @Datazhuazhua public interface StIvtIostorinvBcpMapper extends BaseMapper { List getIostorinv(@Param("query") BcpIostorInvQuery query); + + List getPdaAll(JSONObject form); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvBcpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvBcpMapper.xml index a4b4efca..527d6de7 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvBcpMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvBcpMapper.xml @@ -44,4 +44,44 @@ order by dtl.create_time desc + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpOutServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpOutServiceImpl.java index 87009357..0bf42e6a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpOutServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpOutServiceImpl.java @@ -150,6 +150,11 @@ public class StIvtIostorinvBcpOutServiceImpl extends ServiceImpl().lambda() .eq(MdPbStoragevehicleext::getStoragevehicle_code, row.getString("storagevehicle_code")) ); - if (ObjectUtil.isNotEmpty(vehicleDao)) { + if (ObjectUtil.isNotEmpty(vehicleExtDao)) { vehicleExtDao.setStorage_qty(mst.getPlan_qty()); vehicleExtDao.setMaterial_id(mst.getMaterial_id()); iMdPbStoragevehicleextService.updateById(vehicleExtDao); @@ -362,6 +367,11 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl getPdaAll(JSONObject form) { + return this.baseMapper.getPdaAll(form); + } + private void delTask(String task_id) { StIvtIostorinvBcp mstDao = this.getOne( diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/shutFrame/IStIvtShutframeinvBcpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/shutFrame/IStIvtShutframeinvBcpService.java index a50cf5a6..d6136a77 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/shutFrame/IStIvtShutframeinvBcpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/shutFrame/IStIvtShutframeinvBcpService.java @@ -46,5 +46,7 @@ public interface IStIvtShutframeinvBcpService extends IService getPdaAll(JSONObject jo); + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/shutFrame/dao/mapper/StIvtShutframeinvBcpMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/shutFrame/dao/mapper/StIvtShutframeinvBcpMapper.java index c6a66b8a..4cce20b8 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/shutFrame/dao/mapper/StIvtShutframeinvBcpMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/shutFrame/dao/mapper/StIvtShutframeinvBcpMapper.java @@ -1,5 +1,6 @@ package org.nl.wms.storage_manage.semimanage.service.shutFrame.dao.mapper; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.nl.common.domain.query.PageQuery; @@ -20,4 +21,6 @@ import java.util.Map; public interface StIvtShutframeinvBcpMapper extends BaseMapper { List getMstDetail(@Param("query")ShutQuery query, @Param("pageQuery") PageQuery pageQuery); + + List getPadAll(JSONObject jo); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/shutFrame/dao/mapper/xml/StIvtShutframeinvBcpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/shutFrame/dao/mapper/xml/StIvtShutframeinvBcpMapper.xml index 7ee74f17..60df610b 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/shutFrame/dao/mapper/xml/StIvtShutframeinvBcpMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/shutFrame/dao/mapper/xml/StIvtShutframeinvBcpMapper.xml @@ -35,4 +35,46 @@ order by mst.create_time DESC + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/shutFrame/impl/StIvtShutframeinvBcpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/shutFrame/impl/StIvtShutframeinvBcpServiceImpl.java index b3fc9aaf..ef313ead 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/shutFrame/impl/StIvtShutframeinvBcpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/shutFrame/impl/StIvtShutframeinvBcpServiceImpl.java @@ -291,6 +291,11 @@ public class StIvtShutframeinvBcpServiceImpl extends ServiceImpl getPdaAll(JSONObject jo) { + return this.baseMapper.getPadAll(jo); + } + @Override @Transactional public void issueTask(JSONObject form) { diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/IStIvtStructivtBcpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/IStIvtStructivtBcpService.java index 9a7d7425..ba5d0dae 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/IStIvtStructivtBcpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/IStIvtStructivtBcpService.java @@ -37,4 +37,8 @@ public interface IStIvtStructivtBcpService extends IService { List getBcpIvtInfo(JSONObject jo); Object packageQuery(StructIvtBcpQuery query, PageQuery page); + + List getPdaBcpIvt(JSONObject jo); + + List getPdaBcpMaterialIvt(JSONObject jo); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/StIvtStructivtBcpMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/StIvtStructivtBcpMapper.java index e521f889..b36a59a8 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/StIvtStructivtBcpMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/StIvtStructivtBcpMapper.java @@ -32,4 +32,7 @@ public interface StIvtStructivtBcpMapper extends BaseMapper { List packageQuery(@Param("query") StructIvtBcpQuery query); + List getPdaBcpIvt(JSONObject jo); + + List getPdaBcpMaterialIvt(JSONObject jo); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/xml/StIvtStructivtBcpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/xml/StIvtStructivtBcpMapper.xml index efdc00b9..81235a8d 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/xml/StIvtStructivtBcpMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/xml/StIvtStructivtBcpMapper.xml @@ -169,4 +169,71 @@ order by ivt.instorage_time DESC,attr.struct_code ASC + + + + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/impl/StIvtStructivtBcpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/impl/StIvtStructivtBcpServiceImpl.java index 4a21ab18..9dcb05cb 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/impl/StIvtStructivtBcpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/impl/StIvtStructivtBcpServiceImpl.java @@ -51,6 +51,16 @@ public class StIvtStructivtBcpServiceImpl extends ServiceImpl getPdaBcpIvt(JSONObject jo) { + return this.baseMapper.getPdaBcpIvt(jo); + } + + @Override + public List getPdaBcpMaterialIvt(JSONObject jo) { + return this.baseMapper.getPdaBcpMaterialIvt(jo); + } + @Override public Object getBcpIvt(StructIvtBcpQuery query, PageQuery pageQuery) { com.github.pagehelper.Page page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize()); diff --git a/mes/qd/src/views/wms/storage_manage/product/productIn/AddDialog.vue b/mes/qd/src/views/wms/storage_manage/product/productIn/AddDialog.vue index 91debae0..6dcf2da6 100644 --- a/mes/qd/src/views/wms/storage_manage/product/productIn/AddDialog.vue +++ b/mes/qd/src/views/wms/storage_manage/product/productIn/AddDialog.vue @@ -39,7 +39,7 @@ class="filter-item" > Date: Fri, 30 Jun 2023 15:57:32 +0800 Subject: [PATCH 2/2] =?UTF-8?q?rev:=20=E7=95=8C=E9=9D=A2=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mes/qd/src/views/wms/pcs/saleorder/index.vue | 10 +++++----- mes/qd/src/views/wms/pdm/device/index.vue | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/mes/qd/src/views/wms/pcs/saleorder/index.vue b/mes/qd/src/views/wms/pcs/saleorder/index.vue index d24e197e..caa8b91b 100644 --- a/mes/qd/src/views/wms/pcs/saleorder/index.vue +++ b/mes/qd/src/views/wms/pcs/saleorder/index.vue @@ -114,7 +114,7 @@ - +