fix:采购单回传逻辑

opt:打印服务优化
opt:返空叫料任务优化
This commit is contained in:
zhaoyf
2026-07-04 16:44:23 +08:00
parent cab6e1c3d1
commit d63a5869a8
17 changed files with 231 additions and 100 deletions

View File

@@ -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("~", "~~~");
}
}

View File

@@ -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<String> ids){
iMdPbStoragevehicleinfoService.printLabel(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@@ -56,4 +56,6 @@ public interface IMdPbStoragevehicleinfoService extends IService<MdPbStoragevehi
String getVehicleType(String storagevehicleCode);
void printLabel(Set<String> ids);
}

View File

@@ -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;
}

View File

@@ -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<MdPbStoragevehicleinfoMapper, MdPbStoragevehicleinfo> implements IMdPbStoragevehicleinfoService {
@Autowired
private ISysDictService dictService;
@Autowired
private MdPbStoragevehicleinfoMapper mdPbStoragevehicleinfoMapper;
@Override
public IPage<MdPbStoragevehicleinfo> queryAll(Map whereJson, PageQuery page) {
@@ -149,4 +152,13 @@ public class MdPbStoragevehicleinfoServiceImpl extends ServiceImpl<MdPbStorageve
);
return one.getStoragevehicle_type();
}
@Override
public void printLabel(Set<String> ids) {
List<MdPbStoragevehicleinfo> mdPbStoragevehicleinfos = mdPbStoragevehicleinfoMapper.selectBatchIds(ids);
for (MdPbStoragevehicleinfo info : mdPbStoragevehicleinfos) {
}
}
}

View File

@@ -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<Purchasemst> {
List<Purchasemst> selectByBillId(@Param("bill_id") String billId);
List<PurchaseMatInfoVo> selectByOrderNo(@Param("orderNo") String orderNo);
}

View File

@@ -31,5 +31,21 @@
FROM v_uc_cgrk06
WHERE billid = #{bill_id}
</select>
<select id="selectByOrderNo"
resultType="org.nl.wms.pda_manage.ios_manage.purchase.service.vo.PurchaseMatInfoVo">
SELECT
billid,
orderNo,
itemNo,
categoryCode,
categoryName,
houseCode sect_code,
batchNo,
skuCode,
skuName,
qty
FROM v_uc_cgrk06
WHERE orderNo = #{orderNo}
</select>
</mapper>

View File

@@ -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());
}

View File

@@ -33,6 +33,13 @@ public class InboundPdaController {
List<PurchaseMatInfoVo> list = inboundPdaService.getInfoByCode(code);
return PdaResponse.requestParamOk(list);
}
@GetMapping("/getInfoByReceive")
@Log("PDA根据条码查询采购入库单的物料信息")
@SaIgnore
public PdaResponse getInfoByReceive(@RequestParam String code) {
List<PurchaseMatInfoVo> list = inboundPdaService.getInfoByReceive(code);
return PdaResponse.requestParamOk(list);
}
@PostMapping("/groupPlate")
@Log("PDA提交组盘")

View File

@@ -22,4 +22,6 @@ public interface InboundPdaService {
void submitGroupPlateInbound(GroupPlateInboundDto dto, Boolean subTask);
void submitManualInbound(ManualInboundDto dto);
List<PurchaseMatInfoVo> getInfoByReceive(String code);
}

View File

@@ -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<GroupPlate> inStockGps = iMdPbGroupplateService.list(new LambdaQueryWrapper<GroupPlate>()
.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<Structattr>()
.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<AddInvParam> 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<GroupPlate> inStockGps = iMdPbGroupplateService.list(new LambdaQueryWrapper<GroupPlate>()
// .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<Structattr>()
// .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<AddInvParam> 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<PurchaseMatInfoVo> getInfoByReceive(String code) {
if (StrUtil.isEmptyIfStr(code)){
throw new BadRequestException("获取单据失败:参数为空");
}
Map<String, Object> parseMap = parseCode(code);
List<PurchaseMatInfoVo> 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<String,Object> parseCode(String code){
String[] parts = code.split("#", -1);
log.info("采购单入库条码解析结果:{}", Arrays.toString(parts));

View File

@@ -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<PurchasemstMapper, Purchase
@Override
public void print(Set<String> ids) {
String ip = sysParamService.findByCode(SysParamConstant.PRINTER_IP).getValue();
String port = sysParamService.findByCode(SysParamConstant.PRINTER_PORT).getValue();
List<Purchasemst> mstList = purchasemstMapper.selectBatchIds(ids);
if (ObjectUtil.isEmpty(mstList)) {
throw new BadRequestException("未找到选中的单据");
}
StringBuilder allZpl = new StringBuilder();
int labelCount = 0;
for (Purchasemst mst : mstList) {
List<Purchasedtl> dtlList = purchasedtlMapper.selectList(
new LambdaQueryWrapper<Purchasedtl>()
.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

View File

@@ -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("~", "~~~");
}
}

View File

@@ -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<AcsTaskDto> 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<SchBaseTask>()

View File

@@ -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<SchBasePoint>()
.eq(SchBasePoint::getPoint_code, pointCode1));
SchBasePoint point2 = iSchBasePointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
.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());

View File

@@ -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<SchBasePoint>()
.eq(SchBasePoint::getPoint_code, pointCode1));
SchBasePoint point2 = iSchBasePointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
.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());

View File

@@ -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<Purchasedtl> list = purchasedtlService.list(new LambdaQueryWrapper<Purchasedtl>()
.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 {