diff --git a/lms/nladmin-system/pom.xml b/lms/nladmin-system/pom.xml index aa94df7..72bb5ef 100644 --- a/lms/nladmin-system/pom.xml +++ b/lms/nladmin-system/pom.xml @@ -32,6 +32,12 @@ + + + com.microsoft.sqlserver + mssql-jdbc + 6.4.0.jre8 + cn.dev33 sa-token-dao-redis diff --git a/lms/nladmin-system/src/main/java/org/nl/AppRun.java b/lms/nladmin-system/src/main/java/org/nl/AppRun.java index a757aaa..75612ec 100644 --- a/lms/nladmin-system/src/main/java/org/nl/AppRun.java +++ b/lms/nladmin-system/src/main/java/org/nl/AppRun.java @@ -1,9 +1,12 @@ package org.nl; import cn.dev33.satoken.annotation.SaIgnore; +import cn.hutool.core.util.IdUtil; +import com.alibaba.fastjson.JSONObject; import com.alicp.jetcache.anno.config.EnableCreateCacheAnnotation; import com.alicp.jetcache.anno.config.EnableMethodCache; import io.swagger.annotations.Api; +import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -39,7 +42,7 @@ public class AppRun { public static void main(String[] args) { - + SpringApplication.run(AppRun.class, args); } @@ -63,6 +66,50 @@ public class AppRun { @GetMapping("/") @SaIgnore public String index() { +// WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point"); +// int block = 6; +// int row = 4; // 排 +// int col = 8; +// String regionCode = "YSQB01"; +// String regionId = "1663803432005406720"; +// String regionName = "养生区B"; +// for (int i = 5; i <= block; i++) { +// for (int j = 1; j <= row; j++) { +// for (int k = 1; k <= col; k++) { +// String pointCode = "1"; +// // 块 +// pointCode = pointCode + i; +// // 排 +// if (j < 10) pointCode = pointCode + "0" + j + "-"; +// else pointCode = pointCode + j + "-"; +// // 列 +// if (k < 10) pointCode = pointCode + "0" + k + "-" + "01"; +// else pointCode = pointCode + k + "-" + "01"; +// String name = j + "排" + k + "列" + "1层"; +// String pointStatus = "1"; +// String can_vehicle_type = "3"; +// JSONObject po = new JSONObject(); +// po.put("point_id", IdUtil.getSnowflake(1,1).nextIdStr()); +// po.put("point_code", pointCode); +// po.put("point_name", name); +// po.put("point_status", pointStatus); +// po.put("can_vehicle_type", can_vehicle_type); +// po.put("region_id", regionId); +// po.put("region_code", regionCode); +// po.put("region_name", regionName); +// po.put("block_num", i); +// po.put("row_num", j); +// po.put("col_num", k); +// po.put("layer_num", 1); +// po.put("in_order_seq", col - k + 1); +// po.put("out_order_seq", k); +// po.put("in_empty_seq", col - k + 1); +// po.put("out_empty_seq", k); +// pointTab.insert(po); +// } +// } +// } + return "Backend service started successfully"; } } diff --git a/lms/nladmin-system/src/main/java/org/nl/config/DataBaseConfig.java b/lms/nladmin-system/src/main/java/org/nl/config/DataBaseConfig.java index f679d3b..2c2dcc0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/config/DataBaseConfig.java +++ b/lms/nladmin-system/src/main/java/org/nl/config/DataBaseConfig.java @@ -1,18 +1,33 @@ package org.nl.config; +import cn.hutool.core.util.StrUtil; import com.alibaba.druid.pool.DruidDataSource; import lombok.extern.slf4j.Slf4j; +import org.nl.modules.mnt.util.DataTypeEnum; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import javax.sql.DataSource; +import java.sql.DriverManager; +import java.sql.SQLException; @Configuration @Slf4j public class DataBaseConfig { + @Value("${mes.sqlserver.enabled}") + private boolean sqlserverIsConnect; + @Value("${mes.sqlserver.jdbcurl}") + private String sqlserverJdbcUrl; + @Value("${mes.sqlserver.username}") + private String sqlserverUserName; + @Value("${mes.sqlserver.password}") + private String sqlserverPassword; + @Primary @Bean(name = "dataSource") @ConfigurationProperties(prefix = "spring.datasource.druid") @@ -20,4 +35,52 @@ public class DataBaseConfig { return new DruidDataSource(); } + @Bean("dataSource1") + @ConditionalOnExpression("${mes.sqlserver.enabled:true}") + public DataSource dataSource1() { + log.info("是否连接Sqlserver" + sqlserverIsConnect); + String jdbcUrl = sqlserverJdbcUrl; + String userName = sqlserverUserName; + String password = sqlserverPassword; + DruidDataSource druidDataSource = new DruidDataSource(); + String className; + try { + className = DriverManager.getDriver(jdbcUrl.trim()).getClass().getName(); + } catch (SQLException e) { + throw new RuntimeException("Get class name error: =" + jdbcUrl); + } + if (StrUtil.isEmpty(className)) { + DataTypeEnum dataTypeEnum = DataTypeEnum.urlOf(jdbcUrl); + if (null == dataTypeEnum) { + throw new RuntimeException("Not supported data type: jdbcUrl=" + jdbcUrl); + } + druidDataSource.setDriverClassName(dataTypeEnum.getDriver()); + } else { + druidDataSource.setDriverClassName(className); + } + + + druidDataSource.setUrl(jdbcUrl); + druidDataSource.setUsername(userName); + druidDataSource.setPassword(password); + // 配置获取连接等待超时的时间 + druidDataSource.setMaxWait(3000); + // 配置初始化大小、最小、最大 + druidDataSource.setInitialSize(5); + druidDataSource.setMinIdle(5); + druidDataSource.setMaxActive(10); + + // 如果链接出现异常则直接判定为失败而不是一直重试 + druidDataSource.setBreakAfterAcquireFailure(true); + try { + druidDataSource.init(); + } catch (SQLException e) { + log.error("Exception during pool initialization", e); + throw new RuntimeException(e.getMessage()); + } + + return druidDataSource; + } + } + diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/impl/MaterialbaseServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/impl/MaterialbaseServiceImpl.java index bccff8e..d4cef1b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/impl/MaterialbaseServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/impl/MaterialbaseServiceImpl.java @@ -12,6 +12,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.config.MapOf; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.SecurityUtils; import org.nl.modules.wql.WQL; @@ -21,6 +22,7 @@ import org.nl.wms.basedata.eum.MaterOptTypeEnum; import org.nl.wms.basedata.service.ClassstandardService; import org.nl.wms.basedata.service.MaterialbaseService; import org.nl.wms.basedata.service.dto.MaterialbaseDto; +import org.slf4j.MDC; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -138,8 +140,10 @@ public class MaterialbaseServiceImpl implements MaterialbaseService { String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); WQLObject wo = WQLObject.getWQLObject("md_me_materialbase"); - JSONObject jsonObject = wo.query("material_code = '" + dto.getMaterial_code() + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(jsonObject)) { + JSONObject jsonObject = wo.query("material_code = '" + dto.getMaterial_code() + "' " + + "AND is_delete = '0'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonObject) + && !jsonObject.getString("material_id").equals(dto.getMaterial_id())) { throw new BadRequestException("物料柜号不能重复"); } @@ -178,19 +182,9 @@ public class MaterialbaseServiceImpl implements MaterialbaseService { @Override @Transactional(rollbackFor = Exception.class) public void deleteAll(Long[] ids) { - Long currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - String now = DateUtil.now(); - WQLObject wo = WQLObject.getWQLObject("md_me_materialbase"); 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", now); - wo.update(param); + wo.delete("material_id = '" + material_id + "'"); } } @@ -219,9 +213,48 @@ public class MaterialbaseServiceImpl implements MaterialbaseService { } @Override + @Transactional public void synchronize(Map whereJson) { - /* wmsToErpService.getClassInfo(null); - wmsToErpService.getMaterialInfo(null);*/ + MDC.put("log_file_type", "MES物料同步"); + // 查找物料表最近更新的数据 + WQLObject mdMeMaterialbaseTab = WQLObject.getWQLObject("md_me_materialbase"); + JSONObject jsonObject = mdMeMaterialbaseTab + .query("ext_id <> '' AND ext_id IS NOT NULL", "update_time desc") + .uniqueResult(0); + String time = ObjectUtil.isNotEmpty(jsonObject) ? jsonObject.getString("update_time") : ""; + // 查找mes的数据 + JSONArray array = WQL.getWO("DATA_FOR_MES") + .setDbname("dataSource1") + .addParamMap(MapOf.of("flag", "1", "time", time)) + .process() + .getResultJSONArray(0); + log.info("从mes获取的数据:{}", array); + if (ObjectUtil.isEmpty(array)) { + throw new BadRequestException("同步失败"); + } + for (int i = 0; i < array.size(); i++) { + JSONObject materialObj = array.getJSONObject(i); + // 判断是否存在 + JSONObject extObj = mdMeMaterialbaseTab + .query("ext_id = '" + materialObj.getString("ext_id") + "'") + .uniqueResult(0); + materialObj.put("create_id", "3"); + materialObj.put("create_name", "MES系统"); + materialObj.put("update_optid", "3"); + materialObj.put("update_optname", "MES系统"); + materialObj.put("is_used", "1"); + materialObj.put("is_delete", "0"); + if (ObjectUtil.isEmpty(extObj)) { + // 插入 + materialObj.put("material_id", IdUtil.getSnowflake(1,1).nextIdStr()); + mdMeMaterialbaseTab.insert(materialObj); + } else { + mdMeMaterialbaseTab.update(materialObj, + "material_id = '" + extObj.getString("material_id") + "'"); // 修改 + } + log.info("物料:" + i + " : " + materialObj); + } + MDC.remove("log_file_type"); } @Override diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/wql/DATA_FOR_MES.wql b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/wql/DATA_FOR_MES.wql new file mode 100644 index 0000000..8bad61b --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/wql/DATA_FOR_MES.wql @@ -0,0 +1,60 @@ +[交易说明] + 交易名: 从mes获取物料信息 + 所属模块: + 功能简述: + 版权所有: + 表引用: + 版本经历: + +[数据库] + --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 + +[IO定义] + ################################################# + ## 表字段对应输入参数 + ################################################# + 输入.flag TYPEAS s_string + 输入.time TYPEAS s_string + +[临时表] + --这边列出来的临时表就会在运行期动态创建 + +[临时变量] + --所有中间过程变量均可在此处定义 + +[业务过程] + + ########################################## + # 1、输入输出检查 # + ########################################## + + + ########################################## + # 2、主过程前处理 # + ########################################## + + + ########################################## + # 3、业务主过程 # + ########################################## + IF 输入.flag = "1" + PAGEQUERY + SELECT + FbasicDataId046 AS ext_id, + Fnumber046 AS material_code, + Fname046 AS material_name, + Fmodel004 AS material_spec, + FaddTime046 AS create_time, + FeditTime046 AS update_time, + Fparentid046name AS material_model + FROM + dbo.v_BS_GOODS_INTERFACE + WHERE + 1 = 1 + OPTION 输入.time <> "" + FeditTime046 >= 输入.time + ENDOPTION + ORDER BY FeditTime046 DESC + ENDSELECT + ENDQUERY + ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToWmsServiceImpl.java index 9d1fb9a..9ccb571 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToWmsServiceImpl.java @@ -42,25 +42,71 @@ public class MesToWmsServiceImpl implements MesToWmsService { log.info("mes传来工单信息:" + param); WQLObject workOrderTab = WQLObject.getWQLObject("pdm_bd_workorder"); WQLObject deviceTab = WQLObject.getWQLObject("pdm_bi_device"); + WQLObject materialTab = WQLObject.getWQLObject("md_me_materialbase"); if (ObjectUtil.isEmpty(param)) { throw new BadRequestException("工单不能为空"); } - MaterialbaseDto materialCode = materialbaseService.findByCode(param.getString("material_code")); + JSONObject materialCode = materialTab.query("material_code = '" + param.getString("material_code") + "'").uniqueResult(0); JSONObject deviceCode = deviceTab.query("extend_code = '" + param.getString("device_code") + "'").uniqueResult(0); if (ObjectUtil.isEmpty(deviceCode)) { throw new BadRequestException("设备编码错误!"); } - param.put("workorder_id", IdUtil.getSnowflake(1,1).nextIdStr()); param.put("plan_qty", param.getString("qty")); - param.put("order_status", param.getString("workorder_status")); - param.put("material_id", materialCode.getMaterial_id()); - param.put("device_id", deviceCode.getString("device_id")); - param.put("device_code", deviceCode.getString("device_code")); + param.put("order_status", "3"); + param.put("material_id", materialCode.getString("material_id")); param.put("produce_date", DateUtil.format(new Date(), "yyyy-MM-dd")); + param.put("realproducestart_date", DateUtil.now()); param.put("create_id", "3"); param.put("create_name", "MES系统"); param.put("create_time", param.getString("create_time")); - workOrderTab.insert(param); + if (param.getString("device_code").equals("C007")) { // 油漆线 + // 分物料上料位与下料位两个工单 + String deviceCodeWS = deviceCode.getString("device_code") + "WS"; + String deviceCodeKX = deviceCode.getString("device_code") + "KX"; + // 如果未完成,就把工单完成并插入 + JSONObject orderWS = workOrderTab.query("device_code = '" + deviceCodeWS + "' AND order_status <> '5'").uniqueResult(0); + JSONObject orderKX = workOrderTab.query("device_code = '" + deviceCodeKX + "' AND order_status <> '5'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(orderWS)) { // 存在,就关闭 + orderWS.put("order_status", "5"); + orderWS.put("update_time", DateUtil.now()); + orderWS.put("realproduceend_date", DateUtil.now()); + workOrderTab.update(orderWS); + } + if (ObjectUtil.isNotEmpty(orderKX)) { + orderKX.put("order_status", "5"); + orderKX.put("update_time", DateUtil.now()); + orderKX.put("realproduceend_date", DateUtil.now()); + workOrderTab.update(orderKX); + } + param.put("workorder_id", IdUtil.getSnowflake(1,1).nextIdStr()); + param.put("device_id", "1607915464833503232"); + param.put("device_code", deviceCodeWS); + workOrderTab.insert(param); + param.put("workorder_id", IdUtil.getSnowflake(1,1).nextIdStr()); + param.put("device_id", "1654663217064054784"); + param.put("device_code", deviceCodeKX); + workOrderTab.insert(param); + String deviceCodeWX = deviceCode.getString("device_code") + "WX"; + String deviceCodeKS = deviceCode.getString("device_code") + "KS"; + JSONObject deviceCodeWXOrder = workOrderTab + .query("device_code = '" + deviceCodeWX + "' AND order_status <> '5'") + .uniqueResult(0); + if (ObjectUtil.isEmpty(deviceCodeWXOrder)) { // 如果物料下没有执行中的工单,就设置新的工单 + param.put("workorder_id", IdUtil.getSnowflake(1,1).nextIdStr()); + param.put("device_id", "1607915553220071424"); + param.put("device_code", deviceCodeWX); + workOrderTab.insert(param); + param.put("workorder_id", IdUtil.getSnowflake(1,1).nextIdStr()); + param.put("device_id", "1654663328972279808"); + param.put("device_code", deviceCodeKS); + workOrderTab.insert(param); + } + } else { + param.put("workorder_id", IdUtil.getSnowflake(1,1).nextIdStr()); + param.put("device_id", deviceCode.getString("device_id")); + param.put("device_code", deviceCode.getString("device_code")); + workOrderTab.insert(param); + } JSONObject result = new JSONObject(); result.put("status", 200); result.put("message", "操作成功"); @@ -69,6 +115,7 @@ public class MesToWmsServiceImpl implements MesToWmsService { } @Override + @Transactional public JSONObject feedbackWorkOrderToMes(JSONObject param) { log.info("mes传来工单信息:", param); WQLObject workOrderTab = WQLObject.getWQLObject("pdm_bd_workorder"); @@ -78,12 +125,66 @@ public class MesToWmsServiceImpl implements MesToWmsService { JSONObject jsonObject = workOrderTab .query("workorder_code = '" + param.getString("workorder_code") + "'") .uniqueResult(0); - jsonObject.put("order_status", param.getString("workorder_status")); - jsonObject.put("update_optid", "3"); - jsonObject.put("update_optname", "MES系统"); - jsonObject.put("update_time", DateUtil.now()); - jsonObject.put("realproduceend_date", DateUtil.now()); - workOrderTab.update(jsonObject); + String deviceCode = jsonObject.getString("device_code"); + // 判断是不是油漆线 + if (deviceCode.startsWith("YQX01")) { + String deviceCodeWS = "YQX01WS"; + String deviceCodeKX = "YQX01KX"; + String deviceCodeWX = "YQX01WX"; + String deviceCodeKS = "YQX01KS"; + JSONObject orderWX = workOrderTab.query("device_code = '" + deviceCodeWX + "' AND order_status <> '5'").uniqueResult(0); + JSONObject orderKS = workOrderTab.query("device_code = '" + deviceCodeKS + "' AND order_status <> '5'").uniqueResult(0); + JSONObject orderWS = workOrderTab.query("device_code = '" + deviceCodeWS + "' AND order_status <> '5'").uniqueResult(0); + JSONObject orderKX = workOrderTab.query("device_code = '" + deviceCodeKX + "' AND order_status <> '5'").uniqueResult(0); + // 物下空上完成 + orderWX.put("order_status", "5"); + orderWX.put("update_optid", "3"); + orderWX.put("update_optname", "MES系统"); + workOrderTab.update(orderWX); + orderKS.put("update_optid", "3"); + orderKS.put("update_optname", "MES系统"); + orderKS.put("order_status", "5"); + workOrderTab.update(orderKS); + // 查看物上与物下是否相同,相同就完成,物下新增与物上一样的工单 + if (!orderWS.getString("workorder_code").equals(orderWX.getString("workorder_code"))) { + // 不相同:物下空上新增 + JSONObject workorder = new JSONObject(); + workorder.put("workorder_id", IdUtil.getSnowflake(1,1).nextIdStr()); + workorder.put("device_id", "1607915553220071424"); + workorder.put("device_code", deviceCodeWX); + workorder.put("workorder_code", orderWS.getString("workorder_code")); + workorder.put("plan_qty", orderWS.getString("plan_qty")); + workorder.put("order_status", "3"); + workorder.put("material_id", orderWS.getString("material_id")); + workorder.put("produce_date", DateUtil.format(new Date(), "yyyy-MM-dd")); + workorder.put("realproducestart_date", DateUtil.now()); + workorder.put("create_id", "3"); + workorder.put("create_name", "LMS系统"); + workorder.put("create_time", DateUtil.now()); + workOrderTab.insert(workorder); + workorder.put("workorder_id", IdUtil.getSnowflake(1,1).nextIdStr()); + workorder.put("device_id", "1654663328972279808"); + workorder.put("device_code", deviceCodeKS); + workOrderTab.insert(workorder); + } else { + // 物上空下完成 + orderWS.put("order_status", "5"); + orderWS.put("update_optid", "3"); + orderWS.put("update_optname", "MES系统"); + workOrderTab.update(orderWS); + orderKX.put("order_status", "5"); + orderKX.put("update_optid", "3"); + orderKX.put("update_optname", "MES系统"); + workOrderTab.update(orderKX); + } + } else { + jsonObject.put("order_status", "5"); + jsonObject.put("update_optid", "3"); + jsonObject.put("update_optname", "MES系统"); + jsonObject.put("update_time", DateUtil.now()); + jsonObject.put("realproduceend_date", DateUtil.now()); + workOrderTab.update(jsonObject); + } JSONObject result = new JSONObject(); result.put("status", 200); result.put("message", "操作成功"); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/ssxsendmaterial/service/impl/SSXSendMaterialServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/ssxsendmaterial/service/impl/SSXSendMaterialServiceImpl.java index 89b1eb7..cda3149 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/ssxsendmaterial/service/impl/SSXSendMaterialServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/ssxsendmaterial/service/impl/SSXSendMaterialServiceImpl.java @@ -26,13 +26,14 @@ public class SSXSendMaterialServiceImpl implements SSXSendMaterialService { @Override public JSONObject queryMaterial() { JSONObject result = new JSONObject(); - JSONArray mdMeMaterialbase = WQLObject.getWQLObject("md_me_materialbase").query("is_used = '1' and is_delete = '0'").getResultJSONArray(0); + JSONArray mdMeMaterialbase = WQLObject.getWQLObject("md_me_materialbase") + .query("is_used = '1' and is_delete = '0'", "create_time desc") + .getResultJSONArray(0); result.put("result", mdMeMaterialbase); result.put("code", "1"); result.put("desc", "查询成功"); return result; } - @Override @Transactional(rollbackFor = Exception.class) public JSONObject confirm(JSONObject param) { @@ -63,12 +64,13 @@ public class SSXSendMaterialServiceImpl implements SSXSendMaterialService { } return result; } - @Override public JSONObject queryVehicle() { JSONObject result = new JSONObject(); WQLObject dictTab = WQLObject.getWQLObject("sys_dict_detail"); - JSONArray dictSort = dictTab.query("name = 'vehicle_type' and value in ('4','5','6')", "dict_sort").getResultJSONArray(0); + JSONArray dictSort = dictTab + .query("name = 'vehicle_type' and value in ('4','5','6')", "dict_sort") + .getResultJSONArray(0); result.put("result", dictSort); result.put("code", "1"); result.put("desc", "操作成功"); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callMaterial/YqxCallMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callMaterial/YqxCallMaterialTask.java index a138fa0..a4ed853 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callMaterial/YqxCallMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callMaterial/YqxCallMaterialTask.java @@ -62,6 +62,7 @@ public class YqxCallMaterialTask extends AbstractAcsTask { taskTab.update(taskObj); if (ObjectUtil.isEmpty(material_point)) return; + // 点位解锁 material_point.put("lock_type", "1"); pointTab.update(material_point); @@ -73,10 +74,6 @@ public class YqxCallMaterialTask extends AbstractAcsTask { taskObj.put("update_time", DateUtil.now()); taskObj.put("car_no", taskObj.getString("car_no")); taskTab.update(taskObj); - // 通知mes - feedback.put("task_status", TaskStatusEnum.EXECUTING.getCode()); - feedback.put("struct_code", taskObj.getString("point_code1")); - wmsToMesService.taskFeedback(feedback); } if (StrUtil.equals(status, "2")) { @@ -95,14 +92,15 @@ public class YqxCallMaterialTask extends AbstractAcsTask { taskObj.put("remark", "任务完成"); taskTab.update(taskObj); - // 通知mes - feedback.put("task_status", TaskStatusEnum.FINISHED.getCode()); - feedback.put("struct_code", taskObj.getString("point_code1")); - wmsToMesService.taskFeedback(feedback); - - if (ObjectUtil.isEmpty(material_point)) return; + // 通知mes + feedback.put("fscanserialid001", taskObj.getString("task_code")); + feedback.put("flocationid979number", taskObj.getString("point_code1")); + feedback.put("flpn979", taskObj.getString("vehicle_code")); + feedback.put("fstoragequantity979", taskObj.getString("material_qty")); + wmsToMesService.taskFeedback(feedback); + //区域出入表【st_ivt_regionIO】 WQLObject regionIoTab = WQLObject.getWQLObject("st_ivt_regionIO"); JSONObject regionIoObj = new JSONObject(); @@ -328,6 +326,7 @@ public class YqxCallMaterialTask extends AbstractAcsTask { String pointCode = materialPoint.getString("point_code"); // 修改任务 hcTask.put("point_code1", pointCode); + hcTask.put("material_qty", materialPoint.getString("ivt_qty")); hcTask.put("remark", "养生A区:" + pointCode); taskTab.update(hcTask); // 锁住点位 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/cpOut/CpOutTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/cpOut/CpOutTask.java index 894850e..ff579a9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/cpOut/CpOutTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/cpOut/CpOutTask.java @@ -81,10 +81,6 @@ public class CpOutTask extends AbstractAcsTask { taskObj.put("update_time", DateUtil.now()); taskObj.put("car_no", taskObj.getString("car_no")); taskTab.update(taskObj); - // 通知mes - feedback.put("task_status", TaskStatusEnum.EXECUTING.getCode()); - feedback.put("struct_code", taskObj.getString("point_code2")); - wmsToMesService.taskFeedback(feedback); } if (StrUtil.equals(status, "2")) { @@ -94,8 +90,9 @@ public class CpOutTask extends AbstractAcsTask { taskTab.update(taskObj); // 通知mes - feedback.put("task_status", TaskStatusEnum.FINISHED.getCode()); - feedback.put("struct_code", taskObj.getString("point_code2")); + feedback.put("fserialid054", taskObj.getString("task_code")); + feedback.put("fsonumber186", taskObj.getString("point_code2")); + feedback.put("flocationid081number", requestParam.getString("out_store_order")); wmsToMesService.taskFeedback(feedback); // 任务表的点位1:成品库区点 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/GjxSendMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/GjxSendMaterialTask.java index 471540c..e96ddb2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/GjxSendMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/GjxSendMaterialTask.java @@ -71,6 +71,7 @@ public class GjxSendMaterialTask extends AbstractAcsTask { String point_code2 = taskObj.getString("point_code2"); if (ObjectUtil.isEmpty(point_code2)) return; + JSONObject object = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0); object.put("lock_type", "1"); object.put("update_time", DateUtil.now()); @@ -83,10 +84,6 @@ public class GjxSendMaterialTask extends AbstractAcsTask { taskObj.put("update_time", DateUtil.now()); taskObj.put("car_no", taskObj.getString("car_no")); taskTab.update(taskObj); - // 通知mes - feedback.put("task_status", TaskStatusEnum.EXECUTING.getCode()); - feedback.put("struct_code", taskObj.getString("point_code2")); - wmsToMesService.taskFeedback(feedback); } if (StrUtil.equals(status, "2")) { @@ -130,8 +127,9 @@ public class GjxSendMaterialTask extends AbstractAcsTask { taskTab.update(taskObj); // 通知mes - feedback.put("task_status", TaskStatusEnum.FINISHED.getCode()); - feedback.put("struct_code", taskObj.getString("point_code2")); + feedback.put("fsn502", taskObj.getString("task_code")); + feedback.put("flpn979", taskObj.getString("vehicle_code")); + feedback.put("flocationid979number", taskObj.getString("point_code2")); wmsToMesService.taskFeedback(feedback); //区域出入表【st_ivt_regionIO】 @@ -266,7 +264,7 @@ public class GjxSendMaterialTask extends AbstractAcsTask { param2.put("flag", "2"); param2.put("region_code", "YSQA01"); param2.put("vehicle_type",vehicle_type); - //1、查找整列为空的货位 + //1、查找整排为空的货位 JSONObject json2 = WQL.getWO("QSCH_gjxSendMaterial_01").addParamMap(param2).process().uniqueResult(0); if (ObjectUtil.isEmpty(json2)) { taskObj.put("remark", ObjectUtil.isNotEmpty(reminder) ? reminder : "养生A区无可用货位"); @@ -328,7 +326,6 @@ public class GjxSendMaterialTask extends AbstractAcsTask { public String createTask(JSONObject whereJson) { String point_code1 = whereJson.getString("point_code1"); String vehicle_code = whereJson.getString("vehicle_code"); - String vehicle_type = whereJson.getString("vehicle_type"); String qty = whereJson.getString("qty"); String task_code = CodeUtil.getNewCode("TASK_CODE"); if (ObjectUtil.isNotEmpty(whereJson.getString("task_code"))) { @@ -363,7 +360,7 @@ public class GjxSendMaterialTask extends AbstractAcsTask { .material_qty(qty) .material_info_id(workOrderObj.getLong("workorder_id")) .material_id(workOrderObj.getLong("material_id")) - .vehicle_type(vehicle_type) + .vehicle_type(workOrderObj.getString("vehicle_type")) .handle_class(THIS_CLASS) .create_time(DateUtil.now()) .request_param(whereJson.toJSONString()) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/HkxSendMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/HkxSendMaterialTask.java index 86a8b49..fee94f9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/HkxSendMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/HkxSendMaterialTask.java @@ -73,10 +73,6 @@ public class HkxSendMaterialTask extends AbstractAcsTask { taskObj.put("update_time", DateUtil.now()); taskObj.put("car_no", taskObj.getString("car_no")); taskTab.update(taskObj); - // 通知mes - feedback.put("task_status", TaskStatusEnum.EXECUTING.getCode()); - feedback.put("struct_code", taskObj.getString("point_code2")); - wmsToMesService.taskFeedback(feedback); } if (StrUtil.equals(status, "2")) { @@ -86,8 +82,9 @@ public class HkxSendMaterialTask extends AbstractAcsTask { taskTab.update(taskObj); // 通知mes - feedback.put("task_status", TaskStatusEnum.FINISHED.getCode()); - feedback.put("struct_code", taskObj.getString("point_code2")); + feedback.put("fpacknumberpl695", taskObj.getString("task_code")); + feedback.put("flpn979", taskObj.getString("vehicle_code")); + feedback.put("flocationid979number", taskObj.getString("point_code2")); wmsToMesService.taskFeedback(feedback); String point_code2 = taskObj.getString("point_code2"); diff --git a/lms/nladmin-system/src/main/resources/config/application-dev.yml b/lms/nladmin-system/src/main/resources/config/application-dev.yml index 57609ab..b56cda5 100644 --- a/lms/nladmin-system/src/main/resources/config/application-dev.yml +++ b/lms/nladmin-system/src/main/resources/config/application-dev.yml @@ -6,11 +6,11 @@ spring: druid: db-type: com.alibaba.druid.pool.DruidDataSource driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy - url: jdbc:log4jdbc:mysql://${DB_HOST:47.111.78.178}:${DB_PORT:3306}/${DB_NAME:yongyu_lms2}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true -# url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:yongyu_lms2}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true +# url: jdbc:log4jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:yy-lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true + url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:yongyu_lms2}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true username: ${DB_USER:root} - password: ${DB_PWD:P@ssw0rd} - # password: ${DB_PWD:12356} +# password: ${DB_PWD:P@ssw0rd} + password: ${DB_PWD:12356} # 初始连接数 initial-size: 5 # 最小连接数 @@ -52,12 +52,22 @@ spring: wall: config: multi-statement-allow: true -redis: - #数据库索引 - database: ${REDIS_DB:15} - host: ${REDIS_HOST:127.0.0.1} - port: ${REDIS_PORT:6379} - password: ${REDIS_PWD:} + redis: + #数据库索引 + database: ${REDIS_DB:15} + host: ${REDIS_HOST:127.0.0.1} + port: ${REDIS_PORT:6379} + password: ${REDIS_PWD:} + redisson: + config: | + threads: 4 + nettyThreads: 4 + singleServerConfig: + connectionMinimumIdleSize: 8 + connectionPoolSize: 8 + address: redis://127.0.0.1:6379 + idleConnectionTimeout: 10000 + timeout: 3000 # 登录相关配置 login: @@ -154,3 +164,9 @@ sa-token: loki: url: http://localhost:3100/loki/api/v1 systemName: acs +mes: + sqlserver: + enabled: false + jdbcurl: jdbc:sqlserver://192.168.81.80:1433;DatabaseName=hllg; + username: sa + password: P@ssw0rd diff --git a/lms/nladmin-system/src/main/resources/config/application-prod.yml b/lms/nladmin-system/src/main/resources/config/application-prod.yml index a2db56e..10a4620 100644 --- a/lms/nladmin-system/src/main/resources/config/application-prod.yml +++ b/lms/nladmin-system/src/main/resources/config/application-prod.yml @@ -173,3 +173,10 @@ sa-token: loki: url: http://localhost:3100/loki/api/v1 systemName: lms +#mes +mes: + sqlserver: + enabled: true + jdbcurl: jdbc:sqlserver://192.168.4.113:1433;DatabaseName=Timely4100_15_yoyu; + username: timely + password: timely**2023 diff --git a/lms/nladmin-system/src/main/resources/logback-spring.xml b/lms/nladmin-system/src/main/resources/logback-spring.xml index bcc5497..65a2502 100644 --- a/lms/nladmin-system/src/main/resources/logback-spring.xml +++ b/lms/nladmin-system/src/main/resources/logback-spring.xml @@ -77,7 +77,7 @@ https://juejin.cn/post/6844903775631572999 - + @@ -122,7 +122,7 @@ https://juejin.cn/post/6844903775631572999 - + diff --git a/lms/nladmin-ui/src/views/wms/basedata/material/index.vue b/lms/nladmin-ui/src/views/wms/basedata/material/index.vue index 86b4066..2fb7707 100644 --- a/lms/nladmin-ui/src/views/wms/basedata/material/index.vue +++ b/lms/nladmin-ui/src/views/wms/basedata/material/index.vue @@ -2,39 +2,26 @@
- - - - - 物料类别: - - - - - - - - 模糊查询: - - - +
+ + + + - - + +
- - - - - - - - - - -
- - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +