diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/IvtChangeTypeEnum.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/IvtChangeTypeEnum.java
new file mode 100644
index 00000000..99dc952f
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/IvtChangeTypeEnum.java
@@ -0,0 +1,31 @@
+package org.nl.wms.masterdata_manage.备份st;
+
+/**
+ * // 11-扣减可用; 12-增加可用;
+ * // 21-减库存; 22-加库存; 23-同时加; 24-同时减
+ */
+public enum IvtChangeTypeEnum {
+ SUB_CAN_USE("扣减可用数", 11),
+ ADD_CAN_USE("增加用数", 12),
+
+ SUB_IVT("扣减库存", 21),
+ ADD_IVT("增加库存", 22),
+ ADD_IVT_AND_CAN_USE("同时加库存和可用", 23),
+ SUB_IVT_AND_CAN_USE("同时减库存和可用", 24);
+
+ private final String name;
+ private final int index;
+
+ IvtChangeTypeEnum(String name, int index) {
+ this.name = name;
+ this.index = index;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public int getIndex() {
+ return index;
+ }
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/StoreIvtServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/StoreIvtServiceImpl.java
new file mode 100644
index 00000000..6405a5d4
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/StoreIvtServiceImpl.java
@@ -0,0 +1,298 @@
+package org.nl.wms.masterdata_manage.备份st;
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSONObject;
+import org.nl.modules.common.exception.BadRequestException;
+ import org.nl.common.utils.SecurityUtils;
+import org.nl.modules.wql.core.bean.WQLObject;
+
+
+import java.math.BigDecimal;
+
+/**
+ * Title: Test.java Description: 一、入库 单据审核,可用数、库存数加上。 取消审核,可用数、库存数减掉 二、出库
+ * 单据分配,可用数减掉 取消分配,可用数加回 单据审核,库存数减掉 取消审核,库存数加回
+ *
+ * @author ldjun
+ * @created 2020年7月23日 下午2:23:04
+ */
+public class StoreIvtServiceImpl {
+ /**
+ * @discription 添加仓储变动记录
+ * @author ldjun
+ * @created 2020年5月12日 下午12:54:42
+ */
+ public void addIvtFlow(JSONObject disObj, IvtChangeTypeEnum changeType) {
+ String struct_id = disObj.getString("struct_id");
+ JSONObject pointObj = WQLObject.getWQLObject("sch_base_point").query("point_id ='" + struct_id + "'").uniqueResult(0);
+ String vehicle_code = disObj.getString("vehicle_code");
+ if (StrUtil.isEmpty(struct_id)) {
+ throw new BadRequestException("仓位标识不能为空!");
+ }
+ String change_qty = disObj.getString("change_qty");
+ if (StrUtil.isEmpty(change_qty)) {
+ change_qty = "0";
+ }
+ if (StrUtil.equals("0", change_qty)) {
+ throw new BadRequestException("变动量不能都为0!");
+ }
+ JSONObject param = new JSONObject();
+ param.put("change_id", IdUtil.getSnowflake(1, 1).nextId());
+ param.put("struct_id", struct_id);
+ param.put("struct_code",pointObj.getString("point_code"));
+ param.put("struct_name",pointObj.getString("point_name"));
+ param.put("material_id", disObj.getString("material_id"));
+ param.put("pcsn", disObj.getString("pcsn"));
+ //先默认写死,只有一个仓库
+ param.put("stor_id", "1528627995269533696");
+ param.put("change_type_scode",changeType.getIndex());
+
+ param.put("inv_id", disObj.getString("bill_id"));
+ param.put("bill_code", disObj.getString("bill_code"));
+ param.put("bill_type_scode", disObj.getString("bill_type_scode"));
+ param.put("qty_unit_id", disObj.getString("qty_unit_id"));
+ param.put("change_time", DateUtil.now());
+ param.put("change_qty", change_qty);
+ param.put("change_person_id", SecurityUtils.getCurrentUserId());
+ param.put("change_person_name", SecurityUtils.getCurrentNickName());
+
+
+ param.put("change_type", changeType.getIndex());
+ param.put("workprocedure_id", disObj.getString("workprocedure_id"));
+ param.put("is_full", disObj.getString("is_full"));
+
+
+ // 仓位库存变动记录表【ST_IVT_StructIvtFlow】
+ WQLObject ivtFlowTab = WQLObject.getWQLObject("ST_IVT_StructIvtFlow");
+ ivtFlowTab.insert(param);
+ // 根据变动记录改变仓位库存
+ param.put("vehicle_code", vehicle_code);
+ param.put("stewing_time", disObj.getString("stewing_time"));
+ param.put("producetask_id", disObj.getString("producetask_id"));
+ this.changeInventory(param, changeType);
+ }
+
+ /**
+ * @param param
+ * @discription 扣减可用数
+ * @author ldjun
+ * @created 2020年5月12日 上午8:52:44
+ */
+ private void changeInventory(JSONObject param, IvtChangeTypeEnum changeType) {
+ WQLObject stackIvtTab = WQLObject.getWQLObject("ST_IVT_StructIvt");
+ String struct_id = param.getString("struct_id");
+ String vehicle_code = param.getString("vehicle_code");
+ String stewing_time = param.getString("stewing_time");
+ String producetask_id = param.getString("producetask_id");
+ String struct_name = param.getString("struct_name");
+ String struct_code = param.getString("struct_code");
+ if (StrUtil.isEmpty(struct_id)) {
+ throw new BadRequestException("仓位标识不能为空!");
+ }
+
+ String material_id = param.getString("material_id");
+ // 拼接查询条件参数
+ String whereArgs = "struct_id = '" + struct_id + "' and material_id = '" + material_id + "'";
+ JSONObject stackIvtObj = stackIvtTab.query(whereArgs).uniqueResult(0);
+
+ // 需变动的数量
+ String change_qty = param.getString("change_qty");
+
+ // 变动类型
+ // 11-扣减可用; 12-增加可用; 13-刷新可用
+ // 21-减库存; 22-加库存; 23-同时加; 24-同时减
+ // 31-加待入; 32-减待入 33减库存可用数可以为0 34同时减(库存和数量) 考虑负数 35 加库存 考虑负数
+ if (stackIvtObj == null) {// 说明该货位上还没有该物料,直接插入记录即可
+ JSONObject json = new JSONObject();
+ json.put("stockrecord_id", IdUtil.getSnowflake(1, 1).nextId());
+ json.put("struct_id", param.getString("struct_id"));
+ json.put("struct_name", param.getString("struct_name"));
+ json.put("material_id", param.getString("material_id"));
+
+ json.put("pcsn", param.getString("pcsn"));
+ json.put("qty_unit_id", param.getString("qty_unit_id"));
+ json.put("instorage_time", DateUtil.now());
+
+ json.put("canuse_qty", "0");
+ json.put("frozen_qty", "0");
+ json.put("ivt_qty", "0");
+ json.put("warehousing_qty", "0");
+ json.put("qc_qty", "0");
+
+ // 11-扣减可用; 12-增加可用;
+ // 21-减库存; 22-加库存; 23-同时加(可用和库存); 24-同时减(可用和库存)
+ // 31-加待入; 32-减待入
+ switch (changeType.getIndex()) {
+ case 11: // 扣减可用重量和数量
+ break;
+
+ case 12:
+ break;
+ case 13:
+ break;
+ case 21:
+ break;
+ case 22:
+ json.put("ivt_qty", change_qty);
+ break;
+ case 23:
+ json.put("ivt_qty", change_qty);
+ json.put("canuse_qty", change_qty);
+ break;
+ case 24:// 同时减
+ // 语句
+ break;
+ case 31:// 加待入
+ // 语句
+ break;
+ case 32:// 减待入
+ // 语句
+ break;
+ default: // 可选
+ throw new BadRequestException("变动类型不正确!");
+ }
+ json.put("vehicle_code", vehicle_code);
+ json.put("stewing_time", stewing_time);
+ json.put("producetask_id", producetask_id);
+ json.put("struct_code", struct_code);
+ json.put("struct_name", struct_name);
+ json.put("barcode", param.getString("barcode"));
+ json.put("workprocedure_id", param.getString("workprocedure_id"));
+ String is_full = param.getString("is_full");
+ if (StrUtil.isEmpty(is_full)) {
+ is_full = "1";
+ }
+ json.put("is_full", is_full);
+
+ stackIvtTab.insert(json);
+ }
+ // 对应的货位上有物料,需判断数量重量相关字段是否符合实际逻辑,符合时更新相应记录
+ if (stackIvtObj != null) {
+ // 变动前可用数量
+ String before_canuse_qty = stackIvtObj.getString("canuse_qty");
+ // 变动前冻结数量
+ String before_frozen_qty = stackIvtObj.getString("frozen_qty");
+ // 变动前库存数量
+ String before_ivt_qty = stackIvtObj.getString("ivt_qty");
+ // 变动前待入数量
+ String before_warehousing_qty = stackIvtObj.getString("warehousing_qty");
+ // 变动前待检数量
+ String before_qc_qty = stackIvtObj.getString("qc_qty");
+
+ // 变动后可用数量
+ BigDecimal after_canuse_qty = new BigDecimal(0);
+ // 变动后冻结数量
+ BigDecimal after_frozen_qty = new BigDecimal(0);
+ // 变动后库存数量
+ BigDecimal after_ivt_qty = new BigDecimal(0);
+ // 变动后待入数量
+ BigDecimal after_warehousing_qty = new BigDecimal(0);
+ // 变动后待检数量
+ BigDecimal after_qc_qty = new BigDecimal(0);
+
+ // 判断是否减为0
+ boolean is_sub0 = false;
+ switch (changeType.getIndex()) {
+ case 11: // 扣减可用重量和数量
+ // 变动后可用数量
+ after_canuse_qty = NumberUtil.sub(before_canuse_qty, change_qty);
+ if (after_canuse_qty.doubleValue() < 0) {
+ throw new BadRequestException("可用数量不足,无法操作!");
+ }
+ stackIvtObj.put("canuse_qty", after_canuse_qty);
+ break;
+ case 12:// 12-增加可用重量和数量;
+ // 变动后可用数量
+ after_canuse_qty = NumberUtil.add(before_canuse_qty, change_qty);
+ stackIvtObj.put("canuse_qty", after_canuse_qty);
+ break;
+ case 13:// 刷新可用数量和重量
+ // 语句
+ break;
+ case 21:// 减库存
+ // 变动后库存数量
+ after_ivt_qty = NumberUtil.sub(before_ivt_qty, change_qty);
+ if (after_ivt_qty.doubleValue() < 0) {
+ throw new BadRequestException("可用数量不足,无法操作!");
+ }
+ if (after_ivt_qty.doubleValue() <= 0) {
+ is_sub0 = true;
+ }
+ stackIvtObj.put("ivt_qty", after_ivt_qty);
+ break;
+ case 33:// 减库存
+ after_ivt_qty = NumberUtil.sub(before_ivt_qty, change_qty);
+ if (after_ivt_qty.doubleValue() < 0) {
+ throw new BadRequestException("库存数量不足,无法操作!");
+ }
+ if (after_ivt_qty.doubleValue() <= 0) {
+ is_sub0 = true;
+ }
+ stackIvtObj.put("ivt_qty", after_ivt_qty);
+ break;
+ case 22:// 加库存重量和数量
+ // 变动后库存数量
+ after_ivt_qty = NumberUtil.add(before_ivt_qty, change_qty);
+ stackIvtObj.put("ivt_qty", after_ivt_qty);
+ break;
+ case 23:// 同时加(可用和库存)
+ // 变动后可用数量
+ after_canuse_qty = NumberUtil.add(before_canuse_qty, change_qty);
+ stackIvtObj.put("canuse_qty", after_canuse_qty);
+
+ // 变动后库存数量
+ after_ivt_qty = NumberUtil.add(before_ivt_qty, change_qty);
+ stackIvtObj.put("ivt_qty", after_ivt_qty);
+ // 语句
+ break;
+ case 24:// 同时减(库存和数量)
+ // 变动后可用数量
+ after_canuse_qty = NumberUtil.sub(before_canuse_qty, change_qty);
+ if (after_canuse_qty.doubleValue() < 0) {
+ throw new BadRequestException("可用数量不足,无法操作!");
+ }
+ stackIvtObj.put("canuse_qty", after_canuse_qty);
+
+ // 变动后库存数量
+ after_ivt_qty = NumberUtil.sub(before_ivt_qty, change_qty);
+ if (after_ivt_qty.doubleValue() < 0) {
+ throw new BadRequestException("可用数量不足,无法操作!");
+ }
+ if (after_ivt_qty.doubleValue() <= 0) {
+ is_sub0 = true;
+ }
+ stackIvtObj.put("ivt_qty", after_ivt_qty);
+ // 语句
+
+ break;
+ case 31:// 加待入
+ // 语句
+ break;
+ case 32:// 减待入
+ // 语句
+ break;
+ default: // 可选
+ throw new BadRequestException("变动类型不正确!");
+ }
+
+
+ // 库存减为0,删除该记录
+ if (is_sub0) {
+ // 出完货以后更新载具号为空
+ JSONObject structObj = new JSONObject();
+ structObj.put("storagevehicle_code", "");
+ structObj.put("struct_id", stackIvtObj.getString("struct_id"));
+ stackIvtTab.delete(whereArgs);
+
+ } else {//更新
+ stackIvtObj.put("vehicle_code", vehicle_code);
+ stackIvtTab.update(stackIvtObj, whereArgs);
+ }
+
+ }
+
+ }
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/MaterialsafeivtService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/MaterialsafeivtService.java
new file mode 100644
index 00000000..dfe421d1
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/MaterialsafeivtService.java
@@ -0,0 +1,67 @@
+
+package org.nl.wms.masterdata_manage.备份st.service;
+
+import org.nl.wms.masterdata_manage.备份st.service.dto.MaterialsafeivtDto;
+import org.springframework.data.domain.Pageable;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+* @description 服务接口
+* @author zhouz
+* @date 2021-12-10
+**/
+public interface MaterialsafeivtService {
+
+ /**
+ * 查询数据分页
+ * @param whereJson 条件
+ * @param page 分页参数
+ * @return Map
+ */
+ Map queryAll(Map whereJson, Pageable page);
+
+ /**
+ * 查询所有数据不分页
+ * @param whereJson 条件参数
+ * @return List
+ */
+ List queryAll(Map whereJson);
+
+ /**
+ * 根据ID查询
+ * @param material_id ID
+ * @return Materialsafeivt
+ */
+ MaterialsafeivtDto findById(Long material_id);
+
+ /**
+ * 根据编码查询
+ * @param code code
+ * @return Materialsafeivt
+ */
+ MaterialsafeivtDto findByCode(String code);
+
+
+ /**
+ * 创建
+ * @param dto /
+ */
+ void create(MaterialsafeivtDto dto);
+
+ /**
+ * 编辑
+ * @param dto /
+ */
+ void update(MaterialsafeivtDto dto);
+
+ /**
+ * 多选删除
+ * @param ids /
+ */
+ void deleteAll(Long[] ids);
+
+ void insertSafe(Map whereJson);
+
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/StructrelamaterialService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/StructrelamaterialService.java
new file mode 100644
index 00000000..94ed18ef
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/StructrelamaterialService.java
@@ -0,0 +1,69 @@
+
+package org.nl.wms.masterdata_manage.备份st.service;
+
+import org.nl.wms.masterdata_manage.备份st.service.dto.StructrelamaterialDto;
+import org.springframework.data.domain.Pageable;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+* @description 服务接口
+* @author zhouz
+* @date 2021-12-09
+**/
+public interface StructrelamaterialService {
+
+ /**
+ * 查询数据分页
+ * @param whereJson 条件
+ * @param page 分页参数
+ * @return Map
+ */
+ Map queryAll(Map whereJson, Pageable page);
+
+ /**
+ * 查询所有数据不分页
+ * @param whereJson 条件参数
+ * @return List
+ */
+ List queryAll(Map whereJson);
+
+ /**
+ * 根据ID查询
+ * @param material_type_id ID
+ * @return Structrelamaterial
+ */
+ StructrelamaterialDto findById(Long material_type_id);
+
+ /**
+ * 根据编码查询
+ * @param code code
+ * @return Structrelamaterial
+ */
+ StructrelamaterialDto findByCode(String code);
+
+
+ /**
+ * 创建
+ * @param dto /
+ */
+ void create(StructrelamaterialDto dto);
+
+ /**
+ * 编辑
+ * @param dto /
+ */
+ void update(StructrelamaterialDto dto);
+
+ /**
+ * 多选删除
+ * @param ids /
+ */
+ void deleteAll(Long[] ids);
+
+ void insertSet(Map whereJson);
+
+ void delSet(Map whereJson);
+
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/StructrelavehicletypeService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/StructrelavehicletypeService.java
new file mode 100644
index 00000000..7989f745
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/StructrelavehicletypeService.java
@@ -0,0 +1,73 @@
+
+package org.nl.wms.masterdata_manage.备份st.service;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import org.nl.wms.masterdata_manage.备份st.service.dto.StructrelavehicletypeDto;
+import org.springframework.data.domain.Pageable;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+* @description 服务接口
+* @author geng by
+* @date 2022-04-27
+**/
+public interface StructrelavehicletypeService {
+
+ /**
+ * 查询数据分页
+ * @param whereJson 条件
+ * @param page 分页参数
+ * @return Map
+ */
+ Map queryAll(Map whereJson, Pageable page);
+
+ /**
+ * 查询所有数据不分页
+ * @param whereJson 条件参数
+ * @return List
+ */
+ List queryAll(Map whereJson);
+
+ /**
+ * 根据ID查询
+ * @param relation_id ID
+ * @return Structrelavehicletype
+ */
+ StructrelavehicletypeDto findById(String relation_id);
+
+ /**
+ * 根据编码查询
+ * @param code code
+ * @return Structrelavehicletype
+ */
+ StructrelavehicletypeDto findByCode(String code);
+
+
+ /**
+ * 创建
+ * @param param /
+ */
+ void create(JSONObject param);
+
+ /**
+ * 编辑
+ * @param param /
+ */
+ void update(JSONObject param);
+
+ /**
+ * 多选删除
+ * @param ids /
+ */
+ void deleteAll(String[] ids);
+
+ /**
+ * 查询仓位
+ * @return
+ */
+ JSONArray getStruct();
+
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/dto/MaterialsafeivtDto.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/dto/MaterialsafeivtDto.java
new file mode 100644
index 00000000..c14f7dbd
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/dto/MaterialsafeivtDto.java
@@ -0,0 +1,40 @@
+package org.nl.wms.masterdata_manage.备份st.service.dto;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.Data;
+
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+* @description /
+* @author zhouz
+* @date 2021-12-10
+**/
+@Data
+public class MaterialsafeivtDto implements Serializable {
+
+ /** 防止精度丢失 */
+ @JsonSerialize(using= ToStringSerializer.class)
+ private Long stor_id;
+
+ /** 防止精度丢失 */
+ @JsonSerialize(using= ToStringSerializer.class)
+ private Long material_id;
+
+ private BigDecimal safe_ivt_down;
+
+ private BigDecimal safe_ivt_up;
+
+ private Long qty_unit_id;
+
+ private String qty_unit_name;
+
+ private Long set_id;
+
+ private String set_name;
+
+ private String set_time;
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/dto/SectattrDto.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/dto/SectattrDto.java
new file mode 100644
index 00000000..fca16eb6
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/dto/SectattrDto.java
@@ -0,0 +1,116 @@
+package org.nl.wms.masterdata_manage.备份st.service.dto;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.Data;
+
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+* @description /
+* @author zhouz
+* @date 2021-12-09
+**/
+@Data
+public class SectattrDto implements Serializable {
+
+ /** 库区标识 */
+ /** 防止精度丢失 */
+ @JsonSerialize(using= ToStringSerializer.class)
+ private Long sect_id;
+
+ /** 库区编码 */
+ private String sect_code;
+
+ /** 库区名称 */
+ private String sect_name;
+
+ /** 库区简称 */
+ private String simple_name;
+
+ /** 库区类型 */
+ private String sect_type_attr;
+
+ /** 仓库标识 */
+ private Long stor_id;
+
+ /** 仓库名称 */
+ private String stor_name;
+
+ /** 仓库类型 */
+ private String stor_type;
+
+ /** 容量 */
+ private BigDecimal capacity;
+
+ /** 宽度 */
+ private BigDecimal width;
+
+ /** 高度 */
+ private BigDecimal height;
+
+ /** 深度 */
+ private BigDecimal zdepth;
+
+ /** 起始X坐标 */
+ private BigDecimal xqty;
+
+ /** 起始Y坐标 */
+ private BigDecimal yqty;
+
+ /** 起始Z坐标 */
+ private BigDecimal zqty;
+
+ /** 负责人 */
+ private String sect_manager_name;
+
+ /** 负责人电话 */
+ private String mobile_no;
+
+ /** 备注 */
+ private String remark;
+
+ /** 创建人 */
+ private String create_id;
+
+ /** 创建人姓名 */
+ private String create_name;
+
+ /** 创建时间 */
+ private String create_time;
+
+ /** 修改人 */
+ private String update_id;
+
+ /** 修改人姓名 */
+ private String update_name;
+
+ /** 修改时间 */
+ private String update_time;
+
+ /** 是否删除 */
+ private String is_delete;
+
+ /** 背景色 */
+ private String back_ground_color;
+
+ /** 前景色 */
+ private String front_ground_color;
+
+ /** 背景图片 */
+ private String back_ground_pic;
+
+ /** 字体显示方向 */
+ private String font_direction_scode;
+
+ /** 所在楼层 */
+ private BigDecimal floor_no;
+
+ /** 是否启用 */
+ private String is_used;
+
+ /** 外部标识 */
+ private String ext_id;
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/dto/StorattrDto.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/dto/StorattrDto.java
new file mode 100644
index 00000000..1c9e06a8
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/dto/StorattrDto.java
@@ -0,0 +1,107 @@
+package org.nl.wms.masterdata_manage.备份st.service.dto;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.Data;
+
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+* @description /
+* @author zhouz
+* @date 2021-12-08
+**/
+@Data
+public class StorattrDto implements Serializable {
+
+ /** 防止精度丢失 */
+ @JsonSerialize(using= ToStringSerializer.class)
+ private Long stor_id;
+
+ /** 仓库编码 */
+ private String stor_code;
+
+ /** 仓库名称 */
+ private String stor_name;
+
+ /** 简称 */
+ private String simple_name;
+
+ /** 容量 */
+ private BigDecimal stor_capacity;
+
+ /** 总面积(㎡) */
+ private BigDecimal total_area;
+
+ /** 仓库性质 */
+ private String stor_type_scode;
+
+ private String is_virtualstore;
+
+ private String is_semi_finished;
+
+ private String is_materialstore;
+
+ private String is_productstore;
+
+ private String is_reversed;
+
+ private String is_mvout_auto_cfm;
+
+ private String is_mvin_auto_cfm;
+
+ private String area;
+
+ /** 地址 */
+ private String storea_ddress;
+
+ /** 负责人 */
+ private String principal;
+
+ /** 联系电话 */
+ private String office_phone;
+
+ private String mobile_no;
+
+ /** 备注 */
+ private String remark;
+
+ private BigDecimal order_index;
+
+ private String whstate_scode;
+
+ /** 是否启用 */
+ private String is_used;
+
+ private String base_class_id;
+
+ private String create_id;
+
+ private String create_name;
+
+ private String create_time;
+
+ private String update_id;
+
+ private String update_name;
+
+ private String update_time;
+
+ private Long sysownerid;
+
+ private Long sysdeptid;
+
+ private Long syscompanyid;
+
+ private String is_delete;
+
+ private String ext_id;
+
+ private String depart_name;
+
+ private String company_name;
+
+ private String is_attachment;
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/dto/StructattrDto.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/dto/StructattrDto.java
new file mode 100644
index 00000000..9f67aeb4
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/dto/StructattrDto.java
@@ -0,0 +1,146 @@
+package org.nl.wms.masterdata_manage.备份st.service.dto;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.Data;
+
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+* @description /
+* @author zhouz
+* @date 2021-12-09
+**/
+@Data
+public class StructattrDto implements Serializable {
+
+ /** 仓位标识 */
+ /** 防止精度丢失 */
+ @JsonSerialize(using= ToStringSerializer.class)
+ private Long struct_id;
+
+ /** 仓位编码 */
+ private String struct_code;
+
+ /** 仓位名称 */
+ private String struct_name;
+
+ /** 仓位简称 */
+ private String simple_name;
+
+ /** 库区标识 */
+ private Long sect_id;
+
+ /** 库区编码 */
+ private String sect_code;
+
+ /** 库区名称 */
+ private String sect_name;
+
+ /** 仓库标识 */
+ private Long stor_id;
+
+ /** 仓库编码 */
+ private String stor_code;
+
+ /** 仓库名称 */
+ private String stor_name;
+
+ /** 仓库类型 */
+ private String stor_type;
+
+ /** 容量 */
+ private BigDecimal capacity;
+
+ /** 宽度 */
+ private BigDecimal width;
+
+ /** 高度 */
+ private BigDecimal height;
+
+ /** 深度 */
+ private BigDecimal zdepth;
+
+ /** 承受重量 */
+ private BigDecimal weight;
+
+ /** 起始X坐标 */
+ private BigDecimal xqty;
+
+ /** 起始Y坐标 */
+ private BigDecimal yqty;
+
+ /** 起始Z坐标 */
+ private BigDecimal zqty;
+
+ /** 是否临时仓位 */
+ private String is_tempstruct;
+
+ /** 创建人 */
+ private String create_id;
+
+ /** 创建人姓名 */
+ private String create_name;
+
+ /** 创建时间 */
+ private String create_time;
+
+ /** 修改人 */
+ private String update_id;
+
+ /** 修改人姓名 */
+ private String update_name;
+
+ /** 修改时间 */
+ private String update_time;
+
+ /** 是否删除 */
+ private String is_delete;
+
+ /** 背景色 */
+ private String back_ground_color;
+
+ /** 前景色 */
+ private String front_ground_color;
+
+ /** 背景图片 */
+ private String back_ground_pic;
+
+ /** 字体显示方向 */
+ private String font_direction_scode;
+
+ /** 是否启用 */
+ private String is_used;
+
+ /** 是否判断高度 */
+ private String is_zdepth;
+
+ /** 存储载具标识 */
+ private Long storagevehicle_id;
+
+ /** 存储载具号 */
+ private String storagevehicle_code;
+
+ /** 存储载具类型 */
+ private String storagevehicle_type;
+
+ /** 是否空载具 */
+ private String is_emptyvehicle;
+
+ /** 载具数量 */
+ private BigDecimal storagevehicle_qty;
+
+ /** 锁定类型 */
+ private String lock_type;
+
+ /** 物料高度类型 */
+ private String material_height_type;
+
+ /** 外部标识 */
+ private String ext_id;
+
+ /** 备注 */
+ private String remark;
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/dto/StructivtDto.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/dto/StructivtDto.java
new file mode 100644
index 00000000..5ea1bfc1
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/dto/StructivtDto.java
@@ -0,0 +1,66 @@
+package org.nl.wms.masterdata_manage.备份st.service.dto;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.Data;
+import java.util.Date;
+
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+* @description /
+* @author geng by
+* @date 2022-06-02
+**/
+@Data
+public class StructivtDto implements Serializable {
+
+ /** 库存记录标识 */
+ /** 防止精度丢失 */
+ @JsonSerialize(using= ToStringSerializer.class)
+ private Long stockrecord_id;
+
+ /** 仓位标识 */
+ private Long struct_id;
+
+ /** 仓位编码 */
+ private String struct_code;
+
+ /** 仓位名称 */
+ private String struct_name;
+
+ /** 工序标识 */
+ private Long workprocedure_id;
+
+ /** 物料标识 */
+ private Long material_id;
+
+ /** 品质类型 */
+ private String quality_scode;
+
+ /** 批次 */
+ private String pcsn;
+
+ /** 可用数 */
+ private BigDecimal canuse_qty;
+
+ /** 冻结数 */
+ private BigDecimal frozen_qty;
+
+ /** 库存数 */
+ private BigDecimal ivt_qty;
+
+ /** 待入数 */
+ private BigDecimal warehousing_qty;
+
+ /** 计量单位标识 */
+ private Long qty_unit_id;
+
+ /** 入库时间 */
+ private Date instorage_time;
+
+ /** 销售单标识 */
+ private Long sale_id;
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/dto/StructrelamaterialDto.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/dto/StructrelamaterialDto.java
new file mode 100644
index 00000000..bb21ad08
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/dto/StructrelamaterialDto.java
@@ -0,0 +1,32 @@
+package org.nl.wms.masterdata_manage.备份st.service.dto;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.Data;
+import java.util.Date;
+
+
+import java.io.Serializable;
+
+/**
+* @description /
+* @author zhouz
+* @date 2021-12-09
+**/
+@Data
+public class StructrelamaterialDto implements Serializable {
+
+ /** 防止精度丢失 */
+ @JsonSerialize(using= ToStringSerializer.class)
+ private Long sect_id;
+
+ /** 防止精度丢失 */
+ @JsonSerialize(using= ToStringSerializer.class)
+ private Long material_type_id;
+
+ private Long set_id;
+
+ private String set_name;
+
+ private Date set_time;
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/dto/StructrelavehicletypeDto.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/dto/StructrelavehicletypeDto.java
new file mode 100644
index 00000000..c848b4d3
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/dto/StructrelavehicletypeDto.java
@@ -0,0 +1,64 @@
+package org.nl.wms.masterdata_manage.备份st.service.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author geng by
+ * @description /
+ * @date 2022-04-27
+ **/
+@Data
+public class StructrelavehicletypeDto implements Serializable {
+
+ /**
+ * 关系标识
+ */
+ private String relation_id;
+
+ /**
+ * 仓位标识
+ */
+ private String struct_id;
+
+ /**
+ * 载具类型
+ */
+ private String vehicle_type;
+
+ /**
+ * 创建人
+ */
+ private String create_id;
+
+ /**
+ * 创建人
+ */
+ private String create_name;
+
+ /**
+ * 创建时间
+ */
+ private String create_time;
+
+ /**
+ * 修改人
+ */
+ private String update_id;
+
+ /**
+ * 修改人
+ */
+ private String update_name;
+
+ /**
+ * 修改时间
+ */
+ private String update_time;
+
+ /**
+ * 是否已删除
+ */
+ private String is_delete;
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/impl/MaterialsafeivtServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/impl/MaterialsafeivtServiceImpl.java
new file mode 100644
index 00000000..aad7705b
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/impl/MaterialsafeivtServiceImpl.java
@@ -0,0 +1,157 @@
+
+package org.nl.wms.masterdata_manage.备份st.service.impl;
+
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.map.MapUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+ import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.nl.modules.common.exception.BadRequestException;
+ import org.nl.common.utils.SecurityUtils;
+import org.nl.modules.wql.WQL;
+import org.nl.modules.wql.core.bean.WQLObject;
+import org.nl.modules.wql.util.WqlUtil;
+import org.nl.wms.masterdata_manage.备份master.service.ClassstandardService;
+import org.nl.wms.masterdata_manage.备份st.service.MaterialsafeivtService;
+import org.nl.wms.masterdata_manage.备份st.service.dto.MaterialsafeivtDto;
+
+import org.springframework.data.domain.Pageable;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author zhouz
+ * @description 服务实现
+ * @date 2021-12-10
+ **/
+@Service
+@RequiredArgsConstructor
+@Slf4j
+public class MaterialsafeivtServiceImpl implements MaterialsafeivtService {
+ private final ClassstandardService classstandardService;
+
+ @Override
+ public Map queryAll(Map whereJson, Pageable page) {
+ String search = (String) whereJson.get("search");
+ String class_idStr = (String) whereJson.get("class_idStr");
+ HashMap map = new HashMap<>();
+ if (!StrUtil.isEmpty(search)) {
+ //处理转义字符
+ if (search.contains("\\")) search = search.replace("\\", "\\\\\\");
+ map.put("search", "%" + search + "%");
+ }
+ String material_type_id = (String) whereJson.get("material_type_id");
+ //处理物料当前节点的所有子节点
+ if (!StrUtil.isEmpty(material_type_id)) {
+ map.put("material_type_id", material_type_id);
+ String classIds = classstandardService.getChildIdStr(material_type_id);
+ map.put("classIds", classIds);
+ } else if (ObjectUtil.isNotEmpty(class_idStr)) {
+ String classIds = classstandardService.getAllChildIdStr(class_idStr);
+ map.put("classIds", classIds);
+ }
+
+ map.put("flag", "1");
+ map.put("stor_id", MapUtil.getStr(whereJson, "stor_id"));
+ JSONObject jo = WQL.getWO("QST_IVT_MATERIALSAFE").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "set_time desc");
+ return jo;
+ }
+
+ @Override
+ public void insertSafe(Map whereJson) {
+ String currentUserId = SecurityUtils.getCurrentUserId();
+ String nickName = SecurityUtils.getCurrentNickName();
+
+ String stor_id = (String) whereJson.get("stor_id");
+ ArrayList rows = (ArrayList) whereJson.get("rows");
+ for (int i = 0; i < rows.size(); i++) {
+ HashMap row = rows.get(i);
+ WQLObject.getWQLObject("ST_IVT_MaterialSafeIvt").delete("stor_id = '" + stor_id + "' AND material_id = '" + row.get("material_id") + "'");
+ JSONObject jo = new JSONObject();
+ jo.put("stor_id", stor_id);
+ jo.put("safe_ivt_down", row.get("safe_ivt_down"));
+ jo.put("material_id", row.get("material_id"));
+ jo.put("safe_ivt_up", "999999");
+ jo.put("qty_unit_id", row.get("qty_unit_id"));
+ jo.put("qty_unit_name", row.get("qty_unit_name"));
+ jo.put("set_id", currentUserId + "");
+ jo.put("set_name", nickName);
+ jo.put("set_time", DateUtil.now());
+ WQLObject.getWQLObject("ST_IVT_MaterialSafeIvt").insert(jo);
+ }
+ }
+
+ @Override
+ public List queryAll(Map whereJson) {
+ WQLObject wo = WQLObject.getWQLObject("st_ivt_materialsafeivt");
+ JSONArray arr = wo.query().getResultJSONArray(0);
+ List list = arr.toJavaList(MaterialsafeivtDto.class);
+ return list;
+ }
+
+ @Override
+ public MaterialsafeivtDto findById(Long material_id) {
+ WQLObject wo = WQLObject.getWQLObject("st_ivt_materialsafeivt");
+ JSONObject json = wo.query("material_id =" + material_id + "").uniqueResult(0);
+ final MaterialsafeivtDto obj = json.toJavaObject(MaterialsafeivtDto.class);
+ return obj;
+ }
+
+ @Override
+ public MaterialsafeivtDto findByCode(String code) {
+ WQLObject wo = WQLObject.getWQLObject("st_ivt_materialsafeivt");
+ JSONObject json = wo.query("code ='" + code + "'").uniqueResult(0);
+ final MaterialsafeivtDto obj = json.toJavaObject(MaterialsafeivtDto.class);
+ return obj;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void create(MaterialsafeivtDto dto) {
+ WQLObject wo = WQLObject.getWQLObject("st_ivt_materialsafeivt");
+ JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
+ wo.insert(json);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(MaterialsafeivtDto dto) {
+ MaterialsafeivtDto entity = this.findById(dto.getMaterial_id());
+ if (entity == null) {
+ throw new BadRequestException("被删除或无权限,操作失败!");
+ }
+ WQLObject wo = WQLObject.getWQLObject("st_ivt_materialsafeivt");
+ JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
+ wo.update(json);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteAll(Long[] ids) {
+ String currentUserId = SecurityUtils.getCurrentUserId();
+ String nickName = SecurityUtils.getCurrentNickName();
+
+
+ WQLObject wo = WQLObject.getWQLObject("st_ivt_materialsafeivt");
+ for (Long material_id : ids) {
+ JSONObject param = new JSONObject();
+ param.put("material_id", String.valueOf(material_id));
+ param.put("is_delete", "1");
+ param.put("update_optid", currentUserId);
+ param.put("update_optname", nickName);
+ param.put("update_time", DateUtil.now());
+ wo.update(param);
+ }
+ }
+
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/impl/StructrelamaterialServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/impl/StructrelamaterialServiceImpl.java
new file mode 100644
index 00000000..49e1cf03
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/impl/StructrelamaterialServiceImpl.java
@@ -0,0 +1,177 @@
+
+package org.nl.wms.masterdata_manage.备份st.service.impl;
+
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+ import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.nl.modules.common.exception.BadRequestException;
+ import org.nl.common.utils.SecurityUtils;
+import org.nl.modules.wql.WQL;
+import org.nl.modules.wql.core.bean.WQLObject;
+import org.nl.modules.wql.util.WqlUtil;
+import org.nl.wms.masterdata_manage.备份master.service.ClassstandardService;
+import org.nl.wms.masterdata_manage.备份st.service.StructrelamaterialService;
+import org.nl.wms.masterdata_manage.备份st.service.dto.StructrelamaterialDto;
+
+import org.springframework.data.domain.Pageable;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Date;
+/**
+ * @author zhouz
+ * @description 服务实现
+ * @date 2021-12-09
+ **/
+@Service
+@RequiredArgsConstructor
+@Slf4j
+public class StructrelamaterialServiceImpl implements StructrelamaterialService {
+ private final ClassstandardService classstandardService;
+
+ @Override
+ public Map queryAll(Map whereJson, Pageable page) {
+ String search = (String) whereJson.get("search");
+ HashMap map = new HashMap<>();
+ if (!StrUtil.isEmpty(search)) {
+ map.put("search", "%" + search + "%");
+ }
+ map.put("flag", "1");
+ map.put("stor_id", (String) whereJson.get("stor_id"));
+ map.put("sect_id", (String) whereJson.get("sect_id"));
+ String material_type_id = (String) whereJson.get("material_type_id");
+ String class_idStr = (String) whereJson.get("class_idStr");
+ //处理物料当前节点的所有子节点
+ if (!StrUtil.isEmpty(material_type_id)) {
+ map.put("material_type_id", material_type_id);
+ String classIds = classstandardService.getChildIdStr(material_type_id);
+ map.put("classIds", classIds);
+ } else if (ObjectUtil.isNotEmpty(class_idStr)) {
+ String classIds = classstandardService.getAllChildIdStr(class_idStr);
+ map.put("classIds", classIds);
+ }
+ JSONObject jo = WQL.getWO("QST_IVT_MATERIALSET").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "set_time desc");
+ return jo;
+ }
+
+ @Override
+ public List queryAll(Map whereJson) {
+ WQLObject wo = WQLObject.getWQLObject("st_ivt_structrelamaterial");
+ JSONArray arr = wo.query().getResultJSONArray(0);
+ List list = arr.toJavaList(StructrelamaterialDto.class);
+ return list;
+ }
+
+ @Override
+ public StructrelamaterialDto findById(Long material_type_id) {
+ WQLObject wo = WQLObject.getWQLObject("st_ivt_structrelamaterial");
+ JSONObject json = wo.query("material_type_id =" + material_type_id + "").uniqueResult(0);
+ final StructrelamaterialDto obj = json.toJavaObject(StructrelamaterialDto.class);
+ return obj;
+ }
+
+ @Override
+ public StructrelamaterialDto findByCode(String code) {
+ WQLObject wo = WQLObject.getWQLObject("st_ivt_structrelamaterial");
+ JSONObject json = wo.query("code ='" + code + "'").uniqueResult(0);
+ final StructrelamaterialDto obj = json.toJavaObject(StructrelamaterialDto.class);
+ return obj;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void create(StructrelamaterialDto dto) {
+ String currentUserId = SecurityUtils.getCurrentUserId();
+ String nickName = SecurityUtils.getCurrentNickName();
+
+
+ dto.setMaterial_type_id(IdUtil.getSnowflake(1, 1).nextId());
+ dto.setSet_name(nickName);
+ dto.setSet_time(new Date());
+
+ WQLObject wo = WQLObject.getWQLObject("st_ivt_structrelamaterial");
+ JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
+ wo.insert(json);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(StructrelamaterialDto dto) {
+ StructrelamaterialDto entity = this.findById(dto.getMaterial_type_id());
+ if (entity == null) {
+ throw new BadRequestException("被删除或无权限,操作失败!");
+ }
+
+ WQLObject wo = WQLObject.getWQLObject("st_ivt_structrelamaterial");
+ JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
+ wo.update(json);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteAll(Long[] ids) {
+ String currentUserId = SecurityUtils.getCurrentUserId();
+ String nickName = SecurityUtils.getCurrentNickName();
+
+
+ WQLObject wo = WQLObject.getWQLObject("st_ivt_structrelamaterial");
+ for (Long material_type_id : ids) {
+ JSONObject param = new JSONObject();
+ param.put("material_type_id", String.valueOf(material_type_id));
+ param.put("is_delete", "1");
+ param.put("update_optid", currentUserId);
+ param.put("update_optname", nickName);
+ param.put("update_time", DateUtil.now());
+ wo.update(param);
+ }
+ }
+
+ @Override
+ public void insertSet(Map whereJson) {
+ String currentUserId = SecurityUtils.getCurrentUserId();
+ String nickName = SecurityUtils.getCurrentNickName();
+
+ WQLObject mater = WQLObject.getWQLObject("ST_IVT_StructRelaMaterial");
+ String sect_id = (String) whereJson.get("sect_id");
+ ArrayList class_rows = (ArrayList) whereJson.get("class_rows");
+ for (int i = 0; i < class_rows.size(); i++) {
+ HashMap class_row = class_rows.get(i);
+ JSONObject material_set = mater.query("sect_id = '" + sect_id + "' AND material_type_id = '" + class_row.get("class_id") + "'")
+ .uniqueResult(0);
+ if (material_set != null) {
+ HashMap update_map = new HashMap<>();
+ update_map.put("set_id", currentUserId + "");
+ update_map.put("set_name", nickName);
+ update_map.put("set_time", DateUtil.now());
+ mater.update(update_map, "sect_id = '" + sect_id + "' AND material_type_id = '" + class_row.get("class_id") + "'");
+ } else {
+ JSONObject jo = new JSONObject();
+ jo.put("sect_id", sect_id);
+ jo.put("material_type_id", class_row.get("class_id"));
+ jo.put("set_id", currentUserId + "");
+ jo.put("set_name", nickName);
+ jo.put("set_time", DateUtil.now());
+ mater.insert(jo);
+ }
+ }
+ }
+
+ @Override
+ public void delSet(Map whereJson) {
+ String sect_id = (String) whereJson.get("sect_id");
+ String material_type_id = (String) whereJson.get("material_type_id");
+ WQLObject.getWQLObject("ST_IVT_StructRelaMaterial").delete("sect_id = '" + sect_id + "' AND material_type_id = '" + material_type_id + "'");
+ }
+
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/impl/StructrelavehicletypeServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/impl/StructrelavehicletypeServiceImpl.java
new file mode 100644
index 00000000..2cbeafe1
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/service/impl/StructrelavehicletypeServiceImpl.java
@@ -0,0 +1,187 @@
+
+package org.nl.wms.masterdata_manage.备份st.service.impl;
+
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.map.MapUtil;
+import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+ import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+ import org.nl.common.utils.SecurityUtils;
+import org.nl.modules.wql.WQL;
+import org.nl.modules.wql.core.bean.WQLObject;
+import org.nl.modules.wql.util.WqlUtil;
+import org.nl.wms.masterdata_manage.备份st.service.StructrelavehicletypeService;
+import org.nl.wms.masterdata_manage.备份st.service.dto.StructrelavehicletypeDto;
+
+import org.springframework.data.domain.Pageable;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author geng by
+ * @description 服务实现
+ * @date 2022-04-27
+ **/
+@Service
+@RequiredArgsConstructor
+@Slf4j
+public class StructrelavehicletypeServiceImpl implements StructrelavehicletypeService {
+
+ @Override
+ public Map queryAll(Map whereJson, Pageable page) {
+ String search = MapUtil.getStr(whereJson, "search");
+ JSONObject map = new JSONObject();
+ map.put("flag", "2");
+ if (ObjectUtil.isNotEmpty(search)) {
+ map.put("search", "%" + search + "%");
+ }
+ JSONObject json = WQL.getWO("ST_Structrelavehicletype_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "view_vehicleType.struct_code");
+ WQLObject wo = WQLObject.getWQLObject("sys_dict_detail");
+ JSONArray content = json.getJSONArray("content");
+ JSONArray newContent = new JSONArray();
+ for (int i = 0; i < content.size(); i++) {
+ JSONObject jsonObject = content.getJSONObject(i);
+ String vehicle_type = jsonObject.getString("vehicle_type");
+ String[] vehicle_types = new String[0];
+ if (StrUtil.isNotEmpty(vehicle_type)){
+ vehicle_types = vehicle_type.split(",");
+ }
+ String typeNames = "";
+ if (vehicle_types.length > 0){
+ for (int j = 0; j < vehicle_types.length; j++) {
+ JSONObject type = wo.query("value = '" + vehicle_types[j] + "' and name = 'storagevehicle_type'").uniqueResult(0);
+ String typeName = type.getString("label");
+ if (vehicle_types.length - 1 != j) {
+ typeNames = typeNames + typeName + ",";
+ }
+ if (vehicle_types.length - 1 == j) {
+ typeNames = typeNames + typeName;
+ }
+ }
+ }
+ jsonObject.put("is_edit","0");
+ jsonObject.put("vehicle_type_name", typeNames);
+ jsonObject.put("vehicle_type", vehicle_types);
+ newContent.add(jsonObject);
+ }
+ json.put("content", newContent);
+ return json;
+ }
+
+ @Override
+ public List queryAll(Map whereJson) {
+ WQLObject wo = WQLObject.getWQLObject("st_ivt_structrelavehicletype");
+ JSONArray arr = wo.query().getResultJSONArray(0);
+ if (ObjectUtil.isNotEmpty(arr)) return arr.toJavaList(StructrelavehicletypeDto.class);
+ return null;
+ }
+
+ @Override
+ public StructrelavehicletypeDto findById(String relation_id) {
+ WQLObject wo = WQLObject.getWQLObject("st_ivt_structrelavehicletype");
+ JSONObject json = wo.query("relation_id = '" + relation_id + "'").uniqueResult(0);
+ if (ObjectUtil.isNotEmpty(json)) {
+ return json.toJavaObject(StructrelavehicletypeDto.class);
+ }
+ return null;
+ }
+
+ @Override
+ public StructrelavehicletypeDto findByCode(String code) {
+ WQLObject wo = WQLObject.getWQLObject("st_ivt_structrelavehicletype");
+ JSONObject json = wo.query("code ='" + code + "'").uniqueResult(0);
+ if (ObjectUtil.isNotEmpty(json)) {
+ return json.toJavaObject(StructrelavehicletypeDto.class);
+ }
+ return null;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void create(JSONObject param) {
+ String struct_id = param.getString("struct_id");
+ String currentUserId = SecurityUtils.getCurrentUserId();
+ String nickName = SecurityUtils.getCurrentNickName();
+
+ WQLObject wo = WQLObject.getWQLObject("st_ivt_structrelavehicletype");
+ JSONArray vehicle_types = param.getJSONArray("vehicle_type");
+ for (int i = 0; i < vehicle_types.size(); i++) {
+ param.put("relation_id", String.valueOf(IdUtil.getSnowflake(1, 1).nextId()));
+ param.put("struct_id", struct_id);
+ param.put("vehicle_type", vehicle_types.get(i));
+ param.put("update_optid", currentUserId);
+ param.put("update_optname", nickName);
+ param.put("update_time", DateUtil.now());
+ param.put("create_id", currentUserId);
+ param.put("create_name", nickName);
+ param.put("create_time", DateUtil.now());
+ wo.insert(param);
+ }
+
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(JSONObject param) {
+ String struct_id = param.getString("struct_id");
+ String currentUserId = SecurityUtils.getCurrentUserId();
+ String nickName = SecurityUtils.getCurrentNickName();
+
+ WQLObject wo = WQLObject.getWQLObject("st_ivt_structrelavehicletype");
+
+ wo.delete("struct_id = '" + struct_id + "'");
+ JSONArray vehicle_types = param.getJSONArray("vehicle_type");
+ if (vehicle_types.size() == 0){
+ param.put("relation_id", String.valueOf(IdUtil.getSnowflake(1, 1).nextId()));
+ param.put("struct_id", struct_id);
+ param.put("vehicle_type", null);
+ param.put("update_optid", currentUserId);
+ param.put("update_optname", nickName);
+ param.put("update_time", DateUtil.now());
+ param.put("create_id", currentUserId);
+ param.put("create_name", nickName);
+ param.put("create_time", DateUtil.now());
+ wo.insert(param);
+ return;
+ }
+ for (int i = 0; i < vehicle_types.size(); i++) {
+ param.put("relation_id", String.valueOf(IdUtil.getSnowflake(1, 1).nextId()));
+ param.put("struct_id", struct_id);
+ param.put("vehicle_type", vehicle_types.get(i));
+ param.put("update_optid", currentUserId);
+ param.put("update_optname", nickName);
+ param.put("update_time", DateUtil.now());
+ param.put("create_id", currentUserId);
+ param.put("create_name", nickName);
+ param.put("create_time", DateUtil.now());
+ wo.insert(param);
+ }
+
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteAll(String[] ids) {
+ WQLObject wo = WQLObject.getWQLObject("st_ivt_structrelavehicletype");
+ for (String struct_id : ids) {
+ wo.delete("struct_id = '" + struct_id + "'");
+ }
+ }
+
+ @Override
+ public JSONArray getStruct() {
+ JSONObject map = new JSONObject();
+ map.put("flag", "1");
+ JSONArray json = WQL.getWO("ST_Structrelavehicletype_01").addParamMap(map).process().getResultJSONArray(0);
+ return json;
+ }
+
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/wql/QLK01.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/wql/QLK01.wql
new file mode 100644
index 00000000..2ba88dab
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/wql/QLK01.wql
@@ -0,0 +1,226 @@
+[交易说明]
+ 交易名: 将海亮的物料导入mysql
+ 所属模块:
+ 功能简述:
+ 版权所有:
+ 表引用:
+ 版本经历:
+
+[数据库]
+ --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库
+
+[IO定义]
+ #################################################
+ ## 表字段对应输入参数
+ #################################################
+ 输入.flag TYPEAS s_string
+ 输入.material_code TYPEAS s_string
+ 输入.processroute_uuid TYPEAS s_string
+
+[临时表]
+ --这边列出来的临时表就会在运行期动态创建
+
+[临时变量]
+ --所有中间过程变量均可在此处定义
+
+[业务过程]
+
+ ##########################################
+ # 1、输入输出检查 #
+ ##########################################
+
+
+ ##########################################
+ # 2、主过程前处理 #
+ ##########################################
+
+
+ ##########################################
+ # 3、业务主过程 #
+ ##########################################
+
+ IF 输入.flag = "1"
+ QUERY
+ SELECT
+ *
+ FROM
+ MD_PB_BaseData_ClassInfo classinfot
+ LEFT JOIN MD_PB_BaseData_ClassStandard standard ON classinfot.class_uuid = standard.class_uuid
+ LEFT JOIN MD_ME_MaterialBase material ON material.material_uuid = classinfot.base_data_uuid
+ left join MD_ME_MaterialExt ext on ext.material_uuid = material.material_uuid
+
+ ENDSELECT
+ ENDQUERY
+ ENDIF
+
+ IF 输入.flag = "2"
+ QUERY
+ SELECT
+ *
+ FROM
+ MD_PB_BaseData_ClassStandard class
+ ENDSELECT
+ ENDQUERY
+ ENDIF
+
+ IF 输入.flag = "3"
+ QUERY
+ SELECT
+ *
+ FROM
+ ST_IVT_BSREALSTORATTR
+ ENDSELECT
+ ENDQUERY
+ ENDIF
+
+ IF 输入.flag = "4"
+ QUERY
+ SELECT
+ *
+ FROM
+ ST_IVT_SECTATTR
+ ENDSELECT
+ ENDQUERY
+ ENDIF
+
+ IF 输入.flag = "5"
+ QUERY
+ SELECT
+ *
+ FROM
+ ST_IVT_STRUCTATTR
+ ENDSELECT
+ ENDQUERY
+ ENDIF
+
+ IF 输入.flag = "6"
+ QUERY
+ SELECT
+ *
+ FROM
+ ST_IVT_StorageVehicleInfo
+ ENDSELECT
+ ENDQUERY
+ ENDIF
+
+ IF 输入.flag = "7"
+ QUERY
+ SELECT
+ *
+ FROM
+ wdk_sysparam
+ ENDSELECT
+ ENDQUERY
+ ENDIF
+
+ IF 输入.flag = "8"
+ QUERY
+ SELECT
+ *
+ FROM
+ IF_CacheLine_Position
+ ENDSELECT
+ ENDQUERY
+ ENDIF
+
+ IF 输入.flag = "9"
+ QUERY
+ SELECT
+ *
+ FROM
+ st_cacheline_position
+ ENDSELECT
+ ENDQUERY
+ ENDIF
+
+IF 输入.flag = "10"
+ QUERY
+ SELECT
+ mb.*,
+ class.class_code,
+ class.class_name
+ FROM
+ md_me_materialbase mb
+ LEFT JOIN MD_PB_ClassStandard class ON class.class_id = mb.material_type_id
+ WHERE
+ mb.is_delete = '0'
+ AND 1 = 1
+ AND class.class_id IN ( '1528555445302726656', '1528555443906023424', '1528555445080428544' )
+ ENDSELECT
+ ENDQUERY
+ENDIF
+
+IF 输入.flag = "11"
+ QUERY
+ SELECT
+ mb.*,
+ class.class_code,
+ class.class_name
+ FROM
+ md_me_materialbase mb
+ LEFT JOIN MD_PB_ClassStandard class ON class.class_id = mb.material_type_id
+ WHERE
+ mb.is_delete = '0'
+ AND 1 = 1
+ AND class.class_id IN ( '1528555444031852544', '1528555444778438656', '1528555444291899392' )
+ ENDSELECT
+ ENDQUERY
+ENDIF
+
+
+IF 输入.flag = "12"
+ QUERY
+ SELECT
+ *
+ FROM
+ PDM_BI_WorkshopMaterialCorr
+ ENDSELECT
+ ENDQUERY
+ENDIF
+
+IF 输入.flag = "13"
+ QUERY
+ SELECT
+ *
+ FROM
+ PDM_BI_SemiMaterialCorr
+ ENDSELECT
+ ENDQUERY
+ENDIF
+
+IF 输入.flag = "14"
+ QUERY
+ SELECT
+ *
+ FROM
+ PDM_BI_WorkshopMaterialCorr corr
+ LEFT JOIN PF_PB_SysDicInfo sys ON sys.sysdic_code = corr.materialprocess_series
+ AND sys.sysdic_type = 'IF_WCS_DEVICESERIES'
+ ENDSELECT
+ ENDQUERY
+ENDIF
+
+
+
+IF 输入.flag = "15"
+ QUERY
+ SELECT
+ *
+ FROM
+ PDM_BI_ProduceProcessRoute route
+ ENDSELECT
+ ENDQUERY
+ENDIF
+
+IF 输入.flag = "16"
+ QUERY
+ SELECT
+ *
+ FROM
+ PDM_BI_ProduceProcessRoute route
+ LEFT JOIN PDM_BI_ProduceProcessRouteDtl dtl ON route.processroute_uuid = dtl.processroute_uuid
+ route.processroute_uuid = 输入.processroute_uuid
+ order by workprocedure_number
+ ENDSELECT
+ ENDQUERY
+ENDIF
\ No newline at end of file
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/wql/QST_IVT_MATERIALSAFE.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/wql/QST_IVT_MATERIALSAFE.wql
new file mode 100644
index 00000000..0dd25798
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/wql/QST_IVT_MATERIALSAFE.wql
@@ -0,0 +1,85 @@
+[交易说明]
+ 交易名: 基础点位分页查询
+ 所属模块:
+ 功能简述:
+ 版权所有:
+ 表引用:
+ 版本经历:
+
+[数据库]
+ --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库
+
+[IO定义]
+ #################################################
+ ## 表字段对应输入参数
+ #################################################
+ 输入.flag TYPEAS s_string
+ 输入.search TYPEAS s_string
+ 输入.classIds TYPEAS f_string
+ 输入.stor_id TYPEAS s_string
+
+
+[临时表]
+ --这边列出来的临时表就会在运行期动态创建
+
+[临时变量]
+ --所有中间过程变量均可在此处定义
+
+[业务过程]
+
+ ##########################################
+ # 1、输入输出检查 #
+ ##########################################
+
+
+ ##########################################
+ # 2、主过程前处理 #
+ ##########################################
+
+
+ ##########################################
+ # 3、业务主过程 #
+ ##########################################
+
+ IF 输入.flag = "1"
+ PAGEQUERY
+ SELECT
+ (case when stor.stor_id is null THEN '' else stor.stor_id end) AS stor_id,
+ (case when stor.stor_code is null then 'yclk01' else stor.stor_code end) stor_code,
+ (case when stor.stor_name is null then '原料库' else stor.stor_name end) stor_name,
+ (case when safe.safe_ivt_down is null then 0 else safe.safe_ivt_down end) safe_ivt_down,
+ mb.material_code,
+ mb.material_name,
+ mb.base_unit_id,
+ mb.material_id,
+ mb.base_unit_id AS qty_unit_id,
+ safe.set_name,
+ safe.set_time,
+ unit.unit_name AS qty_unit_name
+ FROM
+ md_me_materialbase mb
+ LEFT JOIN st_ivt_materialsafeivt safe ON safe.material_id = mb.material_id
+ LEFT JOIN st_ivt_bsrealstorattr stor ON stor.stor_id = safe.stor_id
+ LEFT JOIN md_pb_measureunit unit ON unit.measure_unit_id = mb.base_unit_id
+ LEFT JOIN md_pb_classstandard class ON class.class_id =mb.material_type_id
+ WHERE
+ 1=1
+ OPTION 输入.classIds <> ""
+ mb.material_type_id in 输入.classIds
+ ENDOPTION
+ OPTION 输入.stor_id <> ""
+ stor.stor_id = 输入.stor_id
+ ENDOPTION
+ OPTION 输入.search <> ""
+ (
+ mb.material_code like 输入.search
+ OR
+ mb.material_name like 输入.search
+ )
+ ENDOPTION
+ ENDSELECT
+ ENDPAGEQUERY
+ ENDIF
+
+
+
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/wql/QST_IVT_MATERIALSET.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/wql/QST_IVT_MATERIALSET.wql
new file mode 100644
index 00000000..3eff3c77
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/wql/QST_IVT_MATERIALSET.wql
@@ -0,0 +1,78 @@
+[交易说明]
+ 交易名: 基础点位分页查询
+ 所属模块:
+ 功能简述:
+ 版权所有:
+ 表引用:
+ 版本经历:
+
+[数据库]
+ --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库
+
+[IO定义]
+ #################################################
+ ## 表字段对应输入参数
+ #################################################
+ 输入.flag TYPEAS s_string
+ 输入.search TYPEAS s_string
+ 输入.stor_id TYPEAS s_string
+ 输入.sect_id TYPEAS s_string
+ 输入.classIds TYPEAS f_string
+
+
+[临时表]
+ --这边列出来的临时表就会在运行期动态创建
+
+[临时变量]
+ --所有中间过程变量均可在此处定义
+
+[业务过程]
+
+ ##########################################
+ # 1、输入输出检查 #
+ ##########################################
+
+
+ ##########################################
+ # 2、主过程前处理 #
+ ##########################################
+
+
+ ##########################################
+ # 3、业务主过程 #
+ ##########################################
+
+ IF 输入.flag = "1"
+ PAGEQUERY
+ SELECT
+ se.sect_code,
+ se.sect_name,
+ class.class_code,
+ class.class_name,
+ sm.*
+ FROM
+ st_ivt_structrelamaterial sm
+ INNER JOIN st_ivt_sectattr se ON se.sect_id = sm.sect_id
+ INNER JOIN md_pb_classstandard class ON class.class_id = sm.material_type_id
+ OPTION 输入.search <> ""
+ (
+ class.class_code like 输入.search
+ OR
+ class.class_name like 输入.search
+ )
+ ENDOPTION
+ OPTION 输入.stor_id <> ""
+ se.stor_id = 输入.stor_id
+ ENDOPTION
+ OPTION 输入.sect_id <> ""
+ se.sect_id = 输入.sect_id
+ ENDOPTION
+ OPTION 输入.classIds <> ""
+ class.class_id in 输入.classIds
+ ENDOPTION
+ ENDSELECT
+ ENDPAGEQUERY
+ ENDIF
+
+
+
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/wql/ST_Structrelavehicletype_01.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/wql/ST_Structrelavehicletype_01.wql
new file mode 100644
index 00000000..d7e77197
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/wql/ST_Structrelavehicletype_01.wql
@@ -0,0 +1,86 @@
+[交易说明]
+ 交易名: 仓位载具类型查询
+ 所属模块:
+ 功能简述:
+ 版权所有:
+ 表引用:
+ 版本经历:
+
+[数据库]
+ --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库
+
+[IO定义]
+ #################################################
+ ## 表字段对应输入参数
+ #################################################
+ 输入.flag TYPEAS s_string
+ 输入.search TYPEAS s_string
+
+[临时表]
+ --这边列出来的临时表就会在运行期动态创建
+
+[临时变量]
+ --所有中间过程变量均可在此处定义
+
+[业务过程]
+
+ ##########################################
+ # 1、输入输出检查 #
+ ##########################################
+
+
+ ##########################################
+ # 2、主过程前处理 #
+ ##########################################
+
+
+ ##########################################
+ # 3、业务主过程 #
+ ##########################################
+
+ IF 输入.flag = "1"
+ PAGEQUERY
+ SELECT
+ *
+ FROM
+ st_ivt_structattr
+ WHERE
+ is_delete = '0' and struct_id not in(
+ select distinct struct_id from st_ivt_structrelavehicletype
+ )
+ ENDSELECT
+ ENDPAGEQUERY
+ ENDIF
+
+ IF 输入.flag = "2"
+ PAGEQUERY
+ SELECT
+ *
+ FROM
+ (
+ SELECT
+ any_value ( vehicleType.struct_id ) AS struct_id,
+ any_value ( vehicleType.create_id ) AS create_id,
+ any_value ( vehicleType.create_name ) AS create_name,
+ any_value ( vehicleType.create_time ) AS create_time,
+ any_value ( vehicleType.update_optname ) AS update_optname,
+ any_value ( struct.struct_code ) AS struct_code,
+ any_value ( vehicleType.update_time ) AS update_time,
+ any_value ( struct.struct_name ) AS struct_name,
+ any_value ( GROUP_CONCAT( vehicleType.vehicle_type ) ) AS vehicle_type
+ FROM
+ ST_IVT_StructRelaVehicleType vehicleType
+ LEFT JOIN st_ivt_structattr struct ON vehicleType.struct_id = struct.struct_id
+ GROUP BY
+ vehicleType.struct_id
+ ) AS view_vehicleType
+ WHERE
+ 1 = 1
+ OPTION 输入.search <> ""
+ (view_vehicleType.struct_code like 输入.search or
+ view_vehicleType.struct_name like 输入.search)
+ ENDOPTION
+ ENDSELECT
+ ENDPAGEQUERY
+ ENDIF
+
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/wql/stivt.xls b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/wql/stivt.xls
new file mode 100644
index 00000000..60278aaf
Binary files /dev/null and b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/wql/stivt.xls differ
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/impl/ProduceshiftorderServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/impl/ProduceshiftorderServiceImpl.java
index 4156111b..db0c60de 100644
--- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/impl/ProduceshiftorderServiceImpl.java
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/impl/ProduceshiftorderServiceImpl.java
@@ -339,7 +339,6 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService{
WQLObject.getWQLObject("pdm_produce_workorder").update(MapOf.of("workorder_id", workorder_id, "workorder_status", WorkerOrderEnum.SEND.getCode(), "update_id", SecurityUtils.getCurrentUserId(), "update_name", SecurityUtils.getCurrentNickName(), "update_time", DateUtil.now()));
Map resp = wmsToAcsService.order(array);
//TODO:记录表记录操作
-
return RestBusinessTemplate.execute(() -> resp);
}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/ReportRecordStatus.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/ReportRecordStatus.java
new file mode 100644
index 00000000..b201d2f7
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/ReportRecordStatus.java
@@ -0,0 +1,21 @@
+package org.nl.wms.product_manage;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/*
+ * @author ZZQ
+ * @Date 2023/5/17 12:26
+ */
+@AllArgsConstructor
+@Getter
+public enum ReportRecordStatus {
+
+ CREATE("1","生成"),
+ REPORT("2","报工"),
+ FINISH("3","审核完成");
+
+ private String code;
+ private String desc;
+
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/ProduceshiftorderController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/ProduceshiftorderController.java
index c43e54ba..cb6bbbeb 100644
--- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/ProduceshiftorderController.java
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/ProduceshiftorderController.java
@@ -11,6 +11,7 @@ import org.nl.common.utils.api.ResultCode;
import org.nl.modules.common.exception.BizCoreException;
import org.nl.wms.mps.service.ProduceshiftorderService;
import org.nl.wms.mps.service.dto.DeviceDto;
+import org.nl.wms.product_manage.service.device.IPdmBiDeviceService;
import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
@@ -33,20 +34,22 @@ import java.util.Map;
public class ProduceshiftorderController{
private final ProduceshiftorderService produceshiftorderService;
private final IPdmProduceWorkorderService iPdmProduceWorkorderService;
+ private final IPdmBiDeviceService pdmBiDeviceService;
@PostMapping("/getDevice")
@Log("根据登录用户设备下拉")
@ApiOperation("根据登录用户设备下拉")
public ResponseEntity
+ *
+ * @author generator
+ * @since 2023-05-16
+ */
+public interface IPdmProduceWorkorderrecordService extends IService {
+
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorderrecord.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorderrecord.java
new file mode 100644
index 00000000..e6dfd78a
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorderrecord.java
@@ -0,0 +1,148 @@
+package org.nl.wms.product_manage.service.workorder.dao;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+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-05-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("pdm_produce_workorderrecord")
+public class PdmProduceWorkorderrecord implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 工单生产记录标识
+ */
+ @TableId(value = "macoperate_id")
+ private String macoperate_id;
+
+ /**
+ * 工单编号
+ */
+ private String workorder_id;
+
+ /**
+ * 班次类型
+ */
+ private String shift_type_scode;
+
+ /**
+ * 工序标识
+ */
+ private String workprocedure_id;
+
+ /**
+ * 生产区域
+ */
+ private String product_area;
+
+ /**
+ * 生产设备编码
+ */
+ private String device_code;
+
+ /**
+ * 操作工标识
+ */
+ private String produce_person_id;
+
+ /**
+ * 电气期初数量
+ */
+ private BigDecimal dq_init_qty;
+
+ /**
+ * 人员期初数量
+ */
+ private BigDecimal person_init_qty;
+
+ /**
+ * 电气报工数量
+ */
+ private BigDecimal dq_report_qty;
+
+ /**
+ * 人员报工数量
+ */
+ private BigDecimal person_report_qty;
+
+ /**
+ * 电气期末数量
+ */
+ private BigDecimal dq_finish_qty;
+
+ /**
+ * 人员期末数量
+ */
+ private BigDecimal person_finish_qty;
+
+ /**
+ * 开工时间
+ */
+ private String operatetime_start;
+
+ /**
+ * 完工时间
+ */
+ private String operatetime_end;
+
+ /**
+ * 顺序号
+ */
+ private Integer seq_number;
+
+ /**
+ * 主表:计划数量-报工总
+ */
+ private BigDecimal needproduct_qty;
+
+ /**
+ * 主表:计划数量-报工总
+ */
+ private BigDecimal report_qty;
+
+ /**
+ * 报废,不记录报工数
+ */
+ private BigDecimal nok_qty;
+
+ /**
+ * 报修数不记录报工数
+ */
+ private BigDecimal repare_qty;
+
+ /**
+ * 报工状态生成报工审核123
+ */
+ private String report_status;
+
+ /**
+ * 审核人
+ */
+ private String confirm_id;
+
+ private String confirm_name;
+
+ private String confirm_time;
+
+ /**
+ * 校验状态唯一性
+ */
+ private String md5;
+
+
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/WorkorderRecord.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/WorkorderRecord.java
new file mode 100644
index 00000000..e35dabd5
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/WorkorderRecord.java
@@ -0,0 +1,107 @@
+package org.nl.wms.product_manage.service.workorder.dao;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+
+import lombok.Builder;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ *
+ * 生产设备报工记录表
+ *
+ *
+ * @author generator
+ * @since 2023-05-16
+ */
+@Data
+@TableName("pdm_produce_workorderrecord")
+@Builder
+public class WorkorderRecord implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 工单生产记录标识
+ */
+ private Long macoperate_id;
+
+ /**
+ * 工单编号
+ */
+ private String workorder_id;
+
+ /**
+ * 班次类型
+ */
+ private String shift_type_scode;
+
+ /**
+ * 工序标识
+ */
+ private String workprocedure_id;
+
+ /**
+ * 生产区域
+ */
+ private String product_area;
+
+ /**
+ * 生产设备编码
+ */
+ private String device_code;
+
+ /**
+ * 操作工标识
+ */
+ private String produce_person_id;
+
+ /**
+ * 电气期初数量
+ */
+ private BigDecimal dq_init_qty;
+
+ /**
+ * 人员期初数量
+ */
+ private BigDecimal person_init_qty;
+
+ /**
+ * 电气报工数量
+ */
+ private BigDecimal dq_report_qty;
+
+ /**
+ * 人员报工数量
+ */
+ private BigDecimal person_report_qty;
+
+ /**
+ * 电气期末数量
+ */
+ private BigDecimal dq_finish_qty;
+
+ /**
+ * 人员期末数量
+ */
+ private BigDecimal person_finish_qty;
+
+ /**
+ * 开工时间
+ */
+ private String operatetime_start;
+
+ /**
+ * 完工时间
+ */
+ private String operatetime_end;
+
+ /**
+ * 顺序号
+ */
+ private BigDecimal seq_number;
+
+
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderrecordMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderrecordMapper.java
new file mode 100644
index 00000000..7fb66f71
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderrecordMapper.java
@@ -0,0 +1,16 @@
+package org.nl.wms.product_manage.service.workorder.dao.mapper;
+
+import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorderrecord;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 生产设备报工记录表 Mapper 接口
+ *
+ *
+ * @author generator
+ * @since 2023-05-16
+ */
+public interface PdmProduceWorkorderrecordMapper extends BaseMapper {
+
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/xml/PdmProduceWorkorderrecordMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/xml/PdmProduceWorkorderrecordMapper.xml
new file mode 100644
index 00000000..ac1a9b89
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/xml/PdmProduceWorkorderrecordMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java
index 29dd6483..709a0f1a 100644
--- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java
@@ -28,6 +28,7 @@ import org.nl.wms.masterdata_manage.master.service.classstandard.IMdPbClassstand
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
import org.nl.wms.mps.service.WorkOrderImportEnum;
+import org.nl.wms.mps.service.dto.ProduceshiftorderDto;
import org.nl.wms.product_manage.ReportRecordStatus;
import org.nl.wms.product_manage.service.device.IPdmBiDeviceService;
import org.nl.wms.product_manage.service.device.dao.PdmBiDevice;
@@ -631,4 +632,34 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl resp = wmsToAcsService.replaceDevice(array);
+ String status = String.valueOf(resp.get("status"));
+ String message = (String) resp.get("message");
+ if(!status.equals("200")) {
+ throw new BadRequestException(message);
+ }
+ }
+ //this.update(produceshiftorderDto);
+ }
+
}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/PdmProduceWorkorderrecordServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/PdmProduceWorkorderrecordServiceImpl.java
new file mode 100644
index 00000000..06bac38a
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/PdmProduceWorkorderrecordServiceImpl.java
@@ -0,0 +1,20 @@
+package org.nl.wms.product_manage.service.workorder.impl;
+
+import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorderrecord;
+import org.nl.wms.product_manage.service.workorder.dao.mapper.PdmProduceWorkorderrecordMapper;
+import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderrecordService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ * 生产设备报工记录表 服务实现类
+ *
+ *
+ * @author generator
+ * @since 2023-05-16
+ */
+@Service
+public class PdmProduceWorkorderrecordServiceImpl extends ServiceImpl implements IPdmProduceWorkorderrecordService {
+
+}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/ql/dto/OptionRecordQuery.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/ql/dto/OptionRecordQuery.java
new file mode 100644
index 00000000..68b6b13a
--- /dev/null
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/ql/dto/OptionRecordQuery.java
@@ -0,0 +1,29 @@
+package org.nl.wms.system_manage.service.ql.dto;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import org.nl.common.domain.query.BaseQuery;
+import org.nl.common.domain.query.QParam;
+import org.nl.common.enums.QueryTEnum;
+import org.nl.wms.system_manage.service.dept.dao.SysDept;
+import org.nl.wms.system_manage.service.ql.dao.PdmQlOption;
+
+import java.util.List;
+
+/*
+ * @author ZZQ
+ * @Date 2022/12/15 4:20 下午
+ */
+@Data
+public class OptionRecordQuery extends BaseQuery {
+
+ private String orderno;
+ /**
+ * 检测类型
+ */
+ private String type;
+
+ private String bussclass;
+
+
+}
diff --git a/mes/qd/src/views/wms/product_manage/workorder/reportDialog.vue b/mes/qd/src/views/wms/product_manage/workorder/reportDialog.vue
new file mode 100644
index 00000000..6be062fa
--- /dev/null
+++ b/mes/qd/src/views/wms/product_manage/workorder/reportDialog.vue
@@ -0,0 +1,174 @@
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+
+
+
+ 工单生产记录详情
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+