From 34a6c037202c40770de6607ea126226857e4746f Mon Sep 17 00:00:00 2001 From: zhaoyf <1783123481@qq.com> Date: Tue, 16 Jun 2026 17:16:02 +0800 Subject: [PATCH 1/2] =?UTF-8?q?add:PDA=E9=85=8D=E7=9B=98=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/mapper/MdPbGroupplateMapper.xml | 3 +- .../impl/ProductGroupServiceImpl.java | 1 + pda/pda/src/i18n/index.js | 66 ++- pda/pda/src/router/index.js | 6 + pda/pda/src/views/Home.vue | 6 +- pda/pda/src/views/ProductGroup.vue | 408 ++++++++++++++++++ 6 files changed, 482 insertions(+), 8 deletions(-) create mode 100644 pda/pda/src/views/ProductGroup.vue diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/MdPbGroupplateMapper.xml b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/MdPbGroupplateMapper.xml index a520706..3613ba6 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/MdPbGroupplateMapper.xml +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/MdPbGroupplateMapper.xml @@ -96,13 +96,14 @@ INSERT INTO md_pb_groupplate( - group_id,storagevehicle_code,material_id,pcsn,qty,qty_unit_id,qty_unit_name,ext_code,load_port,create_id,create_name,create_time + group_id,storagevehicle_code,material_id,material_code,pcsn,qty,qty_unit_id,qty_unit_name,ext_code,load_port,create_id,create_name,create_time ) values ( #{item.group_id}, #{item.storagevehicle_code}, #{item.material_id}, + #{item.material_code}, #{item.pcsn}, #{item.qty}, #{item.qty_unit_id}, diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/welding_manage/service/product_group/impl/ProductGroupServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/welding_manage/service/product_group/impl/ProductGroupServiceImpl.java index 744019f..16bf61c 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/welding_manage/service/product_group/impl/ProductGroupServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/welding_manage/service/product_group/impl/ProductGroupServiceImpl.java @@ -58,6 +58,7 @@ public class ProductGroupServiceImpl implements IProductGroupService { json.put("load_port", dto.getLoadPort()); json.put("storagevehicle_code", dto.getPalletCode()); json.put("material_id", bomData.getMaterialCode()); + json.put("material_code", bomData.getMaterialCode()); json.put("pcsn", ""); json.put("qty_unit_id", bomData.getUnit()); json.put("qty_unit_name", bomData.getUnit()); diff --git a/pda/pda/src/i18n/index.js b/pda/pda/src/i18n/index.js index 0d57933..da610ed 100644 --- a/pda/pda/src/i18n/index.js +++ b/pda/pda/src/i18n/index.js @@ -26,7 +26,8 @@ const zh = { '平库库存查询', '库位绑定/解绑', '平库调拨出库', - '线边领料出库' + '线边领料出库', + '配盘出库', // '空托上架/下架/注册/呼叫', // 'AGV配送', // '人工盘点', @@ -148,6 +149,35 @@ const zh = { complete: '完成', completeSuccess: '操作成功', }, + productGroup: { + title: '配盘出库', + workSect: '工作区', + workSectPlaceholder: '请选择工作区', + workSectRequired: '请选择工作区', + palletCode: '托盘码', + palletCodePlaceholder: '请扫描或输入托盘码', + palletCodeRequired: '请输入托盘码', + workOrder: '工单', + workOrderPlaceholder: '请选择工单', + workOrderRequired: '请选择工单', + loadPort: '上料口', + loadPortPlaceholder: '请选择上料口', + loadPortRequired: '请选择上料口', + total: '共{0}条', + noData: '暂无物料', + noOrder: '暂无工单', + noPort: '请先选择工单', + materialCode: '物料编码', + materialName: '物料名称', + bomQty: '需求数量', + useBomQty: '已用数量', + planQty: '待配数量', + inputQty: '配盘数量', + inputQtyPlaceholder: '请输入数量', + unit: '单位', + confirm: '确定', + submitSuccess: '提交成功', + }, } const en = { @@ -175,8 +205,9 @@ const en = { 'Putaway', 'Inventory Query', 'Bind/Unbind', - 'Picking Hall', - 'Containerless Receive', + 'Flat Outbound', + 'Line Picking', + 'Product Group', 'Empty Pallet Ops', 'AGV Delivery', 'Manual Inventory', @@ -299,6 +330,35 @@ const en = { complete: 'Complete', completeSuccess: 'Success', }, + productGroup: { + title: 'Product Group', + workSect: 'Work Area', + workSectPlaceholder: 'Select work area', + workSectRequired: 'Work area is required', + palletCode: 'Pallet Code', + palletCodePlaceholder: 'Scan or enter pallet code', + palletCodeRequired: 'Pallet code is required', + workOrder: 'Work Order', + workOrderPlaceholder: 'Select work order', + workOrderRequired: 'Work order is required', + loadPort: 'Load Port', + loadPortPlaceholder: 'Select load port', + loadPortRequired: 'Load port is required', + total: 'Total {0} items', + noData: 'No materials', + noOrder: 'No work orders', + noPort: 'Please select work order first', + materialCode: 'Material Code', + materialName: 'Material Name', + bomQty: 'BOM Qty', + useBomQty: 'Used Qty', + planQty: 'Pending Qty', + inputQty: 'Group Qty', + inputQtyPlaceholder: 'Enter qty', + unit: 'Unit', + confirm: 'Confirm', + submitSuccess: 'Submitted successfully', + }, } const messages = {zh, en} diff --git a/pda/pda/src/router/index.js b/pda/pda/src/router/index.js index 4b6aada..8d66184 100644 --- a/pda/pda/src/router/index.js +++ b/pda/pda/src/router/index.js @@ -55,6 +55,12 @@ const routes = [ component: () => import('@/views/FlatOutBound.vue'), meta: { requiresAuth: true }, }, + { + path: '/product-group', + name: 'ProductGroup', + component: () => import('@/views/ProductGroup.vue'), + meta: { requiresAuth: true }, + }, { path: '/developing', name: 'Developing', diff --git a/pda/pda/src/views/Home.vue b/pda/pda/src/views/Home.vue index bf9b44a..747454c 100644 --- a/pda/pda/src/views/Home.vue +++ b/pda/pda/src/views/Home.vue @@ -41,9 +41,6 @@ const menuIcons = [ 'gift-o', 'bag-o', 'apps-o', - 'records', - 'todo-list-o', - 'records', ] const menuRoutes = { @@ -54,7 +51,8 @@ const menuRoutes = { 4: '/inventory', 5: '/bind-unbind', 6: '/flat-outbound', - 7: '/flat-outbound', + 7: '/developing', + 8: '/product-group', } function onMenuClick(index) { diff --git a/pda/pda/src/views/ProductGroup.vue b/pda/pda/src/views/ProductGroup.vue new file mode 100644 index 0000000..0edde15 --- /dev/null +++ b/pda/pda/src/views/ProductGroup.vue @@ -0,0 +1,408 @@ + + + + + From 7b962b0bfaba0eba6401a64d4f01fac07d3a9199 Mon Sep 17 00:00:00 2001 From: zhaoyf <1783123481@qq.com> Date: Wed, 17 Jun 2026 09:23:03 +0800 Subject: [PATCH 2/2] =?UTF-8?q?add:=E9=87=87=E8=B4=AD=E5=8D=95=E6=8D=AE?= =?UTF-8?q?=E6=89=93=E5=8D=B0=20opt:=E9=87=87=E8=B4=AD=E5=8D=95=E8=BD=AC?= =?UTF-8?q?=E5=8F=91=E4=B8=AD=E9=BC=8E=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/nl/config/PrinterProperties.java | 15 +++++ .../impl/InboundEasSyncServiceImpl.java | 3 +- .../controller/PurchaseController.java | 7 +++ .../purchase/service/PurchaseService.java | 2 + .../purchase/service/dao/Purchasemst.java | 2 + .../dao/mapper/xml/PurchasemstMapper.xml | 1 + .../service/impl/PurchaseServiceImpl.java | 40 ++++++++++++++ .../service/vo/PurchasemstListVo.java | 2 + .../src/views/wms/st/purchase/index.vue | 55 ++++++++++++++++++- .../src/views/wms/st/purchase/purchase.js | 10 +++- sql/zyf.sql | 2 + 11 files changed, 136 insertions(+), 3 deletions(-) create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/config/PrinterProperties.java diff --git a/nladmin-system/wms-server/src/main/java/org/nl/config/PrinterProperties.java b/nladmin-system/wms-server/src/main/java/org/nl/config/PrinterProperties.java new file mode 100644 index 0000000..583b551 --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/config/PrinterProperties.java @@ -0,0 +1,15 @@ +package org.nl.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +@Data +@Configuration +@ConfigurationProperties("printer") +public class PrinterProperties { + + private String ip = "192.168.1.100"; + + private int port = 9100; +} \ No newline at end of file diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/impl/InboundEasSyncServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/impl/InboundEasSyncServiceImpl.java index eecc2a3..58524c7 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/impl/InboundEasSyncServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/impl/InboundEasSyncServiceImpl.java @@ -64,16 +64,17 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService { easMst.setBill_status(PurchaseBillStatus.CREATED.getCode()); easMst.setModify_date(DateUtil.now()); - purchasemstMapper.insert(easMst); for (Purchasedtl dtl : easDtlList) { purchasedtlMapper.insert(dtl); if (dtl.getHouse_code().contains("ZDLK")){ //中鼎立库 + easMst.setForwardZD(1); //TODO 转发中鼎参数待确定 wmsToZDWmdService.syncPurchaseReceiving(new JSONObject()); } } + purchasemstMapper.insert(easMst); log.info("EAS采购入库单同步完成, billId: {}, 明细数: {}", billId, easDtlList.size()); JSONObject result = new JSONObject(); diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/controller/PurchaseController.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/controller/PurchaseController.java index e2ef40d..afc96fa 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/controller/PurchaseController.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/controller/PurchaseController.java @@ -63,4 +63,11 @@ public class PurchaseController { purchaseService.issueReturnBill(ids); return new ResponseEntity<>(HttpStatus.OK); } + + @PostMapping("/print") + @Log("打印采购入库单") + public ResponseEntity print(@RequestBody Set ids) { + purchaseService.print(ids); + return new ResponseEntity<>(HttpStatus.OK); + } } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/PurchaseService.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/PurchaseService.java index ed0fba0..9ae7402 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/PurchaseService.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/PurchaseService.java @@ -32,5 +32,7 @@ public interface PurchaseService extends IService { List selectListByBillId(String billId); + void print(Set ids); + List selectPdaInMat(HashMap of); } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/dao/Purchasemst.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/dao/Purchasemst.java index 358cbe0..9b42cdb 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/dao/Purchasemst.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/dao/Purchasemst.java @@ -23,6 +23,8 @@ public class Purchasemst implements Serializable { private String order_type; + private Integer forwardZD; + private String supplier_code; private String supplier_name; diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/dao/mapper/xml/PurchasemstMapper.xml b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/dao/mapper/xml/PurchasemstMapper.xml index c3452f6..305e6e5 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/dao/mapper/xml/PurchasemstMapper.xml +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/dao/mapper/xml/PurchasemstMapper.xml @@ -8,6 +8,7 @@ m.bill_id, m.order_no, m.order_type, + m.forwardZD, m.supplier_code, m.supplier_name, m.creator, diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/impl/PurchaseServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/impl/PurchaseServiceImpl.java index 0f899a0..55a52eb 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/impl/PurchaseServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/impl/PurchaseServiceImpl.java @@ -28,10 +28,15 @@ import org.nl.wms.warehouse_manage.enums.IOSEnum; import org.nl.wms.warehouse_manage.stockReturn.service.IPmStockReturnService; import org.nl.wms.warehouse_manage.stockReturn.service.dao.PmStockReturn; import org.nl.wms.warehouse_manage.stockReturn.service.enums.StockReturnStatusEnum; +import org.nl.config.PrinterProperties; +import org.nl.wms.pm_manage.purchase.util.ZplUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.io.OutputStream; +import java.net.Socket; +import java.nio.charset.StandardCharsets; import java.util.*; @Slf4j @@ -50,6 +55,9 @@ public class PurchaseServiceImpl extends ServiceImpl queryAll(Map whereJson, PageQuery page) { return purchasemstMapper.queryAllByPage( @@ -192,6 +200,38 @@ public class PurchaseServiceImpl extends ServiceImpl ids) { + List mstList = purchasemstMapper.selectBatchIds(ids); + if (ObjectUtil.isEmpty(mstList)) { + throw new BadRequestException("未找到选中的单据"); + } + StringBuilder allZpl = new StringBuilder(); + int labelCount = 0; + for (Purchasemst mst : mstList) { + List dtlList = purchasedtlMapper.selectList( + new LambdaQueryWrapper() + .eq(Purchasedtl::getBill_id, mst.getBill_id())); + for (Purchasedtl dtl : dtlList) { + String zpl = ZplUtil.generateLabel( + dtl.getSku_name(), dtl.getSku_code(), + dtl.getQty() != null ? dtl.getQty().stripTrailingZeros().toPlainString() : "0", + dtl.getUnit(), mst.getBill_id(), dtl.getItem_no()); + allZpl.append(zpl); + labelCount++; + } + } + try (Socket socket = new Socket(printerProperties.getIp(), printerProperties.getPort()); + OutputStream out = socket.getOutputStream()) { + out.write(allZpl.toString().getBytes(StandardCharsets.UTF_8)); + out.flush(); + } catch (Exception e) { + log.error("打印失败, 打印机: {}:{}, 标签数: {}", printerProperties.getIp(), printerProperties.getPort(), labelCount, e); + throw new BadRequestException("打印机连接失败: " + e.getMessage()); + } + log.info("打印成功, 打印机: {}:{}, 标签数: {}", printerProperties.getIp(), printerProperties.getPort(), labelCount); + } + @Override public List pdaInboundSelectMatInfo(Map whereJson) { return purchasemstMapper.selectPdaInMat(whereJson); diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/vo/PurchasemstListVo.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/vo/PurchasemstListVo.java index d4d3c24..c8daf2f 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/vo/PurchasemstListVo.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/service/vo/PurchasemstListVo.java @@ -13,6 +13,8 @@ public class PurchasemstListVo { private String order_type; + private Integer forwardZD; + private String supplier_code; private String supplier_name; diff --git a/nladmin-ui/src/views/wms/st/purchase/index.vue b/nladmin-ui/src/views/wms/st/purchase/index.vue index bd58d36..15cda26 100644 --- a/nladmin-ui/src/views/wms/st/purchase/index.vue +++ b/nladmin-ui/src/views/wms/st/purchase/index.vue @@ -27,7 +27,8 @@ - 强制回传 + 下发回传单 + 打印 @@ -47,6 +48,35 @@ + + + @@ -136,6 +166,9 @@ export default { const s = String(d.getSeconds()).padStart(2, '0') return y + '-' + m + '-' + day + ' ' + h + ':' + min + ':' + s }, + toForwardZD(){ + console.log(123) + }, toView(index, row) { this.mstrow = row this.viewShow = true @@ -182,6 +215,26 @@ export default { this.crud.notify('下发失败', CRUD.NOTIFICATION_TYPE.ERROR) }) }).catch(() => {}) + }, + printBill() { + const selections = this.crud.selections + if (!selections || selections.length === 0) { + this.crud.notify('请至少选择一条单据', CRUD.NOTIFICATION_TYPE.INFO) + return + } + const ids = selections.map(s => s.id) + const billIds = selections.map(s => s.bill_id).join('、') + this.$confirm('确认打印以下单据的物料标签?\n' + billIds, '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + crudPurchase.print(ids).then(() => { + this.crud.notify('打印指令已发送', CRUD.NOTIFICATION_TYPE.SUCCESS) + }).catch(() => { + this.crud.notify('打印失败', CRUD.NOTIFICATION_TYPE.ERROR) + }) + }).catch(() => {}) } } } diff --git a/nladmin-ui/src/views/wms/st/purchase/purchase.js b/nladmin-ui/src/views/wms/st/purchase/purchase.js index add1081..858a091 100644 --- a/nladmin-ui/src/views/wms/st/purchase/purchase.js +++ b/nladmin-ui/src/views/wms/st/purchase/purchase.js @@ -39,4 +39,12 @@ export function issueReturnBill(data) { }) } -export default { add, edit, del, get, issueReturnBill } +export function print(ids) { + return request({ + url: '/api/purchasemst/print', + method: 'post', + data: ids + }) +} + +export default { add, edit, del, get, issueReturnBill, print } diff --git a/sql/zyf.sql b/sql/zyf.sql index 92216c8..69127c8 100644 --- a/sql/zyf.sql +++ b/sql/zyf.sql @@ -34,3 +34,5 @@ CREATE TABLE IF NOT EXISTS `st_ivt_purchasedtl` ( `instock_qty` DECIMAL(18,6) DEFAULT 0 COMMENT '已入库数量' )COMMENT='采购入库单分录信息表'; +ALTER TABLE `wms_nlwq`.`st_ivt_purchasemst` + ADD COLUMN `forwardZD` tinyint(1) NULL DEFAULT 0 COMMENT '0否 1是' AFTER `audit_msg`; \ No newline at end of file