From d99d47b60dbe43071f33b4d65934f220958dc465 Mon Sep 17 00:00:00 2001 From: "ZHOUZ\\Noble'lift" <1014987728@qq.com> Date: Tue, 29 Nov 2022 13:17:16 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basedata/st/rest/UserStorController.java | 6 +- .../basedata/st/service/UserStorService.java | 2 +- .../st/service/impl/StructivtServiceImpl.java | 4 +- .../st/service/impl/UserStorServiceImpl.java | 21 +- .../nl/wms/basedata/st/wql/QST_STOR_ATTR.wql | 9 +- .../wms/basedata/st/wql/QST_STRUCTIVT001.wql | 6 +- .../java/org/nl/wms/basedata/st/wql/stivt.xls | Bin 305152 -> 340992 bytes .../sap/service/impl/SapToLmsServiceImpl.java | 3 +- .../bi/service/dto/SubpackagerelationDto.java | 2 +- .../rest/InAndOutReturnlController.java | 2 +- .../service/InAndOutReturnService.java | 2 +- .../impl/InAndOutRetrunServiceImpl.java | 24 ++- .../src/views/wms/basedata/st/ivt/index.vue | 39 ++-- .../views/wms/basedata/st/userStor/index.vue | 186 ++++-------------- lms/nladmin-ui/src/views/wms/pdm/bi/index.vue | 34 ++-- .../wms/statistics/ioStorQuery/DivDialog.vue | 3 - .../wms/statistics/ioStorQuery/index.vue | 8 +- 17 files changed, 143 insertions(+), 208 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/UserStorController.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/UserStorController.java index 31a102645..e3a1e9e1d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/UserStorController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/UserStorController.java @@ -34,14 +34,14 @@ public class UserStorController { @Log("查询所有仓库") @ApiOperation("查询所有仓库") public ResponseEntity queryStor(@RequestBody JSONObject whereJson) { - return new ResponseEntity<>(userStorService.queryStor(whereJson),HttpStatus.NO_CONTENT); + return new ResponseEntity<>(userStorService.queryStor(whereJson),HttpStatus.OK); } @PostMapping("/queryUserStor") @Log("查询用户对应仓库") @ApiOperation("查询用户对应仓库") public ResponseEntity queryUserStor(@RequestBody JSONObject whereJson) { - return new ResponseEntity<>(userStorService.queryUserStor(whereJson),HttpStatus.NO_CONTENT); + return new ResponseEntity<>(userStorService.queryUserStor(whereJson),HttpStatus.OK); } @PostMapping("/save") @@ -49,7 +49,7 @@ public class UserStorController { @ApiOperation("保存用户仓库信息") public ResponseEntity save(@RequestBody JSONObject whereJson) { userStorService.save(whereJson); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); + return new ResponseEntity<>(HttpStatus.OK); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/UserStorService.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/UserStorService.java index 6bccb9c3d..33ed573bc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/UserStorService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/UserStorService.java @@ -32,6 +32,6 @@ public interface UserStorService { * 保存 * @param whereJson / */ - JSONArray save(JSONObject whereJson); + void save(JSONObject whereJson); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructivtServiceImpl.java index 298f2f872..c676ee25d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructivtServiceImpl.java @@ -42,11 +42,11 @@ public class StructivtServiceImpl implements StructivtService { public Map queryAll(Map whereJson, Pageable page){ String material = MapUtil.getStr(whereJson, "material"); String struct = MapUtil.getStr(whereJson, "struct"); - String region_id = MapUtil.getStr(whereJson, "region_id"); + String stor_id = MapUtil.getStr(whereJson, "stor_id"); String pcsn = MapUtil.getStr(whereJson, "pcsn"); JSONObject map = new JSONObject(); map.put("flag", "1"); - map.put("region_id", region_id); + map.put("stor_id", stor_id); if (StrUtil.isNotEmpty(material)) { map.put("material", "%" + material + "%"); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/UserStorServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/UserStorServiceImpl.java index 882122369..c05471e6f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/UserStorServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/UserStorServiceImpl.java @@ -54,11 +54,26 @@ public class UserStorServiceImpl implements UserStorService { @Override public JSONArray queryUserStor(JSONObject whereJson) { - return null; + String user_id = whereJson.getString("user_id"); + JSONArray rows = WQLObject.getWQLObject("st_ivt_userstor").query("user_id = '" + user_id + "'").getResultJSONArray(0); + return rows; } @Override - public JSONArray save(JSONObject whereJson) { - return null; + public void save(JSONObject whereJson) { + JSONObject jo = whereJson.getJSONObject("jo"); + JSONArray rows = whereJson.getJSONArray("rows"); + + String user_id = jo.getString("user_id"); + + WQLObject.getWQLObject("st_ivt_userstor").delete("user_id ='" + user_id + "'"); + for (int i = 0; i < rows.size(); i++) { + JSONObject row = rows.getJSONObject(i); + String stor_id = row.getString("stor_id"); + JSONObject user_stor = new JSONObject(); + user_stor.put("stor_id", stor_id); + user_stor.put("user_id", user_id); + WQLObject.getWQLObject("st_ivt_userstor").insert(user_stor); + } } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STOR_ATTR.wql b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STOR_ATTR.wql index 17da652a9..e4930b25a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STOR_ATTR.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STOR_ATTR.wql @@ -104,17 +104,20 @@ IF 输入.flag = "3" PAGEQUERY SELECT - * + sys_user.*, + dept.name FROM - sys_user + sys_user sys_user + LEFT JOIN sys_dept dept ON dept.dept_id = sys_user.dept_id WHERE - enabled = '1' + sys_user.enabled = '1' OPTION 输入.blurry <> "" ( username like 输入.blurry OR nick_name like 输入.blurry ) + ENDOPTION ENDSELECT ENDPAGEQUERY ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STRUCTIVT001.wql b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STRUCTIVT001.wql index 063d21f62..7f0bd4cb4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STRUCTIVT001.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STRUCTIVT001.wql @@ -16,7 +16,7 @@ 输入.flag TYPEAS s_string 输入.struct TYPEAS s_string 输入.material TYPEAS s_string - 输入.region_id TYPEAS f_string + 输入.stor_id TYPEAS s_string 输入.pcsn TYPEAS s_string [临时表] @@ -82,8 +82,8 @@ ivt.pcsn like 输入.pcsn ENDOPTION - OPTION 输入.region_id <> "" - ivt.region_id = 输入.region_id + OPTION 输入.stor_id <> "" + attr.stor_id = 输入.stor_id ENDOPTION ENDSELECT ENDPAGEQUERY diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/stivt.xls b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/stivt.xls index 001c1102cea9739cb8dddfb9cc7c1f1decdfbefc..88c2a19ef182718266ab2ac7ddadccbb0c622f5d 100644 GIT binary patch delta 57836 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 aksV>iz#`C{w2$?gF8mACVBWW%?fDy@UX&pK delta 27801 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 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/SapToLmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/SapToLmsServiceImpl.java index bfe0da3c6..4d6549782 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/SapToLmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/SapToLmsServiceImpl.java @@ -100,6 +100,7 @@ public class SapToLmsServiceImpl implements SapToLmsService { jsonMst.put("receiptphone", json.getString("TEL_NUMBER")); // 联系电话 jsonMst.put("contractno", json.getString("BSTNK")); // 合同号 jsonMst.put("cust_code", json.getString("KUNNR")); // 客户 + jsonMst.put("remark",json.getString("LGORT"));//库位 // 明细 JSONObject jsonMater = materTab.query("material_code = '" + json.getString("MATNR") + "'").uniqueResult(0); @@ -117,6 +118,7 @@ public class SapToLmsServiceImpl implements SapToLmsService { tableData.add(jsonDtl); } if (StrUtil.equals(lfart, "ZLR")) { + jsonMst.put("remark",json.getString("LGORT"));//库位 HashMap map = new HashMap(); //更新包装关系 String sap_pcsn = json.getString("CHARG"); @@ -185,7 +187,6 @@ public class SapToLmsServiceImpl implements SapToLmsService { map.put("net_weight", sub_jo.getString("net_weight")); map.put("package_box_sn", sub_jo.getString("package_box_sn")); map.put("product_name", sub_jo.getString("product_name")); - map.put("product_name", sub_jo.getString("product_name")); map.put("vbeln", json.getString("VBELN")); map.put("posnr", json.getString("POSNR")); box_rows.add(map); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/bi/service/dto/SubpackagerelationDto.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/bi/service/dto/SubpackagerelationDto.java index 4de91e752..82b6e2c65 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/bi/service/dto/SubpackagerelationDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/bi/service/dto/SubpackagerelationDto.java @@ -29,7 +29,7 @@ public class SubpackagerelationDto implements Serializable { private BigDecimal box_weight; /** 保质期 */ - private BigDecimal quality_guaran_period; + private String quality_guaran_period; /** 销售订单及行号 */ private String sale_order_name; diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/rest/InAndOutReturnlController.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/rest/InAndOutReturnlController.java index 3927cda0c..9d89f46b9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/rest/InAndOutReturnlController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/rest/InAndOutReturnlController.java @@ -57,7 +57,7 @@ public class InAndOutReturnlController { @PostMapping("/disupload") @Log("不回传") @ApiOperation("不回传") - public ResponseEntity disupload(@RequestBody Map whereJson) { + public ResponseEntity disupload(@RequestBody JSONObject whereJson) { inAndOutReturnService.disupload(whereJson); return new ResponseEntity<>(HttpStatus.OK); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/InAndOutReturnService.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/InAndOutReturnService.java index 36c138445..11f601249 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/InAndOutReturnService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/InAndOutReturnService.java @@ -22,6 +22,6 @@ public interface InAndOutReturnService { void uploadSAP(JSONObject whereJson); - void disupload(Map whereJson); + void disupload(JSONObject whereJson); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java index f15c9e491..3c02d93f2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java @@ -346,7 +346,29 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { @Transactional(rollbackFor = Exception.class) @Override - public void disupload(Map whereJson) { + public void disupload(JSONObject whereJson) { + //出库分配表 + WQLObject wo_dis = WQLObject.getWQLObject("ST_IVT_IOStorInvDis"); + //出库明细表 + WQLObject wo_dtl = WQLObject.getWQLObject("ST_IVT_IOStorInvDtl"); + //出库主表 + WQLObject wo_mst = WQLObject.getWQLObject("ST_IVT_IOStorInv"); + // 物料表 + WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase"); + // 库区表 + WQLObject sectTab = WQLObject.getWQLObject("st_ivt_sectattr"); + // 子卷包装关系表 + WQLObject subTab = WQLObject.getWQLObject("pdm_bi_subpackagerelation"); + + JSONArray rows = whereJson.getJSONArray("rows"); + + for (int i = 0; i < rows.size(); i++) { + JSONObject jo_mst = rows.getJSONObject(i); + jo_mst.put("is_upload", "1"); + jo_mst.put("upload_optid", SecurityUtils.getCurrentUserId()); + jo_mst.put("upload_time", DateUtil.now()); + WQLObject.getWQLObject("ST_IVT_IOStorInv").update(jo_mst); + } } @Override diff --git a/lms/nladmin-ui/src/views/wms/basedata/st/ivt/index.vue b/lms/nladmin-ui/src/views/wms/basedata/st/ivt/index.vue index 24af94c19..414286d76 100644 --- a/lms/nladmin-ui/src/views/wms/basedata/st/ivt/index.vue +++ b/lms/nladmin-ui/src/views/wms/basedata/st/ivt/index.vue @@ -11,6 +11,22 @@ label-width="90px" label-suffix=":" > + + + + + - - - - - @@ -99,6 +99,7 @@ import crudOperation from '@crud/CRUD.operation' import udOperation from '@crud/UD.operation' import pagination from '@crud/Pagination' import crudPoint from '@/views/wms/sch/point/point' +import crudStorattr from '@/views/wms/basedata/st/stor/storattr' const defaultForm = { stockrecord_id: null, cascader: null, struct_id: null, struct_code: null, struct_name: null, workprocedure_id: null, material_id: null, material_code: null, quality_scode: null, pcsn: null, canuse_qty: null, frozen_qty: null, ivt_qty: null, warehousing_qty: null, qty_unit_id: null, instorage_time: null, sale_id: null } export default { @@ -119,7 +120,7 @@ export default { }, data() { return { - reginoList: [], + storlist: [], permission: { }, rules: { @@ -127,8 +128,8 @@ export default { } }, created() { - crudPoint.getRegion().then(res => { - this.reginoList = res + crudStorattr.getStor({ 'is_productstore': '1' }).then(res => { + this.storlist = res.content }) }, methods: { diff --git a/lms/nladmin-ui/src/views/wms/basedata/st/userStor/index.vue b/lms/nladmin-ui/src/views/wms/basedata/st/userStor/index.vue index 53c92713e..c5ea879cf 100644 --- a/lms/nladmin-ui/src/views/wms/basedata/st/userStor/index.vue +++ b/lms/nladmin-ui/src/views/wms/basedata/st/userStor/index.vue @@ -13,58 +13,14 @@ class="filter-item" @keyup.enter.native="crud.toQuery" /> - + - + - - - - - - - - - - - - - - - - - - - - - - - +
角色列表 @@ -78,42 +34,25 @@ @selection-change="crud.selectionChangeHandler" @current-change="handleCurrentChange" > - - - - - - + + + + - + - +
- 菜单分配 + 仓库选择 - - - - - - - + + + @@ -177,44 +104,21 @@ export default { name: 'UserStor', components: { Treeselect, pagination, crudOperation, rrOperation, udOperation, DateRangePicker }, cruds() { - return CRUD({ title: '角色', url: 'api/userStor', crudMethod: { ...crudUserStor }}) + return CRUD({ + title: '角色', + url: 'api/userStor', + crudMethod: { ...crudUserStor }, + optShow: { add: false, reset: false, edit: false, del: false } + }) }, mixins: [presenter(), header(), form(defaultForm), crud()], data() { return { - defaultProps: { children: 'children', label: 'label', isLeaf: 'leaf' }, - dateScopes: ['全部', '本级', '自定义'], level: 3, + level: 3, currentId: 0, menuLoading: false, showButton: false, menus: [], menuIds: [], depts: [], deptDatas: [], // 多选时使用 - tableData: [{ - date: '2016-05-03', - name: '王小虎', - address: '上海市普陀区金沙江路 1518 弄' - }, { - date: '2016-05-02', - name: '王小虎', - address: '上海市普陀区金沙江路 1518 弄' - }, { - date: '2016-05-04', - name: '王小虎', - address: '上海市普陀区金沙江路 1518 弄' - }, { - date: '2016-05-01', - name: '王小虎', - address: '上海市普陀区金沙江路 1518 弄' - }, { - date: '2016-05-08', - name: '王小虎', - address: '上海市普陀区金沙江路 1518 弄' - }, { - date: '2016-05-06', - name: '王小虎', - address: '上海市普陀区金沙江路 1518 弄' - }, { - date: '2016-05-07', - name: '王小虎', - address: '上海市普陀区金沙江路 1518 弄' - }], + tableData: [], + currentRow: null, permission: { add: ['admin', 'roles:add'], edit: ['admin', 'roles:edit'], @@ -231,8 +135,8 @@ export default { } }, created() { - crudRoles.getLevel().then(data => { - this.level = data.level + crudUserStor.queryStor({}).then(res => { + this.tableData = res }) }, methods: { @@ -284,17 +188,18 @@ export default { // 触发单选 handleCurrentChange(val) { if (val) { - const _this = this - // 清空菜单的选中 - this.$refs.menu.setCheckedKeys([]) - // 保存当前的角色id - this.currentId = val.id - // 初始化默认选中的key - this.menuIds = [] - val.menus.forEach(function(data) { - _this.menuIds.push(data.id) - }) this.showButton = true + this.$refs.multipleTable.clearSelection() + this.currentRow = val + crudUserStor.queryUserStor(val).then(res => { + res.forEach(row => { + this.tableData.forEach(selected => { + if (selected.stor_id === row.stor_id) { + this.$refs.multipleTable.toggleRowSelection(selected, true) + } + }) + }) + }) } }, menuChange(menu) { @@ -321,20 +226,11 @@ export default { }, // 保存菜单 saveMenu() { - this.menuLoading = true - const role = { id: this.currentId, menus: [] } - // 得到已选中的 key 值 - this.menuIds.forEach(function(id) { - const menu = { id: id } - role.menus.push(menu) - }) - crudRoles.editMenu(role).then(() => { + const row = {} + row.jo = this.currentRow + row.rows = this.$refs.multipleTable.selection + crudUserStor.save(row).then(res => { this.crud.notify('保存成功', CRUD.NOTIFICATION_TYPE.SUCCESS) - this.menuLoading = false - this.update() - }).catch(err => { - this.menuLoading = false - console.log(err.response.data.message) }) }, // 改变数据 diff --git a/lms/nladmin-ui/src/views/wms/pdm/bi/index.vue b/lms/nladmin-ui/src/views/wms/pdm/bi/index.vue index 45a9d76d6..95158ba31 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/bi/index.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/bi/index.vue @@ -355,9 +355,21 @@ - - + + + + + + + + + + + + + +