diff --git a/nladmin-system/wms-server/src/main/java/org/nl/common/utils/ZplUtil.java b/nladmin-system/wms-server/src/main/java/org/nl/common/utils/ZplUtil.java new file mode 100644 index 0000000..da53c17 --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/common/utils/ZplUtil.java @@ -0,0 +1,61 @@ +package org.nl.common.utils; + +import org.nl.common.exception.BadRequestException; +import org.nl.config.SpringContextHolder; +import org.nl.wms.basedata_manage.service.dto.VehicleLabelDto; +import org.nl.wms.system_manage.enums.SysParamConstant; +import org.nl.wms.system_manage.service.param.impl.SysParamServiceImpl; + +import java.io.OutputStream; +import java.net.Socket; +import java.nio.charset.StandardCharsets; + +public class ZplUtil { + + public static void print(String zpl){ + String ip = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode(SysParamConstant.PRINTER_IP).getValue(); + String port = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode(SysParamConstant.PRINTER_PORT).getValue(); + + try (Socket socket = new Socket(ip, Integer.parseInt(port)); + OutputStream out = socket.getOutputStream()) { + out.write(zpl.getBytes(StandardCharsets.UTF_8)); + out.flush(); + } catch (Exception e) { + throw new BadRequestException("打印机连接失败: " + e.getMessage()); + } + } + + public static String generatePurchaseLabel(String orderNo,String skuName, String skuCode, String qty, String batchNo, String itemNo) { + StringBuilder zpl = new StringBuilder(); + zpl.append("^XA\n"); + zpl.append("^CI28\n"); + zpl.append("^PW609\n"); + zpl.append("^LL406\n"); + zpl.append("^FO30,30^A0N,28,28^FD").append(escape(skuName)).append("^FS\n"); + zpl.append("^FO30,70^A0N,24,24^FD").append(escape(skuCode)).append("^FS\n"); + zpl.append("^FO30,115^A0N,32,32^FD").append(escape(qty)).append(escape(batchNo)).append("^FS\n"); + zpl.append("^FO350,20^BQN,2,5^FDQA,").append("#").append(escape(itemNo)).append("^FS\n"); + zpl.append("^XZ"); + return zpl.toString(); + } + public static String generateVehicleLabel(VehicleLabelDto dto){ + StringBuilder zpl = new StringBuilder(); + zpl.append("^XA\n"); + zpl.append("^CI28\n"); + zpl.append("^PW609\n"); + zpl.append("^LL406\n"); + zpl.append("^FO30,30^A0N,28,28^FD").append(escape(dto.getCode())).append("^FS\n"); + zpl.append("^FO30,70^A0N,24,24^FD").append(escape(dto.getFactory())).append("^FS\n"); + zpl.append("^FO30,115^A0N,32,32^FD").append(escape(dto.getName())).append("^FS\n"); + zpl.append("^FO350,20^BQN,2,5^FDQA,").append("#").append(escape(dto.getWorkshop())).append("^FS\n"); + zpl.append("^XZ"); + return zpl.toString(); + } + + private static String escape(String s) { + if (s == null) { + return ""; + } + return s.replace("^", "~").replace("~", "~~~"); + } +} \ No newline at end of file diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/controller/StorageVehicleInfoController.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/controller/StorageVehicleInfoController.java index 90b8fe4..0c36ca9 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/controller/StorageVehicleInfoController.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/controller/StorageVehicleInfoController.java @@ -11,7 +11,6 @@ import org.nl.common.logging.annotation.Log; import org.nl.common.utils.CodeUtil; import org.nl.common.utils.MapOf; import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService; -import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase; import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -72,4 +71,11 @@ public class StorageVehicleInfoController { return new ResponseEntity<>(MapOf.of("value", CodeUtil.codeView(code)), HttpStatus.OK); } + @PostMapping("/printLabel") + @Log("打印载具标签") + public ResponseEntity printLabel(@RequestBody Set ids){ + iMdPbStoragevehicleinfoService.printLabel(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleinfoService.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleinfoService.java index ee777ed..788b73a 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleinfoService.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleinfoService.java @@ -56,4 +56,6 @@ public interface IMdPbStoragevehicleinfoService extends IService ids); } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/dto/VehicleLabelDto.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/dto/VehicleLabelDto.java new file mode 100644 index 0000000..fb0b0db --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/dto/VehicleLabelDto.java @@ -0,0 +1,11 @@ +package org.nl.wms.basedata_manage.service.dto; + +import lombok.Data; + +@Data +public class VehicleLabelDto { + private String code; + private String name; + private String factory; + private String workshop; +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleinfoServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleinfoServiceImpl.java index 8669246..db25cc0 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleinfoServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleinfoServiceImpl.java @@ -26,6 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.List; import java.util.Map; import java.util.Set; @@ -41,6 +42,8 @@ import java.util.Set; public class MdPbStoragevehicleinfoServiceImpl extends ServiceImpl implements IMdPbStoragevehicleinfoService { @Autowired private ISysDictService dictService; + @Autowired + private MdPbStoragevehicleinfoMapper mdPbStoragevehicleinfoMapper; @Override public IPage queryAll(Map whereJson, PageQuery page) { @@ -149,4 +152,13 @@ public class MdPbStoragevehicleinfoServiceImpl extends ServiceImpl ids) { + List mdPbStoragevehicleinfos = mdPbStoragevehicleinfoMapper.selectBatchIds(ids); + for (MdPbStoragevehicleinfo info : mdPbStoragevehicleinfos) { + + } + } + } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/mapper/EasPurchasemstMapper.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/mapper/EasPurchasemstMapper.java index 252d78a..0b3353e 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/mapper/EasPurchasemstMapper.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/mapper/EasPurchasemstMapper.java @@ -3,6 +3,7 @@ package org.nl.wms.ext_manage.purchase.service.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.nl.wms.pda_manage.ios_manage.purchase.service.vo.PurchaseMatInfoVo; import org.nl.wms.pm_manage.purchase.service.dao.Purchasemst; import java.util.List; @@ -11,4 +12,5 @@ import java.util.List; public interface EasPurchasemstMapper extends BaseMapper { List selectByBillId(@Param("bill_id") String billId); + List selectByOrderNo(@Param("orderNo") String orderNo); } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/mapper/EasPurchasemstMapper.xml b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/mapper/EasPurchasemstMapper.xml index fc78e1e..8bf4376 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/mapper/EasPurchasemstMapper.xml +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/purchase/service/mapper/EasPurchasemstMapper.xml @@ -31,5 +31,21 @@ FROM v_uc_cgrk06 WHERE billid = #{bill_id} + diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/util/ErpUtil.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/util/ErpUtil.java index 963e76c..5414432 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/util/ErpUtil.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/util/ErpUtil.java @@ -1,25 +1,16 @@ package org.nl.wms.ext_manage.util; -import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.apache.axis.client.Call; import org.apache.axis.client.Service; -import org.apache.axis.encoding.ser.BeanDeserializerFactory; -import org.apache.axis.encoding.ser.BeanSerializerFactory; import org.apache.axis.message.SOAPHeaderElement; import org.nl.common.exception.BadRequestException; import org.nl.config.SpringContextHolder; -import org.nl.wms.system_manage.enums.SysParamConstant; -import org.nl.wms.system_manage.service.param.dao.Param; -import org.nl.wms.system_manage.service.param.impl.SysParamServiceImpl; import javax.xml.namespace.QName; -import javax.xml.rpc.ParameterMode; -import javax.xml.rpc.ServiceException; -import javax.xml.rpc.encoding.XMLType; @Slf4j @Data @@ -73,7 +64,7 @@ public class ErpUtil { result = (WSContext) call.invoke(new Object[]{userName, password, slnName, dcName, "L2", dbType, "BaseDB"}); //关键点,获取登录时返回的sessionid sessionId = result.getSessionId(); - log.info("ERP登录接口返回:{}", result.toString()); + log.info("ERP登录接口返回:{}", JSON.toJSONString(result)); } catch (Exception e) { throw new BadRequestException("erp登录接口请求失败:" + e.getMessage()); } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/purchase/controller/InboundPdaController.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/purchase/controller/InboundPdaController.java index 0c555e2..08a11a6 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/purchase/controller/InboundPdaController.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/purchase/controller/InboundPdaController.java @@ -33,6 +33,13 @@ public class InboundPdaController { List list = inboundPdaService.getInfoByCode(code); return PdaResponse.requestParamOk(list); } + @GetMapping("/getInfoByReceive") + @Log("PDA根据条码查询采购入库单的物料信息") + @SaIgnore + public PdaResponse getInfoByReceive(@RequestParam String code) { + List list = inboundPdaService.getInfoByReceive(code); + return PdaResponse.requestParamOk(list); + } @PostMapping("/groupPlate") @Log("PDA提交组盘") diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/purchase/service/InboundPdaService.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/purchase/service/InboundPdaService.java index 839d62a..b6a738d 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/purchase/service/InboundPdaService.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/purchase/service/InboundPdaService.java @@ -22,4 +22,6 @@ public interface InboundPdaService { void submitGroupPlateInbound(GroupPlateInboundDto dto, Boolean subTask); void submitManualInbound(ManualInboundDto dto); + + List getInfoByReceive(String code); } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/purchase/service/impl/InboundPdaServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/purchase/service/impl/InboundPdaServiceImpl.java index ca2162f..7932e70 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/purchase/service/impl/InboundPdaServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/purchase/service/impl/InboundPdaServiceImpl.java @@ -35,8 +35,6 @@ import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDisMappe import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDtlMapper; import org.nl.wms.warehouse_manage.inAndOut.service.dto.IOStorInvDisDto; import org.nl.wms.warehouse_manage.inventory.IStInventoryService; -import org.nl.wms.warehouse_manage.inventory.core.enums.InventoryChangeType; -import org.nl.wms.warehouse_manage.inventory.core.param.impl.AddInvParam; import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService; import org.nl.wms.warehouse_manage.service.dao.GroupPlate; import org.springframework.beans.factory.annotation.Autowired; @@ -247,32 +245,32 @@ public class InboundPdaServiceImpl implements InboundPdaService { boolean flag = false; for (UsualInboundDto.UsualInboundDtlDto item : usualInboundDto.getDetailList()) { //判断当前物料是否在库内 - List inStockGps = iMdPbGroupplateService.list(new LambdaQueryWrapper() - .eq(GroupPlate::getMaterial_code, item.getSku_code()) - .eq(GroupPlate::getStatus, GROUP_PLATE_STATUS.code("入库")) - .likeRight(GroupPlate::getStoragevehicle_code, "VTP")); - if (!inStockGps.isEmpty()){ - GroupPlate groupPlate = inStockGps.get(0); - Structattr structattr = iStructattrService.getOne(new LambdaQueryWrapper() - .eq(Structattr::getStoragevehicle_code, groupPlate.getStoragevehicle_code()) - .eq(Structattr::getSect_code, usualInboundDto.getSect_code()) - .last("limit 1")); - if (Objects.equals(structattr.getSect_code(), usualInboundDto.getSect_code())){ - //已在库,增加库存 - flag = true; - List addInvParams = new ArrayList<>(); - AddInvParam addParam = new AddInvParam(); - addParam.setPcsn(groupPlate.getPcsn()); - addParam.setMaterialCode(groupPlate.getMaterial_code()); - addParam.setStoragevehicleCode(groupPlate.getStoragevehicle_code()); - addParam.setUnitName(groupPlate.getQty_unit_name()); - addParam.setUnitId(groupPlate.getQty_unit_id()); - addParam.setQty(item.getQty()); - addInvParams.add(addParam); - iStInventoryService.changeInventory(InventoryChangeType.ADD_INV, addInvParams); - continue; - } - } +// List inStockGps = iMdPbGroupplateService.list(new LambdaQueryWrapper() +// .eq(GroupPlate::getMaterial_code, item.getSku_code()) +// .eq(GroupPlate::getStatus, GROUP_PLATE_STATUS.code("入库")) +// .likeRight(GroupPlate::getStoragevehicle_code, "VTP")); +// if (!inStockGps.isEmpty()){ +// GroupPlate groupPlate = inStockGps.get(0); +// Structattr structattr = iStructattrService.getOne(new LambdaQueryWrapper() +// .eq(Structattr::getStoragevehicle_code, groupPlate.getStoragevehicle_code()) +// .eq(Structattr::getSect_code, usualInboundDto.getSect_code()) +// .last("limit 1")); +// if (Objects.equals(structattr.getSect_code(), usualInboundDto.getSect_code())){ +// //已在库,增加库存 +// flag = true; +// List addInvParams = new ArrayList<>(); +// AddInvParam addParam = new AddInvParam(); +// addParam.setPcsn(groupPlate.getPcsn()); +// addParam.setMaterialCode(groupPlate.getMaterial_code()); +// addParam.setStoragevehicleCode(groupPlate.getStoragevehicle_code()); +// addParam.setUnitName(groupPlate.getQty_unit_name()); +// addParam.setUnitId(groupPlate.getQty_unit_id()); +// addParam.setQty(item.getQty()); +// addInvParams.add(addParam); +// iStInventoryService.changeInventory(InventoryChangeType.ADD_INV, addInvParams); +// continue; +// } +// } MdMeMaterialbase materDao = iMdMeMaterialbaseService.getByCode(item.getSku_code()); MdPbMeasureunit unitDao = iMdPbMeasureunitService.getById(materDao.getQty_unit_id()); //组盘 @@ -510,6 +508,33 @@ public class InboundPdaServiceImpl implements InboundPdaService { // pushEvent(purchaseListenerParams); } + /** + * 根据收货单获取采购单物料信息 + * @param code 采购单单据编号 + * @return + */ + @Override + public List getInfoByReceive(String code) { + if (StrUtil.isEmptyIfStr(code)){ + throw new BadRequestException("获取单据失败:参数为空"); + } + Map parseMap = parseCode(code); + List purchaseMatInfoVos = purchaseService.selectPdaInMat(MapOf.of("orderNo", parseMap.get("orderNo"), + "itemNo", parseMap.get("itemNo"))); + if (purchaseMatInfoVos.isEmpty()){ + throw new BadRequestException("获取单据失败:未找到该物料信息"); + } + if (purchaseMatInfoVos.size() > 1){ + throw new BadRequestException("同一个采购单有重复物料"); + } + PurchaseMatInfoVo purchaseMatInfoVo = purchaseMatInfoVos.get(0); +// if (purchaseMatInfoVo.getQty() != Integer.parseInt(parseMap.get("quantityStr").toString())){ +// throw new BadRequestException(String.format("(物料%s)条码数量与采购单数量不一致",parseMap.get("materialName")) ); +// } + purchaseMatInfoVo.setQty(new BigDecimal(parseMap.get("quantityStr").toString())); + return purchaseMatInfoVos; + } + private Map parseCode(String code){ String[] parts = code.split("#", -1); log.info("采购单入库条码解析结果:{}", Arrays.toString(parts)); 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 6d9cc23..9cfbb23 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 @@ -2,6 +2,7 @@ package org.nl.wms.pm_manage.purchase.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -12,9 +13,9 @@ import lombok.extern.slf4j.Slf4j; import org.nl.common.domain.query.PageQuery; import org.nl.common.exception.BadRequestException; import org.nl.common.utils.SecurityUtils; +import org.nl.wms.ext_manage.purchase.service.dto.EasAuditRequestDto; import org.nl.wms.ext_manage.service.WmsToErpService; import org.nl.wms.pda_manage.ios_manage.purchase.service.vo.PurchaseMatInfoVo; -import com.alibaba.fastjson.JSON; import org.nl.wms.pm_manage.purchase.service.PurchaseService; import org.nl.wms.pm_manage.purchase.service.dao.Purchasedtl; import org.nl.wms.pm_manage.purchase.service.dao.Purchasemst; @@ -22,9 +23,7 @@ import org.nl.wms.pm_manage.purchase.service.dao.mapper.PurchasedtlMapper; import org.nl.wms.pm_manage.purchase.service.dao.mapper.PurchasemstMapper; import org.nl.wms.pm_manage.purchase.service.dto.PurchaseDto; import org.nl.wms.pm_manage.purchase.service.vo.PurchasemstListVo; -import org.nl.wms.ext_manage.purchase.service.dto.EasAuditRequestDto; -import org.nl.wms.pm_manage.purchase.util.ZplUtil; -import org.nl.wms.system_manage.enums.SysParamConstant; +import org.nl.common.utils.ZplUtil; import org.nl.wms.system_manage.service.param.ISysParamService; import org.nl.wms.warehouse_manage.enums.IOSEnum; import org.nl.wms.warehouse_manage.stockReturn.service.IPmStockReturnService; @@ -34,9 +33,6 @@ 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 @@ -195,35 +191,24 @@ public class PurchaseServiceImpl extends ServiceImpl ids) { - String ip = sysParamService.findByCode(SysParamConstant.PRINTER_IP).getValue(); - String port = sysParamService.findByCode(SysParamConstant.PRINTER_PORT).getValue(); 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( + String zpl = ZplUtil.generatePurchaseLabel(mst.getOrder_no(), dtl.getSku_name(), dtl.getSku_code(), dtl.getQty() != null ? dtl.getQty().stripTrailingZeros().toPlainString() : "0", - dtl.getUnit(), mst.getBill_id(), dtl.getItem_no()); + dtl.getBatch_no(), dtl.getItem_no()); allZpl.append(zpl); - labelCount++; } } - try (Socket socket = new Socket(ip, Integer.parseInt(port)); - OutputStream out = socket.getOutputStream()) { - out.write(allZpl.toString().getBytes(StandardCharsets.UTF_8)); - out.flush(); - } catch (Exception e) { - log.error("打印失败, 打印机: {}:{}, 标签数: {}", ip, port, labelCount, e); - throw new BadRequestException("打印机连接失败: " + e.getMessage()); - } + ZplUtil.print(allZpl.toString()); } @Override diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/util/ZplUtil.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/util/ZplUtil.java deleted file mode 100644 index dfb939e..0000000 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/purchase/util/ZplUtil.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.nl.wms.pm_manage.purchase.util; - -public class ZplUtil { - - public static String generateLabel(String skuName, String skuCode, String qty, String unit, - String billId, String itemNo) { - StringBuilder zpl = new StringBuilder(); - zpl.append("^XA\n"); - zpl.append("^CI28\n"); - zpl.append("^PW609\n"); - zpl.append("^LL406\n"); - zpl.append("^FO30,30^A0N,28,28^FD").append(escape(skuName)).append("^FS\n"); - zpl.append("^FO30,70^A0N,24,24^FD").append(escape(skuCode)).append("^FS\n"); - zpl.append("^FO30,115^A0N,32,32^FD").append(escape(qty)).append(escape(unit)).append("^FS\n"); - zpl.append("^FO350,20^BQN,2,5^FDQA,").append(escape(billId)).append("#").append(escape(itemNo)).append("^FS\n"); - zpl.append("^XZ"); - return zpl.toString(); - } - - private static String escape(String s) { - if (s == null) { - return ""; - } - return s.replace("^", "~").replace("~", "~~~"); - } -} \ No newline at end of file diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/core/AbstractTask.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/core/AbstractTask.java index 93e2dc7..652e38b 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/core/AbstractTask.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/core/AbstractTask.java @@ -2,16 +2,12 @@ package org.nl.wms.sch_manage.service.core; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.nl.wms.ext_manage.api.AcsApi; -import org.nl.wms.ext_manage.service.WmsToAcsService; -import org.nl.wms.ext_manage.service.util.AcsResponse; import org.nl.wms.sch_manage.enums.TaskStatus; import org.nl.wms.sch_manage.service.ISchBaseTaskService; import org.nl.wms.sch_manage.service.dao.SchBaseTask; @@ -94,7 +90,11 @@ public abstract class AbstractTask { */ public ResponseEntity sendTaskOne(String task_id) { List taskDtoList = new ArrayList<>(); - taskDtoList.add(this.sendAcsParam(task_id)); + AcsTaskDto acsTaskDto = this.sendAcsParam(task_id); + if (acsTaskDto == null) { + return null; + } + taskDtoList.add(acsTaskDto); ResponseEntity response = this.renotifyAcs(taskDtoList); if (response.getStatusCode().equals(HttpStatus.OK)) { taskService.update(new LambdaUpdateWrapper() diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/core/tasks/LineCallFullTask.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/core/tasks/LineCallFullTask.java index ee6dc60..a3372fd 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/core/tasks/LineCallFullTask.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/core/tasks/LineCallFullTask.java @@ -2,7 +2,9 @@ package org.nl.wms.sch_manage.service.core.tasks; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import org.nl.common.exception.BadRequestException; import org.nl.common.utils.CodeUtil; @@ -67,7 +69,22 @@ public class LineCallFullTask extends AbstractTask { @Override public AcsTaskDto sendAcsParam(String taskId) { SchBaseTask taskDao = taskService.getById(taskId); - + String pointCode1 = taskDao.getPoint_code1(); + String pointCode2 = taskDao.getPoint_code2(); + SchBasePoint point1 = iSchBasePointService.getOne(new LambdaQueryWrapper() + .eq(SchBasePoint::getPoint_code, pointCode1)); + SchBasePoint point2 = iSchBasePointService.getOne(new LambdaQueryWrapper() + .eq(SchBasePoint::getPoint_code, pointCode2)); + if (StrUtil.isEmptyIfStr(point1.getVehicle_code())){ + taskDao.setRemark("起点没有托盘"); + taskService.update(taskDao); + return null; + } + if (!StrUtil.isEmptyIfStr(point2.getVehicle_code())){ + taskDao.setRemark("当前终点有货"); + taskService.update(taskDao); + return null; + } // 组织下发给acs的数据 AcsTaskDto acsTaskDto = new AcsTaskDto(); acsTaskDto.setExt_task_uuid(taskDao.getTask_id()); diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/core/tasks/LineReturnEmptyTask.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/core/tasks/LineReturnEmptyTask.java index 40fcd29..bed4ca2 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/core/tasks/LineReturnEmptyTask.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/core/tasks/LineReturnEmptyTask.java @@ -2,14 +2,14 @@ package org.nl.wms.sch_manage.service.core.tasks; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import org.nl.common.exception.BadRequestException; import org.nl.common.utils.CodeUtil; import org.nl.common.utils.IdUtil; import org.nl.common.utils.SecurityUtils; -import org.nl.wms.basedata_manage.service.IStructattrService; -import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.sch_manage.enums.TaskStatus; import org.nl.wms.sch_manage.service.ISchBasePointService; import org.nl.wms.sch_manage.service.ISchBaseTaskService; @@ -69,7 +69,22 @@ public class LineReturnEmptyTask extends AbstractTask { @Override public AcsTaskDto sendAcsParam(String taskId) { SchBaseTask taskDao = taskService.getById(taskId); - + String pointCode1 = taskDao.getPoint_code1(); + String pointCode2 = taskDao.getPoint_code2(); + SchBasePoint point1 = iSchBasePointService.getOne(new LambdaQueryWrapper() + .eq(SchBasePoint::getPoint_code, pointCode1)); + SchBasePoint point2 = iSchBasePointService.getOne(new LambdaQueryWrapper() + .eq(SchBasePoint::getPoint_code, pointCode2)); + if (StrUtil.isEmptyIfStr(point1.getVehicle_code())){ + taskDao.setRemark("起点没有托盘"); + taskService.update(taskDao); + return null; + } + if (!StrUtil.isEmptyIfStr(point2.getVehicle_code())){ + taskDao.setRemark("当前终点有货"); + taskService.update(taskDao); + return null; + } // 组织下发给acs的数据 AcsTaskDto acsTaskDto = new AcsTaskDto(); acsTaskDto.setExt_task_uuid(taskDao.getTask_id()); diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/strategy/core/impl/DealPurchaseRecBillCallback.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/strategy/core/impl/DealPurchaseRecBillCallback.java index ba2812d..0704dba 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/strategy/core/impl/DealPurchaseRecBillCallback.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/strategy/core/impl/DealPurchaseRecBillCallback.java @@ -55,11 +55,7 @@ public class DealPurchaseRecBillCallback implements CallbackStrategy { purchasedtl.setInstock_qty(param.getPlan_qty().add(purchasedtl.getInstock_qty())); purchasedtlService.updateById(purchasedtl); - EasAuditRequestDto.EasAuditEntryDto easAuditEntryDto = new EasAuditRequestDto.EasAuditEntryDto(); - easAuditEntryDto.setSeq(Integer.parseInt(purchasedtl.getItem_no())); - easAuditEntryDto.setQty(param.getPlan_qty()); - easAuditEntryDto.setEntryId(purchasedtl.getEntry_id()); - entryList.add(easAuditEntryDto); + List list = purchasedtlService.list(new LambdaQueryWrapper() .eq(Purchasedtl::getBill_id, orderCode)); boolean flag = list.stream().anyMatch(i -> i.getQty().compareTo(i.getInstock_qty()) != 0); @@ -71,6 +67,14 @@ public class DealPurchaseRecBillCallback implements CallbackStrategy { .eq(Purchasemst::getBill_id, orderCode) .update(); // 保存回传单 + for (Purchasedtl dtl : list) { + EasAuditRequestDto.EasAuditEntryDto easAuditEntryDto = new EasAuditRequestDto.EasAuditEntryDto(); + easAuditEntryDto.setSeq(Integer.parseInt(dtl.getItem_no())); + easAuditEntryDto.setQty(dtl.getQty()); + easAuditEntryDto.setEntryId(dtl.getEntry_id()); + entryList.add(easAuditEntryDto); + } + EasAuditRequestDto easAuditRequestDto = new EasAuditRequestDto(); easAuditRequestDto.setType("WMS"); easAuditRequestDto.setMethod("DealBill"); @@ -96,6 +100,7 @@ public class DealPurchaseRecBillCallback implements CallbackStrategy { } catch (Exception e) { iPmStockReturnService.lambdaUpdate() .set(PmStockReturn::getStatus,StockReturnStatusEnum.FAIL.getCode()) + .set(PmStockReturn::getError_msg, e.getMessage()) .eq(PmStockReturn::getRequest_Id, orderCode); } }else {