From bc632ec29354eee8282bf7fd404bb60a1565cb76 Mon Sep 17 00:00:00 2001 From: 18188916393 <2562295436@qq.com> Date: Thu, 13 Oct 2022 10:13:07 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9C=8B=E6=9D=BF=E4=BF=AE=E6=94=B9=EF=BC=8C?= =?UTF-8?q?=E7=89=A9=E6=96=99=E5=9B=9E=E5=BA=93=E5=88=86=E9=85=8D=E8=A7=84?= =?UTF-8?q?=E5=88=99=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/quartz/task/AutoDelLogTask.java | 27 +++++++++ .../org/nl/modules/quartz/task/SYS_LOGS01.wql | 57 ++++++++++++++++++ .../java/org/nl/modules/system/wql/sys.xls | Bin 231936 -> 195072 bytes .../service/impl/ProduceTaskServiceImpl.java | 19 ++++-- .../core/service/impl/DumpinvServiceImpl.java | 4 +- .../main/resources/config/application-dev.yml | 2 +- .../src/main/resources/config/application.yml | 2 +- wms/qd/package.json | 2 +- .../views/wms/pdm/produceTask/bigScreen.vue | 32 +++++++--- 9 files changed, 124 insertions(+), 21 deletions(-) create mode 100644 wms/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoDelLogTask.java create mode 100644 wms/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/SYS_LOGS01.wql diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoDelLogTask.java b/wms/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoDelLogTask.java new file mode 100644 index 0000000..9bd6948 --- /dev/null +++ b/wms/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoDelLogTask.java @@ -0,0 +1,27 @@ +package org.nl.modules.quartz.task; + +import lombok.extern.slf4j.Slf4j; +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.nl.modules.system.service.impl.ParamServiceImpl; +import org.nl.utils.SpringContextHolder; +import org.nl.wql.WQL; +import org.nl.wql.core.bean.WQLObject; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +public class AutoDelLogTask { + + public void run () { + WQLObject logTab = WQLObject.getWQLObject("sys_log"); + String delete_time= SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("LOG_DELETE_TIME").getValue(); + JSONArray jsonArray = WQL.getWO("SYS_LOGS01").addParam("flag", "1").process().getResultJSONArray(0); + for (int i = 0; i < jsonArray.size(); i++) { + JSONObject json = jsonArray.getJSONObject(i); + if (Long.parseLong(delete_time) < json.getLong("time")) { + logTab.delete(json); + } + } + } +} diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/SYS_LOGS01.wql b/wms/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/SYS_LOGS01.wql new file mode 100644 index 0000000..3564c3c --- /dev/null +++ b/wms/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/SYS_LOGS01.wql @@ -0,0 +1,57 @@ +[交易说明] + 交易名: 日志 + 所属模块: + 功能简述: + 版权所有: + 表引用: + 版本经历: + +[数据库] + --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 + +[IO定义] + ################################################# + ## 表字段对应输入参数 + ################################################# + 输入.flag TYPEAS s_string + + +[临时表] + --这边列出来的临时表就会在运行期动态创建 + +[临时变量] + --所有中间过程变量均可在此处定义 + +[业务过程] + + ########################################## + # 1、输入输出检查 # + ########################################## + + + ########################################## + # 2、主过程前处理 # + ########################################## + + + ########################################## + # 3、业务主过程 # + ########################################## + + IF 输入.flag = "1" + QUERY + SELECT + TIMESTAMPDIFF(DAY,create_time,now()) AS time,request_ip,log_id + FROM + sys_log + WHERE + 1=1 + ORDER BY + create_time + LIMIT 100 + ENDSELECT + ENDQUERY + ENDIF + + + diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/modules/system/wql/sys.xls b/wms/hd/nladmin-system/src/main/java/org/nl/modules/system/wql/sys.xls index c8aeccbe05bdd63fc73df1e733726d33273afcee..f4f7c17636ac74db4095e71a722f42695100186a 100644 GIT binary patch delta 13379 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 diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/ProduceTaskServiceImpl.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/ProduceTaskServiceImpl.java index c12dadf..ae20c29 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/ProduceTaskServiceImpl.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/ProduceTaskServiceImpl.java @@ -283,7 +283,7 @@ public class ProduceTaskServiceImpl implements ProduceTaskService { String produce_uuid = MapUtil.getStr(map, "produce_uuid"); //生产任务表【pdm_base_produceTask】 WQLObject produceTaskTab = WQLObject.getWQLObject("pdm_base_produceTask"); - JSONObject produceTaskObj = produceTaskTab.query("is_delete='0' and produce_status<> '02' and produce_uuid = '" + produce_uuid + "'").uniqueResult(0); + JSONObject produceTaskObj = produceTaskTab.query("is_delete='0' and produce_uuid = '" + produce_uuid + "'").uniqueResult(0); if (ObjectUtil.isEmpty(produceTaskObj)) throw new BadRequestException("生产任务已完成或被删除,操作失败!"); String point_code = produceTaskObj.optString("device_code"); @@ -383,7 +383,7 @@ public class ProduceTaskServiceImpl implements ProduceTaskService { //生产任务表【pdm_base_produceTask】 WQLObject produceTaskTab = WQLObject.getWQLObject("pdm_base_produceTask"); - JSONObject produceTaskObj = produceTaskTab.query("is_delete='0' and produce_status<> '02' and produce_uuid = '" + produce_uuid + "'").uniqueResult(0); + JSONObject produceTaskObj = produceTaskTab.query("is_delete='0' and produce_uuid = '" + produce_uuid + "'").uniqueResult(0); if (ObjectUtil.isEmpty(produceTaskObj)) throw new BadRequestException("生产任务已完成或被删除,操作失败!"); String produce_status = produceTaskObj.optString("produce_status"); if (StrUtil.equals("00", produce_status)) { @@ -423,7 +423,6 @@ public class ProduceTaskServiceImpl implements ProduceTaskService { } - //回显生产任务状态和结束生产时间 String now = DateUtil.now(); int produce_qty = produceTaskObj.optInt("produce_qty"); @@ -448,7 +447,7 @@ public class ProduceTaskServiceImpl implements ProduceTaskService { String produce_uuid = MapUtil.getStr(map, "produce_uuid"); //生产任务表【pdm_base_produceTask】 WQLObject produceTaskTab = WQLObject.getWQLObject("pdm_base_produceTask"); - JSONObject produceTaskObj = produceTaskTab.query("is_delete='0' and produce_status<> '02' and produce_uuid = '" + produce_uuid + "'").uniqueResult(0); + JSONObject produceTaskObj = produceTaskTab.query("is_delete='0' and produce_uuid = '" + produce_uuid + "'").uniqueResult(0); if (ObjectUtil.isEmpty(produceTaskObj)) throw new BadRequestException("生产任务已完成或被删除,操作失败!"); String point_code = produceTaskObj.optString("device_code"); //判断点位上有没有托盘,没有托盘不允许回库 @@ -464,11 +463,19 @@ public class ProduceTaskServiceImpl implements ProduceTaskService { WQLObject taskTab = WQLObject.getWQLObject("sch_base_task"); JSONObject taskJson = taskTab.query(" is_delete='0' and task_status<>'06' and start_point_code = '" + point_code + "' and handle_class = '" + MaterialBackTask.class.getName() + "'").uniqueResult(0); if (ObjectUtil.isNotEmpty(taskJson)) throw new BadRequestException("该设备有未完成的搬运任务,不能重复操作!"); - //判断是否有可以使用的下一个点位 //点位基础表【sch_base_point】 WQLObject pointTab = WQLObject.getWQLObject("sch_base_point"); - JSONObject nextPoint = pointTab.query("area_type ='03' and point_status ='00' and lock_type='00' and is_active='1' and is_delete='0'").uniqueResult(0); + //JSONObject nextPoint = pointTab.query("area_type ='03' and point_status ='00' and lock_type='00' and is_active='1' and is_delete='0'").uniqueResult(0); + JSONObject nextPoint = new JSONObject(); + String material_code = WQLObject.getWQLObject("md_base_materiallabelmst") + .query("label_uuid ='" + produceTaskObj.getString("label_uuid") + "'").uniqueResult(0).getString("material_code"); + if (StrUtil.equals(material_code, "1")) { + nextPoint = pointTab.query("area_type = '03' and point_status ='00' and lock_type='00' and is_active='1' and is_delete='0' and point_name like'%01层%'").uniqueResult(0); + } else { + nextPoint = pointTab.query("area_type = '03' and point_status ='00' and lock_type='00' and is_active='1' and is_delete='0' and point_name not like'%01层%'").uniqueResult(0); + + } if (ObjectUtil.isEmpty(nextPoint)) throw new BadRequestException("库内无可用位置,无法操作!"); JSONObject startPoint = pointTab.query("point_code = '" + point_code + "'").uniqueResult(0); diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/core/service/impl/DumpinvServiceImpl.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/core/service/impl/DumpinvServiceImpl.java index c4908ce..636a29f 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/core/service/impl/DumpinvServiceImpl.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/core/service/impl/DumpinvServiceImpl.java @@ -89,9 +89,9 @@ public class DumpinvServiceImpl implements DumpinvService { String material_code = materialObj.getString("material_code"); JSONArray turnInArr = new JSONArray(); if (StrUtil.equals(material_code,"1")){ - turnInArr = pointTab.query("area_type = '03' and point_status ='00' and lock_type='00' and is_active='1' and is_delete='0' and point_name like'%一层%'").getResultJSONArray(0); + turnInArr = pointTab.query("area_type = '03' and point_status ='00' and lock_type='00' and is_active='1' and is_delete='0' and point_name like'%01层%'").getResultJSONArray(0); }else { - turnInArr = pointTab.query("area_type = '03' and point_status ='00' and lock_type='00' and is_active='1' and is_delete='0' and point_name not like'%一层%'").getResultJSONArray(0); + turnInArr = pointTab.query("area_type = '03' and point_status ='00' and lock_type='00' and is_active='1' and is_delete='0' and point_name not like'%01层%'").getResultJSONArray(0); } diff --git a/wms/hd/nladmin-system/src/main/resources/config/application-dev.yml b/wms/hd/nladmin-system/src/main/resources/config/application-dev.yml index dee76d3..c10e7ff 100644 --- a/wms/hd/nladmin-system/src/main/resources/config/application-dev.yml +++ b/wms/hd/nladmin-system/src/main/resources/config/application-dev.yml @@ -7,7 +7,7 @@ spring: db-type: com.alibaba.druid.pool.DruidDataSource driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy ##url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.57}:${DB_PORT:3306}/${DB_NAME:ch_wms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true - url: jdbc:log4jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:ch_wms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true + url: jdbc:log4jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:ch_wms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true username: ${DB_USER:root} ##username: ${DB_USER:root} ##password: ${DB_PWD:dzhdghmt0617} diff --git a/wms/hd/nladmin-system/src/main/resources/config/application.yml b/wms/hd/nladmin-system/src/main/resources/config/application.yml index f625d67..16e66f0 100644 --- a/wms/hd/nladmin-system/src/main/resources/config/application.yml +++ b/wms/hd/nladmin-system/src/main/resources/config/application.yml @@ -2,7 +2,7 @@ spring: freemarker: check-template-location: false profiles: - active: prod + active: dev jackson: time-zone: GMT+8 data: diff --git a/wms/qd/package.json b/wms/qd/package.json index 32b3473..513dff7 100644 --- a/wms/qd/package.json +++ b/wms/qd/package.json @@ -102,7 +102,7 @@ "lint-staged": "8.1.5", "plop": "2.3.0", "runjs": "^4.3.2", - "sass": "^1.26.10", + "sass": "~1.26.5", "sass-loader": "^7.1.0", "script-ext-html-webpack-plugin": "2.1.3", "script-loader": "0.7.2", diff --git a/wms/qd/src/views/wms/pdm/produceTask/bigScreen.vue b/wms/qd/src/views/wms/pdm/produceTask/bigScreen.vue index 64e09df..223d0e7 100644 --- a/wms/qd/src/views/wms/pdm/produceTask/bigScreen.vue +++ b/wms/qd/src/views/wms/pdm/produceTask/bigScreen.vue @@ -32,8 +32,12 @@ :data="tableData" size="small" style="width: 100%;" - @selection-change="changeFun" + @selection-change="handleSelectionChange" > + + @@ -125,11 +129,11 @@ export default { this.notify('操作成功', 'success') }, callMaterial() { - if (this.tableData.length < 1) { - this.notify('没有执行中的任务', 'info') + if (this.$refs.table.selection.length === 0) { + this.notify('请选中一条记录!', 'info') return } - const data = this.tableData[0] + const data = this.$refs.table.selection[0] crudProduceTask.callMaterial(data).then(res => { this.notify('操作成功', 'success') this.queryId() @@ -138,11 +142,11 @@ export default { }) }, finish() { - if (this.tableData.length < 1) { - this.notify('没有执行中的任务', 'info') + if (this.$refs.table.selection.length === 0) { + this.notify('请选中一条记录!', 'info') return } - const data = this.tableData[0] + const data = this.$refs.table.selection[0] crudProduceTask.finish(data).then(res => { this.notify('操作成功', 'success') this.queryId() @@ -151,11 +155,11 @@ export default { }) }, materialBack() { - if (this.tableData.length < 1) { - this.notify('没有执行中的任务', 'info') + if (this.$refs.table.selection.length === 0) { + this.notify('请选中一条记录!', 'info') return } - const data = this.tableData[0] + const data = this.$refs.table.selection[0] crudProduceTask.materialBack(data).then(res => { this.notify('操作成功', 'success') this.queryId() @@ -176,6 +180,14 @@ export default { return this.$message.error('请选择一条信息操作') } }, + handleSelectionChange(val) { + this.multipleSelection = val + if (val.length > 1) { + this.$refs.table.clearSelection() + this.$refs.table.toggleRowSelection(val.pop()) + } + }, + queryId() { const id = this.$route.params.id crudProduceTask.queryIdDevice(id).then(res => {