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 99c52985..acce4100 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
@@ -43,7 +43,9 @@ public enum AcsTaskEnum {
TASK_STRUCT_HR_IN("26","入库-海柔半成品-生产入库"),
TASK_STRUCT_HR_OUT("27","出库-海柔半成品-生产出库"),
TASK_STRUCT_HR_CHECK("28","海柔半成品-盘点"),
- TASK_STRUCT_CP_CHECK("13","-盘点"),
+ TASK_STRUCT_HR_EMP_IN("29","入库-海柔半成品-空托盘"),
+ TASK_STRUCT_HR_EMP_OUT("30","出库-海柔半成品-空托盘"),
+ TASK_STRUCT_CP_CHECK("13","成品-盘点"),
TASK_WASH_LACK("20","清洗机-缺料请求"),
TASK_WASH_EMP("21","清洗机-空框请求"),
TASK_WASH_FULL_AUTO("22","清洗机-满料请求自动"),//去半成品入库:参数不全也去异常处理位
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext_manage/acs/rest/AcsToWmsController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext_manage/acs/rest/AcsToWmsController.java
index 20472e0a..0fa7616e 100644
--- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext_manage/acs/rest/AcsToWmsController.java
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext_manage/acs/rest/AcsToWmsController.java
@@ -120,6 +120,14 @@ public class AcsToWmsController {
return new ResponseEntity<>( HttpStatus.OK);
}
+ @PostMapping("/deviceApply")
+ @Log("海柔半成品任务申请")
+ //("海柔半成品任务申请")
+ @SaIgnore
+ public ResponseEntity
+ *
+ * @author generator
+ * @since 2023-08-01
+ */
+public interface IStIvtIostorinvEmpBcpService {
+
+ /**
+ * acs申请入空箱
+ * @param json {
+ * device_code: 设备
+ * barcode: 条码
+ * }
+ */
+ void InEmp(JSONObject json);
+
+ /**
+ * 入空托盘任务反馈
+ * @param form /
+ */
+ void taskOperateIn(JSONObject form);
+
+
+ /**
+ * acs申请出空箱
+ * @param json {
+ * device_code: 设备
+ * }
+ */
+ void OutEmp(JSONObject json);
+
+ /**
+ * 出空托盘任务反馈
+ * @param form /
+ */
+ void taskOperateOut(JSONObject form);
+
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/IStIvtIostorinvHrBcpInService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/IStIvtIostorinvHrBcpInService.java
index 4794ea8c..841f0727 100644
--- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/IStIvtIostorinvHrBcpInService.java
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/IStIvtIostorinvHrBcpInService.java
@@ -59,4 +59,14 @@ public interface IStIvtIostorinvHrBcpInService extends IService getPdaAll(JSONObject form);
+ /**
+ * acs 申请入满箱任务
+ * @param /
+ * {
+ * device_code : 设备
+ * barcode : 条码
+ * }
+ */
+ void fullIn(JSONObject json);
+
}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/IStIvtIostorinvOrderService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/IStIvtIostorinvOrderService.java
new file mode 100644
index 00000000..2ac3d2d2
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/IStIvtIostorinvOrderService.java
@@ -0,0 +1,16 @@
+package org.nl.wms.storage_manage.semimanagehr.service.iostorInv;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dao.StIvtIostorinvOrder;
+
+/**
+ *
+ * 出入库顺序表 服务类
+ *
+ *
+ * @author generator
+ * @since 2023-08-01
+ */
+public interface IStIvtIostorinvOrderService extends IService {
+
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/dao/StIvtIostorinvOrder.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/dao/StIvtIostorinvOrder.java
new file mode 100644
index 00000000..224b7fa3
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/dao/StIvtIostorinvOrder.java
@@ -0,0 +1,102 @@
+package org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dao;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ *
+ * 出入库顺序表
+ *
+ *
+ * @author generator
+ * @since 2023-08-01
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("st_ivt_iostorinv_order_bcp")
+public class StIvtIostorinvOrder implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 顺序标识
+ */
+ @TableId(value = "order_id")
+ private String order_id;
+
+ /**
+ * 车间
+ */
+ private String workshop_id;
+
+ /**
+ * 仓库标识
+ */
+ private String stor_id;
+
+ /**
+ * 输送设备
+ */
+ private String out_device;
+
+ /**
+ * 来源设备
+ */
+ private String in_device;
+
+ /**
+ * 条码
+ */
+ private String bar_code;
+
+ /**
+ * 业务日期
+ */
+ private String biz_date;
+
+ /**
+ * 物料标识
+ */
+ private String material_id;
+
+ /**
+ * 订单
+ */
+ private String sale_id;
+
+ /**
+ * 工单
+ */
+ private String workorder_id;
+
+ /**
+ * 重量
+ */
+ private BigDecimal weight;
+
+ /**
+ * 数量
+ */
+ private BigDecimal qty;
+
+ /**
+ * 出入类型
+ */
+ private String type;
+
+ /**
+ * 是否删除
+ */
+ private boolean is_delete;
+
+ /**
+ * 创建时间
+ */
+ private String create_time;
+
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/dao/mapper/StIvtIostorinvOrderMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/dao/mapper/StIvtIostorinvOrderMapper.java
new file mode 100644
index 00000000..d02d6f9e
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/dao/mapper/StIvtIostorinvOrderMapper.java
@@ -0,0 +1,17 @@
+package org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dao.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.nl.common.anno.Datazhuazhua;
+import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dao.StIvtIostorinvOrder;
+
+/**
+ *
+ * 出入库顺序表 Mapper 接口
+ *
+ *
+ * @author generator
+ * @since 2023-05-10
+ */
+@Datazhuazhua
+public interface StIvtIostorinvOrderMapper extends BaseMapper {
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/dao/mapper/xml/StIvtIostorinvOrderMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/dao/mapper/xml/StIvtIostorinvOrderMapper.xml
new file mode 100644
index 00000000..29ec6dc7
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/dao/mapper/xml/StIvtIostorinvOrderMapper.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/impl/StIvtIostorinvEmpBcpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/impl/StIvtIostorinvEmpBcpServiceImpl.java
new file mode 100644
index 00000000..13ad6406
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/impl/StIvtIostorinvEmpBcpServiceImpl.java
@@ -0,0 +1,286 @@
+package org.nl.wms.storage_manage.semimanagehr.service.iostorInv.impl;
+
+import cn.hutool.core.map.MapUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.json.JSONUtil;
+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.common.utils.MapOf;
+import org.nl.modules.common.exception.BadRequestException;
+import org.nl.modules.wql.util.SpringContextHolder;
+import org.nl.wms.ext_manage.acs.service.WmsToAcsService;
+import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService;
+import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService;
+import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr;
+import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
+import org.nl.wms.scheduler_manage.service.extendtask.manage.TaskStatusEnum;
+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.productmanage.util.DivRuleCpService;
+import org.nl.wms.storage_manage.productmanage.util.RuleUtil;
+import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.IStIvtIostorinvEmpBcpService;
+import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dao.StIvtIostorinvHrBcp;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Map;
+import java.util.function.Consumer;
+
+/**
+ *
+ * 半成品空载具 服务实现类
+ *
+ *
+ * @author generator
+ * @since 2023-05-10
+ */
+@Service
+public class StIvtIostorinvEmpBcpServiceImpl implements IStIvtIostorinvEmpBcpService {
+
+ @Autowired
+ private IStIvtSectattrService sectattrService; // 库区服务
+
+ @Autowired
+ protected IStIvtStructattrService iStIvtStructattrService; // 仓位属性服务
+
+ @Autowired
+ private DivRuleCpService divRuleCpService; // 分配规则服务
+
+ @Autowired
+ private ISchBaseTaskService iSchBaseTaskService; // 任务表服务
+
+ @Override
+ @Transactional
+ public void InEmp(JSONObject json) {
+ /*
+ * 1.找一个空货位
+ * 2.生成任务
+ * 3.下发任务
+ * 4.锁住货位
+ */
+ String device_code = json.getString("device_code"); // 设备
+ String barcode = json.getString("barcode"); // 条码
+
+ if (ObjectUtil.isEmpty(device_code)) throw new BadRequestException("设备不能为空!");
+ if (ObjectUtil.isEmpty(barcode)) throw new BadRequestException("条码不能为空!");
+
+ // 1.找一个空货位
+ StIvtSectattr sect = sectattrService.getOne(
+ new QueryWrapper().lambda()
+ .eq(StIvtSectattr::getSect_name, "海柔半成品库区")
+ );
+
+ JSONObject jo = new JSONObject();
+ jo.put("sect_id", sect.getSect_id());
+ jo.put("stor_id", sect.getStor_id());
+ jo.put("rule_type", RuleUtil.PRODUCTION_IN_1);
+
+ // 调用服务
+ StIvtStructattr arrtDao = divRuleCpService.divRuleIn(jo);
+
+ if (ObjectUtil.isEmpty(arrtDao)) {
+ throw new BadRequestException("无可分配货位");
+ }
+
+ // 2.生成任务
+ SchBaseTask taskDao = new SchBaseTask();
+ PointEvent event = PointEvent.builder()
+ .type(AcsTaskEnum.TASK_STRUCT_HR_EMP_IN)
+ .acs_task_type("7")
+ .task_group_id(IdUtil.getStringId())
+ .point_code1(device_code)
+ .point_code3(barcode)
+ .vehicle_code(barcode)
+ .product_area("A3")
+ .callback((Consumer) taskDao::setTask_id)
+ .build();
+ BussEventMulticaster.Publish(event);
+
+ // 3.下发任务
+ sendTask(taskDao.getTask_id());
+
+ // 4.锁定货位
+ arrtDao.setLock_type(IOSEnum.LOCK_TYPE.code("其他锁"));
+ iStIvtStructattrService.updateById(arrtDao);
+ }
+
+ @Override
+ @Transactional
+ public void taskOperateIn(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())) {
+ /* 完成 */
+
+ // 1.更新任务为完成
+ taskDao.setTask_status(TaskStatusEnum.FINISHED.getCode());
+ iSchBaseTaskService.updateById(taskDao);
+
+ // 2.更新仓位:解锁仓位、更新载具、更新是否是空载具
+ iStIvtStructattrService.update(
+ new UpdateWrapper().lambda()
+ .set(StIvtStructattr::getStoragevehicle_code, taskDao.getVehicle_code())
+ .set(StIvtStructattr::getLock_type,IOSEnum.LOCK_TYPE.code("未锁定"))
+ .set(StIvtStructattr::getIs_emptyvehicle, true)
+ .eq(StIvtStructattr::getStruct_code, taskDao.getPoint_code3())
+ );
+
+ } else if (status.equals(AcsTaskEnum.STATUS_START.getCode())){
+ /* 执行中 */
+
+ // 1.更新任务为执行中
+ taskDao.setTask_status(TaskStatusEnum.EXECUTING.getCode());
+ iSchBaseTaskService.updateById(taskDao);
+
+ }else if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())){
+ /* 取消 */
+
+ // 1.更新任务为取消
+ taskDao.setTask_status(TaskStatusEnum.CANCEL.getCode());
+ iSchBaseTaskService.updateById(taskDao);
+
+ // 2.更新仓位:解锁仓位
+ iStIvtStructattrService.update(
+ new UpdateWrapper().lambda()
+ .set(StIvtStructattr::getLock_type,IOSEnum.LOCK_TYPE.code("未锁定"))
+ .eq(StIvtStructattr::getStruct_code, taskDao.getPoint_code3())
+ );
+
+ }
+ }
+
+ @Override
+ @Transactional
+ public void OutEmp(JSONObject json) {
+ /*
+ * 1.找一个空载具的货位
+ * 2.生成任务
+ * 3.下发任务
+ */
+ String device_code = json.getString("device_code");
+
+ // 1.找一个空载具的货位
+ StIvtSectattr sect = sectattrService.getOne(
+ new QueryWrapper().lambda()
+ .eq(StIvtSectattr::getSect_name, "海柔半成品库区")
+ );
+
+ JSONObject jo = new JSONObject();
+ jo.put("sect_id", sect.getSect_id());
+ jo.put("stor_id", sect.getStor_id());
+ jo.put("rule_type", RuleUtil.PRODUCTION_EMP_OUT_1);
+
+ // 调用服务
+ StIvtStructattr arrtDao = divRuleCpService.divRuleIn(jo);
+
+ if (ObjectUtil.isEmpty(arrtDao)) {
+ throw new BadRequestException("没有可用的空托盘!");
+ }
+
+ // 2.生成任务
+ SchBaseTask taskDao = new SchBaseTask();
+ PointEvent event = PointEvent.builder()
+ .type(AcsTaskEnum.TASK_STRUCT_HR_EMP_OUT)
+ .acs_task_type("7")
+ .task_group_id(IdUtil.getStringId())
+ .point_code1(arrtDao.getStruct_code())
+ .point_code3(device_code)
+ .vehicle_code(arrtDao.getStoragevehicle_code())
+ .product_area("A3")
+ .callback((Consumer) taskDao::setTask_id)
+ .build();
+ BussEventMulticaster.Publish(event);
+
+ // 3.下发任务
+ sendTask(taskDao.getTask_id());
+
+ // 4.锁定货位
+ arrtDao.setLock_type(IOSEnum.LOCK_TYPE.code("其他锁"));
+ iStIvtStructattrService.updateById(arrtDao);
+
+ }
+
+ @Override
+ @Transactional
+ public void taskOperateOut(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())) {
+ /* 完成 */
+
+ // 1.更新任务为完成
+ taskDao.setTask_status(TaskStatusEnum.FINISHED.getCode());
+ iSchBaseTaskService.updateById(taskDao);
+
+ // 2.更新仓位:解锁仓位、更新载具、更新是否是空载具
+ iStIvtStructattrService.update(
+ new UpdateWrapper().lambda()
+ .set(StIvtStructattr::getStoragevehicle_code, "")
+ .set(StIvtStructattr::getLock_type,IOSEnum.LOCK_TYPE.code("未锁定"))
+ .set(StIvtStructattr::getIs_emptyvehicle, false)
+ .eq(StIvtStructattr::getStruct_code, taskDao.getPoint_code1())
+ );
+
+ } else if (status.equals(AcsTaskEnum.STATUS_START.getCode())){
+ /* 执行中 */
+
+ // 1.更新任务为执行中
+ taskDao.setTask_status(TaskStatusEnum.EXECUTING.getCode());
+ iSchBaseTaskService.updateById(taskDao);
+
+ }else if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())){
+ /* 取消 */
+
+ // 1.更新任务为取消
+ taskDao.setTask_status(TaskStatusEnum.CANCEL.getCode());
+ iSchBaseTaskService.updateById(taskDao);
+
+ // 2.更新仓位:解锁仓位
+ iStIvtStructattrService.update(
+ new UpdateWrapper().lambda()
+ .set(StIvtStructattr::getLock_type,IOSEnum.LOCK_TYPE.code("未锁定"))
+ .eq(StIvtStructattr::getStruct_code, taskDao.getPoint_code3())
+ );
+
+ }
+ }
+
+ /**
+ * 下发任务
+ * @param task_id /
+ */
+ private 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/semimanagehr/service/iostorInv/impl/StIvtIostorinvHrBcpInServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/impl/StIvtIostorinvHrBcpInServiceImpl.java
index 575c8c64..3a1b69a3 100644
--- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/impl/StIvtIostorinvHrBcpInServiceImpl.java
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/impl/StIvtIostorinvHrBcpInServiceImpl.java
@@ -27,6 +27,8 @@ import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.system.util.CodeUtil;
import org.nl.modules.wql.util.SpringContextHolder;
import org.nl.wms.ext_manage.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.service.vehicle.IMdPbStoragevehicleextService;
@@ -49,7 +51,9 @@ import org.nl.wms.storage_manage.productmanage.util.ChangeIvtUtil;
import org.nl.wms.storage_manage.productmanage.util.DivRuleCpService;
import org.nl.wms.storage_manage.productmanage.util.RuleUtil;
import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.IStIvtIostorinvHrBcpInService;
+import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.IStIvtIostorinvOrderService;
import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dao.StIvtIostorinvHrBcp;
+import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dao.StIvtIostorinvOrder;
import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dao.mapper.StIvtIostorinvHrBcpMapper;
import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dto.HrBcpIostorInvQuery;
import org.nl.wms.storage_manage.semimanagehr.service.structIvt.IStIvtStructivtHrBcpService;
@@ -104,6 +108,15 @@ public class StIvtIostorinvHrBcpInServiceImpl extends ServiceImpl page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize());
@@ -420,6 +433,66 @@ public class StIvtIostorinvHrBcpInServiceImpl extends ServiceImpl().lambda()
+ .eq(StIvtIostorinvOrder::getIn_device, device_code)
+ .eq(StIvtIostorinvOrder::getBar_code, barcode)
+ .eq(StIvtIostorinvOrder::getType, IOSEnum.IO_TYPE.code("入库"))
+ .orderByDesc(StIvtIostorinvOrder::getCreate_time)
+ , false
+ );
+
+ if (ObjectUtil.isEmpty(orderDao)) throw new BadRequestException("此条码在系统中不存在记录");
+
+ // 2.创建入库单
+ JSONObject jsonMst = new JSONObject();
+ jsonMst.put("biz_date", DateUtil.today());
+ jsonMst.put("bill_type", IOSEnum.BILL_TYPE_HR.code("生产入库"));
+ jsonMst.put("remark", "" );
+ jsonMst.put("product_code", "A3" );
+ jsonMst.put("point_code", device_code );
+ jsonMst.put("stor_id", IOSEnum.STOR_CODE.code("海柔半成品"));
+ jsonMst.put("auto_send", "1"); // 是否自动创建任务并下发
+
+ JSONArray tableData = new JSONArray();
+
+ JSONObject jsonDtl = new JSONObject();
+ jsonDtl.put("material_id", orderDao.getMaterial_id());
+ jsonDtl.put("pcsn", "");
+ jsonDtl.put("plan_qty", orderDao.getWeight());
+ jsonDtl.put("quality_scode", IVTEnum.QUALITY_SCODE.code("合格品"));
+
+ 物料信息:
+ {
+ MdMeMaterialbase materDao = iMdMeMaterialbaseService.getById(orderDao.getMaterial_id());
+ MdPbMeasureunit untiDao = iMdPbMeasureunitService.getById(materDao.getBase_unit_id());
+
+ jsonDtl.put("base_unit_id", untiDao.getMeasure_unit_id());
+ jsonDtl.put("base_unit_name", untiDao.getUnit_name());
+ jsonDtl.put("unit_weight", materDao.getNet_weight());
+ jsonDtl.put("storagevehicle_code", barcode);
+ }
+ tableData.add(jsonDtl);
+ jsonMst.put("tableData",tableData);
+
+ // 调用创建方法并自动创建任务下发
+ create(jsonMst);
+ }
+
private void delTask(String task_id) {
StIvtIostorinvHrBcp mstDao = this.getOne(
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/impl/StIvtIostorinvOrderServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/impl/StIvtIostorinvOrderServiceImpl.java
new file mode 100644
index 00000000..1bf0b451
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanagehr/service/iostorInv/impl/StIvtIostorinvOrderServiceImpl.java
@@ -0,0 +1,19 @@
+package org.nl.wms.storage_manage.semimanagehr.service.iostorInv.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.IStIvtIostorinvOrderService;
+import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dao.StIvtIostorinvOrder;
+import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dao.mapper.StIvtIostorinvOrderMapper;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ * 出入库顺序表 服务实现类
+ *
+ *
+ * @author generator
+ * @since 2023-05-10
+ */
+@Service
+public class StIvtIostorinvOrderServiceImpl extends ServiceImpl implements IStIvtIostorinvOrderService {
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/stivt.xls b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/stivt.xls
index 620e21b7..ff359395 100644
Binary files a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/stivt.xls and b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/stivt.xls differ
diff --git a/mes/qd/src/views/wms/storage_manage/product/productIvt/index.vue b/mes/qd/src/views/wms/storage_manage/product/productIvt/index.vue
index 54360580..b38e4a24 100644
--- a/mes/qd/src/views/wms/storage_manage/product/productIvt/index.vue
+++ b/mes/qd/src/views/wms/storage_manage/product/productIvt/index.vue
@@ -103,6 +103,7 @@
+
@@ -140,6 +141,7 @@ export default {
},
mixins: [presenter(), header(), crud()],
// 数据字典
+ dicts: ['ST_INV_CP_IN_TYPE'],
data() {
return {
height: document.documentElement.clientHeight - 180 + 'px;',
@@ -160,6 +162,9 @@ export default {
})
},
methods: {
+ formatBillType(row, column) {
+ return this.dict.label.ST_INV_CP_IN_TYPE[row.bill_type]
+ }
}
}
diff --git a/mes/qd/src/views/wms/storage_manage/semiproduct/semiproductIvt/index.vue b/mes/qd/src/views/wms/storage_manage/semiproduct/semiproductIvt/index.vue
index 29f91a1d..ddfb78e1 100644
--- a/mes/qd/src/views/wms/storage_manage/semiproduct/semiproductIvt/index.vue
+++ b/mes/qd/src/views/wms/storage_manage/semiproduct/semiproductIvt/index.vue
@@ -88,6 +88,7 @@
+
@@ -126,6 +127,7 @@ export default {
},
mixins: [presenter(), header(), crud()],
// 数据字典
+ dicts: ['ST_INV_BCP_IN_TYPE'],
data() {
return {
height: document.documentElement.clientHeight - 180 + 'px;',
@@ -151,6 +153,9 @@ export default {
this.crud.notify('导出成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
})
},
+ formatBillType(row, column) {
+ return this.dict.label.ST_INV_BCP_IN_TYPE[row.bill_type]
+ }
}
}