From d39fe395e7fb6444399e0862296f76e60c1d8d9c Mon Sep 17 00:00:00 2001 From: liuxy Date: Mon, 10 Apr 2023 16:10:06 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=98=E7=82=B9=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/st/instor/rest/CheckController.java | 7 ++ .../wms/st/instor/service/CheckService.java | 5 + .../instor/service/impl/CheckServiceImpl.java | 52 ++++++++- .../nl/wms/st/instor/wql/QST_IVT_CHECK.wql | 7 +- .../views/wms/st/inStor/check/AddDialog.vue | 71 +++++++++++- .../wms/st/inStor/check/RepairDialog.vue | 107 ++++++++++++++++++ .../src/views/wms/st/inStor/check/check.js | 9 +- 7 files changed, 250 insertions(+), 8 deletions(-) create mode 100644 lms/nladmin-ui/src/views/wms/st/inStor/check/RepairDialog.vue diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/CheckController.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/CheckController.java index f1151077c..39b0872de 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/CheckController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/CheckController.java @@ -160,4 +160,11 @@ public class CheckController { checkService.confirmBtn(whereJson); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } + @PostMapping("/repairSubmit") + @Log("补录明细") + @ApiOperation("补录明细") + public ResponseEntity repairSubmit(@RequestBody JSONObject whereJson) { + checkService.repairSubmit(whereJson); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/CheckService.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/CheckService.java index 0dbb46722..4ba015c34 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/CheckService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/CheckService.java @@ -124,4 +124,9 @@ public interface CheckService { * 强制确认 */ void confirmBtn(JSONObject whereJson); + + /** + * 补录明细 + */ + void repairSubmit(JSONObject whereJson); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/CheckServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/CheckServiceImpl.java index a43758df0..2b6e1065d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/CheckServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/CheckServiceImpl.java @@ -797,13 +797,23 @@ public class CheckServiceImpl implements CheckService { public void allInsert(JSONObject jsonObject) { WQLObject mstTab = WQLObject.getWQLObject("ST_IVT_CheckMst"); // 盘点单主表 WQLObject dtlTab = WQLObject.getWQLObject("ST_IVT_CheckDtl"); // 盘点单明细表 + WQLObject storTab = WQLObject.getWQLObject("st_ivt_bsrealstorattr"); // 仓库表 String currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); Long deptId = SecurityUtils.getDeptId(); + JSONObject jsonStor = storTab.query("stor_id = '" + jsonObject.getString("stor_id") + "'").uniqueResult(0); + // 查找库内所有在库木箱 - JSONArray dtlArr = WQL.getWO("QST_IVT_CHECK").addParam("flag", "11").addParam("stor_id", jsonObject.getString("stor_id")).process().getResultJSONArray(0); + JSONArray dtlArr = WQL.getWO("QST_IVT_CHECK").addParam("flag", "11") + .addParam("stor_id", jsonObject.getString("stor_id")) + .addParam("sect_id", jsonObject.getString("sect_id")) + .process().getResultJSONArray(0); + + if (dtlArr.size() == 0) { + throw new BadRequestException("此库区没有要盘点的木箱"); + } // 插入主表 JSONObject jsonMst = new JSONObject(); @@ -811,8 +821,8 @@ public class CheckServiceImpl implements CheckService { jsonMst.put("check_code", CodeUtil.getNewCode("PD_CODE")); jsonMst.put("buss_type", jsonObject.getString("check_type")); jsonMst.put("check_type", jsonObject.getString("check_type")); - jsonMst.put("stor_id", jsonObject.getLongValue("stor_id")); - jsonMst.put("stor_name", jsonObject.getString("stor_name")); + jsonMst.put("stor_id", jsonStor.getLongValue("stor_id")); + jsonMst.put("stor_name", jsonStor.getString("stor_name")); jsonMst.put("dtl_num", dtlArr.size()); jsonMst.put("create_mode", "01"); jsonMst.put("is_nok", "0"); @@ -859,4 +869,40 @@ public class CheckServiceImpl implements CheckService { mstTab.update(jsonMst); } + + @Override + @Transactional(rollbackFor = Exception.class) + public void repairSubmit(JSONObject whereJson) { + WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase"); + WQLObject mstTab = WQLObject.getWQLObject("st_ivt_checkmst"); + WQLObject dtlTab = WQLObject.getWQLObject("st_ivt_checkdtl"); + + JSONObject jsonMst = mstTab.query("check_code = '" + whereJson.getString("check_code") + "'").uniqueResult(0); + + JSONObject jsonMater = materTab.query("material_code = '" + whereJson.getString("material_code") + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(jsonMater)) throw new BadRequestException("此物料信息不存在!"); + + // 新增明细 + JSONObject jsonDtl = new JSONObject(); + jsonDtl.put("checkdtl_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonDtl.put("check_id", jsonMst.getLongValue("check_id")); + jsonDtl.put("check_code", jsonMst.getString("check_code")); + jsonDtl.put("seq_no", jsonMst.getIntValue("dtl_num") + 1); + jsonDtl.put("sect_id", 111111); + jsonDtl.put("sect_name", "补录库区"); + jsonDtl.put("struct_id", 111111); + jsonDtl.put("struct_name", "补录货位"); + jsonDtl.put("storagevehicle_code", whereJson.getString("storagevehicle_code")); + jsonDtl.put("material_id", jsonMater.getLongValue("material_id")); + jsonDtl.put("qty_unit_id", jsonMater.getLongValue("base_unit_id")); + jsonDtl.put("qty_unit_name", "KG"); + jsonDtl.put("status", "1"); + jsonDtl.put("base_qty", whereJson.getDoubleValue("base_qty")); + jsonDtl.put("remark", whereJson.getString("remark")); + dtlTab.insert(jsonDtl); + + // 更新主表 + jsonMst.put("dtl_num", jsonMst.getIntValue("dtl_num") + 1); + mstTab.update(jsonMst); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_CHECK.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_CHECK.wql index 3607fac7d..3e28240d6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_CHECK.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_CHECK.wql @@ -500,14 +500,17 @@ LEFT JOIN st_ivt_structattr attr ON ivt.struct_id = attr.struct_id LEFT JOIN md_me_materialbase mater ON ivt.material_id = mater.material_id WHERE - attr.sect_code in ('XN01','XN11') - AND IFNULL(attr.storagevehicle_code,'') <> '' + IFNULL(attr.storagevehicle_code,'') <> '' AND attr.lock_type = '1' OPTION 输入.stor_id <> "" attr.stor_id = 输入.stor_id ENDOPTION + OPTION 输入.sect_id <> "" + attr.sect_id = 输入.sect_id + ENDOPTION + group by attr.struct_code ENDSELECT diff --git a/lms/nladmin-ui/src/views/wms/st/inStor/check/AddDialog.vue b/lms/nladmin-ui/src/views/wms/st/inStor/check/AddDialog.vue index de655204d..9c3c9f3ec 100644 --- a/lms/nladmin-ui/src/views/wms/st/inStor/check/AddDialog.vue +++ b/lms/nladmin-ui/src/views/wms/st/inStor/check/AddDialog.vue @@ -9,9 +9,22 @@ @close="close" > - + + + + + + + + 一键保存 @@ -141,6 +154,17 @@ > 导出 + + 补录信息 + @@ -179,6 +203,7 @@ + @@ -188,6 +213,7 @@ import AddDtl from '@/views/wms/st/inStor/check/AddDtl' import check from '@/views/wms/st/inStor/check/check' import crudUserStor from '@/views/wms/basedata/st/userStor/userStor' import DtlViewDialog from '@/views/wms/st/inStor/check/DtlViewDialog' +import RepairDialog from '@/views/wms/st/inStor/check/RepairDialog' import { download } from '@/api/data' import { downloadFile } from '@/utils' @@ -205,7 +231,7 @@ const defaultForm = { } export default { name: 'AddDialog', - components: { AddDtl, DtlViewDialog }, + components: { AddDtl, DtlViewDialog, RepairDialog }, mixins: [crud(), form(defaultForm)], props: { dialogShow: { @@ -223,11 +249,17 @@ export default { showDtlLoading: false, dtlShow: false, flagnow: false, + repairShow: false, + check_code: '', paramType: '', storId: null, nowrow: {}, nowindex: '', storlist: [], + sectProp: null, + stor_id: '', + sect_id: '', + sects: [], rules: { stor_id: [ { required: true, message: '仓库不能为空', trigger: 'blur' } @@ -250,6 +282,9 @@ export default { crudUserStor.getUserStor().then(res => { this.storlist = res }) + crudUserStor.getSect({ 'stor_id': this.storId }).then(res => { + this.sects = res.content + }) }, close() { this.$emit('AddChanged') @@ -285,6 +320,11 @@ export default { this.showDtlLoading = false }) }, + queryDtlView() { + check.getOutBillDtl({ 'check_id': this.form.check_id }).then(res => { + this.form.tableData = res + }) + }, bill_statusFormat(row) { return this.dict.label.check_dtl_status[row.status] }, @@ -360,7 +400,14 @@ export default { this.crud.notify('请选择仓库!', CRUD.NOTIFICATION_TYPE.INFO) return } + if (this.sect_id === '' && this.stor_id === '') { + this.crud.notify('请选择库区或者仓库!', CRUD.NOTIFICATION_TYPE.INFO) + return + } this.showLoading = true + this.form.sect_id = this.sect_id + this.form.stor_id = this.stor_id + debugger check.allInsert(this.form).then(res => { this.crud.cancelCU() this.showLoading = false @@ -378,6 +425,26 @@ export default { crud.downloadLoading = false }) } + }, + sectQueryChange(val) { + this.sectProp = val + if (val.length === 1) { + this.stor_id = val[0] + this.sect_id = '' + } + if (val.length === 0) { + this.sect_id = '' + this.stor_id = '' + } + if (val.length === 2) { + this.stor_id = val[0] + this.sect_id = val[1] + } + this.form.stor_id = this.stor_id + }, + repairDialog() { + this.check_code = this.form.check_code + this.repairShow = true } } } diff --git a/lms/nladmin-ui/src/views/wms/st/inStor/check/RepairDialog.vue b/lms/nladmin-ui/src/views/wms/st/inStor/check/RepairDialog.vue new file mode 100644 index 000000000..5579b0615 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/st/inStor/check/RepairDialog.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/lms/nladmin-ui/src/views/wms/st/inStor/check/check.js b/lms/nladmin-ui/src/views/wms/st/inStor/check/check.js index 4c27bf6d3..94ec2c648 100644 --- a/lms/nladmin-ui/src/views/wms/st/inStor/check/check.js +++ b/lms/nladmin-ui/src/views/wms/st/inStor/check/check.js @@ -122,4 +122,11 @@ export function confirmBtn(data) { data }) } -export default { add, edit, del, getOutBillDtl, getStructIvt, getOutBillDtl2, confirm, getInvTypes, saveCheck, process0, getOutBillDis, process1, disposeConfirm, allInsert, confirmBtn } +export function repairSubmit(data) { + return request({ + url: '/api/check/repairSubmit', + method: 'post', + data + }) +} +export default { add, edit, del, getOutBillDtl, getStructIvt, getOutBillDtl2, confirm, getInvTypes, saveCheck, process0, getOutBillDis, process1, disposeConfirm, allInsert, confirmBtn, repairSubmit }