From c6e60d517da056cdd5a811b300429ef814b58270 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9A=B4=E7=82=B3=E6=9E=97?= <15237758276@163.com> Date: Fri, 21 Mar 2025 15:44:38 +0800 Subject: [PATCH] no message --- .../src/components/duochaxun/GZZXiaoLv.vue | 10 +- .../components/duochaxun/JianHuoXiaoLv.vue | 16 +-- .../components/duochaxun/Jianhuojiemian.vue | 11 +- .../src/components/duochaxun/Kucunrizhi.vue | 30 ++++- .../duochaxun/Liaoxiangjiankong.vue | 4 +- .../components/duochaxun/Pandianmingxi.vue | 38 +++++- wms-vue/src/components/duochaxun/RenXiao.vue | 16 ++- wms-vue/src/components/duochaxun/Xuliehao.vue | 10 +- wms-vue/src/main.js | 4 +- .../java/com/yc/wms/bean/Jianhuojiemian.java | 2 +- .../main/java/com/yc/wms/bean/Kucunrizhi.java | 2 +- .../java/com/yc/wms/bean/Pandianming.java | 2 +- .../wms/controller/EnumerateController.java | 24 ++++ .../wms/controller/GGZXiaoLvController.java | 122 +++++++++++------- .../controller/JianHuoBiaoDanController.java | 4 +- .../controller/JianHuoXiaoLvController.java | 101 +++++++++------ .../yc/wms/controller/RenXiaoController.java | 16 ++- .../wms/service/impl/JianhuojiemianImpl.java | 6 +- .../yc/wms/service/impl/KucunrizhiImpl.java | 22 ++-- .../wms/service/impl/PandianmingxiImpl.java | 19 ++- .../wms/service/impl/XuliehaoqingdanImpl.java | 18 +-- .../com/yc/wms/utils/JdbcQueryExample.java | 4 +- 22 files changed, 314 insertions(+), 167 deletions(-) diff --git a/wms-vue/src/components/duochaxun/GZZXiaoLv.vue b/wms-vue/src/components/duochaxun/GZZXiaoLv.vue index fc46bf0..36cff08 100644 --- a/wms-vue/src/components/duochaxun/GZZXiaoLv.vue +++ b/wms-vue/src/components/duochaxun/GZZXiaoLv.vue @@ -38,8 +38,8 @@ style="width: 100%;"> - + - - + + @@ -141,9 +141,9 @@ export default { label: '出库类型' }, { - prop: '任务号', + prop: '工单号', minWidth: '150px', - label: '任务号' + label: '工单号' }, { prop: '子任务号', @@ -156,9 +156,9 @@ export default { label: '库区' }, { - prop: '拣货行', + prop: '拣货行数', minWidth: '150px', - label: '拣货行' + label: '拣货行数' }, { prop: '创建时间', @@ -243,7 +243,7 @@ export default { total: 3, param: { 出库类型:'', - 任务号:'', + 工单号:'', 子任务号:'', 库区:'', 创建日期:[] diff --git a/wms-vue/src/components/duochaxun/Jianhuojiemian.vue b/wms-vue/src/components/duochaxun/Jianhuojiemian.vue index f3239d0..b84dbd5 100644 --- a/wms-vue/src/components/duochaxun/Jianhuojiemian.vue +++ b/wms-vue/src/components/duochaxun/Jianhuojiemian.vue @@ -30,7 +30,7 @@ - + @@ -92,7 +92,7 @@ - + @@ -673,7 +673,7 @@ export default { sourceType: '', //拣货库区 z_name: [], - //所在库位 + //目标容器 lc2_code: '', //料号 i_code: '', @@ -834,10 +834,9 @@ export default { }) }, remoteMethod(query) { - if (query !== '') { - if(query.length>2) { - + if(query.length>=2) { + console.log("远程搜索") this.$axios.post(this.$httpUrl + '/Jianhuojiemian/kw', { query }).then(res => res.data) diff --git a/wms-vue/src/components/duochaxun/Kucunrizhi.vue b/wms-vue/src/components/duochaxun/Kucunrizhi.vue index 506bd1a..25433b6 100644 --- a/wms-vue/src/components/duochaxun/Kucunrizhi.vue +++ b/wms-vue/src/components/duochaxun/Kucunrizhi.vue @@ -67,7 +67,16 @@ - + + + + + @@ -422,6 +431,7 @@ export default { LP: '' }, LOCS: [], + GcS: [], Log: [], checked: false, } @@ -438,6 +448,7 @@ export default { mounted() { this.queryUser(); this.LOC(); + this.Gc(); this.JdbcLogType(); }, methods: { @@ -475,6 +486,23 @@ export default { this.tableloding=false; }) }, + Gc(){ + //工厂 + this.$axios.post(this.$httpUrl + '/Enumerate/Gc', { + + }).then(res => res.data) + .then(res => { + if (res.code == 200) { + this.GcS = res.data; + } else { + this.$message.error('获取数据失败'); + } + + // eslint-disable-next-line no-unused-vars + },err=>{ + this.tableloding=false; + }) + }, JdbcLogType(){ //LOC下拉列表数据加载 this.$axios.post(this.$httpUrl + '/Enumerate/InventoryLogType', { diff --git a/wms-vue/src/components/duochaxun/Liaoxiangjiankong.vue b/wms-vue/src/components/duochaxun/Liaoxiangjiankong.vue index b1d3419..1a74923 100644 --- a/wms-vue/src/components/duochaxun/Liaoxiangjiankong.vue +++ b/wms-vue/src/components/duochaxun/Liaoxiangjiankong.vue @@ -21,7 +21,7 @@ - + diff --git a/wms-vue/src/components/duochaxun/Pandianmingxi.vue b/wms-vue/src/components/duochaxun/Pandianmingxi.vue index 0a0f205..0d94bf0 100644 --- a/wms-vue/src/components/duochaxun/Pandianmingxi.vue +++ b/wms-vue/src/components/duochaxun/Pandianmingxi.vue @@ -64,8 +64,17 @@ - + + + + + @@ -76,7 +85,7 @@ - + - + - {{new Date(scope.row.issued_Date).toISOString().replace('T','').substring(1,10)}} + {{new Date(scope.row.issued_Date).toISOString().replace('T','').substring(0,10)}} @@ -342,7 +351,7 @@ width="80"> - {{new Date(scope.row.issued_Date).toISOString().replace('T','').substring(10,19)}} + {{new Date(scope.row.issued_Date).toISOString().replace('T','').substring(10,18)}} @@ -492,6 +501,7 @@ export default { }, Ku: [], + Gz: [], //是否盘点 pd: [ { @@ -524,6 +534,7 @@ export default { mounted: function () { this.queryUser(); this.KuS(); + this.GzzS(); }, methods: { @@ -561,6 +572,23 @@ export default { this.tableloding=false; }) }, + GzzS(){ + + this.$axios.post(this.$httpUrl + '/Enumerate/Gzz ', { + + }).then(res => res.data) + .then(res => { + if (res.code == 200) { + this.Gz = res.data; + } else { + this.$message.error('获取数据失败'); + } + + // eslint-disable-next-line no-unused-vars + },err=>{ + this.tableloding=false; + }) + }, queryUser() { //列表数据加载 this.$axios.post(this.$httpUrl + '/Pandianmingxi/queryPan', { diff --git a/wms-vue/src/components/duochaxun/RenXiao.vue b/wms-vue/src/components/duochaxun/RenXiao.vue index 6b68d24..6878273 100644 --- a/wms-vue/src/components/duochaxun/RenXiao.vue +++ b/wms-vue/src/components/duochaxun/RenXiao.vue @@ -19,6 +19,16 @@ + + + + + + + + + + 查找 导出 @@ -174,7 +184,9 @@ export default { total: 3, //查询条件 param: { - issued_Date: [] + issued_Date: [], + 操作人: '', + 组别: '' }, loading: false, checked: false, @@ -241,7 +253,7 @@ export default { this.tableData = res.data this.total = res.total } else { - this.$message.error('获取数据失败'); + this.$message.error(res.msg); } // eslint-disable-next-line no-unused-vars diff --git a/wms-vue/src/components/duochaxun/Xuliehao.vue b/wms-vue/src/components/duochaxun/Xuliehao.vue index f28b4f6..3682e35 100644 --- a/wms-vue/src/components/duochaxun/Xuliehao.vue +++ b/wms-vue/src/components/duochaxun/Xuliehao.vue @@ -115,7 +115,7 @@ - + - + - {{new Date(scope.row.STORAGE_DATE).toISOString().replace('T','')}} + {{ scope.row.STORAGE_DATE}} @@ -417,11 +417,11 @@ export default { //供应商代码 PROP_C5: '', - //是否批次号管理 - //public String ; //存货日期 STORAGE_DATE: [], + // 是否批次号管理 + sfpc: '', //盘点是否锁定 sfpd: '', diff --git a/wms-vue/src/main.js b/wms-vue/src/main.js index 2b81f00..7682e0e 100644 --- a/wms-vue/src/main.js +++ b/wms-vue/src/main.js @@ -8,9 +8,9 @@ import VueRouter from "vue-router"; import router from "@/router/router"; import store from "@/store/store"; Vue.prototype.$axios=axios; -// Vue.prototype.$httpUrl='http://127.0.0.1:8083'; +Vue.prototype.$httpUrl='http://127.0.0.1:8083'; //Vue.prototype.$httpUrl='http://192.68.2.88:8081'; -Vue.prototype.$httpUrl='http://10.1.112.23:8083'; +// Vue.prototype.$httpUrl='http://10.1.112.23:8083'; Vue.config.productionTip = false; Vue.use(VueRouter) Vue.use(ElementUI,{size:'small'}); diff --git a/wms/src/main/java/com/yc/wms/bean/Jianhuojiemian.java b/wms/src/main/java/com/yc/wms/bean/Jianhuojiemian.java index 2396fb1..dc1d5a4 100644 --- a/wms/src/main/java/com/yc/wms/bean/Jianhuojiemian.java +++ b/wms/src/main/java/com/yc/wms/bean/Jianhuojiemian.java @@ -16,7 +16,7 @@ public class Jianhuojiemian { //拣货库区 public String[] z_name; - //所在库位 + //目标容器 public String lc2_code; //料号 diff --git a/wms/src/main/java/com/yc/wms/bean/Kucunrizhi.java b/wms/src/main/java/com/yc/wms/bean/Kucunrizhi.java index 0f5a07b..c08e0a0 100644 --- a/wms/src/main/java/com/yc/wms/bean/Kucunrizhi.java +++ b/wms/src/main/java/com/yc/wms/bean/Kucunrizhi.java @@ -30,7 +30,7 @@ public class Kucunrizhi { // 容器 public String LP; // 工厂 - public String PROP_C9; + public String[] PROP_C9; // 备注 public String DESCRIPTION; } diff --git a/wms/src/main/java/com/yc/wms/bean/Pandianming.java b/wms/src/main/java/com/yc/wms/bean/Pandianming.java index d3e41a7..aa10fde 100644 --- a/wms/src/main/java/com/yc/wms/bean/Pandianming.java +++ b/wms/src/main/java/com/yc/wms/bean/Pandianming.java @@ -23,7 +23,7 @@ public class Pandianming { public String[] z_name; //工作站 - public String targetArea; + public String[] targetArea; //盘点人员 public String w_name; diff --git a/wms/src/main/java/com/yc/wms/controller/EnumerateController.java b/wms/src/main/java/com/yc/wms/controller/EnumerateController.java index ae7a822..d7d1f5a 100644 --- a/wms/src/main/java/com/yc/wms/controller/EnumerateController.java +++ b/wms/src/main/java/com/yc/wms/controller/EnumerateController.java @@ -19,6 +19,30 @@ import java.util.Map; public class EnumerateController { @Autowired private JdbcQueryExample jdbcQueryExample; + /* 工厂*/ + @PostMapping("/Gc") + public Result Gc() { + String sql = " SELECT " + +" commonCode.code, " + +" commonCode.name From COMMON_CODE commonCode " + +" where commonCode.code_Type = '工厂' "; + List> mapList = jdbcQueryExample.sqlQuery(sql); + return Result.success(mapList); + } + /* 工作站*/ + @PostMapping("/Gzz") + public Result Gzz() { + String sql = " SELECT " + +" ls.code, " + +" ls.name " + +" FROM Location_Storage ls " + +" WHERE 1=1 " + +" and ls.name in ('201','202','203','204','205','206','207','208','209','210','211','212', " + +" '213','214','215','101','102','103','104','105','106','107','602','603','604','605') "; + List> mapList = jdbcQueryExample.sqlQuery(sql); + return Result.success(mapList); + } + /* 日志类型*/ @PostMapping("/InventoryLogType") public Result InventoryLogType() { List> logTypes = new ArrayList<>(); diff --git a/wms/src/main/java/com/yc/wms/controller/GGZXiaoLvController.java b/wms/src/main/java/com/yc/wms/controller/GGZXiaoLvController.java index 883a37c..e4670d9 100644 --- a/wms/src/main/java/com/yc/wms/controller/GGZXiaoLvController.java +++ b/wms/src/main/java/com/yc/wms/controller/GGZXiaoLvController.java @@ -46,70 +46,104 @@ public class GGZXiaoLvController { startDate=sdf.format(param.getJSONArray("日期").getDate(0)); endDate=sdf.format(param.getJSONArray("日期").getDate(1)); } - /* 基础sql数据查询*/ - String sql=" select Row_number() OVER(order by v.库区,v.工作站,v.业务类型 asc) as id,v.库区, " - +" v.工作站,sum(v.有效时效) '有效时效', v.业务类型 ,sum(v.有效时效)/540 '有效时间占比' ," + - " count(DISTINCT(v.任务号)) 任务数 from ( " - +" select (case when left(agv.targetArea,1)='1' then '货架到人' when left(agv.targetArea,1)='2' then '料箱到人' end) as '库区', " - +" (agv.id) ID,(agv.robotJobId) as '任务号',left(agv.targetArea,3) as '工作站',(agv.status) as '状态', " - +" (CONVERT(VARCHAR,agv.createTime , 23)) as '创建时间', " - +" (agv.arrivalTime),(agv.agvCode) as '车子',(agv.type) as '类型',(agv.classification) as '业务类型', " - +" (agv.founderName) as '创建人', " - +" (agv.jobPriorityType) as '加急', (agv.leaveTime) as '到站时间',(agv.returnTime) as '返库时间', " - +" DATEDIFF(second,(agv.leaveTime), (agv.returnTime) )/60 as '有效时效' " - +" from agvtask agv " - +" where CONVERT(VARCHAR,agv.createTime , 23)>='"+startDate+"' " - +" and CONVERT(VARCHAR,agv.createTime , 23)<='"+endDate+"' ) v " - +" GROUP BY v.库区,v.工作站 ,v.业务类型 "; - String sqlCount = "select count(t.id) as nums from (" + sql+") t"; - /* 总条数*/ - List counts = entityManager.createNativeQuery(sqlCount).getResultList(); /* 当前页数据*/ int pageNum = query.getPageNum();//当前页 int pageSize = query.getPageSize();//条数 - String querySql="";//查询条件 - String sqlFy = "select * from( " - + sql - + ") t where 1=1 " - + querySql - +" ORDER BY id " - +" OFFSET "+ (pageNum-1) * pageSize +" ROWS " - +" FETCH NEXT "+pageSize+" ROWS ONLY; "; + String sqlFy =" SELECT " + +" ROW_NUMBER() OVER (ORDER BY v.库区, v.工作站) AS id, " + +" v.库区, " + +" v.工作站, " + +" SUM(v.有效时效)/60 AS 有效时效, " + +" SUM(v.有效时效)/60/9 AS 有效时效占比, " + +" COUNT(DISTINCT CASE WHEN v.业务类型 = '入库' THEN v.任务号 END) AS 入库, " + +" COUNT(DISTINCT CASE WHEN v.业务类型 = '拣货' THEN v.任务号 END) AS 拣货, " + +" COUNT(DISTINCT CASE WHEN v.业务类型 = '料箱整理' THEN v.任务号 END) AS 整理, " + +" COUNT(DISTINCT CASE WHEN v.业务类型 = '盘点' THEN v.任务号 END) AS 盘点 " + +" FROM " + +" ( " + +" SELECT " + +" (CASE WHEN LEFT(agv.targetArea, 1) = '1' THEN '货架到人' WHEN LEFT(agv.targetArea, 1) = '2' THEN '料箱到人' END) AS '库区', " + +" (agv.id) ID, " + +" (agv.robotJobId) AS '任务号', " + +" LEFT(agv.targetArea, 3) AS '工作站', " + +" (agv.status) AS '状态', " + +" (CONVERT(VARCHAR, agv.createTime, 23)) AS '创建时间', " + +" (agv.arrivalTime), " + +" (agv.agvCode) AS '车子', " + +" (agv.type) AS '类型', " + +" (agv.classification) AS '业务类型', " + +" (agv.founderName) AS '创建人', " + +" (agv.jobPriorityType) AS '加急', " + +" (agv.leaveTime) AS '到站时间', " + +" (agv.returnTime) AS '返库时间', " + +" agv.arrivalTime AS '更新时间', " + +" CASE " + +" WHEN agv.classification IN ('拣货', '料箱整理') THEN ISNULL(DATEDIFF(SECOND, (agv.leaveTime), (agv.returnTime)), 0) " + +" WHEN agv.classification = '盘点' AND agv.type = '货架返库' THEN ISNULL(DATEDIFF(SECOND, (agv.leaveTime), (agv.arrivalTime)), 0) " + +" WHEN agv.classification = '入库' THEN (CASE WHEN agv.classification = '入库' THEN 1 ELSE 0 END) * 10 " + +" ELSE 0 " + +" END AS '有效时效', " + +" (CASE WHEN agv.classification = '入库' THEN 1 ELSE 0 END) AS '料箱入库任务数' " + +" FROM " + +" agvtask agv " + +" WHERE " + +" CONVERT(VARCHAR, agv.createTime, 23) >= '2025-01-01' " + +" AND CONVERT(VARCHAR, agv.createTime, 23) <= '2025-03-20' " + +" AND agv.classification IN ('入库', '拣货', '料箱整理', '盘点') " + +" ) v " + +" GROUP BY " + +" v.库区, " + +" v.工作站; "; /* 返回数据*/ List returnList=new ArrayList<>(); /* 查询所有数据*/ List ggzXlList = entityManager.createNativeQuery(sqlFy, GGZXl.class).getResultList(); - /* 按SAP类型分组*/ + /* 按库区类型分组*/ Map> groupedMap = ggzXlList.stream() .collect(Collectors.groupingBy(ggzXl -> Objects.toString(ggzXl.get库区(), "unknown"))); + GGZXl dhz=new GGZXl(); + dhz.set库区("大汇总"); /*排序获取建*/ List sapKeys = panxu(groupedMap); for (int i = 0; i < sapKeys.size(); i++) { List ggzXls=groupedMap.get(sapKeys.get(i)); + /* 按库区分组后,按工作站分组*/ + + GGZXl gz=ggzXls.get(0); int l=1;//合并列 + GGZXl xhz=new GGZXl(); + xhz.set工作站("库区汇总"); for (GGZXl ggzXl:ggzXls){ l=l+1; + xhz.set拣货(xhz.get拣货()+ggzXl.get拣货()); + xhz.set入库(xhz.get入库()+ggzXl.get入库()); + xhz.set整理(xhz.get整理()+ggzXl.get整理()); + xhz.set盘点(xhz.get盘点()+ggzXl.get盘点()); + xhz.set有效时效(xhz.get有效时效()+ggzXl.get有效时效()); + xhz.set有效时效占比(xhz.get有效时效占比()+ggzXl.get有效时效占比()); } Map map=new HashMap<>(); map.put("库区", new int[]{l, 1}); gz.setMergeData(map); returnList.addAll(ggzXls); - - GGZXl xhz=new GGZXl(); - xhz.set工作站("汇总"); + /* 添加汇总*/ returnList.add(xhz); + dhz.set拣货(dhz.get拣货()+xhz.get拣货()); + dhz.set入库(dhz.get入库()+xhz.get入库()); + dhz.set整理(dhz.get整理()+xhz.get整理()); + dhz.set盘点(dhz.get盘点()+xhz.get盘点()); + dhz.set有效时效(dhz.get有效时效()+xhz.get有效时效()); + dhz.set有效时效占比(dhz.get有效时效占比()+xhz.get有效时效占比()); } - GGZXl dhz=new GGZXl(); - dhz.set库区("汇总"); dhz.setMergeData(new HashMap() {{ - put("库区", new int[]{1, 2}); + put("库区", new int[]{1, 1}); }}); returnList.add(dhz); - Result result=Result.result(200,"操作成功",Long.parseLong(counts.get(0).toString()), returnList); + Result result=Result.result(200,"操作成功",Long.parseLong(returnList.size()+""), returnList); return result; } @@ -169,21 +203,13 @@ class GGZXl implements Serializable { /* 库区名称*/ private String 库区=""; private String 工作站=""; - @NotNull - @Transient - private Integer 出库=0; - @NotNull - @Transient - private Integer 入库=0; - @NotNull - @Transient - private Integer 盘点=0; - @NotNull - @Transient - private Integer 整理=0; + private Integer 拣货=0; - private Integer 有效时效; - private Integer 有效时间占比; + private Integer 入库=0; + private Integer 盘点=0; + private Integer 整理=0; + private Integer 有效时效=0; + private Integer 有效时效占比=0; @Transient private Map mergeData=new HashMap() {{ put("库区", new int[]{0, 0}); diff --git a/wms/src/main/java/com/yc/wms/controller/JianHuoBiaoDanController.java b/wms/src/main/java/com/yc/wms/controller/JianHuoBiaoDanController.java index 59694a9..cb52663 100644 --- a/wms/src/main/java/com/yc/wms/controller/JianHuoBiaoDanController.java +++ b/wms/src/main/java/com/yc/wms/controller/JianHuoBiaoDanController.java @@ -75,7 +75,7 @@ public class JianHuoBiaoDanController { +" select max(id) id from ( " + sql+" ) t group by t.sap_name,t.area_name " +" ) t "; /* 总条数*/ - List counts = entityManager.createNativeQuery(sqlCount).getResultList(); +// List counts = entityManager.createNativeQuery(sqlCount).getResultList(); /* 当前页数据*/ int pageNum = query.getPageNum();//当前页 int pageSize = query.getPageSize();//条数 @@ -219,7 +219,7 @@ public class JianHuoBiaoDanController { returnBody.accumulate("tableList", jhBdReturn); returnBody.accumulate("columnList", columnList); // long total=counts.get(0); - Result result=Result.result(200,"操作成功",Long.parseLong(counts.get(0).toString()), returnBody); + Result result=Result.result(200,"操作成功",Long.parseLong(columnList.size()+""), returnBody); return result; } diff --git a/wms/src/main/java/com/yc/wms/controller/JianHuoXiaoLvController.java b/wms/src/main/java/com/yc/wms/controller/JianHuoXiaoLvController.java index 7c88fa6..7f24a75 100644 --- a/wms/src/main/java/com/yc/wms/controller/JianHuoXiaoLvController.java +++ b/wms/src/main/java/com/yc/wms/controller/JianHuoXiaoLvController.java @@ -44,72 +44,93 @@ public class JianHuoXiaoLvController { @Autowired private QueryUtil queryUtil; private static /* 基础sql数据查询*/ - String sql = " SELECT t.id,bt.NAME as '单据类型',pt.sourceType as '出库类型',pt.id as '任务号',t.BILLCODE as '子任务号', " - + " z.NAME as '库区',ptd.LINE_NUMBER as '拣货行' , " - + " CONVERT(VARCHAR(19), pt.UPDATE_TIME, 20) as '创建时间', " - + " CONVERT(VARCHAR(19), t.dateBill3, 20) as '生成合单任务时间', " - + " CONVERT(VARCHAR(19), t.dateBill1, 20) as '下发时间', " - + " CONVERT(VARCHAR(19), t.OPERATE_TIME, 20) as '拣货时间', " - + " CONVERT(VARCHAR(19), t.ARRIVAL_TIME, 20) as '清点时间', " - + " CONVERT(VARCHAR(19), t.operator_Date, 20) as '合单时间', " - + " CONVERT(VARCHAR(19), t.dateline, 20) as '交单时间', " - + " DATEDIFF(second, pt.UPDATE_TIME,t.dateBill1 )/60 as '创建-下发时间', " - + " DATEDIFF(second, t.dateBill1,t.OPERATE_TIME )/60 as '下发-拣货时间', " - + " DATEDIFF(second, t.OPERATE_TIME,t.operator_Date )/60 as '拣货-合单时间', " - + " DATEDIFF(second, t.operator_Date,t.dateline )/60 as '合单-交单时间', " - + " DATEDIFF(second, t.OPERATE_TIME,t.ARRIVAL_TIME )/60 as '拣货-清点时间', " - + " DATEDIFF(second, t.ARRIVAL_TIME,t.operator_Date )/60 as '清点-合单时间', " - + " DATEDIFF(second, t.OPERATE_TIME,t.dateline )/60 as '拣货-交单时间' " - + " FROM task t " - + " LEFT JOIN PICK_TICKET_DETAIL ptd ON ptd.id = t.PICK_TICKET_DETAIL_ID " - + " LEFT JOIN PICK_TICKET pt ON pt.id = ptd.PICK_TICKET_ID " - + " LEFT JOIN BILL_TYPE bt ON bt.id = pt.BILL_TYPE_ID " - + " LEFT JOIN LOCATION loc ON loc.id = t.SRC_LOC_ID " - + " LEFT JOIN [ZONE] z ON z.id = loc.ZONE_ID " - + " WHERE t.PLAN_QUANTITY > 0 "; + String querySql = ""; + public static String buildSql() { + StringBuilder sql = new StringBuilder(); + sql.append(" SELECT " + +" t.BILLCODE AS '子任务号', " + +" MIN(bt.NAME) AS '单据类型', " + +" MIN(pt.sourceType) AS '出库类型', " + +" MIN(pt.code) AS '工单号', " + +" MIN(z.NAME) AS '库区', " + +" COUNT(*) AS '拣货行数', " + +" CONVERT(VARCHAR(19), MIN(pt.UPDATE_TIME), 20) AS '创建时间', " + +" CONVERT(VARCHAR(19), MIN(t.dateBill3), 20) AS '生成合单任务时间', " + +" CONVERT(VARCHAR(19), MIN(t.dateBill1), 20) AS '下发时间', " + +" CONVERT(VARCHAR(19), MIN(t.OPERATE_TIME), 20) AS '拣货时间', " + +" CONVERT(VARCHAR(19), MIN(t.ARRIVAL_TIME), 20) AS '清点时间', " + +" CONVERT(VARCHAR(19), MIN(t.operator_Date), 20) AS '合单时间', " + +" CONVERT(VARCHAR(19), MIN(t.dateline), 20) AS '交单时间', " + +" DATEDIFF(SECOND, MIN(pt.UPDATE_TIME), MIN(t.dateBill1)) / 60 AS '创建 - 下发时间', " + +" DATEDIFF(SECOND, MIN(t.dateBill1), MIN(t.OPERATE_TIME)) / 60 AS '下发 - 拣货时间', " + +" DATEDIFF(SECOND, MIN(t.OPERATE_TIME), MIN(t.operator_Date)) / 60 AS '拣货 - 合单时间', " + +" DATEDIFF(SECOND, MIN(t.operator_Date), MIN(t.dateline)) / 60 AS '合单 - 交单时间', " + +" DATEDIFF(SECOND, MIN(t.OPERATE_TIME), MIN(t.ARRIVAL_TIME)) / 60 AS '拣货 - 清点时间', " + +" DATEDIFF(SECOND, MIN(t.ARRIVAL_TIME), MIN(t.operator_Date)) / 60 AS '清点 - 合单时间', " + +" DATEDIFF(SECOND, MIN(t.OPERATE_TIME), MIN(t.dateline)) / 60 AS '拣货 - 交单时间' " + +" FROM " + +" task t " + +" LEFT JOIN " + +" PICK_TICKET_DETAIL ptd ON ptd.id = t.PICK_TICKET_DETAIL_ID " + +" LEFT JOIN " + +" PICK_TICKET pt ON pt.id = ptd.PICK_TICKET_ID " + +" LEFT JOIN " + +" BILL_TYPE bt ON bt.id = pt.BILL_TYPE_ID " + +" LEFT JOIN " + +" LOCATION loc ON loc.id = t.SRC_LOC_ID " + +" LEFT JOIN " + +" [ZONE] z ON z.id = loc.ZONE_ID " + +" WHERE " + +" t.PLAN_QUANTITY > 0 " + +" AND t.PICK_TICKET_DETAIL_ID IS NOT NULL "); + sql.append(querySql); // 动态条件 + sql.append(" GROUP BY " + +" t.BILLCODE "); + return sql.toString(); + } @PostMapping("/queryList") public Result queryList(@RequestBody String json) { + querySql=""; /* 返回data设置*/ QueryPageUtil query =new QueryPageUtil(); JSONObject jsonObject= JSONUtil.parseObj(json); query.setPageSize((int)jsonObject.get("pageSize")); query.setPageNum((int)jsonObject.get("pageNum")); - String querySql="";//查询条件 JSONObject param= (JSONObject)jsonObject.get("param"); if (param.getJSONArray("出库类型").size()>0){ - querySql=querySql+" and 出库类型 in ("+ StringUtils.strInSql(JSONUtil.toList(param.getJSONArray("出库类型"), String.class))+")"; + querySql=querySql+" and pt.sourceType in ("+ StringUtils.strInSql(JSONUtil.toList(param.getJSONArray("出库类型"), String.class))+")"; } - if (param.getStr("任务号")!=null&¶m.getStr("任务号").length()>0){ - querySql=querySql+" and 任务号 like '%"+param.getStr("任务号")+"%'"; + if (param.getStr("工单号")!=null&¶m.getStr("工单号").length()>0){ + querySql=querySql+" and pt.code like '%"+param.getStr("工单号")+"%'"; } if (param.getStr("子任务号")!=null&¶m.getStr("子任务号").length()>0){ - querySql=querySql+" and 子任务号 like '%"+param.getStr("子任务号")+"%'"; + querySql=querySql+" and t.BILLCODE like '%"+param.getStr("子任务号")+"%'"; } if (param.getJSONArray("库区")!=null&¶m.getJSONArray("库区").size()>0){ - querySql=querySql+" and 库区 in ("+ StringUtils.strInSql(JSONUtil.toList(param.getJSONArray("库区"), String.class))+")"; + querySql=querySql+" and z.NAME in ("+ StringUtils.strInSql(JSONUtil.toList(param.getJSONArray("库区"), String.class))+")"; } if (param.getStr("创建日期")!=null&¶m.getJSONArray("创建日期").size()>0){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - querySql=querySql+" and 创建时间 >= '"+sdf.format(param.getJSONArray("创建日期").getDate(0))+"'"; - querySql=querySql+" and 创建时间 <= '"+sdf.format(param.getJSONArray("创建日期").getDate(1))+"'"; + querySql=querySql+" and pt.UPDATE_TIME >= '"+sdf.format(param.getJSONArray("创建日期").getDate(0))+"'"; + querySql=querySql+" and pt.UPDATE_TIME <= '"+sdf.format(param.getJSONArray("创建日期").getDate(1))+"'"; } /* 当前页数据*/ int pageNum = query.getPageNum();//当前页 int pageSize = query.getPageSize();//查询条数 String sqlFa = "select * from( " - + sql + + buildSql() + ") t where 1=1 " - + querySql ; + ; /* 总条数*/ - String sqlCount = "select count(t.id) as nums from (" + sqlFa+") t"; + String sqlCount = "select count(t.子任务号 ) as nums from (" + sqlFa+") t"; List counts = entityManager.createNativeQuery(sqlCount).getResultList(); /* 返回数据集合*/ List> maps; if (pageSize>100000){ maps = queryUtil.multiThreadedQuery(sqlFa, pageSize, pageNum); }else { - String sqlFy= sqlFa+" ORDER BY id " + String sqlFy= sqlFa+" ORDER BY 子任务号 " +" OFFSET "+ (pageNum-1) * pageSize +" ROWS " +" FETCH NEXT "+pageSize+" ROWS ONLY "; maps = jdbcTemplate.queryForList(sqlFy, new HashMap<>()); @@ -128,7 +149,7 @@ public class JianHuoXiaoLvController { @PostMapping("/inputPt") public Result inputPt(@RequestBody String json) { String sqlInput=" select 出库类型 as 'name' from ( " - +sql + +buildSql() +" ) t " +" WHERE 出库类型 is not null group by 出库类型 "; List ptList = entityManager.createNativeQuery(sqlInput).getResultList(); @@ -147,10 +168,10 @@ public class JianHuoXiaoLvController { Map map = new LinkedHashMap<>(); map.put("单据类型", company.get("单据类型")); map.put("出库类型", company.get("出库类型")); - map.put("任务号", company.get("任务号")); + map.put("工单号", company.get("工单号")); map.put("子任务号", company.get("子任务号")); map.put("库区", company.get("库区")); - map.put("拣货行", company.get("拣货行")); + map.put("拣货行数", company.get("拣货行数")); map.put("创建时间", company.get("创建时间")); map.put("生成合单任务时间", company.get("生成合单任务时间")); map.put("下发时间", company.get("下发时间")); @@ -179,10 +200,10 @@ class JhXl implements Serializable { /* 库区名称*/ private String 单据类型=""; private String 出库类型=""; - private String 任务号=""; + private String 工单号=""; private String 子任务号=""; private String 库区=""; - private Integer 拣货行=0; + private Integer 拣货行数=0; private Date 创建时间; private Date 生成合单任务时间; private Date 下发时间; diff --git a/wms/src/main/java/com/yc/wms/controller/RenXiaoController.java b/wms/src/main/java/com/yc/wms/controller/RenXiaoController.java index 23a2346..9c87d9c 100644 --- a/wms/src/main/java/com/yc/wms/controller/RenXiaoController.java +++ b/wms/src/main/java/com/yc/wms/controller/RenXiaoController.java @@ -42,6 +42,13 @@ public class RenXiaoController { query.setPageNum((int)jsonObject.get("pageNum")); JSONObject param= (JSONObject)jsonObject.get("param"); JSONArray jsonArray=param.getJSONArray("issued_Date"); + if (jsonArray.size()==0){ + Result result=Result.result(400,"请选择日期范围",Long.parseLong("0"), null); + + return result; + } + String operator=param.getStr("操作人"); + String describe=param.getStr("组别"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String startDate=""; String endDate=""; @@ -55,6 +62,14 @@ public class RenXiaoController { Date date = new Date(); endDate=sdf.format(date); } + String querySql="";//查询条件 + + if (operator!=null&&operator.length()>0){ + querySql=" and t.操作人 like '%"+operator+"%'"; + } + if (describe!=null&&describe.length()>0){ + querySql=" and t.组别 like '%"+describe+"%'"; + } /* 基础sql数据查询*/ String sql=" select Row_number() OVER(order by v.操作人 asc) as id,max(v.组别) '组别',max(v.账号) '账号',v.操作人,sum(v.整理 ) '整理',sum(v.拣货 ) as '拣货',sum(v.清点 ) as '清点',sum(v.合单 ) as '合单', " +" sum(v.交单 ) as '交单',sum(v.盘点) as '盘点',sum(v.入库) as '入库',sum(v.移库) as '移库' from ( " @@ -116,7 +131,6 @@ public class RenXiaoController { /* 当前页数据*/ int pageNum = query.getPageNum();//当前页 int pageSize = query.getPageSize();//条数 - String querySql="";//查询条件 String sqlFy = "select * from( " + sql diff --git a/wms/src/main/java/com/yc/wms/service/impl/JianhuojiemianImpl.java b/wms/src/main/java/com/yc/wms/service/impl/JianhuojiemianImpl.java index c5940bd..d20e0d6 100644 --- a/wms/src/main/java/com/yc/wms/service/impl/JianhuojiemianImpl.java +++ b/wms/src/main/java/com/yc/wms/service/impl/JianhuojiemianImpl.java @@ -109,7 +109,7 @@ public class JianhuojiemianImpl implements Jianhuojiemian { sql+=" and z.NAME in ("+sb.toString()+")";; } - //所在库位 + //目标容器 if(jianhuojiemian.lc2_code!=null){ if(!jianhuojiemian.lc2_code.trim().equals("")){ String[] str=jianhuojiemian.lc2_code.trim().split("\n"); @@ -192,7 +192,7 @@ public class JianhuojiemianImpl implements Jianhuojiemian { //容器码 if(jianhuojiemian.LP!=null){ if(!jianhuojiemian.LP.trim().equals("")){ - sql+=" and wd.CODE="+"'"+jianhuojiemian.LP.trim()+"'"; + sql+=" and st.LP="+"'"+jianhuojiemian.LP.trim()+"'"; } } @@ -298,7 +298,7 @@ public class JianhuojiemianImpl implements Jianhuojiemian { @Override public Result Kw(String w) { - String sql="select distinct CODE from LOCATION where CODE like "+"'%"+w+"%'"; + String sql="select TOP 20 CODE from LOCATION where CODE like "+"'%"+w+"%'"; List> list=jdbcTemplate.queryForList(sql,new HashMap<>()); return Result.success(list); } diff --git a/wms/src/main/java/com/yc/wms/service/impl/KucunrizhiImpl.java b/wms/src/main/java/com/yc/wms/service/impl/KucunrizhiImpl.java index 821d058..6e45e0a 100644 --- a/wms/src/main/java/com/yc/wms/service/impl/KucunrizhiImpl.java +++ b/wms/src/main/java/com/yc/wms/service/impl/KucunrizhiImpl.java @@ -91,23 +91,19 @@ public class KucunrizhiImpl implements Kucunrizhi { sql+=" and log.DESCRIPTION in ("+sb.toString()+")"; } } + //工厂 - if(kucunrizhi.PROP_C9!=null){ - if(!kucunrizhi.PROP_C9.trim().equals("")){ - String[] str=kucunrizhi.PROP_C9.trim().split("\n"); - StringBuffer sb = new StringBuffer(); - for (int i=0;i0){ + StringBuffer sb = new StringBuffer(); + for (int i = 0; i< kucunrizhi.PROP_C9.length; i++){ + if(kucunrizhi.PROP_C9.length-1==i){ + sb.append("'"+ kucunrizhi.PROP_C9[i]+"'"); + }else { + sb.append("'"+ kucunrizhi.PROP_C9[i]+"'"+","); } - sql+=" and ik.PROP_C9 in ("+sb.toString()+")"; } + sql+=" and ik.PROP_C9 in ("+sb.toString()+")";; } - //日志类型 if(kucunrizhi.LOG_TYPE!=null&& kucunrizhi.LOG_TYPE.length>0){ StringBuffer sb = new StringBuffer(); diff --git a/wms/src/main/java/com/yc/wms/service/impl/PandianmingxiImpl.java b/wms/src/main/java/com/yc/wms/service/impl/PandianmingxiImpl.java index 9a2ed9f..453ef2f 100644 --- a/wms/src/main/java/com/yc/wms/service/impl/PandianmingxiImpl.java +++ b/wms/src/main/java/com/yc/wms/service/impl/PandianmingxiImpl.java @@ -130,20 +130,17 @@ public class PandianmingxiImpl implements Pandianmingxi { } //工作站 - if(pandianming.targetArea!=null){ - if(!pandianming.targetArea.trim().equals("")){ - String[] str=pandianming.targetArea.trim().split("\n"); - StringBuffer sb = new StringBuffer(); - for (int i=0;i0){ - if(str.length-1==i){ - sb.append("'"+ str[i]+"'"); - }else { - sb.append("'"+ str[i]+"'"+","); - } + StringBuffer sb = new StringBuffer(); + for (int i = 0; i< pandianming.targetArea.length; i++){ + if(pandianming.targetArea.length-1==i){ + sb.append("'"+ pandianming.targetArea[i]+"'"); + }else { + sb.append("'"+ pandianming.targetArea[i]+"'"+","); } - sql+=" and cr.targetArea in ("+sb.toString()+")"; } + sql+=" and cr.targetArea in ("+sb.toString()+")";; } //盘点人员 diff --git a/wms/src/main/java/com/yc/wms/service/impl/XuliehaoqingdanImpl.java b/wms/src/main/java/com/yc/wms/service/impl/XuliehaoqingdanImpl.java index e0cba4c..f0050e7 100644 --- a/wms/src/main/java/com/yc/wms/service/impl/XuliehaoqingdanImpl.java +++ b/wms/src/main/java/com/yc/wms/service/impl/XuliehaoqingdanImpl.java @@ -32,7 +32,7 @@ public class XuliehaoqingdanImpl implements Xuliehaoqingdan { String sql="select Row_number() OVER(ORDER BY inv.id) as Row_Num, inv.id,lc.CODE lc_code,i.CODE i_code,inv.BAR_CODE ,i.NAME i_name,i.UNIT ,\n" + "inv.STATUS ,inv.QUANTITY ,inv.QUEUED_QUANTITY ,\n" + "ik.PROP_C1 ,ik.PROP_C2 ,ik.PROP_C3 ,ik.PROP_C5 ,ik.PROP_C9 ,ik.PROP_D2 ,\n" + - "z.NAME z_name,inv.STORAGE_DATE ,case when inv.coun_Plan is null then '否' else '是' end as sfpd\n" + + "z.NAME z_name,CONVERT(VARCHAR(10), inv.STORAGE_DATE, 23) AS STORAGE_DATE ,case when inv.coun_Plan is null then '否' else '是' end as sfpd\n" + " from INVENTORY inv\n" + " left join ITEM_KEY ik on ik.id=inv.ITEM_KEY_ID\n" + " left join item i on i.id=ik.ITEM_ID\n" + @@ -91,7 +91,7 @@ public class XuliehaoqingdanImpl implements Xuliehaoqingdan { sb.append("'"+ str[i]+"'"+","); } } - sql+=" and i_code in ("+sb.toString()+")"; + sql+=" and i.CODE in ("+sb.toString()+")"; } } @@ -130,7 +130,7 @@ public class XuliehaoqingdanImpl implements Xuliehaoqingdan { sb.append("'"+ xuliehao.STATUS[i]+"'"+","); } } - sql+=" and z.NAME in ("+sb.toString()+")";; + sql+=" and inv.STATUS in ("+sb.toString()+")";; } //库区 @@ -151,9 +151,9 @@ public class XuliehaoqingdanImpl implements Xuliehaoqingdan { StringBuffer sb = new StringBuffer(); for (int i = 0; i< xuliehao.PROP_C2.length; i++){ if(xuliehao.PROP_C2.length-1==i){ - sb.append("'"+ xuliehao.z_name[i]+"'"); + sb.append("'"+ xuliehao.PROP_C2[i]+"'"); }else { - sb.append("'"+ xuliehao.z_name[i]+"'"+","); + sb.append("'"+ xuliehao.PROP_C2[i]+"'"+","); } } sql+=" and ik.PROP_C2 in ("+sb.toString()+")";; @@ -171,9 +171,9 @@ public class XuliehaoqingdanImpl implements Xuliehaoqingdan { StringBuffer sb = new StringBuffer(); for (int i = 0; i< xuliehao.PROP_C9.length; i++){ if(xuliehao.PROP_C9.length-1==i){ - sb.append("'"+ xuliehao.z_name[i]+"'"); + sb.append("'"+ xuliehao.PROP_C9[i]+"'"); }else { - sb.append("'"+ xuliehao.z_name[i]+"'"+","); + sb.append("'"+ xuliehao.PROP_C9[i]+"'"+","); } } sql+=" and ik.PROP_C9 in ("+sb.toString()+")";; @@ -198,7 +198,7 @@ public class XuliehaoqingdanImpl implements Xuliehaoqingdan { //是否盘点 if(xuliehao.sfpd!=null&& !xuliehao.sfpd.equals("")){ - if (Integer.parseInt(xuliehao.sfpd)==1) { + if (Integer.parseInt(xuliehao.sfpd)==0) { sql+=" and inv.coun_Plan is null"; }else { sql+=" and inv.coun_Plan is not null"; @@ -208,7 +208,7 @@ public class XuliehaoqingdanImpl implements Xuliehaoqingdan { //是否批次号管理 if(xuliehao.sfpc!=null&& !xuliehao.sfpc.equals("")){ - if (Integer.parseInt(xuliehao.sfpc)==1) { + if (Integer.parseInt(xuliehao.sfpc)==0) { sql+=" and ik.PROP_C1 is null"; }else { sql+=" and ik.PROP_C1 is not null"; diff --git a/wms/src/main/java/com/yc/wms/utils/JdbcQueryExample.java b/wms/src/main/java/com/yc/wms/utils/JdbcQueryExample.java index ae72c86..2368df2 100644 --- a/wms/src/main/java/com/yc/wms/utils/JdbcQueryExample.java +++ b/wms/src/main/java/com/yc/wms/utils/JdbcQueryExample.java @@ -21,7 +21,9 @@ public class JdbcQueryExample { public List> sqlQuery(String sql, Object... params) { return jdbcTemplate.queryForList(sql, params); } - + public List> sqlQuery(String sql) { + return jdbcTemplate.queryForList(sql); + } public int executeUpdate(String sql, Object... params) { return jdbcTemplate.update(sql, params); }