diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/OptionRecord.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/OptionRecord.java index da6bfa07..d5b3404e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/OptionRecord.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/OptionRecord.java @@ -1,14 +1,23 @@ package org.nl.common.utils; +import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.AllArgsConstructor; import lombok.Getter; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.formula.functions.T; +import org.nl.common.publish.event.PublishEvent; import org.nl.config.thread.ThreadPoolExecutorUtil; import org.nl.modules.wql.util.SpringContextHolder; import org.nl.wms.system_manage.service.ql.IPdmQlOptionService; import org.nl.wms.system_manage.service.ql.dao.PdmQlOption; +import org.nl.wms.system_manage.service.ql.dto.OptionRecordQuery; +import java.util.ArrayList; import java.util.Date; +import java.util.List; import java.util.Map; import java.util.concurrent.ThreadPoolExecutor; @@ -20,29 +29,46 @@ public class OptionRecord { private final static ThreadPoolExecutor EXECUTOR = ThreadPoolExecutorUtil.getPoll(); - public static void record(OptionEnum type, Buss classname, String order, Map option){ + public static void record(OptionEnum type,String status, Buss classname, String order, T option){ + IPdmQlOptionService bean = SpringContextHolder.getBean(IPdmQlOptionService.class); + PdmQlOption qlOption = new PdmQlOption(); + if (option !=null){ + qlOption.setOptiod_date(JSON.toJSONString(option)); + } + qlOption.setOrderno(order); + qlOption.setType(type.name()); + qlOption.setCreate_id(DateUtil.now()); + qlOption.setCreate_time(SecurityUtils.getCurrentUserId()); + qlOption.setCreate_name(SecurityUtils.getCurrentNickName()); + qlOption.setBussclass(classname.name()); + qlOption.setStatus(status); + bean.save(qlOption); + } + public static void recordAsync(OptionEnum type,String status, Buss classname, String order, T option){ EXECUTOR.execute(()->{ - IPdmQlOptionService bean = SpringContextHolder.getBean(IPdmQlOptionService.class); - PdmQlOption qlOption = new PdmQlOption(); - if (option !=null){ - qlOption.setOptionDate(JSON.toJSONString(option)); - } - qlOption.setOrderno(order); - qlOption.setType(type.name()); - qlOption.setCreateTime(new Date()); - qlOption.setCreateId(SecurityUtils.getCurrentUserId()); - qlOption.setCreateId(SecurityUtils.getCurrentNickName()); - qlOption.setBussclass(classname.name()); -// bean.save(qlOption); + record(type,status,classname,order,option); }); } + public static List getRecord(OptionRecordQuery query,final Class clazz){ + IPdmQlOptionService bean = SpringContextHolder.getBean(IPdmQlOptionService.class); + List list = bean.list(query.build()); + List records = new ArrayList<>(); + for (PdmQlOption option : list) { + String optiod_date = option.getOptiod_date(); + if (StringUtils.isNotEmpty(optiod_date)){ + records.add(JSONObject.parseObject(optiod_date, clazz)); + } + } + return records; + } @Getter @AllArgsConstructor public enum OptionEnum{ - ADDOP, - DELETEOP, - UPDATEOP, + ADD, + DELETE, + UPDATE, + FINISH; } @Getter @AllArgsConstructor diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/em.xls b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/em.xls index 734aaffe..e573041f 100644 Binary files a/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/em.xls and b/mes/hd/nladmin-system/src/main/java/org/nl/wms/device_manage/em.xls differ diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 1ca55147..143e3ceb 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -208,12 +208,12 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ map.put("workorder_status", orderJson.getString("status")); map.put("update_id", "1"); map.put("real_qty", orderJson.getString("real_qty")); - map.put("current_device_code", ""); + map.put("device_code", ""); map.put("update_name", "acs"); map.put("update_time", DateUtil.now()); map.put("realproduceend_date", DateUtil.now()); WQLObject.getWQLObject("PDM_produce_workOrder").update(map, "workorder_id = '" + orderJson.getString("workorder_id") + "'"); - OptionRecord.record(OptionRecord.OptionEnum.UPDATEOP, OptionRecord.Buss.WORKORDER,orderJson.getString("workorder_id"),MapOf.of("workorder_status", orderJson.getString("status"))); + //OptionRecord.record(OptionRecord.OptionEnum.UPDATEOP, OptionRecord.Buss.WORKORDER,orderJson.getString("workorder_id"),MapOf.of("workorder_status", orderJson.getString("status"))); } catch (Exception e){ result.put("status", 400); result.put("message", e.getMessage()); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/master/service/classstandard/IMdPbClassstandardService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/master/service/classstandard/IMdPbClassstandardService.java index 5fa55979..e5fdf2f3 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/master/service/classstandard/IMdPbClassstandardService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/master/service/classstandard/IMdPbClassstandardService.java @@ -55,4 +55,11 @@ public interface IMdPbClassstandardService extends IService { * @param ids */ void deleteAll(String[] ids); + + /** + * c查询子集 + * @param class_id + * @return + */ + List getChildIdStr(String class_id); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/master/service/classstandard/impl/MdPbClassstandardServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/master/service/classstandard/impl/MdPbClassstandardServiceImpl.java index 3437713f..23f29f8a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/master/service/classstandard/impl/MdPbClassstandardServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/master/service/classstandard/impl/MdPbClassstandardServiceImpl.java @@ -112,15 +112,16 @@ public class MdPbClassstandardServiceImpl extends ServiceImpl queryClassById(Map whereJson) { QueryWrapper query = new QueryWrapper<>(); + query.eq("1","1"); if (ObjectUtil.isNotEmpty(whereJson.get("whereStr"))) { query.last((String) whereJson.get("whereStr")); } - if (ObjectUtil.isNotEmpty(whereJson.get("class_idStr"))) { - query.in("class_id",whereJson.get("class_idStr")); - } if (ObjectUtil.isNotEmpty(whereJson.get("parent_class_id"))) { query.eq("parent_class_id",whereJson.get("parent_class_id")); } + if (ObjectUtil.isNotEmpty(whereJson.get("class_idStr"))) { + query.last("and class_id in "+whereJson.get("class_idStr")); + } return getMaps(this.listMaps(query)); } @@ -237,4 +238,12 @@ public class MdPbClassstandardServiceImpl extends ServiceImpl getChildIdStr(String class_id) { + if (StringUtils.isEmpty(class_id)){ + return new ArrayList<>(); + } + return this.baseMapper.getChildIdStr(class_id); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/master/dao/mapper/MdPbClassstandardMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/master/dao/mapper/MdPbClassstandardMapper.java index 04738145..84338c2e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/master/dao/mapper/MdPbClassstandardMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/master/dao/mapper/MdPbClassstandardMapper.java @@ -3,6 +3,8 @@ package org.nl.wms.masterdata_manage.service.master.dao.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.nl.wms.masterdata_manage.master.service.classstandard.dao.MdPbClassstandard; +import java.util.List; + /** *

* 基础数据分类标准表 Mapper 接口 @@ -13,4 +15,5 @@ import org.nl.wms.masterdata_manage.master.service.classstandard.dao.MdPbClassst */ public interface MdPbClassstandardMapper extends BaseMapper { + List getChildIdStr(String class_id); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/master/dao/mapper/MdPbClassstandardMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/master/dao/mapper/MdPbClassstandardMapper.xml index 26fad0cd..19444735 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/master/dao/mapper/MdPbClassstandardMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/master/dao/mapper/MdPbClassstandardMapper.xml @@ -2,4 +2,7 @@ + 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/rest/ProduceWorkorderController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/rest/ProduceWorkorderController.java deleted file mode 100644 index 7f3b67f9..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/rest/ProduceWorkorderController.java +++ /dev/null @@ -1,116 +0,0 @@ -package org.nl.wms.mps.rest; - -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.common.anno.Log; -import org.nl.wms.mps.service.ProduceWorkorderService; -import org.nl.wms.mps.service.dto.ProduceWorkorderDto; -import org.springframework.data.domain.Pageable; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; - -import javax.servlet.http.HttpServletRequest; -import java.util.List; -import java.util.Map; - -/** - * @author lyd - * @date 2023-03-16 - **/ -//@RestController -@RequiredArgsConstructor -//@Api(tags = "工单管理") -//@RequestMapping("/api/produceWorkorder") -@Slf4j -public class ProduceWorkorderController { - - private final ProduceWorkorderService produceWorkorderService; - - @GetMapping - @Log("查询工单管理") - @ApiOperation("查询工单管理") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { - return new ResponseEntity<>(produceWorkorderService.queryAll(whereJson, page), HttpStatus.OK); - } - - @PostMapping - @Log("新增工单管理") - @ApiOperation("新增工单管理") - //@PreAuthorize("@el.check('produceWorkorder:add')") - public ResponseEntity create(@Validated @RequestBody ProduceWorkorderDto dto) { - produceWorkorderService.create(dto); - return new ResponseEntity<>(HttpStatus.CREATED); - } - @PostMapping("/create") - @Log("新增工单管理") - @ApiOperation("新增工单管理") - //@PreAuthorize("@el.check('produceWorkorder:add')") - public ResponseEntity submit(@Validated @RequestBody ProduceWorkorderDto dto) { - produceWorkorderService.create(dto); - return new ResponseEntity<>(HttpStatus.CREATED); - } - - @PutMapping - @Log("修改工单管理") - @ApiOperation("修改工单管理") - //@PreAuthorize("@el.check('produceWorkorder:edit')") - public ResponseEntity update(@Validated @RequestBody ProduceWorkorderDto dto) { - produceWorkorderService.update(dto); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - - @PutMapping("/submits") - @Log("工单下发") - @ApiOperation("工单下发") - public ResponseEntity submits(@RequestBody List param) { - produceWorkorderService.submits(param); - return new ResponseEntity<>(HttpStatus.OK); - } - - @Log("删除工单管理") - @ApiOperation("删除工单管理") - @DeleteMapping - public ResponseEntity delete(@RequestBody String[] ids) { - produceWorkorderService.deleteAll(ids); - return new ResponseEntity<>(HttpStatus.OK); - } - - @PostMapping("/getNotWorkDeviceByWorkproceduceId") - @Log("根据工序查询没有工单的设备") - @ApiOperation("根据工序查询没有工单的设备") - //@PreAuthorize("@el.check('WorkProcedure:add')") - public ResponseEntity getNotWorkDeviceByWorkproceduceId(@RequestBody JSONObject param) { - return new ResponseEntity<>(produceWorkorderService.getNotWorkDeviceByWorkproceduceId(param),HttpStatus.CREATED); - } - - @PostMapping("/getDtl") - @Log("获取当前工单下的工单生产记录") - @ApiOperation("获取当前工单下的工单生产记录") - public ResponseEntity getDtl(@RequestBody JSONObject param) { - return new ResponseEntity<>(produceWorkorderService.getDtl(param), HttpStatus.OK); - } - - @PostMapping("/forceFinish") - @Log("工单强制完成") - @ApiOperation("工单强制完成") - public ResponseEntity forceFinish(@RequestBody JSONObject param) { - produceWorkorderService.forceFinish(param); - return new ResponseEntity<>(HttpStatus.OK); - } - - @PostMapping("/excelImport") - @Log("excel导入") - @ApiOperation("excel导入") - public ResponseEntity excelImport(@RequestParam("file") MultipartFile file, HttpServletRequest request) { - produceWorkorderService.excelImport(file, request); - return new ResponseEntity<>(HttpStatus.OK); - } - -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/ProduceWorkorderService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/ProduceWorkorderService.java deleted file mode 100644 index cb38029b..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/ProduceWorkorderService.java +++ /dev/null @@ -1,108 +0,0 @@ - -package org.nl.wms.mps.service; - -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import org.nl.wms.mps.service.dto.ProduceWorkorderDto; -import org.springframework.data.domain.Pageable; -import org.springframework.web.multipart.MultipartFile; - -import javax.servlet.http.HttpServletRequest; -import java.util.List; -import java.util.Map; - -/** -* @description 服务接口 -* @author lyd -* @date 2023-03-16 -**/ -public interface ProduceWorkorderService { - - /** - * 查询数据分页 - * @param whereJson 条件 - * @param page 分页参数 - * @return Map - */ - Map queryAll(Map whereJson, Pageable page); - - /** - * 查询所有数据不分页 - * @param whereJson 条件参数 - * @return List - */ - List queryAll(Map whereJson); - - /** - * 根据ID查询 - * @param workorder_id ID - * @return ProduceWorkorder - */ - ProduceWorkorderDto findById(String workorder_id); - - /** - * 根据编码查询 - * @param code code - * @return ProduceWorkorder - */ - ProduceWorkorderDto findByCode(String code); - - - /** - * 创建 - * @param dto / - */ - void create(ProduceWorkorderDto dto); - - /** - * 编辑 - * @param dto / - */ - void update(ProduceWorkorderDto dto); - - /** - * 多选删除 - * @param ids / - */ - void deleteAll(String[] ids); - - /** - * 更换设备时根据工单所属工序 查询所有工单中没有生产的设备 - * @param param - * @return - */ - JSONArray getNotWorkDeviceByWorkproceduceId(JSONObject param); - - /** - * 获取当前工单的记录 - * @param param - * @return - */ - JSONArray getDtl(JSONObject param); - - /** - * 工单下发 - * @param param - * @return - */ - void submits(List param); - - /** - * 强制完成 - * @param param - */ - void forceFinish(JSONObject param); - - /** - * 看板强制完成 - * @param param - */ - void finish(JSONObject param); - - /** - * excel导入 - * @param file - * @param request - */ - void excelImport(MultipartFile file, HttpServletRequest request); -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/dto/ProduceWorkorderDto.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/dto/ProduceWorkorderDto.java index f94d4e78..742ee866 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/dto/ProduceWorkorderDto.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/dto/ProduceWorkorderDto.java @@ -91,7 +91,7 @@ public class ProduceWorkorderDto implements Serializable { /** * 当前生产设备编码 */ - private String current_device_code; + private String device_code; /** * 当前生产人员id diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/impl/ProduceWorkorderServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/impl/ProduceWorkorderServiceImpl.java deleted file mode 100644 index e207000f..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/service/impl/ProduceWorkorderServiceImpl.java +++ /dev/null @@ -1,580 +0,0 @@ - -package org.nl.wms.mps.service.impl; - - -import cn.hutool.core.date.DateTime; -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 cn.hutool.poi.excel.ExcelReader; -import cn.hutool.poi.excel.ExcelUtil; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.common.utils.MapOf; -import org.nl.common.utils.OptionRecord; -import org.nl.common.utils.SecurityUtils; -import org.nl.modules.common.exception.BadRequestException; -import org.nl.modules.system.util.CodeUtil; -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.system_manage.service.user.ISysUserService; -import org.nl.wms.system_manage.service.user.dao.SysUser; -import org.nl.wms.masterdata_manage.备份master.service.ClassstandardService; -import org.nl.common.enums.WorkerOrderEnum; -import org.nl.wms.ext.acs.service.WmsToAcsService; -import org.nl.wms.mps.service.ProduceWorkorderService; -import org.nl.wms.mps.service.WorkOrderImportEnum; -import org.nl.wms.mps.service.dto.ProduceWorkorderDto; -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.multipart.MultipartFile; - -import javax.servlet.http.HttpServletRequest; -import java.io.InputStream; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -/** - * @author lyd - * @description 服务实现 - * @date 2023-03-16 - **/ -@Service -@RequiredArgsConstructor -@Slf4j -public class ProduceWorkorderServiceImpl implements ProduceWorkorderService { - - private final ClassstandardService classstandardService; - - private final WmsToAcsService wmsToAcsService; - - private final ISysUserService userService; - - @Override - public Map queryAll(Map whereJson, Pageable page) { - String produceorder_code = MapUtil.getStr(whereJson, "produceorder_code"); - String material = MapUtil.getStr(whereJson, "material"); - String begin_time = MapUtil.getStr(whereJson, "begin_time"); - String end_time = MapUtil.getStr(whereJson, "end_time"); - String order_status = MapUtil.getStr(whereJson, "order_status"); - String shift_type_scode = MapUtil.getStr(whereJson, "shift_type_scode"); - String parent_id = MapUtil.getStr(whereJson, "product_series"); - String sale_id = MapUtil.getStr(whereJson, "sale_id"); - String is_error = MapUtil.getStr(whereJson, "is_error"); - String product_area = MapUtil.getStr(whereJson, "product_area"); - String product_series = ""; - // 员工只能看到自己创建的工单 - String currentUsername = SecurityUtils.getCurrentUsername(); - SysUser one = userService.getOne(new LambdaQueryWrapper().eq(SysUser::getUsername, currentUsername)); - String currentUserId = ""; - if (!one.getIs_admin()) currentUserId = SecurityUtils.getCurrentUserId(); - JSONObject map = new JSONObject(); - map.put("flag", "1"); - //map.put("order_status", order_status); - map.put("shift_type_scode", shift_type_scode); - map.put("begin_time", begin_time); - map.put("end_time", end_time); - map.put("product_area", product_area); - map.put("current_produce_person_id", currentUserId); - if (StrUtil.isNotEmpty(order_status)) { - order_status = order_status.replace("[\"", "").replace("\"]", "").replace("\"", ""); - } - map.put("order_status", order_status); - map.put("is_error", is_error); - //处理状态为未完成 - if (StrUtil.isNotEmpty(order_status) && order_status.contains("-1")) { - map.put("unFinish", "-1"); - map.put("order_status", order_status.replace("-1", "")); - } - if (StrUtil.isNotEmpty(parent_id)) { - product_series = classstandardService.getChildIdStr(parent_id); - map.put("product_series", product_series); - } - if (StrUtil.isNotEmpty(produceorder_code)) { - map.put("produceorder_code", "%" + produceorder_code + "%"); - } - if (StrUtil.isNotEmpty(material)) { - map.put("material", "%" + material + "%"); - } - if (StrUtil.isNotEmpty(sale_id)) { - map.put("sale_id", "%" + sale_id + "%"); - } - JSONObject jsonObject = WQL.getWO("MPS_PRODUCEWORKORDER").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "ShiftOrder.update_time desc"); - return jsonObject; - } - - @Override - public List queryAll(Map whereJson) { - WQLObject wo = WQLObject.getWQLObject("pdm_produce_workorder"); - JSONArray arr = wo.query().getResultJSONArray(0); - if (ObjectUtil.isNotEmpty(arr)) return arr.toJavaList(ProduceWorkorderDto.class); - return null; - } - - @Override - public ProduceWorkorderDto findById(String workorder_id) { - WQLObject wo = WQLObject.getWQLObject("pdm_produce_workorder"); - JSONObject json = wo.query("workorder_id = '" + workorder_id + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(json)) { - return json.toJavaObject(ProduceWorkorderDto.class); - } - return null; - } - - @Override - public ProduceWorkorderDto findByCode(String code) { - WQLObject wo = WQLObject.getWQLObject("pdm_produce_workorder"); - JSONObject json = wo.query("code ='" + code + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(json)) { - return json.toJavaObject(ProduceWorkorderDto.class); - } - return null; - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void create(ProduceWorkorderDto dto) { - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - dto.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - dto.setCurrent_produce_person_id(currentUserId); - dto.setCreate_id(currentUserId); - dto.setCreate_name(nickName); - dto.setUpdate_id(currentUserId); - dto.setUpdate_name(nickName); - dto.setUpdate_time(DateUtil.now()); - dto.setCreate_time(DateUtil.now()); - dto.setWorkorder_id(IdUtil.getSnowflake(1,1).nextIdStr()); - dto.setWorkorder_code(CodeUtil.getNewCode("PDM_SHIFTORDER")); - dto.setCreate_type(WorkerOrderEnum.PCINTO.getCode()); - dto.setWorkorder_status(WorkerOrderEnum.CREATE.getCode()); - WQLObject wo = WQLObject.getWQLObject("pdm_produce_workorder"); - JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); - wo.insert(json); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void update(ProduceWorkorderDto dto) { - ProduceWorkorderDto entity = this.findById(dto.getWorkorder_id()); - if (entity == null) throw new BadRequestException("被删除或无权限,操作失败!"); - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - dto.setUpdate_time(DateUtil.now()); - dto.setUpdate_id(currentUserId); - dto.setUpdate_name(nickName); - WQLObject wo = WQLObject.getWQLObject("pdm_produce_workorder"); - JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); - wo.update(json); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void deleteAll(String[] ids) { - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - WQLObject wo = WQLObject.getWQLObject("pdm_produce_workorder"); - for (String workorder_id : ids) { - JSONObject param = new JSONObject(); - param.put("is_delete", "1"); - param.put("update_id", currentUserId); - param.put("update_name", nickName); - param.put("update_time", DateUtil.now()); - wo.update(param, "workorder_id = '" + workorder_id + "'"); - } - } - - @Override - public JSONArray getNotWorkDeviceByWorkproceduceId(JSONObject param) { - Map res = new HashMap(); - res.put("flag", "2"); - res.put("workprocedure_id", param.getString("workproceduce_id")); - JSONArray resultJSONArray = WQL.getWO("MPS_PRODUCEWORKORDER").addParamMap(res).process().getResultJSONArray(0); - return resultJSONArray; - } - - @Override - public JSONArray getDtl(JSONObject param) { - JSONObject map = new JSONObject(); - map.put("flag", "3"); - map.put("workorder_id", param.getString("workorder_id")); - JSONArray resultJSONArray = WQL.getWO("MPS_PRODUCEWORKORDER").addParamMap(map).process().getResultJSONArray(0); - return resultJSONArray; - } - - @Override - public void submits(List param) { - if (param == null || param.size()==0){ - return; - } - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - String sql = param.stream().collect(Collectors.joining("','")); - WQLObject wo = WQLObject.getWQLObject("PDM_produce_workOrder"); - wo.update(MapOf.of("workorder_status", WorkerOrderEnum.SEND.getCode() - ,"update_id", currentUserId,"update_name" - , nickName,"update_time", DateUtil.now()) - ,"workorder_id in ('"+sql+"')"); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void forceFinish(JSONObject param) { - this.finish(param); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void finish(JSONObject param) { - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - - JSONObject row = param.getJSONObject("row"); - //强制完成时修改工单状态 - String workorder_id = row.getString("workorder_id"); - WQLObject wo = WQLObject.getWQLObject("PDM_produce_workOrder"); - ProduceWorkorderDto workorderDto = this.findById(workorder_id); - JSONObject produceorderMap = new JSONObject(); - produceorderMap.put("workorder_id", workorder_id); - produceorderMap.put("workorder_status", WorkerOrderEnum.FORCE_COMPLETE.getCode()); - produceorderMap.put("update_id", currentUserId); - produceorderMap.put("device_code", null); - produceorderMap.put("update_name", nickName); - produceorderMap.put("update_time", DateUtil.now()); - produceorderMap.put("realproduceend_date", DateUtil.now()); - wo.update(produceorderMap,"workorder_id = '"+workorder_id+"'"); - JSONObject jsonObject = wo.query("workorder_id = '" + workorder_id + "'").uniqueResult(0); - String real_qty = jsonObject.getString("real_qty"); - if (StrUtil.isEmpty(real_qty)) { - real_qty = "0"; - } - //同时修改工单记录表中的期末数量及完成数量 - WQLObject wo_record = WQLObject.getWQLObject("PDM_produce_workOrderRecord"); - JSONObject result = wo_record.query("workorder_id = '" + workorder_id + "' and (operatetime_end = '' or operatetime_end is null) ").uniqueResult(0); - if (ObjectUtil.isNotEmpty(result)) { - // todo: 数量不明确 - result.put("person_finish_qty", real_qty); - result.put("person_report_qty", real_qty); - result.put("operatetime_end", DateUtil.now()); - wo_record.update(result); - } - //工单开工以后需要向acs强制完成 wms向acs发送请求 工单强制完成 - // TODO: 业务不明 - OptionRecord.record(OptionRecord.OptionEnum.UPDATEOP, OptionRecord.Buss.WORKORDER,workorder_id,MapOf.of("workorder_status", WorkerOrderEnum.FORCE_COMPLETE.getCode())); - String order_status = workorderDto.getWorkorder_status(); - if (!order_status.equals("1") && !order_status.equals("2")) { - JSONArray array = new JSONArray(); - JSONObject map = new JSONObject(); - map.put("workorder_id", workorder_id); - map.put("type", WorkerOrderEnum.FORCE_COMPLETE.getCode()); - array.add(map); - wmsToAcsService.orderStatusUpdate(array); - } - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void excelImport(MultipartFile file, HttpServletRequest request) { - // todo: 根据需求修改 - if (file.isEmpty()) { - throw new BadRequestException("文件为空,请添加数据后重新导入"); - } - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - - // 1.获取上传文件输入流 - InputStream inputStream = null; - try { - inputStream = file.getInputStream(); - } catch (Exception e) { - e.printStackTrace(); - } - //工单表 - WQLObject wo_order = WQLObject.getWQLObject("PDM_produce_workOrder"); - //物料表 - WQLObject wo_material = WQLObject.getWQLObject("md_me_materialbase"); - //设备表 - WQLObject wo_device = WQLObject.getWQLObject("pdm_bi_device"); - //工序表 - WQLObject wo_workprocedure = WQLObject.getWQLObject("pdm_bi_workprocedure"); - //人员表 - //WQLObject wo_user = WQLObject.getWQLObject("sys_user"); - - // 调用用 hutool 方法读取数据 调用第一个sheet白班数据 - ExcelReader excelReader = ExcelUtil.getReader(inputStream, 0); - // 从第1行开始获取数据 excelReader.read的结果是一个2纬的list,外层是行,内层是行对应的所有列 - List> read = excelReader.read(0, excelReader.getRowCount()); - String produce_date = ""; - // 循环获取的数据 - row: - for (int i = 0; i < read.size(); i++) { - List list = read.get(i); - if (ObjectUtil.isEmpty(list)) { - continue; - } - //获取每列 - JSONObject param = new JSONObject(); - //按照列获取 - param.put("workorder_id", IdUtil.getSnowflake(1, 1).nextId()); - param.put("workorder_code", CodeUtil.getNewCode("PDM_SHIFTORDER")); -// param.put("macoperate_id", IdUtil.getSnowflake(1, 1).nextId()); - param.put("workorder_status", WorkerOrderEnum.CREATE.getCode()); - param.put("shift_type_scode", WorkerOrderEnum.DAYSHIFT.getCode()); // 默认白班 - String is_error = "0"; - String error_message = ""; - //循环每一行 - col: - for (int j = 0; j < list.size(); j++) { - - String col = String.valueOf(list.get(j)); - //如果是第一行 为生产日期 - if (i == 0 && j == 0) { - produce_date = col.split(":")[col.split(":").length - 1]; - continue row; - } - //如果第一列包含规格二字 则为表头 结束内循环列 - if (j == 0 && col.contains("规格名称")) { - continue row; - } - if (j == 0) { - //物料 - if (StrUtil.isEmpty(col)) { - is_error = "1"; - error_message = error_message + "物料规格为空,"; - } - JSONObject json_material = wo_material.query("is_delete = '0' and material_spec = '" + col + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(json_material)) { - is_error = "1"; - error_message = error_message + "物料规格对应物料信息不存在,"; - }else { - param.put("material_id", json_material.getString("material_id")); - } - } - if (j == 2) { - if (StrUtil.isEmpty(col)) { - is_error = "1"; - error_message = error_message + "工序名称为空,"; - } - WorkOrderImportEnum idByName = WorkOrderImportEnum.getIdByName(col); - if (ObjectUtil.isEmpty(idByName)) { - is_error = "1"; - error_message = error_message + "工序名称是否正确,"; - }else { - param.put("workprocedure_id", idByName.getId()); - } - } - if (j == 4) { - //单重 - param.put("material_weight", col); - } - if (j == 6) { - if (StrUtil.isEmpty(col)) { - is_error = "1"; - error_message = error_message + "工单计划数量为空,"; - }else { - param.put("plan_qty", col); - } - } - if (j == 10) { - String workprocedure_id = param.getString("workprocedure_id"); - JSONObject json_device = wo_device.query("is_delete = '0' and device_code = '" + col + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(json_device)) { - is_error = "1"; - error_message = error_message + "设备编码不存在,"; - } - if (!workprocedure_id.equals(json_device.getString("workprocedure_id"))) { - is_error = "1"; - error_message = error_message + "设备与所属工序不匹配,"; - }else { - param.put("device_id", json_device.getString("device_id")); - } - } - if (j == 11) { - SysUser jsonUser = userService.getOne(new QueryWrapper().eq("username", col)); - if (ObjectUtil.isEmpty(jsonUser)) { - is_error = "1"; - error_message = error_message + "生产人员编码不存在!"; - }else { - param.put("current_produce_person_id", jsonUser.getUser_id()); - } - } - if (j == 12) { - //允许修改报工数量 - String is_canupdate = "0"; - if (col.equals("是")) { - is_canupdate = "1"; - } - param.put("is_canupdate_update", is_canupdate); - } - if (j == 13) { - //是否agv搬运 - String needmoce = "0"; - if (col.equals("是")) { - needmoce = "1"; - } - param.put("is_needmove", needmoce); - } - } - param.put("is_error", is_error); - param.put("error_info", error_message); - param.put("create_type", WorkerOrderEnum.EXCELINTO.getCode()); - param.put("planproducestart_date", produce_date + "07:30:00"); - param.put("planproduceend_date", produce_date + "18:30:00"); - param.put("create_id", currentUserId); - param.put("create_name", nickName); - param.put("create_time", DateUtil.now()); - wo_order.insert(param); - } - - // 1.获取上传文件输入流 - inputStream = null; - try { - inputStream = file.getInputStream(); - } catch (Exception e) { - e.printStackTrace(); - } - //读取夜班工单数据 - excelReader = ExcelUtil.getReader(inputStream, 1); - read = excelReader.read(0, excelReader.getRowCount()); - String is_error = "0"; - String error_message = ""; - // 循环获取的数据 - row: - for (int i = 0; i < read.size(); i++) { - List list = read.get(i); - //获取每列 - JSONObject param = new JSONObject(); - //按照列获取 - param.put("workorder_id", IdUtil.getSnowflake(1, 1).nextId()); - param.put("workorder_code", CodeUtil.getNewCode("PDM_SHIFTORDER")); -// param.put("producedeviceorder_code", CodeUtil.getNewCode("PDM_SHIFTORDER")); - param.put("workorder_status", WorkerOrderEnum.CREATE.getCode()); -// param.put("produce_date", produce_date); - param.put("shift_type_scode", WorkerOrderEnum.NIGHTSHIFT.getCode()); // 夜班 - //循环每一行 - col: - for (int j = 0; j < list.size(); j++) { - - String col = String.valueOf(list.get(j)); - //如果是第一行 为生产日期 - if (i == 0 && j == 0) { - produce_date = col.split(":")[col.split(":").length - 1]; - continue row; - } - //如果第一列包含规格二字 则为表头 结束内循环列 - if (j == 0 && col.contains("规格名称")) { - continue row; - } - if (j == 0) { - //物料 - if (StrUtil.isEmpty(col)) { - is_error = "1"; - error_message = error_message + "物料规格为空,"; - } - JSONObject json_material = wo_material.query("is_delete = '0' and material_spec = '" + col + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(json_material)) { - is_error = "1"; - error_message = error_message + "物料规格对应物料信息不存在,"; - }else { - param.put("material_id", json_material.getString("material_id")); - } - } - if (j == 2) { - if (StrUtil.isEmpty(col)) { - is_error = "1"; - error_message = error_message + "工序名称为空,"; - } - WorkOrderImportEnum idByName = WorkOrderImportEnum.getIdByName(col); - if (ObjectUtil.isEmpty(idByName)) { - is_error = "1"; - error_message = error_message + "工序名称是否正确,"; - }else { - param.put("workprocedure_id", idByName.getId()); - } - } - if (j == 4) { - //单重 - param.put("material_weight", col); - } - if (j == 6) { - if (StrUtil.isEmpty(col)) { - is_error = "1"; - error_message = error_message + "工单计划数量为空,"; - }else { - param.put("plan_qty", col); - } - } -// if (j == 10) { -// //物料 -// JSONObject json_material = wo_material.query("is_delete = '0' and material_code = '" + col + "'").uniqueResult(0); -// if (ObjectUtil.isEmpty(json_material)) { -// throw new BadRequestException("第'" + (i + 2) + "'行,物料编码不存在"); -// } -// param.put("material_id", json_material.getString("material_id")); -// } - if (j == 10) { - String workprocedure_id = param.getString("workprocedure_id"); - JSONObject json_device = wo_device.query("is_delete = '0' and device_code = '" + col + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(json_device)) { - is_error = "1"; - error_message = error_message + "设备编码不存在,"; - } - if (!workprocedure_id.equals(json_device.getString("workprocedure_id"))) { - is_error = "1"; - error_message = error_message + "设备与所属工序不匹配,"; - }else { - param.put("device_id", json_device.getString("device_id")); - } - } - if (j == 11) { - SysUser jsonUser = userService.getOne(new QueryWrapper().eq("username", col)); - if (ObjectUtil.isEmpty(jsonUser)) { - is_error = "1"; - error_message = error_message + "生产人员编码不存在!"; - }else { - param.put("current_produce_person_id", jsonUser.getUser_id()); - } - } - if (j == 12) { - //允许修改报工数量 - String is_canupdate = "0"; - if (col.equals("是")) { - is_canupdate = "1"; - } - param.put("is_canupdate_update", is_canupdate); - } - if (j == 13) { - //是否agv搬运 - String needmoce = "0"; - if (col.equals("是")) { - needmoce = "1"; - } - param.put("is_needmove", needmoce); - } - } - param.put("is_error", is_error); - param.put("error_info", error_message); - param.put("create_type", WorkerOrderEnum.EXCELINTO.getCode()); - param.put("planproducestart_date", produce_date + "18:30:00"); - DateTime dateTime = DateUtil.offsetDay(DateUtil.parse(produce_date), 1); - param.put("planproduceend_date", DateUtil.format(dateTime,"yyyy-MM-dd") + " 07:30:00"); - param.put("create_id", currentUserId); - param.put("create_name", nickName); - param.put("create_time", DateUtil.now()); - wo_order.insert(param); - } - - } - -} 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 578c489d..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 @@ -327,7 +327,7 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService{ //获取前台传入的开工的工单信息 String workorder_id = param.getString("workorder_id"); //1-创建、2-下发、3-生产中、4-暂停、5-完成 - JSONObject result = WQLObject.getWQLObject("pdm_produce_workorder").query("current_device_code = '" + param.getString("device_code") + "' and workorder_status in ('2','3','4') and workorder_id != '" + workorder_id + "'").uniqueResult(0); + JSONObject result = WQLObject.getWQLObject("pdm_produce_workorder").query("device_code = '" + param.getString("device_code") + "' and workorder_status in ('2','3','4') and workorder_id != '" + workorder_id + "'").uniqueResult(0); //判断该工单状态 if(ObjectUtil.isNotEmpty(result)) { throw new BadRequestException("已有工单选择该设备开工,请更换开工设备!"); @@ -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:记录表记录操作 - OptionRecord.record(OptionRecord.OptionEnum.UPDATEOP, OptionRecord.Buss.WORKORDER,workorder_id,MapOf.of("workorder_status", WorkerOrderEnum.SEND.getCode())); return RestBusinessTemplate.execute(() -> resp); } @@ -348,7 +347,7 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService{ JSONObject workOrder = WQLObject.getWQLObject("pdm_produce_workorder").query(" workorder_id = '" + workorder_id + "'").uniqueResult(0); JSONObject form = new JSONObject(); JSONObject material = WQLObject.getWQLObject("md_me_materialbase").query("material_id = '" + workOrder.getString("material_id") + "'").uniqueResult(0); - JSONObject device_code = WQLObject.getWQLObject("pdm_bi_device").query("device_code = '" +workOrder.getString("current_device_code")+ "'").uniqueResult(0); + JSONObject device_code = WQLObject.getWQLObject("pdm_bi_device").query("device_code = '" +workOrder.getString("device_code")+ "'").uniqueResult(0); form.put("workorder_id",workOrder.get("workorder_id")); form.put("workorder_code",workOrder.get("workorder_code")); form.put("qty", workOrder.getString("plan_qty")); @@ -357,7 +356,7 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService{ form.put("material_name",material.get("material_name")); form.put("material_code",material.get("material_code")); form.put("material_spec",material.get("material_spec")); - form.put("device_code",workOrder.getString("current_device_code")); + form.put("device_code",workOrder.getString("device_code")); form.put("is_needmove",workOrder.getString("is_needmove")); return form; } @@ -404,7 +403,7 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService{ JSONObject map = new JSONObject(); map.put("produceorder_id", workorder_id); map.put("workorder_status", WorkerOrderEnum.FORCE_COMPLETE.getCode()); - map.put("current_device_code", null); + map.put("device_code", null); map.put("update_id", currentUserId); map.put("update_name", nickName); map.put("update_time", DateUtil.now()); @@ -751,10 +750,10 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService{ @Override public JSONArray getNotWorkDeviceByWorkproceduceId(JSONObject param) { - final String workproceduce_id = param.getString("workproceduce_id"); + final String workprocedure_id = param.getString("workprocedure_id"); JSONObject map = new JSONObject(); map.put("flag", "6"); - map.put("workproceduce_id", workproceduce_id); + map.put("workprocedure_id", workprocedure_id); JSONArray devices = WQL.getWO("MPS_PRODUCEDURE001").addParamMap(map).process().getResultJSONArray(0); StringBuilder sb = new StringBuilder(); if(ObjectUtil.isNotEmpty(devices)) { @@ -775,7 +774,7 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService{ param.put("device_ids", "('-1')"); } param.put("flag", "7"); - param.put("workprocedure_id", workproceduce_id); + param.put("workprocedure_id", workprocedure_id); JSONArray resultJSONArray = WQL.getWO("MPS_PRODUCEDURE001").addParamMap(param).process().getResultJSONArray(0); return resultJSONArray; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/wql/MPS_PRODUCEWORKORDER.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/wql/MPS_PRODUCEWORKORDER.wql index b752a82d..b6feaa06 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/wql/MPS_PRODUCEWORKORDER.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/wql/MPS_PRODUCEWORKORDER.wql @@ -127,7 +127,7 @@ OPTION 输入.workprocedure_id <> "" device.workprocedure_id = 输入.workprocedure_id and device.device_code not in ( - select o.current_device_code as device_code + select o.device_code as device_code from PDM_produce_workOrder o where o.workorder_status <> '5' and o.is_delete = '0' ) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/wql/ONEPART_QUERY.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/wql/ONEPART_QUERY.wql index 2f27317e..11fa5445 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/wql/ONEPART_QUERY.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps/wql/ONEPART_QUERY.wql @@ -89,7 +89,7 @@ workorder.workorder_status order_status, workorder.workorder_id, workorder.workorder_code, - workorder.current_device_code device_code, + workorder.device_code device_code, workorder.material_id, workorder.workprocedure_id, workorder.plan_qty, @@ -108,7 +108,7 @@ WHERE workorder.is_delete = '0' OPTION 输入.device_code <> "" - (workorder.current_device_code like CONCAT ('%', 输入.device_code, '%')) + (workorder.device_code like CONCAT ('%', 输入.device_code, '%')) ENDOPTION OPTION 输入.key_value <> "" ( @@ -130,15 +130,15 @@ IF 输入.flag = "3" QUERY SELECT - current_device_code deviceCode, - count( current_device_code ) job_count + device_code deviceCode, + count( device_code ) job_count FROM pdm_produce_workorder WHERE is_delete = 0 - AND current_device_code != '' + AND device_code != '' GROUP BY - current_device_code + device_code ENDSELECT ENDQUERY ENDIF 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/device/PdmBiDeviceController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/device/PdmBiDeviceController.java index decc1cc0..c9ca3d46 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/device/PdmBiDeviceController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/device/PdmBiDeviceController.java @@ -1,21 +1,97 @@ package org.nl.wms.product_manage.controller.device; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.anno.Log; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.product_manage.service.device.IPdmBiDeviceService; +import org.nl.wms.product_manage.service.device.dao.PdmBiDevice; +import org.nl.wms.product_manage.备份pdm.service.DeviceService; +import org.nl.wms.product_manage.备份pdm.service.dto.DeviceDto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import java.util.Map; /** - *

- * 生产设备基础信息表 前端控制器 - *

- * - * @author generator - * @since 2023-04-26 - */ + * @author lyd + * @date 2023-03-15 + **/ @RestController -@RequestMapping("/pdmBiDevice") +@Api(tags = "生产设备管理") +@RequestMapping("/api/device") +@Slf4j public class PdmBiDeviceController { + @Autowired + private DeviceService deviceService; + @Autowired + private IPdmBiDeviceService iDeviceService; + + @GetMapping + @Log("查询生产设备") + @ApiOperation("查询生产设备") + //@PreAuthorize("@el.check('device:list')") + public ResponseEntity query(@RequestParam Map whereJson, Pageable page){ + return new ResponseEntity<>(deviceService.queryAll(whereJson,page),HttpStatus.OK); + } + + @PostMapping + @Log("新增生产设备") + @ApiOperation("新增生产设备") + //@PreAuthorize("@el.check('device:add')") + public ResponseEntity create( @RequestBody JSONObject form){ + PdmBiDevice device = form.toJavaObject(PdmBiDevice.class); + device.setCreate_id(SecurityUtils.getCurrentUserId()); + device.setCreate_name(SecurityUtils.getCurrentNickName()); + device.setCreate_time(DateUtil.now()); + iDeviceService.save(device); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改生产设备") + @ApiOperation("修改生产设备") + //@PreAuthorize("@el.check('device:edit')") + public ResponseEntity update(@Validated @RequestBody JSONObject form){ + PdmBiDevice device = form.toJavaObject(PdmBiDevice.class); + device.setUpdate_id(SecurityUtils.getCurrentUserId()); + device.setUpdate_name(SecurityUtils.getCurrentNickName()); + device.setUpdate_time(DateUtil.now()); + iDeviceService.updateById(device); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @Log("删除生产设备") + @ApiOperation("删除生产设备") + //@PreAuthorize("@el.check('device:del')") + @DeleteMapping + public ResponseEntity delete(@RequestBody String[] ids) { + deviceService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + @GetMapping("/getWorkprocedure") + @Log("工序下拉") + @ApiOperation("工序下拉") + //@PreAuthorize("@el.check('device:list')") + public ResponseEntity getWorkprocedure(){ + return new ResponseEntity<>(deviceService.getWorkprocedure(),HttpStatus.OK); + } + + @GetMapping("/getDeviceList") + @Log("设备下拉框") + @ApiOperation("设备下拉框") + //@PreAuthorize("@el.check('device:list')") + public ResponseEntity getDeviceList(){ + return new ResponseEntity<>(deviceService.getDeviceList(),HttpStatus.OK); + } } - diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/PdmProduceWorkorderController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/PdmProduceWorkorderController.java index 6ebe7421..2a25fcb6 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/PdmProduceWorkorderController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/controller/workorder/PdmProduceWorkorderController.java @@ -1,8 +1,9 @@ package org.nl.wms.product_manage.controller.workorder; +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 io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; @@ -10,13 +11,12 @@ import lombok.extern.slf4j.Slf4j; import org.nl.common.TableDataInfo; import org.nl.common.anno.Log; import org.nl.common.domain.query.PageQuery; -import org.nl.wms.mps.service.ProduceWorkorderService; -import org.nl.wms.mps.service.dto.ProduceWorkorderDto; +import org.nl.common.utils.SecurityUtils; import org.nl.wms.product_manage.service.device.IPdmBiDeviceService; -import org.nl.wms.product_manage.service.device.dao.PdmBiDevice; import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService; +import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; +import org.nl.wms.product_manage.service.workorder.dto.WorkorderQuery; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; @@ -24,8 +24,9 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; +import java.util.Arrays; +import java.util.Date; import java.util.List; -import java.util.Map; /** *

@@ -41,7 +42,7 @@ import java.util.Map; @RequestMapping("/api/produceWorkorder") @Slf4j public class PdmProduceWorkorderController { - private final ProduceWorkorderService produceWorkorderService; + private final IPdmProduceWorkorderService iPdmProduceWorkorderService; @Autowired private IPdmBiDeviceService deviceService; @@ -49,41 +50,38 @@ public class PdmProduceWorkorderController { @GetMapping @Log("查询工单管理") @ApiOperation("查询工单管理") - public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) { - return new ResponseEntity<>(iPdmProduceWorkorderService.queryAll(whereJson, page), HttpStatus.OK); + public ResponseEntity query(WorkorderQuery query, PageQuery page) { + return new ResponseEntity<>(iPdmProduceWorkorderService.queryAll(query, page), HttpStatus.OK); } - @PostMapping - @Log("新增工单管理") - @ApiOperation("新增工单管理") - //@PreAuthorize("@el.check('produceWorkorder:add')") - public ResponseEntity create(@Validated @RequestBody ProduceWorkorderDto dto) { - produceWorkorderService.create(dto); - return new ResponseEntity<>(HttpStatus.CREATED); - } @PostMapping("/create") @Log("新增工单管理") @ApiOperation("新增工单管理") - //@PreAuthorize("@el.check('produceWorkorder:add')") - public ResponseEntity submit(@Validated @RequestBody ProduceWorkorderDto dto) { - produceWorkorderService.create(dto); + public ResponseEntity submit(@Validated @RequestBody JSONObject dto) { + iPdmProduceWorkorderService.create(dto); return new ResponseEntity<>(HttpStatus.CREATED); } @PutMapping @Log("修改工单管理") @ApiOperation("修改工单管理") - //@PreAuthorize("@el.check('produceWorkorder:edit')") - public ResponseEntity update(@Validated @RequestBody ProduceWorkorderDto dto) { - produceWorkorderService.update(dto); + public ResponseEntity update(@Validated @RequestBody JSONObject dto) { + iPdmProduceWorkorderService.updateForm(dto); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } - @PutMapping("/submits") + @PostMapping("/submits") @Log("工单下发") @ApiOperation("工单下发") public ResponseEntity submits(@RequestBody List param) { - produceWorkorderService.submits(param); + iPdmProduceWorkorderService.down(param); + return new ResponseEntity<>(HttpStatus.OK); + } + @PostMapping("/unSubmits") + @Log("工单取消下发") + @ApiOperation("工单取消下发") + public ResponseEntity unSubmits(@RequestBody List param) { + iPdmProduceWorkorderService.down(param); return new ResponseEntity<>(HttpStatus.OK); } @@ -91,33 +89,29 @@ public class PdmProduceWorkorderController { @ApiOperation("删除工单管理") @DeleteMapping public ResponseEntity delete(@RequestBody String[] ids) { - produceWorkorderService.deleteAll(ids); + if (ids != null && ids.length > 0){ + iPdmProduceWorkorderService.update(new UpdateWrapper() + .set("is_delete",true) + .set("update_id", SecurityUtils.getCurrentUserId()) + .set("update_name",SecurityUtils.getCurrentNickName()) + .set("update_time",new Date()) + .in("workorder_id", Arrays.asList(ids))); + } return new ResponseEntity<>(HttpStatus.OK); } @PostMapping("/getNotWorkDeviceByWorkproceduceId") @Log("根据工序查询没有工单的设备") @ApiOperation("根据工序查询没有工单的设备") - //@PreAuthorize("@el.check('WorkProcedure:add')") public ResponseEntity getNotWorkDeviceByWorkproceduceId(@RequestBody JSONObject param) { - List list = deviceService.list(new QueryWrapper() - .eq("workprocedure_id", param.getString("workprocedure_id")) - .eq("is_delete", false)); - return new ResponseEntity<>(TableDataInfo.build(list),HttpStatus.CREATED); - } - - @PostMapping("/getDtl") - @Log("获取当前工单下的工单生产记录") - @ApiOperation("获取当前工单下的工单生产记录") - public ResponseEntity getDtl(@RequestBody JSONObject param) { - return new ResponseEntity<>(produceWorkorderService.getDtl(param), HttpStatus.OK); + return new ResponseEntity<>(TableDataInfo.build(deviceService.getNotWorkDeviceByWorkproceduceId(param)),HttpStatus.CREATED); } @PostMapping("/forceFinish") @Log("工单强制完成") @ApiOperation("工单强制完成") public ResponseEntity forceFinish(@RequestBody JSONObject param) { - produceWorkorderService.forceFinish(param); + iPdmProduceWorkorderService.finish(param); return new ResponseEntity<>(HttpStatus.OK); } @@ -125,8 +119,32 @@ public class PdmProduceWorkorderController { @Log("excel导入") @ApiOperation("excel导入") public ResponseEntity excelImport(@RequestParam("file") MultipartFile file, HttpServletRequest request) { - produceWorkorderService.excelImport(file, request); + iPdmProduceWorkorderService.excelImport(file,request); return new ResponseEntity<>(HttpStatus.OK); } + + @PostMapping("/getDtl") + @Log("获取当前工单下的工单生产记录") + @ApiOperation("获取当前工单下的工单生产记录") + public ResponseEntity getDtl(@RequestBody JSONObject param) { + return new ResponseEntity<>(TableDataInfo.build(iPdmProduceWorkorderService.getDtl(param)), HttpStatus.OK); + } + + @PostMapping("/report") + @Log("报工") + @ApiOperation("报工") + public ResponseEntity report(@RequestBody JSONObject param) { + return new ResponseEntity<>(iPdmProduceWorkorderService.report(param), HttpStatus.OK); + } + + @PostMapping("/reportApprove") + @Log("报工审核") + @ApiOperation("报工审核") + public ResponseEntity reportApprove(@RequestBody JSONArray param) { + iPdmProduceWorkorderService.reportApprove(param); + return new ResponseEntity<>(HttpStatus.OK); + } + + } 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 getDevice(@RequestBody JSONObject param) { + //从设备拉去 return new ResponseEntity<>(produceshiftorderService.getDevice(param), HttpStatus.OK); } @PostMapping("/getTable") @Log("获取工单生产记录") @ApiOperation("获取工单生产记录") - //@PreAuthorize("@el.check('produceshiftorder:list')") public ResponseEntity getTable(@RequestBody JSONObject param) { + return new ResponseEntity<>(produceshiftorderService.getTable(param), HttpStatus.OK); } @@ -80,14 +83,15 @@ public class ProduceshiftorderController{ @Log("看板报工") @ApiOperation("看板报工") public ResponseEntity saveReport(@RequestBody JSONObject param) { - return new ResponseEntity<>(produceshiftorderService.saveReport(param), HttpStatus.OK); + return new ResponseEntity<>(iPdmProduceWorkorderService.report(param), HttpStatus.OK); } @PostMapping("/finish") @Log("看板强制完成") @ApiOperation("看板强制完成") public ResponseEntity finish(@RequestBody JSONObject param) { - return new ResponseEntity<>(produceshiftorderService.finish(param), HttpStatus.OK); + iPdmProduceWorkorderService.finish(param); + return new ResponseEntity<>(HttpStatus.OK); } @PostMapping("/getReportWork") diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/pdm.xls b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/pdm.xls index f19f70ba..78870a96 100644 Binary files a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/pdm.xls and b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/pdm.xls differ diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/IPdmBiDeviceService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/IPdmBiDeviceService.java index 7057066b..3db7a58e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/IPdmBiDeviceService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/IPdmBiDeviceService.java @@ -1,8 +1,12 @@ package org.nl.wms.product_manage.service.device; +import com.alibaba.fastjson.JSONObject; import org.nl.wms.product_manage.service.device.dao.PdmBiDevice; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; +import java.util.Map; + /** *

* 生产设备基础信息表 服务类 @@ -13,4 +17,6 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface IPdmBiDeviceService extends IService { + List getNotWorkDeviceByWorkproceduceId(JSONObject param); + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/PdmBiDevice.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/PdmBiDevice.java index 690c0017..1b0a47c1 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/PdmBiDevice.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/PdmBiDevice.java @@ -1,6 +1,8 @@ package org.nl.wms.product_manage.service.device.dao; import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import lombok.Data; @@ -24,6 +26,7 @@ public class PdmBiDevice implements Serializable { /** * 设备编码 */ + @TableId(value = "device_code") private String device_code; /** diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.java index 90beebe2..5549e533 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.java @@ -3,6 +3,9 @@ package org.nl.wms.product_manage.service.device.dao.mapper; import org.nl.wms.product_manage.service.device.dao.PdmBiDevice; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import java.util.List; +import java.util.Map; + /** *

* 生产设备基础信息表 Mapper 接口 @@ -13,4 +16,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface PdmBiDeviceMapper extends BaseMapper { + List getNotWorkDevice(Map query); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.xml index 08659903..f8e60447 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/dao/mapper/PdmBiDeviceMapper.xml @@ -2,4 +2,20 @@ + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/impl/PdmBiDeviceServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/impl/PdmBiDeviceServiceImpl.java index 199ff3e1..ec77959e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/impl/PdmBiDeviceServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/device/impl/PdmBiDeviceServiceImpl.java @@ -1,11 +1,15 @@ package org.nl.wms.product_manage.service.device.impl; +import com.alibaba.fastjson.JSONObject; import org.nl.wms.product_manage.service.device.dao.PdmBiDevice; import org.nl.wms.product_manage.service.device.dao.mapper.PdmBiDeviceMapper; import org.nl.wms.product_manage.service.device.IPdmBiDeviceService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Map; + /** *

* 生产设备基础信息表 服务实现类 @@ -17,4 +21,8 @@ import org.springframework.stereotype.Service; @Service public class PdmBiDeviceServiceImpl extends ServiceImpl implements IPdmBiDeviceService { + @Override + public List getNotWorkDeviceByWorkproceduceId(JSONObject param) { + return this.baseMapper.getNotWorkDevice(param); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderService.java index f42ab26c..6bb5e166 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderService.java @@ -4,12 +4,13 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.common.domain.query.PageQuery; -import org.nl.common.utils.api.CommonResult; -import org.nl.wms.mps.service.dto.ProduceWorkorderDto; +import org.nl.common.utils.OptionRecord; import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; +import org.nl.wms.product_manage.service.workorder.dto.WorkorderQuery; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -29,74 +30,51 @@ public interface IPdmProduceWorkorderService extends IService */ - Object queryAll(Map whereJson, PageQuery page); + Object queryAll(WorkorderQuery whereJson, PageQuery page); /** * 查询所有数据不分页 * @param whereJson 条件参数 * @return List */ - List queryAll(Map whereJson); + Object queryAll(Map whereJson); - /** - * 根据ID查询 - * @param workorder_id ID - * @return ProduceWorkorder - */ - ProduceWorkorderDto findById(String workorder_id); - - /** - * 根据编码查询 - * @param code code - * @return ProduceWorkorder - */ - ProduceWorkorderDto findByCode(String code); /** * 创建 * @param dto / */ - void create(ProduceWorkorderDto dto); + void create(JSONObject dto); /** * 编辑 + * * @param dto / */ - void update(ProduceWorkorderDto dto); + void updateForm(JSONObject dto); - /** - * 多选删除 - * @param ids / - */ - void deleteAll(String[] ids); - /** - * 更换设备时根据工单所属工序 查询所有工单中没有生产的设备 - * @param param - * @return - */ - JSONArray getNotWorkDeviceByWorkproceduceId(JSONObject param); /** * 获取当前工单的记录 * @param param * @return */ - JSONArray getDtl(JSONObject param); + List getDtl(JSONObject param); /** * 工单下发 * @param param * @return */ - void submits(List param); - + void down(List param); /** - * 强制完成 + * 工单取消下发 * @param param + * @return */ - void forceFinish(JSONObject param); + void unDown(List param); /** * 看板强制完成 @@ -116,7 +94,25 @@ public interface IPdmProduceWorkorderService extends IService> openStart(JSONObject param); + Object openStart(JSONObject param); + + /** + * 开工操作 + *包含3个字段 + * @param param 请求参数 + * @return + */ + Object report(JSONObject param); + + void reportApprove(JSONArray param); + + /** + * 工单更换设备 + * + * @param param + */ + void replaceDevice(JSONObject param); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderrecordService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderrecordService.java new file mode 100644 index 00000000..2f95ec1f --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/IPdmProduceWorkorderrecordService.java @@ -0,0 +1,16 @@ +package org.nl.wms.product_manage.service.workorder; + +import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorderrecord; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 生产设备报工记录表 服务类 + *

+ * + * @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/PdmProduceWorkorder.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorder.java index 57992f47..128ff135 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorder.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/PdmProduceWorkorder.java @@ -44,6 +44,7 @@ public class PdmProduceWorkorder implements Serializable { */ private String workprocedure_id; + /** * 生产区域 */ @@ -52,27 +53,27 @@ public class PdmProduceWorkorder implements Serializable { /** * 计划数量 */ - private Integer plan_qty; + private BigDecimal plan_qty; /** * 实际数量 */ - private Integer real_qty; + private BigDecimal real_qty; /** * 人员实际数量 */ - private Integer person_real_qty; + private BigDecimal person_real_qty; /** * 电气实际数量 */ - private String dq_real_qty; + private BigDecimal dq_real_qty; /** * 物料标识 */ - private Long material_id; + private String material_id; /** * 物料单重 @@ -102,17 +103,17 @@ public class PdmProduceWorkorder implements Serializable { /** * 当前生产设备编码 */ - private String current_device_code; + private String device_code; /** * 当前生产人员id */ - private Long current_produce_person_id; + private String current_produce_person_id; /** * 操作工是否允许修改报工数量 */ - private String is_canupdate_update; + private Boolean is_canupdate_update; /** * 物料系列 @@ -127,12 +128,12 @@ public class PdmProduceWorkorder implements Serializable { /** * 是否搬运 */ - private String is_needmove; + private Boolean is_needmove; /** * 销售单标识 */ - private Long sale_id; + private String sale_id; /** * 创建类型 @@ -142,7 +143,7 @@ public class PdmProduceWorkorder implements Serializable { /** * 工单是否异常 */ - private String is_error; + private Boolean is_error; /** * 异常信息 @@ -157,7 +158,7 @@ public class PdmProduceWorkorder implements Serializable { /** * 创建人 */ - private Long create_id; + private String create_id; /** * 创建人 @@ -169,30 +170,56 @@ public class PdmProduceWorkorder implements Serializable { */ private String create_time; - /** - * 修改人 - */ - private Long update_id; - /** - * 修改人 - */ - private String update_name; - - /** - * 修改时间 - */ - private String update_time; /** * 是否删除 */ - private String is_delete; + private Boolean is_delete; /** * 报工数量 */ - private Integer report_qty; + private BigDecimal report_qty; + + // 工单类型 10手工工单。20排产工单 + private String order_type_scode; + + //报废总;报修总 + private BigDecimal nok_qty; + private BigDecimal repare_qty; + + + /** + * 下发人 + */ + private String down_id; + + /** + * 下发人 + */ + private String down_name; + + /** + * 下发时间 + */ + private String down_time; + + + /** + * 完工人 + */ + private String confirm_id; + + /** + * 完工人 + */ + private String confirm_name; + + /** + * 完工时间 + */ + private String confirm_time; } 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/PdmProduceWorkorderMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.java index 304d73dd..794348f7 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.java @@ -18,5 +18,11 @@ import java.util.Map; * @since 2023-04-26 */ public interface PdmProduceWorkorderMapper extends BaseMapper { + List pageQuery(@Param("query") WorkorderQuery query); + + List getworkOrderDtl(String workorder_id); + + int batchUpdateByParam(@Param("event") List event, @Param("workorder_id")String workorder_id); + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.xml index 4548c3c4..db100b8a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dao/mapper/PdmProduceWorkorderMapper.xml @@ -53,4 +53,37 @@ ) + + + + update PDM_produce_workOrder set + + ${item.field} = ${item.field} + + + + + + + - + + + #{item.value,jdbcType=DECIMAL} + + where workorder_id = #{workorder_id} + + 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/dto/WorkorderQuery.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dto/WorkorderQuery.java index 71cc8907..4e43b6b5 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dto/WorkorderQuery.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/dto/WorkorderQuery.java @@ -7,6 +7,9 @@ import org.nl.common.domain.query.QParam; import org.nl.common.enums.QueryTEnum; import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; +import java.util.List; +import java.util.Map; + /* * @author ZZQ * @Date 2023/4/26 11:05 @@ -24,5 +27,8 @@ public class WorkorderQuery extends BaseQuery { private String is_error; - + @Override + public void paramMapping() { + super.doP.put("product_series", QParam.builder().k(new String[]{"dept_id"}).type(QueryTEnum.IN).build()); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/PdmProduceWorkorderServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java similarity index 54% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/PdmProduceWorkorderServiceImpl.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java index 5352bcde..709a0f1a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/PdmProduceWorkorderServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workorder/impl/IPdmProduceWorkorderServiceImpl.java @@ -2,42 +2,41 @@ package org.nl.wms.product_manage.service.workorder.impl; import cn.hutool.core.date.DateTime; 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 cn.hutool.poi.excel.ExcelReader; import cn.hutool.poi.excel.ExcelUtil; -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 com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; +import io.jsonwebtoken.lang.Assert; import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; import org.nl.common.enums.WorkerOrderEnum; -import org.nl.common.utils.MapOf; -import org.nl.common.utils.OptionRecord; -import org.nl.common.utils.SecurityUtils; -import org.nl.common.utils.api.CommonResult; +import org.nl.common.utils.*; import org.nl.common.utils.api.RestBusinessTemplate; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; -import org.nl.modules.wql.WQL; -import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.ext.acs.service.WmsToAcsService; -import org.nl.wms.masterdata_manage.备份master.service.ClassstandardService; +import org.nl.wms.masterdata_manage.master.service.classstandard.IMdPbClassstandardService; 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.ProduceWorkorderDto; +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; import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService; +import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderrecordService; import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder; +import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorderrecord; +import org.nl.wms.product_manage.service.workorder.dao.WorkorderRecord; import org.nl.wms.product_manage.service.workorder.dao.mapper.PdmProduceWorkorderMapper; import org.nl.wms.product_manage.service.workorder.dto.WorkorderQuery; import org.nl.wms.system_manage.service.user.ISysUserService; @@ -46,14 +45,13 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.InputStream; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -65,9 +63,9 @@ import java.util.stream.Collectors; * @since 2023-04-26 */ @Service -public class PdmProduceWorkorderServiceImpl extends ServiceImpl implements IPdmProduceWorkorderService { +public class IPdmProduceWorkorderServiceImpl extends ServiceImpl implements IPdmProduceWorkorderService { @Autowired - private ClassstandardService classstandardService; + private IMdPbClassstandardService classstandardService; @Autowired private WmsToAcsService wmsToAcsService; @Autowired @@ -78,12 +76,15 @@ public class PdmProduceWorkorderServiceImpl extends ServiceImpl page = PageHelper.startPage(pageQuery.getPage()+1, pageQuery.getSize()); List result = pdmProduceWorkorderMapper.pageQuery(query); @@ -93,171 +94,122 @@ public class PdmProduceWorkorderServiceImpl extends ServiceImpl queryAll(Map whereJson) { - WQLObject wo = WQLObject.getWQLObject("pdm_produce_workorder"); - JSONArray arr = wo.query().getResultJSONArray(0); - if (ObjectUtil.isNotEmpty(arr)) return arr.toJavaList(ProduceWorkorderDto.class); - return null; + public Object queryAll(Map whereJson) { + return this.list(); + } + + + @Override + public void create(JSONObject form) { + PdmProduceWorkorder entity = form.toJavaObject(PdmProduceWorkorder.class); + entity.setWorkorder_id(IdUtil.getStringId()); + entity.setWorkorder_code(CodeUtil.getNewCode("PDM_SHIFTORDER")); + entity.setCurrent_produce_person_id(SecurityUtils.getCurrentUserId()); + entity.setCreate_id(SecurityUtils.getCurrentUserId()); + entity.setCreate_name(SecurityUtils.getCurrentNickName()); + entity.setCreate_time(DateUtil.now()); + entity.setCreate_type(WorkerOrderEnum.PCINTO.getCode()); + entity.setWorkorder_status(WorkerOrderEnum.CREATE.getCode()); + this.save(entity); + + this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE,entity.getWorkorder_id()); } @Override - public ProduceWorkorderDto findById(String workorder_id) { - WQLObject wo = WQLObject.getWQLObject("pdm_produce_workorder"); - JSONObject json = wo.query("workorder_id = '" + workorder_id + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(json)) { - return json.toJavaObject(ProduceWorkorderDto.class); + public void updateForm(JSONObject form) { + Assert.notNull(form,"参数不能为空"); + PdmProduceWorkorder one = this.getOne(new QueryWrapper().eq("workorder_id", form.getString("workorder_id"))); + if (one == null) { + throw new BadRequestException("被删除或无权限,操作失败!"); } - return null; + PdmProduceWorkorder entity = form.toJavaObject(PdmProduceWorkorder.class); + entity.setDown_time(DateUtil.now()); + entity.setDown_id(SecurityUtils.getCurrentUserId()); + entity.setDown_name(SecurityUtils.getCurrentNickName()); + this.updateById(entity); + + this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE,entity.getWorkorder_id()); } @Override - public ProduceWorkorderDto findByCode(String code) { - WQLObject wo = WQLObject.getWQLObject("pdm_produce_workorder"); - JSONObject json = wo.query("code ='" + code + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(json)) { - return json.toJavaObject(ProduceWorkorderDto.class); - } - return null; + public List getDtl(JSONObject param) { + return this.baseMapper.getworkOrderDtl(param.getString("workorder_id")); } @Override - @Transactional(rollbackFor = Exception.class) - public void create(ProduceWorkorderDto dto) { - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - dto.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - dto.setCurrent_produce_person_id(currentUserId); - dto.setCreate_id(currentUserId); - dto.setCreate_name(nickName); - dto.setUpdate_id(currentUserId); - dto.setUpdate_name(nickName); - dto.setUpdate_time(DateUtil.now()); - dto.setCreate_time(DateUtil.now()); - dto.setWorkorder_id(IdUtil.getSnowflake(1,1).nextIdStr()); - dto.setWorkorder_code(CodeUtil.getNewCode("PDM_SHIFTORDER")); - dto.setCreate_type(WorkerOrderEnum.PCINTO.getCode()); - dto.setWorkorder_status(WorkerOrderEnum.CREATE.getCode()); - WQLObject wo = WQLObject.getWQLObject("pdm_produce_workorder"); - JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); - wo.insert(json); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void update(ProduceWorkorderDto dto) { - ProduceWorkorderDto entity = this.findById(dto.getWorkorder_id()); - if (entity == null) throw new BadRequestException("被删除或无权限,操作失败!"); - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - dto.setUpdate_time(DateUtil.now()); - dto.setUpdate_id(currentUserId); - dto.setUpdate_name(nickName); - WQLObject wo = WQLObject.getWQLObject("pdm_produce_workorder"); - JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); - wo.update(json); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void deleteAll(String[] ids) { - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - WQLObject wo = WQLObject.getWQLObject("pdm_produce_workorder"); - for (String workorder_id : ids) { - JSONObject param = new JSONObject(); - param.put("is_delete", "1"); - param.put("update_id", currentUserId); - param.put("update_name", nickName); - param.put("update_time", DateUtil.now()); - wo.update(param, "workorder_id = '" + workorder_id + "'"); - } - } - - @Override - public JSONArray getNotWorkDeviceByWorkproceduceId(JSONObject param) { - Map res = new HashMap(); - res.put("flag", "2"); - res.put("workprocedure_id", param.getString("workproceduce_id")); - JSONArray resultJSONArray = WQL.getWO("MPS_PRODUCEWORKORDER").addParamMap(res).process().getResultJSONArray(0); - return resultJSONArray; - } - - @Override - public JSONArray getDtl(JSONObject param) { - JSONObject map = new JSONObject(); - map.put("flag", "3"); - map.put("workorder_id", param.getString("workorder_id")); - JSONArray resultJSONArray = WQL.getWO("MPS_PRODUCEWORKORDER").addParamMap(map).process().getResultJSONArray(0); - return resultJSONArray; - } - - @Override - public void submits(List param) { - if (param == null || param.size()==0){ + public void down(List ids) { + if (ids == null || ids.size()==0){ return; } - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - String sql = param.stream().collect(Collectors.joining("','")); - WQLObject wo = WQLObject.getWQLObject("PDM_produce_workOrder"); - wo.update(MapOf.of("workorder_status", WorkerOrderEnum.SEND.getCode() - ,"update_id", currentUserId,"update_name" - , nickName,"update_time", DateUtil.now()) - ,"workorder_id in ('"+sql+"')"); + this.update(new UpdateWrapper() + .set("workorder_status",WorkerOrderEnum.SEND.getCode()) + .set("down_id", SecurityUtils.getCurrentUserId()) + .set("down_name",SecurityUtils.getCurrentNickName()) + .set("down_time",new Date()) + .in("workorder_id", ids)); + this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE,ids.toArray(new String[0])); + } @Override - @Transactional(rollbackFor = Exception.class) - public void forceFinish(JSONObject param) { - this.finish(param); + public void unDown(List ids) { + if (ids == null || ids.size()==0){ + return; + } + List list = this.list(new QueryWrapper() + .ne("workorder_status", WorkerOrderEnum.SEND.getCode()) + .in("workorder_id", ids)); + if (list.size()>0){ + throw new BadRequestException("只有下发状态的工单才能取消下发"); + } + this.update(new UpdateWrapper() + .set("workorder_status",WorkerOrderEnum.CREATE.getCode()) + .set("down_id", SecurityUtils.getCurrentUserId()) + .set("down_name",SecurityUtils.getCurrentNickName()) + .set("down_time",new Date()) + .in("workorder_id", ids)); + + this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE,ids.toArray(new String[0])); } @Override @Transactional(rollbackFor = Exception.class) public void finish(JSONObject param) { - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - - JSONObject row = param.getJSONObject("row"); //强制完成时修改工单状态 - String workorder_id = row.getString("workorder_id"); - WQLObject wo = WQLObject.getWQLObject("PDM_produce_workOrder"); - ProduceWorkorderDto workorderDto = this.findById(workorder_id); - JSONObject produceorderMap = new JSONObject(); - produceorderMap.put("workorder_id", workorder_id); - produceorderMap.put("workorder_status", WorkerOrderEnum.FORCE_COMPLETE.getCode()); - produceorderMap.put("update_id", currentUserId); - produceorderMap.put("device_code", null); - produceorderMap.put("update_name", nickName); - produceorderMap.put("update_time", DateUtil.now()); - produceorderMap.put("realproduceend_date", DateUtil.now()); - wo.update(produceorderMap,"workorder_id = '"+workorder_id+"'"); - JSONObject jsonObject = wo.query("workorder_id = '" + workorder_id + "'").uniqueResult(0); - String real_qty = jsonObject.getString("real_qty"); - if (StrUtil.isEmpty(real_qty)) { - real_qty = "0"; + String workorder_id = param.getJSONObject("row").getString("workorder_id"); + this.update(new UpdateWrapper() + .set("workorder_status",WorkerOrderEnum.FORCE_COMPLETE.getCode()) + .set("update_id", SecurityUtils.getCurrentUserId()) + .set("update_name",SecurityUtils.getCurrentNickName()) + .set("update_time",new Date()) + .in("workorder_id", workorder_id)); + JSONArray array = new JSONArray(); + JSONObject map = new JSONObject(); + map.put("workorder_id", workorder_id); + map.put("type", WorkerOrderEnum.FORCE_COMPLETE.getCode()); + array.add(map); + Map result = wmsToAcsService.orderStatusUpdate(array); + if (!HttpStatus.OK.equals(result.get("status"))) { + throw new BadRequestException((String) result.get("message")); } - //同时修改工单记录表中的期末数量及完成数量 - WQLObject wo_record = WQLObject.getWQLObject("PDM_produce_workOrderRecord"); - JSONObject result = wo_record.query("workorder_id = '" + workorder_id + "' and (operatetime_end = '' or operatetime_end is null) ").uniqueResult(0); - if (ObjectUtil.isNotEmpty(result)) { - // todo: 数量不明确 - result.put("person_finish_qty", real_qty); - result.put("person_report_qty", real_qty); - result.put("operatetime_end", DateUtil.now()); - wo_record.update(result); - } - //工单开工以后需要向acs强制完成 wms向acs发送请求 工单强制完成 - // TODO: 业务不明 - OptionRecord.record(OptionRecord.OptionEnum.UPDATEOP, OptionRecord.Buss.WORKORDER,workorder_id,MapOf.of("workorder_status", WorkerOrderEnum.FORCE_COMPLETE.getCode())); - String order_status = workorderDto.getWorkorder_status(); - if (!order_status.equals("1") && !order_status.equals("2")) { - JSONArray array = new JSONArray(); - JSONObject map = new JSONObject(); - map.put("workorder_id", workorder_id); - map.put("type", WorkerOrderEnum.FORCE_COMPLETE.getCode()); - array.add(map); - wmsToAcsService.orderStatusUpdate(array); + this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE,workorder_id); + } + + + public void recordWorkOrder(OptionRecord.OptionEnum optionEnum, String...ids) { + List workorders = this.list(new QueryWrapper().in("workorder_id", ids)); + for (PdmProduceWorkorder one : workorders) { + WorkorderRecord record = WorkorderRecord.builder() + .workorder_id(one.getWorkorder_id()) + .device_code(one.getDevice_code()) + .dq_init_qty(one.getReal_qty()) + .dq_finish_qty(one.getReal_qty()) + .operatetime_start(one.getCreate_time()) + .workprocedure_id(one.getWorkprocedure_id()) + .operatetime_end(DateUtil.now()) + .shift_type_scode(one.getShift_type_scode()) + .product_area(one.getProduct_area()).build(); + OptionRecord.recordAsync(optionEnum, one.getWorkorder_status(),OptionRecord.Buss.WORKORDER, one.getWorkorder_id(),record); } } @@ -278,16 +230,6 @@ public class PdmProduceWorkorderServiceImpl extends ServiceImpl> read = excelReader.read(0, excelReader.getRowCount()); String produce_date = ""; // 循环获取的数据 + List entitys = new ArrayList<>(); row: for (int i = 0; i < read.size(); i++) { List list = read.get(i); @@ -304,7 +247,7 @@ public class PdmProduceWorkorderServiceImpl extends ServiceImpl().eq("material_spec", col)); + if (ObjectUtil.isEmpty(material)) { is_error = "1"; error_message = error_message + "物料规格对应物料信息不存在,"; }else { - param.put("material_id", json_material.getString("material_id")); + param.put("material_id", material.getMaterial_id()); } } if (j == 2) { @@ -366,16 +309,16 @@ public class PdmProduceWorkorderServiceImpl extends ServiceImpl().eq("device_code", col)); + if (ObjectUtil.isEmpty(device)) { is_error = "1"; error_message = error_message + "设备编码不存在,"; } - if (!workprocedure_id.equals(json_device.getString("workprocedure_id"))) { + if (!workprocedure_id.equals(device.getWorkprocedure_id())) { is_error = "1"; error_message = error_message + "设备与所属工序不匹配,"; }else { - param.put("device_id", json_device.getString("device_id")); + param.put("device_code", device.getDevice_code()); } } if (j == 11) { @@ -412,7 +355,7 @@ public class PdmProduceWorkorderServiceImpl extends ServiceImpl().eq("material_spec", col)); + if (ObjectUtil.isEmpty(material)) { is_error = "1"; error_message = error_message + "物料规格对应物料信息不存在,"; }else { - param.put("material_id", json_material.getString("material_id")); + param.put("material_id", material.getMaterial_id()); } } if (j == 2) { @@ -503,16 +446,16 @@ public class PdmProduceWorkorderServiceImpl extends ServiceImpl().eq("device_code", col)); + if (ObjectUtil.isEmpty(device)) { is_error = "1"; error_message = error_message + "设备编码不存在,"; } - if (!workprocedure_id.equals(json_device.getString("workprocedure_id"))) { + if (!workprocedure_id.equals(device.getWorkprocedure_id())) { is_error = "1"; error_message = error_message + "设备与所属工序不匹配,"; }else { - param.put("device_id", json_device.getString("device_id")); + param.put("device_code", device.getDevice_code()); } } if (j == 11) { @@ -550,20 +493,22 @@ public class PdmProduceWorkorderServiceImpl extends ServiceImpl> openStart(JSONObject param) { + public Object openStart(JSONObject param) { //获取前台传入的开工的工单信息 //1-创建、2-下发、3-生产中、4-暂停、5-完成 //判断该工单状态 PdmProduceWorkorder result = this.getOne(new QueryWrapper() - .eq("current_device_code", param.getString("device_code")) + .eq("device_code", param.getString("device_code")) .in("workorder_status","2","3","4") .ne("workorder_id",param.getString("workorder_id"))); if(ObjectUtil.isNotEmpty(result)) { @@ -580,7 +525,8 @@ public class PdmProduceWorkorderServiceImpl extends ServiceImpl().eq("workorder_id", param.getString("workorder_id"))); - OptionRecord.record(OptionRecord.OptionEnum.UPDATEOP, OptionRecord.Buss.WORKORDER,param.getString("workorder_id"),MapOf.of("workorder_status", WorkerOrderEnum.SEND.getCode())); + this.recordWorkOrder(OptionRecord.OptionEnum.UPDATE,result.getWorkorder_id()); + return RestBusinessTemplate.execute(() -> resp); } @@ -588,7 +534,7 @@ public class PdmProduceWorkorderServiceImpl extends ServiceImpl().eq("material_id", workOrder.getMaterial_id())); - PdmBiDevice device = deviceService.getOne(new QueryWrapper().eq("device_code", workOrder.getCurrent_device_code())); + PdmBiDevice device = deviceService.getOne(new QueryWrapper().eq("device_code", workOrder.getDevice_code())); form.put("workorder_id",workOrder.getWorkorder_id()); form.put("workorder_code",workOrder.getWorkorder_code()); form.put("qty", workOrder.getPlan_qty()); @@ -597,9 +543,123 @@ public class PdmProduceWorkorderServiceImpl extends ServiceImpl().eq("workorder_id", param.getString("workorder_id"))); + if (workorder.getWorkorder_status().equals(WorkerOrderEnum.COMPLETE.getCode())||workorder.getWorkorder_status().equals(WorkerOrderEnum.FORCE_COMPLETE.getCode())){ + throw new BadRequestException(param.getString("workorder_id")+"当前工单已经完工不允许报工"); + } + PdmProduceWorkorderrecord one = reportRecordService.getOne(new QueryWrapper() + .eq("workorder_id", param.getString("workorder_id")).eq("report_status", ReportRecordStatus.CREATE.getCode())); + if ( one == null) { + throw new BadRequestException(param.getString("workorder_id")+"当前工单没有生成状态的报工记录"); + } + workorder.setReport_qty(workorder.getReport_qty().add(param.getBigDecimal("report_qty"))); + workorder.setNok_qty(workorder.getReport_qty().add(param.getBigDecimal("nok_qty"))); + workorder.setRepare_qty(workorder.getReport_qty().add(param.getBigDecimal("repare_qty"))); + if (workorder.getPlan_qty().doubleValue() <= workorder.getReport_qty().doubleValue()){ + workorder.setWorkorder_status(WorkerOrderEnum.COMPLETE.getCode()); + } + this.updateById(workorder); + + reportRecordService.update(new UpdateWrapper() + .set("report_qty",param.getBigDecimal("report_qty")) + .set("nok_qty",param.getBigDecimal("nok_qty")) + .set("repare_qty",param.getBigDecimal("repare_qty")) + .set("needproduct_qty",workorder.getPlan_qty().doubleValue()-workorder.getReport_qty().doubleValue()) + .eq("macoperate_id",one.getMacoperate_id())); + return one.getMacoperate_id(); + } + + + @Override + @Transactional + public void reportApprove(JSONArray param) { + List workreportRecords = param.toJavaList(PdmProduceWorkorderrecord.class); + if (!CollectionUtils.isEmpty(workreportRecords)){ + List macoperate_ids = workreportRecords.stream().map(PdmProduceWorkorderrecord::getMacoperate_id).collect(Collectors.toList()); + List record = reportRecordService.list(new QueryWrapper() + .in("macoperate_id", macoperate_ids)); + Map> collect = workreportRecords.stream().collect(Collectors.groupingBy(PdmProduceWorkorderrecord::getWorkorder_id)); + for (Map.Entry> entry : collect.entrySet()) { + List itemRecord = entry.getValue(); + itemRecord.forEach(item -> { + item.setReport_status(ReportRecordStatus.FINISH.getCode()); + item.setConfirm_id(SecurityUtils.getCurrentUserId()); + item.setConfirm_name(SecurityUtils.getCurrentNickName()); + item.setConfirm_time(DateUtil.now()); + }); + List list = packageWorkorderQty(record, itemRecord); + this.baseMapper.batchUpdateByParam(list,entry.getKey()); + reportRecordService.updateBatchById(itemRecord); + } + } + } + + @NotNull + private List packageWorkorderQty(List record, List itemRecord) { + List ids = itemRecord.stream().map(PdmProduceWorkorderrecord::getMacoperate_id).collect(Collectors.toList()); + List oldRecord = record.stream().filter(item -> ids.contains(item.getMacoperate_id())).collect(Collectors.toList()); + long old_nok_qty = oldRecord.stream().map(PdmProduceWorkorderrecord::getNok_qty).count(); + long new_nok_qty = itemRecord.stream().map(PdmProduceWorkorderrecord::getNok_qty).count(); + long old_repare_qty = oldRecord.stream().map(PdmProduceWorkorderrecord::getRepare_qty).count(); + long new_repare_qty = itemRecord.stream().map(PdmProduceWorkorderrecord::getRepare_qty).count(); + long old_report_qty = itemRecord.stream().map(PdmProduceWorkorderrecord::getReport_qty).count(); + long new_report_qty = itemRecord.stream().map(PdmProduceWorkorderrecord::getReport_qty).count(); + List list = new ArrayList<>(); + Map nok_qty = new HashMap<>(); + nok_qty.put("field","nok_qty"); + nok_qty.put("value",Math.abs(new_nok_qty-old_nok_qty)); + nok_qty.put("add",new_nok_qty>old_nok_qty); + list.add(nok_qty); + Map repare_qty = new HashMap<>(); + repare_qty.put("field","repare_qty"); + repare_qty.put("value",Math.abs(new_repare_qty-old_repare_qty)); + repare_qty.put("add",new_repare_qty>old_repare_qty); + list.add(repare_qty); + Map report_qty = new HashMap<>(); + report_qty.put("field","report_qty"); + report_qty.put("value",Math.abs(new_report_qty-old_report_qty)); + report_qty.put("add",new_report_qty>old_report_qty); + list.add(report_qty); + return list; + } + + @Override + public void replaceDevice(JSONObject param) { + String produceorder_code = param.getString("produceorder_code"); + String device_id = param.getString("device_id"); + String device_code = param.getString("device_code"); + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + ProduceshiftorderDto produceshiftorderDto = null;//this.findByCode(produceorder_code); + produceshiftorderDto.setDevice_id(Long.parseLong(device_id)); + produceshiftorderDto.setUpdate_id(currentUserId); + produceshiftorderDto.setUpdate_name(nickName); + produceshiftorderDto.setUpdate_time(DateUtil.now()); + String order_status = produceshiftorderDto.getOrder_status(); + if(!order_status.equals("03") && !order_status.equals("01") && !order_status.equals("00")) { + JSONArray array = new JSONArray(); + JSONObject acsObj = new JSONObject(); + acsObj.put("order_code", produceorder_code); + acsObj.put("device_code", device_code); + array.add(acsObj); + Map 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/product_manage/service/workprocedure/dao/PdmBiWorkprocedure.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workprocedure/dao/PdmBiWorkprocedure.java index 2dc1ae1e..81c79a28 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workprocedure/dao/PdmBiWorkprocedure.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workprocedure/dao/PdmBiWorkprocedure.java @@ -1,5 +1,6 @@ package org.nl.wms.product_manage.service.workprocedure.dao; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import lombok.Data; @@ -23,7 +24,8 @@ public class PdmBiWorkprocedure implements Serializable { /** * 工序标识 */ - private Long workprocedure_id; + @TableId("workprocedure_id") + private String workprocedure_id; /** * 生产区域 @@ -53,17 +55,17 @@ public class PdmBiWorkprocedure implements Serializable { /** * 是否关键工序 */ - private String is_keyworkprocedure; + private Boolean is_keyworkprocedure; /** * 是否首道工序 */ - private String is_first; + private Boolean is_first; /** * 是否启用 */ - private String is_used; + private Boolean is_used; /** * 备注 @@ -73,7 +75,7 @@ public class PdmBiWorkprocedure implements Serializable { /** * 创建人 */ - private Long create_id; + private String create_id; /** * 创建人姓名 @@ -88,7 +90,7 @@ public class PdmBiWorkprocedure implements Serializable { /** * 修改人 */ - private Long update_id; + private String update_id; /** * 修改人姓名 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workprocedure/impl/PdmBiWorkprocedureServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workprocedure/impl/PdmBiWorkprocedureServiceImpl.java index 7ed2af06..15d564b4 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workprocedure/impl/PdmBiWorkprocedureServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/service/workprocedure/impl/PdmBiWorkprocedureServiceImpl.java @@ -25,7 +25,7 @@ public class PdmBiWorkprocedureServiceImpl extends ServiceImpl().eq("is_used", "1").orderByDesc("workprocedure_code")); + List list = this.list(new QueryWrapper().eq("is_used", true).orderByDesc("workprocedure_code")); return new JSONArray(list); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/备份pdm/rest/DeviceController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/备份pdm/rest/DeviceController.java index cd028e6f..7d083a4c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/备份pdm/rest/DeviceController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/product_manage/备份pdm/rest/DeviceController.java @@ -21,10 +21,8 @@ import java.util.Map; * @author lyd * @date 2023-03-15 **/ -@RestController @RequiredArgsConstructor @Api(tags = "生产设备管理") -@RequestMapping("/api/device") @Slf4j public class DeviceController { diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/ql/dao/PdmQlOption.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/ql/dao/PdmQlOption.java index 18cecad8..20dc7a4a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/ql/dao/PdmQlOption.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/ql/dao/PdmQlOption.java @@ -1,5 +1,6 @@ package org.nl.wms.system_manage.service.ql.dao; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; @@ -26,7 +27,8 @@ public class PdmQlOption implements Serializable { /** * 项目id */ - private String optionId; + @TableId(value = "option_id") + private String option_id; /** * 检测类型 @@ -38,10 +40,12 @@ public class PdmQlOption implements Serializable { */ private String orderno; + private String status; + /** * 数据 */ - private String optionDate; + private String optiod_date; /** * 业务类 */ @@ -50,17 +54,17 @@ public class PdmQlOption implements Serializable { /** * 创建人姓名 */ - private String createName; + private String create_name; /** * 创建时间 */ - private Date createTime; + private String create_time; /** * 创建人 */ - private String createId; + private String create_id; /** * 备注 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/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/user/dao/SysUser.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/user/dao/SysUser.java index cb805293..9e74e6fc 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/user/dao/SysUser.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/system_manage/service/user/dao/SysUser.java @@ -37,7 +37,7 @@ public class SysUser implements Serializable { */ private String username; - /** + /**fperson_name * 姓名 */ private String person_name; diff --git a/mes/hd/nladmin-system/src/main/resources/config/application-dev.yml b/mes/hd/nladmin-system/src/main/resources/config/application-dev.yml index 413b4ddd..33a2a28d 100644 --- a/mes/hd/nladmin-system/src/main/resources/config/application-dev.yml +++ b/mes/hd/nladmin-system/src/main/resources/config/application-dev.yml @@ -9,25 +9,23 @@ spring: client: reactive: #endpoints: 172.31.185.110:9200,172.31.154.9:9200 #内网 - # endpoints: 47.96.133.178:8200 #外网 - endpoints: http://47.96.133.178:8200 #外网 + # endpoints: 192.168.46.225:8200 #外网 + endpoints: http://192.168.46.225:8200 #外网 elasticsearch: rest: #uris: 172.31.185.110:9200,172.31.154.9:9200 #内网 - # uris: 47.96.133.178:8200 #外网 - uris: http://47.96.133.178:8200 #外网 - username: elastic - password: 123456 + # uris: 192.168.46.225:8200 #外网 + uris: http://192.168.46.225:9200 #外网 +# username: elastic +# password: 123456 datasource: druid: db-type: com.alibaba.druid.pool.DruidDataSource driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy - #url: jdbc:log4jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:hl_one_mes}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false - url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:hl_one_mes}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false + url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.46.5}:${DB_PORT:3306}/${DB_NAME:hl_one_mes_test}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false +# url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:hl_one_mes}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false username: ${DB_USER:root} - password: ${DB_PWD:Root.123456} -# username: ${DB_USER:root} -# password: ${DB_PWD:942464Yy} + password: ${DB_PWD:123456} # 初始连接数 initial-size: 5 diff --git a/mes/hd/nladmin-system/src/main/resources/config/application-dev3.yml b/mes/hd/nladmin-system/src/main/resources/config/application-dev3.yml index b1296e0a..2182437d 100644 --- a/mes/hd/nladmin-system/src/main/resources/config/application-dev3.yml +++ b/mes/hd/nladmin-system/src/main/resources/config/application-dev3.yml @@ -9,13 +9,13 @@ spring: client: reactive: #endpoints: 172.31.185.110:9200,172.31.154.9:9200 #内网 - # endpoints: 47.96.133.178:8200 #外网 - endpoints: http://47.96.133.178:8200 #外网 + # endpoints: 192.168.46.225:8200 #外网 + endpoints: http://192.168.46.225:8200 #外网 elasticsearch: rest: #uris: 172.31.185.110:9200,172.31.154.9:9200 #内网 - # uris: 47.96.133.178:8200 #外网 - uris: http://47.96.133.178:8200 #外网 + # uris: 192.168.46.225:8200 #外网 + uris: http://192.168.46.225:8200 #外网 username: elastic password: 123456 datasource: diff --git a/mes/hd/nladmin-system/src/main/resources/config/application-prod.yml b/mes/hd/nladmin-system/src/main/resources/config/application-prod.yml index 971add56..b5894b99 100644 --- a/mes/hd/nladmin-system/src/main/resources/config/application-prod.yml +++ b/mes/hd/nladmin-system/src/main/resources/config/application-prod.yml @@ -9,13 +9,13 @@ spring: client: reactive: #endpoints: 172.31.185.110:9200,172.31.154.9:9200 #内网 - # endpoints: 47.96.133.178:8200 #外网 - endpoints: http://47.96.133.178:8200 #外网 + # endpoints: 192.168.46.225:8200 #外网 + endpoints: http://192.168.46.225:8200 #外网 elasticsearch: rest: #uris: 172.31.185.110:9200,172.31.154.9:9200 #内网 - # uris: 47.96.133.178:8200 #外网 - uris: http://47.96.133.178:8200 #外网 + # uris: 192.168.46.225:8200 #外网 + uris: http://192.168.46.225:8200 #外网 username: elastic password: 123456 datasource: diff --git a/mes/hd/nladmin-system/src/main/resources/logback-spring.xml b/mes/hd/nladmin-system/src/main/resources/logback-spring.xml index ae30a148..df9bf5a1 100644 --- a/mes/hd/nladmin-system/src/main/resources/logback-spring.xml +++ b/mes/hd/nladmin-system/src/main/resources/logback-spring.xml @@ -18,7 +18,7 @@ https://juejin.cn/post/6844903775631572999 + + + + + + + + + + + + + + + + + + + + + + + 取 消 + 确定 + + + + + + + diff --git a/mes/qd/src/views/wms/pub/StructDialog.vue b/mes/qd/src/views/wms/pub/StructDialog.vue index 2dcb5f16..5ee7e394 100644 --- a/mes/qd/src/views/wms/pub/StructDialog.vue +++ b/mes/qd/src/views/wms/pub/StructDialog.vue @@ -66,7 +66,7 @@ import CRUD, { header, presenter } from '@crud/crud' import rrOperation from '@crud/RR.operation' import pagination from '@crud/Pagination' -import crudRegion from '@/api/wms/sch/region' +import crudRegion from '@/views/wms/scheduler_manage/region/region' export default { name: 'StructDialog', diff --git a/mes/qd/src/views/wms/product_manage/sch/point/MaterialDialog.vue b/mes/qd/src/views/wms/scheduler_manage/point/MaterialDialog.vue similarity index 100% rename from mes/qd/src/views/wms/product_manage/sch/point/MaterialDialog.vue rename to mes/qd/src/views/wms/scheduler_manage/point/MaterialDialog.vue diff --git a/mes/qd/src/views/wms/product_manage/sch/point/ViewDialog.vue b/mes/qd/src/views/wms/scheduler_manage/point/ViewDialog.vue similarity index 100% rename from mes/qd/src/views/wms/product_manage/sch/point/ViewDialog.vue rename to mes/qd/src/views/wms/scheduler_manage/point/ViewDialog.vue diff --git a/mes/qd/src/views/wms/product_manage/sch/point/WorkOrderDialog.vue b/mes/qd/src/views/wms/scheduler_manage/point/WorkOrderDialog.vue similarity index 100% rename from mes/qd/src/views/wms/product_manage/sch/point/WorkOrderDialog.vue rename to mes/qd/src/views/wms/scheduler_manage/point/WorkOrderDialog.vue diff --git a/mes/qd/src/views/wms/product_manage/sch/point/index.vue b/mes/qd/src/views/wms/scheduler_manage/point/index.vue similarity index 98% rename from mes/qd/src/views/wms/product_manage/sch/point/index.vue rename to mes/qd/src/views/wms/scheduler_manage/point/index.vue index 002b11e9..5a937c99 100644 --- a/mes/qd/src/views/wms/product_manage/sch/point/index.vue +++ b/mes/qd/src/views/wms/scheduler_manage/point/index.vue @@ -434,16 +434,16 @@ + + diff --git a/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_package_ssx_station.vue b/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_package_ssx_station.vue new file mode 100644 index 00000000..e724b65d --- /dev/null +++ b/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_package_ssx_station.vue @@ -0,0 +1,545 @@ + + + + + diff --git a/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_palletizing_station.vue b/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_palletizing_station.vue new file mode 100644 index 00000000..7a70c0be --- /dev/null +++ b/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_palletizing_station.vue @@ -0,0 +1,545 @@ + + + + + diff --git a/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_stacking_manipulator.vue b/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_stacking_manipulator.vue new file mode 100644 index 00000000..0e2f0b07 --- /dev/null +++ b/wcs/nladmin-ui/src/views/acs/device/driver/hailiang_old/hailiang_old_stacking_manipulator.vue @@ -0,0 +1,507 @@ + + + + + diff --git a/wcs/nladmin-ui/src/views/acs/instruction/index.vue b/wcs/nladmin-ui/src/views/acs/instruction/index.vue index b8dcac61..6b5060f0 100644 --- a/wcs/nladmin-ui/src/views/acs/instruction/index.vue +++ b/wcs/nladmin-ui/src/views/acs/instruction/index.vue @@ -127,9 +127,9 @@ {{ dict.label.send_status[scope.row.send_status] }} - - - + + + - - - - + + + +