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