feat: 添加功能
This commit is contained in:
parent
79b3685830
commit
03dc0985de
|
|
@ -19,12 +19,10 @@ import com.nflg.wms.common.pojo.qo.DeliverNormalOrderSearchQO;
|
|||
import com.nflg.wms.common.pojo.vo.DeliverNormalOrderVO;
|
||||
import com.nflg.wms.common.util.UserUtil;
|
||||
import com.nflg.wms.common.util.VUtil;
|
||||
import com.nflg.wms.repository.entity.WmsDeliverNormalOrder;
|
||||
import com.nflg.wms.repository.entity.WmsDeliverNormalOrderPrint;
|
||||
import com.nflg.wms.repository.entity.WmsNormalPrintOrder;
|
||||
import com.nflg.wms.repository.entity.WmsWorkbench;
|
||||
import com.nflg.wms.repository.service.IWmsDeliverNormalOrderPrintService;
|
||||
import com.nflg.wms.repository.service.IWmsDeliverNormalOrderService;
|
||||
import com.nflg.wms.repository.service.IWmsWorkbenchService;
|
||||
import com.nflg.wms.repository.service.WmsNormalPrintOrderService;
|
||||
import com.nflg.wms.starter.BaseController;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
|
|
@ -44,21 +42,18 @@ import java.util.*;
|
|||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 常规送货单订单管理
|
||||
* 普通物料订单管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/deliver/order/normal")
|
||||
public class NormalDeliverOrderController extends BaseController {
|
||||
public class NormalOrderController extends BaseController {
|
||||
|
||||
@Resource
|
||||
private IWmsDeliverNormalOrderService deliverNormalOrderService;
|
||||
private WmsNormalPrintOrderService deliverNormalOrderService;
|
||||
|
||||
@Resource
|
||||
private IWmsWorkbenchService workbenchService;
|
||||
|
||||
@Resource
|
||||
private IWmsDeliverNormalOrderPrintService deliverNormalOrderPrintService;
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*/
|
||||
|
|
@ -77,16 +72,16 @@ public class NormalDeliverOrderController extends BaseController {
|
|||
List<Long> ids= request.getItems().stream().map(DeliverNormalOrderSaveItemQO::getId).filter(Objects::nonNull).toList();
|
||||
String orderNo;
|
||||
if (CollectionUtil.isNotEmpty(ids)) {
|
||||
Set<String> orderNos = deliverNormalOrderService.lambdaQuery().select(WmsDeliverNormalOrder::getOrderNo).in(WmsDeliverNormalOrder::getId).list().stream().map(WmsDeliverNormalOrder::getOrderNo).collect(Collectors.toSet());
|
||||
Set<String> orderNos = deliverNormalOrderService.lambdaQuery().select(WmsNormalPrintOrder::getOrderNo).in(WmsNormalPrintOrder::getId).list().stream().map(WmsNormalPrintOrder::getOrderNo).collect(Collectors.toSet());
|
||||
VUtil.trueThrowBusinessError(orderNos.size() > 1).throwMessage("单据号不一致");
|
||||
orderNo = orderNos.iterator().next();
|
||||
} else {
|
||||
orderNo = getDeliverNormalOrderNo();
|
||||
}
|
||||
List<WmsDeliverNormalOrder> forAdd=new ArrayList<>();
|
||||
List<WmsDeliverNormalOrder> forUpdate=new ArrayList<>();
|
||||
List<WmsNormalPrintOrder> forAdd=new ArrayList<>();
|
||||
List<WmsNormalPrintOrder> forUpdate=new ArrayList<>();
|
||||
request.getItems().forEach(it -> {
|
||||
WmsDeliverNormalOrder item= Convert.convert(WmsDeliverNormalOrder.class, it);
|
||||
WmsNormalPrintOrder item= Convert.convert(WmsNormalPrintOrder.class, it);
|
||||
item.setWorkbenchId(workbenches.stream().filter(w->Objects.equals(w.getNo(),it.getWorkbenchNo())).findFirst().get().getId());
|
||||
if (Objects.isNull(item.getId())){
|
||||
item.setOrderNo(orderNo);
|
||||
|
|
@ -154,19 +149,11 @@ public class NormalDeliverOrderController extends BaseController {
|
|||
// .setBatchNo("TEST00001")
|
||||
// );
|
||||
List<DeliverNormalOrderItemDTO> datas = new ArrayList<>();
|
||||
List<WmsDeliverNormalOrderPrint> prints=new ArrayList<>();
|
||||
for (DeliverNormalOrderVO order : orders) {
|
||||
WmsDeliverNormalOrderPrint print=new WmsDeliverNormalOrderPrint();
|
||||
print.setDeliverId(order.getId());
|
||||
print.setBatchNum(order.getBatchNum());
|
||||
print.setMinPackageNum(order.getMinPackageNum());
|
||||
print.setLableNum(order.getLableNum());
|
||||
print.setNo(NoUtil.getForOrderPrintNo());
|
||||
prints.add(print);
|
||||
for (int i = 0; i < order.getLableNum(); i++) {
|
||||
DeliverNormalOrderItemDTO dto = Convert.convert(DeliverNormalOrderItemDTO.class, order);
|
||||
dto.setIndex(i);
|
||||
dto.setPrintNo(print.getNo() + "-" + i);
|
||||
dto.setPrintNo(order.getId() + "-" + i);
|
||||
if (i == order.getLableNum() - 1) {
|
||||
dto.setPrintNum(order.getBatchNum().divideAndRemainder(order.getMinPackageNum())[1]);
|
||||
} else {
|
||||
|
|
@ -176,7 +163,6 @@ public class NormalDeliverOrderController extends BaseController {
|
|||
datas.add(dto);
|
||||
}
|
||||
}
|
||||
deliverNormalOrderPrintService.saveBatch(prints);
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
variables.put("list", datas);
|
||||
String html = ThymeleafUtil.generator("/template/qrcode/", "dp", ".html", variables);
|
||||
|
|
@ -14,8 +14,9 @@ import cn.idev.excel.metadata.data.WriteCellData;
|
|||
import cn.idev.excel.write.metadata.WriteSheet;
|
||||
import cn.idev.excel.write.metadata.fill.FillConfig;
|
||||
import com.nflg.wms.admin.pojo.document.PackageMaterialScanRecord;
|
||||
import com.nflg.wms.admin.pojo.document.PackageMaterialScanRecordItem;
|
||||
import com.nflg.wms.admin.pojo.dto.SAPMaterialInfoInOrderDTO;
|
||||
import com.nflg.wms.admin.pojo.dto.ZIM003DTO;
|
||||
import com.nflg.wms.admin.pojo.dto.ZIM003Item1DTO;
|
||||
import com.nflg.wms.admin.repository.PackageMaterialScanRecordRepository;
|
||||
import com.nflg.wms.admin.service.SapService;
|
||||
import com.nflg.wms.admin.util.NoUtil;
|
||||
|
|
@ -104,9 +105,18 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
@Resource
|
||||
private IWmsInTaskService inTaskService;
|
||||
|
||||
@Resource
|
||||
private IWmsInTaskItemService inTaskItemService;
|
||||
|
||||
@Resource
|
||||
private IUserSupplierService userSupplierService;
|
||||
|
||||
@Resource
|
||||
private IWmsInventoryService inventoryService;
|
||||
|
||||
@Resource
|
||||
private IWmsStorageService storageService;
|
||||
|
||||
/**
|
||||
* 搜索SAP订单
|
||||
* @param request 请求参数
|
||||
|
|
@ -245,6 +255,7 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
|
||||
/**
|
||||
* 搜索
|
||||
* @param request 请求参数
|
||||
*/
|
||||
@PostMapping("search")
|
||||
public ApiResult<PageData<DeliverStructuralPackageOrderVO>> search(@Valid @RequestBody StructuralPackageOrderSearchQO request) {
|
||||
|
|
@ -253,7 +264,6 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
|
||||
/**
|
||||
* 根据单据号获取列表
|
||||
*
|
||||
* @param orderNo 单据号
|
||||
*/
|
||||
@GetMapping("getList")
|
||||
|
|
@ -295,6 +305,7 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
|
||||
/**
|
||||
* 删除
|
||||
* @param ids 要删除的id列表
|
||||
*/
|
||||
@PostMapping("delete")
|
||||
public ApiResult<Void> delete(@Valid @RequestBody @NotEmpty List<Long> ids) {
|
||||
|
|
@ -304,6 +315,7 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
|
||||
/**
|
||||
* 根据订单状态搜索
|
||||
* @param request 请求参数
|
||||
*/
|
||||
@PostMapping("searchByState")
|
||||
public ApiResult<PageData<DeliverStructuralPackageOrderExtendVO>> searchByState(@Valid @RequestBody StructuralPackageOrderSearchByStateQO request) {
|
||||
|
|
@ -312,7 +324,6 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
|
||||
/**
|
||||
* 导出选中的id列表
|
||||
*
|
||||
* @param ids id列表
|
||||
*/
|
||||
@PostMapping("exportByIds")
|
||||
|
|
@ -323,7 +334,6 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
|
||||
/**
|
||||
* 导出搜索结果
|
||||
*
|
||||
* @param request 搜索参数
|
||||
*/
|
||||
@PostMapping("exportSearchByState")
|
||||
|
|
@ -337,7 +347,6 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
|
||||
/**
|
||||
* 获取托盘零件列表
|
||||
*
|
||||
* @param id 托盘id
|
||||
*/
|
||||
@GetMapping("getItems")
|
||||
|
|
@ -347,7 +356,6 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
|
||||
/**
|
||||
* 导出托盘零件列表
|
||||
*
|
||||
* @param id 托盘id
|
||||
*/
|
||||
@PostMapping("exportItems")
|
||||
|
|
@ -358,7 +366,6 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
|
||||
/**
|
||||
* 导出老鼠图PDF
|
||||
*
|
||||
* @param id 托盘id
|
||||
*/
|
||||
@GetMapping("exportPdf")
|
||||
|
|
@ -401,7 +408,6 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
|
||||
/**
|
||||
* 导出零件标签PDF
|
||||
*
|
||||
* @param id 托盘id
|
||||
*/
|
||||
@GetMapping("exportItemPdf")
|
||||
|
|
@ -427,7 +433,6 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
|
||||
/**
|
||||
* 导出托盘标签PDF
|
||||
*
|
||||
* @param id 托盘id
|
||||
*/
|
||||
@GetMapping("exportTrayPdf")
|
||||
|
|
@ -444,7 +449,6 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
|
||||
/**
|
||||
* 导出齐套标签PDF
|
||||
*
|
||||
* @param id 托盘id
|
||||
*/
|
||||
@GetMapping("exportQiTaoPdf")
|
||||
|
|
@ -490,22 +494,42 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
.eq(WmsStructuralPackageOrderTray::getState, OrderState.Unpackaged.getState())
|
||||
.eq(WmsStructuralPackageOrderTray::getNo, request.getTrayNo())
|
||||
.update()).throwMessage("打包失败,请重试");
|
||||
packageMaterialScanRecordRepository.saveAll(request.getQrCodes().stream().map(qrCode -> {
|
||||
saveMaterialQrCodeScanRecord(request.getQrCodes(),1);
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存物料二维码扫描记录
|
||||
* @param content 二维码内容列表
|
||||
* @param type 类型
|
||||
*/
|
||||
private void saveMaterialQrCodeScanRecord(List<String> content,Integer type){
|
||||
packageMaterialScanRecordRepository.saveAll(content.stream().map(qrCode -> {
|
||||
List<String> qrContents = StrUtil.split(qrCode, "^");
|
||||
if (CollectionUtil.isEmpty(qrContents)) {
|
||||
return null;
|
||||
qrContents=StrUtil.split(qrContents.get(1), "_");
|
||||
return new PackageMaterialScanRecord()
|
||||
.setUniqNo(qrCode)
|
||||
.setContent(qrCode)
|
||||
.setMaterialNo(qrContents.get(0))
|
||||
.setTrayNo(qrContents.get(1))
|
||||
.setType(type)
|
||||
.setNum(qrContents.get(2))
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now());
|
||||
}else {
|
||||
List<String> datas = StrUtil.split(qrContents.get(1), "_");
|
||||
return new PackageMaterialScanRecord()
|
||||
.setUniqNo(qrContents.get(0))
|
||||
.setContent(qrCode)
|
||||
.setMaterialNo(datas.get(0))
|
||||
.setTrayNo(datas.get(1))
|
||||
.setType(type)
|
||||
.setNum(datas.get(2))
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now());
|
||||
}
|
||||
List<String> datas = StrUtil.split(qrContents.get(1), "_");
|
||||
return new PackageMaterialScanRecord()
|
||||
.setUniqNo(qrContents.get(0))
|
||||
.setContent(qrContents.get(1))
|
||||
.setMaterialNo(datas.get(0))
|
||||
.setRecords(List.of(new PackageMaterialScanRecordItem()
|
||||
.setType(1)
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now())));
|
||||
}).toList());
|
||||
return ApiResult.success();
|
||||
}).filter(Objects::nonNull).toList());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -569,6 +593,15 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
return ApiResult.success(structuralPackageDeliverOrderService.search(request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取送货单详情信息
|
||||
* @param id 送货单ID
|
||||
*/
|
||||
@GetMapping("getDeliverOrderInfo")
|
||||
public ApiResult<List<DeliverStructuralPackageOrderVO>> getDeliverOrderInfo(@Valid @RequestParam @NotNull Long id){
|
||||
return ApiResult.success(structuralPackageDeliverOrderService.getInfo(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出送货单
|
||||
* @param id 送货单id
|
||||
|
|
@ -685,24 +718,102 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
.eq(WmsStructuralPackageOrderTray::getOrderId, request.getId())
|
||||
.eq(WmsStructuralPackageOrderTray::getState, OrderState.InTransit.getState())
|
||||
.update();
|
||||
structuralPackageDeliverOrderService.updateStateByOrderId(request.getId());
|
||||
//创建上架任务
|
||||
VUtil.trueThrowBusinessError(!inTaskService.generateTask(List.of(new WmsInTaskItem()
|
||||
.setPoNum(order.getExternalOrderNo())
|
||||
.setPoLineNumber(order.getRowNo())
|
||||
.setLineNumber(String.valueOf(order.getId()))
|
||||
.setNoteNum(structuralPackageDeliverOrderService.getNoByOrderId(request.getId()))
|
||||
.setItemCode(order.getPackageNo())
|
||||
.setItemName(order.getPackageDesc())
|
||||
.setUnit("套")
|
||||
.setIsQuality(false)
|
||||
.setUnqualifiedQty(BigDecimal.ZERO)
|
||||
.setQualifiedQty(BigDecimal.valueOf(order.getNum()))
|
||||
.setFactory("1010")
|
||||
.setDataStatus((short)0)
|
||||
.setOperationUserId(UserUtil.getUserId())
|
||||
.setOperationUserName(UserUtil.getUserName())
|
||||
.setBatchNumber(order.getModelNo())), (short) 1))
|
||||
.setPoNum(order.getExternalOrderNo())
|
||||
.setPoLineNumber(order.getRowNo())
|
||||
.setLineNumber(String.valueOf(order.getId()))
|
||||
.setNoteNum(structuralPackageDeliverOrderService.getNoByOrderId(request.getId()))
|
||||
.setItemCode(order.getPackageNo())
|
||||
.setItemName(order.getPackageDesc())
|
||||
.setUnit("套")
|
||||
.setIsQuality(false)
|
||||
.setUnqualifiedQty(BigDecimal.ZERO)
|
||||
.setQualifiedQty(BigDecimal.valueOf(order.getNum()))
|
||||
.setFactory("1010")
|
||||
.setDataStatus((short) 0)
|
||||
.setReceivedWarehouse(storageService.getWarehouseNo("1010",order.getPackageNo()))
|
||||
.setOperationUserId(UserUtil.getUserId())
|
||||
.setOperationUserName(UserUtil.getUserName())
|
||||
.setBatchNumber(order.getModelNo())), (short) 1))
|
||||
.throwMessage("创建上架任务失败");
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 搜索上架任务列表(PDA使用)
|
||||
* @param request 请求参数
|
||||
*/
|
||||
@PostMapping("searchIn")
|
||||
public ApiResult<List<InTaskVO>> searchIn(@Valid @RequestBody @NotNull InTaskSearchQO request){
|
||||
return ApiResult.success(inTaskService.searchForIn(request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取上架任务详情(PDA使用)
|
||||
* @param taskNo 上架任务单号
|
||||
*/
|
||||
@GetMapping("getInTaskInfo")
|
||||
public ApiResult<List<InTaskInfoVO>> getInTaskInfo(@Valid @RequestParam @NotNull String taskNo) {
|
||||
List<WmsInTaskItem> list = inTaskItemService.getListForStorage(taskNo);
|
||||
List<InTaskInfoVO> datas = Convert.toList(InTaskInfoVO.class, list);
|
||||
for (InTaskInfoVO item : datas) {
|
||||
SAPSyncFromDTO dto = sapService.getStorage(item.getFactory(), item.getReceivedWarehouse(), item.getItemCode());
|
||||
if (Objects.nonNull(dto)) {
|
||||
item.setBinNos(dto.getBinNos());
|
||||
}
|
||||
}
|
||||
return ApiResult.success(datas);
|
||||
}
|
||||
|
||||
/**
|
||||
* 上架(PDA使用)
|
||||
* @param request 请求参数
|
||||
*/
|
||||
@Transactional
|
||||
@PostMapping("materialStorage")
|
||||
public ApiResult<Void> materialStorage(@Valid @RequestBody @NotNull MaterailStorageQO request) {
|
||||
WmsInTask task=inTaskService.lambdaQuery().eq(WmsInTask::getTaskNumber, request.getTaskNo()).one();
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(task)).throwMessage("任务不存在");
|
||||
inTaskService.storage(request.getTaskNo());
|
||||
List<WmsInTaskItem> datas = inTaskItemService.storage(request);
|
||||
if (CollectionUtil.isNotEmpty(datas)) {
|
||||
inventoryService.saveBatch(datas.stream().map(ti -> {
|
||||
BigDecimal num = request.getItems().stream()
|
||||
.filter(it -> StrUtil.equals(it.getMaterialNo(), ti.getItemCode()))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getNum();
|
||||
BigDecimal total = Objects.isNull(num) ? ti.getQualifiedQty() : ti.getQualifiedQty().subtract(num);
|
||||
SAPMaterialInfoInOrderDTO dto = sapService.getMaterialInfoInOrder(ti.getPoNum(), ti.getSupplierNum(), ti.getItemCode());
|
||||
sapService.zim003(new ZIM003DTO()
|
||||
.setEbeln(dto.getEbeln())
|
||||
.setUsnam(UserUtil.getUserName())
|
||||
.setItem(new ZIM003Item1DTO()
|
||||
.setEBELP(dto.getEbelp())
|
||||
.setMATNR(ti.getItemCode())
|
||||
.setERFMG(String.valueOf(total))
|
||||
.setMEINS("套")
|
||||
.setCHARG(ti.getBatchNumber())
|
||||
.setWERKS(ti.getFactory())
|
||||
.setLGORT(ti.getReceivedWarehouse())
|
||||
.setKZKRI(ti.getIsQuality() ? "1" : "0")
|
||||
)
|
||||
);
|
||||
return new WmsInventory()
|
||||
.setMaterialNo(ti.getItemCode())
|
||||
.setNum(total)
|
||||
.setFactoryNo(ti.getFactory())
|
||||
.setWarehouseNo(ti.getReceivedWarehouse())
|
||||
.setBinNos(ti.getStorageLocation())
|
||||
.setExternalOrderNo(ti.getPoNum())
|
||||
.setRowNo(ti.getPoLineNumber())
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(LocalDateTime.now());
|
||||
}).toList()
|
||||
);
|
||||
}
|
||||
return ApiResult.success();
|
||||
}
|
||||
}
|
||||
|
|
@ -5,7 +5,7 @@ import lombok.experimental.Accessors;
|
|||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
||||
import java.util.List;
|
||||
import java.time.Instant;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
|
|
@ -31,7 +31,37 @@ public class PackageMaterialScanRecord {
|
|||
private String content;
|
||||
|
||||
/**
|
||||
* 扫描记录
|
||||
* 托盘号
|
||||
*/
|
||||
private List<PackageMaterialScanRecordItem> records;
|
||||
}
|
||||
private String trayNo;
|
||||
|
||||
/**
|
||||
* 批次号
|
||||
*/
|
||||
private String batchNo;
|
||||
|
||||
/**
|
||||
* 序列号
|
||||
*/
|
||||
private String serialNo;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
private String num;
|
||||
|
||||
/**
|
||||
* 扫描类型,1:打包
|
||||
*/
|
||||
private Integer type;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private String createBy;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Instant createTime;
|
||||
}
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
package com.nflg.wms.admin.pojo.document;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.springframework.data.annotation.Id;
|
||||
|
||||
import java.time.Instant;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class PackageMaterialScanRecordItem {
|
||||
|
||||
@Id
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 扫描类型,1:打包
|
||||
*/
|
||||
private Integer type;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private String createBy;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Instant createTime;
|
||||
}
|
||||
|
|
@ -18,4 +18,19 @@ public class SAPMaterialInfoInOrderDTO {
|
|||
* 仓库编号
|
||||
*/
|
||||
private String warehouseNo;
|
||||
|
||||
/**
|
||||
* 采购凭证号
|
||||
*/
|
||||
private String ebeln;
|
||||
|
||||
/**
|
||||
* 采购凭证的项目编号
|
||||
*/
|
||||
private String ebelp;
|
||||
|
||||
/**
|
||||
* 打印参数
|
||||
*/
|
||||
private String lbprt;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
package com.nflg.wms.admin.pojo.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class ZIM003DTO {
|
||||
|
||||
/**
|
||||
* 采购凭证号
|
||||
*/
|
||||
private String ebeln;
|
||||
|
||||
/**
|
||||
* 用户名
|
||||
*/
|
||||
private String usnam;
|
||||
|
||||
private ZIM003Item1DTO item;
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
package com.nflg.wms.admin.pojo.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class ZIM003Item1DTO {
|
||||
|
||||
private String EBELP;
|
||||
|
||||
private String MATNR;
|
||||
|
||||
private String ERFMG;
|
||||
|
||||
private String MEINS;
|
||||
|
||||
private String CHARG;
|
||||
|
||||
private String WERKS;
|
||||
|
||||
private String LGORT;
|
||||
|
||||
private String KZKRI;
|
||||
|
||||
private String SERNR;
|
||||
|
||||
private String FLAG;
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@ package com.nflg.wms.admin.service;
|
|||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.nflg.wms.admin.pojo.dto.SAPMaterialInfoInOrderDTO;
|
||||
import com.nflg.wms.admin.pojo.dto.ZIM003DTO;
|
||||
import com.nflg.wms.common.constant.STATE;
|
||||
import com.nflg.wms.common.exception.NflgException;
|
||||
import com.nflg.wms.common.pojo.dto.SAPOrderDTO;
|
||||
|
|
@ -24,6 +25,29 @@ public class SapService {
|
|||
@Resource
|
||||
private JCoRepository repository;
|
||||
|
||||
/**
|
||||
* 扫码入库
|
||||
* @param dto 数据
|
||||
*/
|
||||
public void zim003(ZIM003DTO dto){
|
||||
Map<String, Object> parameters = new HashMap<>();
|
||||
parameters.put("EBELP", dto.getEbeln());
|
||||
parameters.put("USNAM", dto.getUsnam());
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取库存信息
|
||||
* @param factory 工厂编号
|
||||
* @param warehouseNo 仓库编号
|
||||
* @param materialNo 物料编号
|
||||
*/
|
||||
public SAPSyncFromDTO getStorage(String factory, String warehouseNo,String materialNo) {
|
||||
return getStorage(factory, Collections.singletonList(warehouseNo), Collections.singletonList(materialNo), null, null)
|
||||
.stream().findFirst().orElse(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取库存信息
|
||||
* @param factory 工厂编号
|
||||
|
|
@ -89,7 +113,10 @@ public class SapService {
|
|||
tOut.setRow(0);
|
||||
return new SAPMaterialInfoInOrderDTO()
|
||||
.setTransportNum(tOut.getBigDecimal("WSHSL"))
|
||||
.setWarehouseNo(tOut.getString("LGORT"));
|
||||
.setWarehouseNo(tOut.getString("LGORT"))
|
||||
.setEbeln(tOut.getString("EBELN"))
|
||||
.setEbelp(tOut.getString("EBELP"))
|
||||
.setLbprt(tOut.getString("LBPRT"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package com.nflg.wms.common.pojo.qo;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
|
@ -10,12 +9,6 @@ public class DeliverNormalOrderSaveItemQO {
|
|||
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 订单类型,0:采购单;1:送货单
|
||||
*/
|
||||
@NotNull
|
||||
private Integer type;
|
||||
|
||||
/**
|
||||
* 送货单号
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
package com.nflg.wms.common.pojo.qo;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class InTaskSearchQO {
|
||||
|
||||
/**
|
||||
* 任务来源 1、钢构包送货单 2、普通物料送货单
|
||||
*/
|
||||
@NotNull
|
||||
private short taskFrom;
|
||||
|
||||
/**
|
||||
* 任务单号或原始单号
|
||||
*/
|
||||
private String no;
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
package com.nflg.wms.common.pojo.qo;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class MaterailStorageItemQO {
|
||||
|
||||
/**
|
||||
* 物料编号
|
||||
*/
|
||||
@NotBlank
|
||||
private String materialNo;
|
||||
|
||||
/**
|
||||
* 储位列表
|
||||
*/
|
||||
@NotEmpty
|
||||
private List<String> binNos;
|
||||
|
||||
/**
|
||||
* 越库数量
|
||||
*/
|
||||
private BigDecimal num=BigDecimal.ZERO;
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package com.nflg.wms.common.pojo.qo;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class MaterailStorageQO {
|
||||
|
||||
/**
|
||||
* 上架任务单号
|
||||
*/
|
||||
@NotBlank
|
||||
private String taskNo;
|
||||
|
||||
/**
|
||||
* 物料储位设置
|
||||
*/
|
||||
@NotEmpty
|
||||
private List<MaterailStorageItemQO> items;
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
package com.nflg.wms.common.pojo.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
public class InTaskInfoVO {
|
||||
|
||||
/**
|
||||
* 子任务id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 采购订单号
|
||||
*/
|
||||
private String poNum;
|
||||
|
||||
/**
|
||||
* 采购订单行号
|
||||
*/
|
||||
private String poLineNumber;
|
||||
|
||||
/**
|
||||
* 工厂
|
||||
*/
|
||||
private String factory;
|
||||
|
||||
/**
|
||||
* 送货单号
|
||||
*/
|
||||
private String noteNum;
|
||||
|
||||
/**
|
||||
* 物料编号
|
||||
*/
|
||||
private String itemCode;
|
||||
|
||||
/**
|
||||
* 物料描述
|
||||
*/
|
||||
private String itemName;
|
||||
|
||||
/**
|
||||
* 上架数量
|
||||
*/
|
||||
private BigDecimal qualifiedQty;
|
||||
|
||||
/**
|
||||
* 上架仓库
|
||||
*/
|
||||
private String receivedWarehouse;
|
||||
|
||||
/**
|
||||
* 上架储位
|
||||
*/
|
||||
private String binNos;
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package com.nflg.wms.common.pojo.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
public class InTaskVO {
|
||||
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 任务单号
|
||||
*/
|
||||
private String taskNumber;
|
||||
|
||||
/**
|
||||
* 任务来源 1、钢构包送货单 2、普通物料送货单
|
||||
*/
|
||||
private Short taskFrom;
|
||||
|
||||
/**
|
||||
* 任务源单号
|
||||
*/
|
||||
private String orderNumber;
|
||||
|
||||
/**
|
||||
* 任务时间
|
||||
*/
|
||||
private LocalDateTime updateTime;
|
||||
}
|
||||
|
|
@ -49,12 +49,12 @@ public class StructuralPackageDeliverOrderVO {
|
|||
/**
|
||||
* 供应商代码
|
||||
*/
|
||||
private Long supplierCode;
|
||||
private String supplierCode;
|
||||
|
||||
/**
|
||||
* 供应商名称
|
||||
*/
|
||||
private Long supplierName;
|
||||
private String supplierName;
|
||||
|
||||
/**
|
||||
* 工厂编号
|
||||
|
|
|
|||
|
|
@ -34,8 +34,14 @@ public class WmsInTaskItem implements Serializable {
|
|||
|
||||
private String taskNumber;
|
||||
|
||||
/**
|
||||
* 采购订单行号
|
||||
*/
|
||||
private String poLineNumber;
|
||||
|
||||
/**
|
||||
* 采购订单号
|
||||
*/
|
||||
private String poNum;
|
||||
|
||||
/**
|
||||
|
|
@ -148,5 +154,10 @@ public class WmsInTaskItem implements Serializable {
|
|||
*/
|
||||
private LocalDateTime periodTime;
|
||||
|
||||
private String inspectionOrder;
|
||||
private String inspectionOrder;
|
||||
|
||||
/**
|
||||
* 供应商编码
|
||||
*/
|
||||
private String supplierNum;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import java.time.LocalDateTime;
|
|||
|
||||
/**
|
||||
* <p>
|
||||
* 送货单(普通物料)打印记录
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
|
|
@ -24,8 +24,8 @@ import java.time.LocalDateTime;
|
|||
@Setter
|
||||
@ToString
|
||||
@Accessors(chain = true)
|
||||
@TableName("wms_deliver_normal_order_print")
|
||||
public class WmsDeliverNormalOrderPrint implements Serializable {
|
||||
@TableName("wms_inventory")
|
||||
public class WmsInventory implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
|
@ -33,29 +33,29 @@ public class WmsDeliverNormalOrderPrint implements Serializable {
|
|||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据id
|
||||
* 物料编号
|
||||
*/
|
||||
private Long deliverId;
|
||||
private String materialNo;
|
||||
|
||||
/**
|
||||
* 唯一码
|
||||
* 工厂编号
|
||||
*/
|
||||
private String no;
|
||||
private String factoryNo;
|
||||
|
||||
/**
|
||||
* 本批数量
|
||||
* 仓库编号
|
||||
*/
|
||||
private BigDecimal batchNum;
|
||||
private String warehouseNo;
|
||||
|
||||
/**
|
||||
* 最小包装数量
|
||||
* 储位编号,逗号分隔
|
||||
*/
|
||||
private BigDecimal minPackageNum;
|
||||
private String binNos;
|
||||
|
||||
/**
|
||||
* 标签数量
|
||||
* 数量
|
||||
*/
|
||||
private Integer lableNum;
|
||||
private BigDecimal num;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
|
|
@ -66,4 +66,24 @@ public class WmsDeliverNormalOrderPrint implements Serializable {
|
|||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 最后更新人
|
||||
*/
|
||||
private String updateBy;
|
||||
|
||||
/**
|
||||
* 最后更新时间
|
||||
*/
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
/**
|
||||
* 采购单订单号
|
||||
*/
|
||||
private String externalOrderNo;
|
||||
|
||||
/**
|
||||
* 采购单订单行号
|
||||
*/
|
||||
private String rowNo;
|
||||
}
|
||||
|
|
@ -24,8 +24,8 @@ import java.time.LocalDateTime;
|
|||
@Setter
|
||||
@ToString
|
||||
@Accessors(chain = true)
|
||||
@TableName("wms_deliver_normal_order")
|
||||
public class WmsDeliverNormalOrder implements Serializable {
|
||||
@TableName("wms_normal_print_order")
|
||||
public class WmsNormalPrintOrder implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
|
@ -42,23 +42,18 @@ public class WmsDeliverNormalOrder implements Serializable {
|
|||
*/
|
||||
private Long supplierId;
|
||||
|
||||
/**
|
||||
* 订单类型,0:采购单;1:送货单
|
||||
*/
|
||||
private Integer type;
|
||||
|
||||
/**
|
||||
* 送货单号
|
||||
*/
|
||||
private String externalDeliverNo;
|
||||
|
||||
/**
|
||||
* 订单号
|
||||
* 采购单订单号
|
||||
*/
|
||||
private String externalOrderNo;
|
||||
|
||||
/**
|
||||
* 订单行号
|
||||
* 采购单订单行号
|
||||
*/
|
||||
private String rowNo;
|
||||
|
||||
|
|
@ -37,7 +37,7 @@ public class WmsStructuralPackageDeliverOrder implements Serializable {
|
|||
private String no;
|
||||
|
||||
/**
|
||||
* 状态,0:待收货;1:已收货;2-已完结;
|
||||
* 状态,0:待收货;1:收货中;2:已收货
|
||||
*/
|
||||
private Short state;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,16 +0,0 @@
|
|||
package com.nflg.wms.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.nflg.wms.repository.entity.WmsDeliverNormalOrderPrint;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 送货单(普通物料)打印记录 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2025
|
||||
*/
|
||||
public interface WmsDeliverNormalOrderPrintMapper extends BaseMapper<WmsDeliverNormalOrderPrint> {
|
||||
|
||||
}
|
||||
|
|
@ -1,8 +1,12 @@
|
|||
package com.nflg.wms.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.nflg.wms.common.pojo.qo.InTaskSearchQO;
|
||||
import com.nflg.wms.common.pojo.vo.InTaskVO;
|
||||
import com.nflg.wms.repository.entity.WmsInTask;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
|
|
@ -13,4 +17,5 @@ import com.nflg.wms.repository.entity.WmsInTask;
|
|||
*/
|
||||
public interface WmsInTaskMapper extends BaseMapper<WmsInTask> {
|
||||
|
||||
List<InTaskVO> searchForIn(InTaskSearchQO request);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
package com.nflg.wms.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.nflg.wms.repository.entity.WmsInventory;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2025
|
||||
*/
|
||||
public interface WmsInventoryMapper extends BaseMapper<WmsInventory> {
|
||||
|
||||
}
|
||||
|
|
@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.nflg.wms.common.pojo.qo.DeliverNormalOrderSearchQO;
|
||||
import com.nflg.wms.common.pojo.vo.DeliverNormalOrderVO;
|
||||
import com.nflg.wms.repository.entity.WmsDeliverNormalOrder;
|
||||
import com.nflg.wms.repository.entity.WmsNormalPrintOrder;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -17,7 +17,7 @@ import java.util.List;
|
|||
* @author 代码生成器生成
|
||||
* @since 2025
|
||||
*/
|
||||
public interface WmsDeliverNormalOrderMapper extends BaseMapper<WmsDeliverNormalOrder> {
|
||||
public interface WmsNormalPrintOrderMapper extends BaseMapper<WmsNormalPrintOrder> {
|
||||
|
||||
IPage<DeliverNormalOrderVO> search(DeliverNormalOrderSearchQO request, Page<?> page);
|
||||
|
||||
|
|
@ -25,4 +25,6 @@ public interface WmsStorageMapper extends BaseMapper<WmsStorage> {
|
|||
List<StorageVO> getList(List<Long> ids);
|
||||
|
||||
List<StorageVO> searchNonPage(@Param("request") StorageSearchQO request);
|
||||
|
||||
String getWarehouseNo(String factoryNo, String materialNo);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.nflg.wms.common.pojo.qo.StructuralPackageDeliverOrderSearchQO;
|
||||
import com.nflg.wms.common.pojo.vo.DeliverStructuralPackageOrderVO;
|
||||
import com.nflg.wms.common.pojo.vo.StructuralPackageDeliverOrderVO;
|
||||
import com.nflg.wms.repository.entity.WmsStructuralPackageDeliverOrder;
|
||||
|
||||
|
|
@ -24,4 +25,8 @@ public interface WmsStructuralPackageDeliverOrderMapper extends BaseMapper<WmsSt
|
|||
List<Long> getIdsByExternalOrderNo(String externalOrderNo);
|
||||
|
||||
String getNoByOrderId(Long id);
|
||||
|
||||
boolean allReceived(Long deliverId);
|
||||
|
||||
List<DeliverStructuralPackageOrderVO> getInfo(Long id);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,16 +0,0 @@
|
|||
package com.nflg.wms.repository.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.nflg.wms.repository.entity.WmsDeliverNormalOrderPrint;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 送货单(普通物料)打印记录 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2025
|
||||
*/
|
||||
public interface IWmsDeliverNormalOrderPrintService extends IService<WmsDeliverNormalOrderPrint> {
|
||||
|
||||
}
|
||||
|
|
@ -1,7 +1,10 @@
|
|||
package com.nflg.wms.repository.service;
|
||||
|
||||
import com.nflg.wms.repository.entity.WmsInTaskItem;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.nflg.wms.common.pojo.qo.MaterailStorageQO;
|
||||
import com.nflg.wms.repository.entity.WmsInTaskItem;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -14,4 +17,8 @@ import java.util.List;
|
|||
* @since 2025
|
||||
*/
|
||||
public interface IWmsInTaskItemService extends IService<WmsInTaskItem> {
|
||||
|
||||
List<WmsInTaskItem> getListForStorage(@Valid @NotNull String taskNo);
|
||||
|
||||
List<WmsInTaskItem> storage(@Valid @NotNull MaterailStorageQO request);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,13 @@
|
|||
package com.nflg.wms.repository.service;
|
||||
|
||||
import com.nflg.wms.repository.entity.WmsInTask;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.nflg.wms.common.pojo.qo.InTaskSearchQO;
|
||||
import com.nflg.wms.common.pojo.vo.InTaskVO;
|
||||
import com.nflg.wms.repository.entity.WmsInTask;
|
||||
import com.nflg.wms.repository.entity.WmsInTaskItem;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -23,4 +28,8 @@ public interface IWmsInTaskService extends IService<WmsInTask> {
|
|||
* @return
|
||||
*/
|
||||
boolean generateTask(List<WmsInTaskItem> tasks, short taskSource) ;
|
||||
|
||||
List<InTaskVO> searchForIn(@Valid @NotNull InTaskSearchQO request);
|
||||
|
||||
void storage(@NotBlank String taskNo);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
package com.nflg.wms.repository.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.nflg.wms.repository.entity.WmsInventory;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2025
|
||||
*/
|
||||
public interface IWmsInventoryService extends IService<WmsInventory> {
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
package com.nflg.wms.repository.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.nflg.wms.repository.entity.WmsNormalPrintOrder;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 送货单(普通物料) 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2025
|
||||
*/
|
||||
public interface IWmsNormalPrintOrderService extends IService<WmsNormalPrintOrder> {
|
||||
|
||||
}
|
||||
|
|
@ -34,4 +34,6 @@ public interface IWmsStorageService extends IService<WmsStorage> {
|
|||
List<StorageVO> getList(List<Long> ids);
|
||||
|
||||
List<StorageVO> searchNonPage(@Valid StorageSearchQO request);
|
||||
|
||||
String getWarehouseNo(String factoryNo,String materialNo);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,11 +3,14 @@ package com.nflg.wms.repository.service;
|
|||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.nflg.wms.common.pojo.qo.StructuralPackageDeliverOrderSearchQO;
|
||||
import com.nflg.wms.common.pojo.vo.DeliverStructuralPackageOrderVO;
|
||||
import com.nflg.wms.common.pojo.vo.StructuralPackageDeliverOrderVO;
|
||||
import com.nflg.wms.repository.entity.WmsStructuralPackageDeliverOrder;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务类
|
||||
|
|
@ -21,4 +24,8 @@ public interface IWmsStructuralPackageDeliverOrderService extends IService<WmsSt
|
|||
IPage<StructuralPackageDeliverOrderVO> search(@Valid @NotNull StructuralPackageDeliverOrderSearchQO request);
|
||||
|
||||
String getNoByOrderId(@NotNull Long id);
|
||||
|
||||
void updateStateByOrderId(@NotNull Long orderId);
|
||||
|
||||
List<DeliverStructuralPackageOrderVO> getInfo(@Valid @NotNull Long id);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.nflg.wms.common.pojo.qo.DeliverNormalOrderSearchQO;
|
||||
import com.nflg.wms.common.pojo.vo.DeliverNormalOrderVO;
|
||||
import com.nflg.wms.repository.entity.WmsDeliverNormalOrder;
|
||||
import com.nflg.wms.repository.entity.WmsNormalPrintOrder;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
|
||||
|
|
@ -18,7 +18,7 @@ import java.util.List;
|
|||
* @author 代码生成器生成
|
||||
* @since 2025
|
||||
*/
|
||||
public interface IWmsDeliverNormalOrderService extends IService<WmsDeliverNormalOrder> {
|
||||
public interface WmsNormalPrintOrderService extends IService<WmsNormalPrintOrder> {
|
||||
|
||||
void delete(@Valid @NotNull Long id);
|
||||
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
package com.nflg.wms.repository.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.nflg.wms.repository.entity.WmsDeliverNormalOrderPrint;
|
||||
import com.nflg.wms.repository.mapper.WmsDeliverNormalOrderPrintMapper;
|
||||
import com.nflg.wms.repository.service.IWmsDeliverNormalOrderPrintService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 送货单(普通物料)打印记录 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2025
|
||||
*/
|
||||
@Service
|
||||
public class WmsDeliverNormalOrderPrintServiceImpl extends ServiceImpl<WmsDeliverNormalOrderPrintMapper, WmsDeliverNormalOrderPrint> implements IWmsDeliverNormalOrderPrintService {
|
||||
|
||||
}
|
||||
|
|
@ -1,10 +1,16 @@
|
|||
package com.nflg.wms.repository.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.nflg.wms.common.pojo.qo.MaterailStorageQO;
|
||||
import com.nflg.wms.repository.entity.WmsInTaskItem;
|
||||
import com.nflg.wms.repository.mapper.WmsInTaskItemMapper;
|
||||
import com.nflg.wms.repository.service.IWmsInTaskItemService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
|
|
@ -17,4 +23,29 @@ import org.springframework.stereotype.Service;
|
|||
@Service
|
||||
public class WmsInTaskItemServiceImpl extends ServiceImpl<WmsInTaskItemMapper, WmsInTaskItem> implements IWmsInTaskItemService {
|
||||
|
||||
@Override
|
||||
public List<WmsInTaskItem> getListForStorage(String taskNo) {
|
||||
return lambdaQuery()
|
||||
.eq(WmsInTaskItem::getTaskNumber, taskNo)
|
||||
.eq(WmsInTaskItem::getDataStatus, 0)
|
||||
.list();
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public List<WmsInTaskItem> storage(MaterailStorageQO request) {
|
||||
return request.getItems().stream().map(item -> {
|
||||
WmsInTaskItem taskItem = lambdaQuery()
|
||||
.eq(WmsInTaskItem::getTaskNumber, request.getTaskNo())
|
||||
.eq(WmsInTaskItem::getDataStatus, 0)
|
||||
.eq(WmsInTaskItem::getItemCode, item.getMaterialNo())
|
||||
.one();
|
||||
if (Objects.nonNull(taskItem)){
|
||||
taskItem.setDataStatus((short) 1);
|
||||
taskItem.setStorageLocation(StrUtil.join(",", item.getBinNos()));
|
||||
updateById(taskItem);
|
||||
}
|
||||
return taskItem;
|
||||
}).filter(Objects::nonNull).toList();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,12 +2,14 @@ package com.nflg.wms.repository.service.impl;
|
|||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.nflg.wms.common.pojo.qo.InTaskSearchQO;
|
||||
import com.nflg.wms.common.pojo.vo.InTaskVO;
|
||||
import com.nflg.wms.repository.entity.WmsInTask;
|
||||
import com.nflg.wms.repository.entity.WmsInTaskItem;
|
||||
import com.nflg.wms.repository.mapper.WmsInTaskMapper;
|
||||
import com.nflg.wms.repository.service.IWmsInTaskItemService;
|
||||
import com.nflg.wms.repository.service.IWmsInTaskService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
|
@ -82,4 +84,19 @@ public class WmsInTaskServiceImpl extends ServiceImpl<WmsInTaskMapper, WmsInTask
|
|||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<InTaskVO> searchForIn(InTaskSearchQO request) {
|
||||
return baseMapper.searchForIn(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void storage(String taskNo) {
|
||||
lambdaUpdate()
|
||||
.set(WmsInTask::getTaskStatus, 2)
|
||||
.set(WmsInTask::getUpdateTime, LocalDateTime.now())
|
||||
.lt(WmsInTask::getTaskStatus, 2)
|
||||
.eq(WmsInTask::getTaskNumber, taskNo)
|
||||
.update();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
package com.nflg.wms.repository.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.nflg.wms.repository.entity.WmsInventory;
|
||||
import com.nflg.wms.repository.mapper.WmsInventoryMapper;
|
||||
import com.nflg.wms.repository.service.IWmsInventoryService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2025
|
||||
*/
|
||||
@Service
|
||||
public class WmsInventoryServiceImpl extends ServiceImpl<WmsInventoryMapper, WmsInventory> implements IWmsInventoryService {
|
||||
|
||||
}
|
||||
|
|
@ -5,9 +5,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.nflg.wms.common.pojo.qo.DeliverNormalOrderSearchQO;
|
||||
import com.nflg.wms.common.pojo.vo.DeliverNormalOrderVO;
|
||||
import com.nflg.wms.repository.entity.WmsDeliverNormalOrder;
|
||||
import com.nflg.wms.repository.mapper.WmsDeliverNormalOrderMapper;
|
||||
import com.nflg.wms.repository.service.IWmsDeliverNormalOrderService;
|
||||
import com.nflg.wms.repository.entity.WmsNormalPrintOrder;
|
||||
import com.nflg.wms.repository.mapper.WmsNormalPrintOrderMapper;
|
||||
import com.nflg.wms.repository.service.WmsNormalPrintOrderService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
|
|
@ -22,7 +22,7 @@ import java.util.List;
|
|||
* @since 2025
|
||||
*/
|
||||
@Service
|
||||
public class WmsDeliverNormalOrderServiceImpl extends ServiceImpl<WmsDeliverNormalOrderMapper, WmsDeliverNormalOrder> implements IWmsDeliverNormalOrderService {
|
||||
public class WmsNormalPrintOrderServiceImpl extends ServiceImpl<WmsNormalPrintOrderMapper, WmsNormalPrintOrder> implements WmsNormalPrintOrderService {
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
|
|
@ -89,4 +89,9 @@ public class WmsStorageServiceImpl extends ServiceImpl<WmsStorageMapper, WmsStor
|
|||
public List<StorageVO> searchNonPage(StorageSearchQO request) {
|
||||
return baseMapper.searchNonPage(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getWarehouseNo(String factoryNo,String materialNo) {
|
||||
return baseMapper.getWarehouseNo(factoryNo,materialNo);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,12 +5,18 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.nflg.wms.common.pojo.qo.StructuralPackageDeliverOrderSearchQO;
|
||||
import com.nflg.wms.common.pojo.vo.DeliverStructuralPackageOrderVO;
|
||||
import com.nflg.wms.common.pojo.vo.StructuralPackageDeliverOrderVO;
|
||||
import com.nflg.wms.common.util.UserUtil;
|
||||
import com.nflg.wms.repository.entity.WmsStructuralPackageDeliverOrder;
|
||||
import com.nflg.wms.repository.entity.WmsStructuralPackageDeliverOrderMap;
|
||||
import com.nflg.wms.repository.mapper.WmsStructuralPackageDeliverOrderMapper;
|
||||
import com.nflg.wms.repository.service.IWmsStructuralPackageDeliverOrderMapService;
|
||||
import com.nflg.wms.repository.service.IWmsStructuralPackageDeliverOrderService;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
|
@ -24,6 +30,9 @@ import java.util.List;
|
|||
@Service
|
||||
public class WmsStructuralPackageDeliverOrderServiceImpl extends ServiceImpl<WmsStructuralPackageDeliverOrderMapper, WmsStructuralPackageDeliverOrder> implements IWmsStructuralPackageDeliverOrderService {
|
||||
|
||||
@Resource
|
||||
private IWmsStructuralPackageDeliverOrderMapService wmsStructuralPackageDeliverOrderMapService;
|
||||
|
||||
@Override
|
||||
public IPage<StructuralPackageDeliverOrderVO> search(StructuralPackageDeliverOrderSearchQO request) {
|
||||
List<Long> externalOrderIds = null;
|
||||
|
|
@ -37,4 +46,20 @@ public class WmsStructuralPackageDeliverOrderServiceImpl extends ServiceImpl<Wms
|
|||
public String getNoByOrderId(Long id) {
|
||||
return baseMapper.getNoByOrderId(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStateByOrderId(Long orderId) {
|
||||
WmsStructuralPackageDeliverOrderMap map=wmsStructuralPackageDeliverOrderMapService.lambdaQuery().eq(WmsStructuralPackageDeliverOrderMap::getOrderId, orderId).one();
|
||||
lambdaUpdate()
|
||||
.set(WmsStructuralPackageDeliverOrder::getState, baseMapper.allReceived(map.getDeliverId())?2:1)
|
||||
.set(WmsStructuralPackageDeliverOrder::getUpdateTime, LocalDateTime.now())
|
||||
.set(WmsStructuralPackageDeliverOrder::getUpdateBy, UserUtil.getUserName())
|
||||
.eq(WmsStructuralPackageDeliverOrder::getId, map.getDeliverId())
|
||||
.update();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DeliverStructuralPackageOrderVO> getInfo(Long id) {
|
||||
return baseMapper.getInfo(id);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,4 +2,12 @@
|
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.nflg.wms.repository.mapper.WmsInTaskMapper">
|
||||
|
||||
<select id="searchForIn" resultType="com.nflg.wms.common.pojo.vo.InTaskVO">
|
||||
SELECT *
|
||||
FROM wms_in_task
|
||||
where task_from=#{taskFrom} and task_status < 2
|
||||
<if test="no != null and no!=''">
|
||||
AND task_number like CONCAT('%', #{no}, '%')
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.nflg.wms.repository.mapper.WmsDeliverNormalOrderPrintMapper">
|
||||
<mapper namespace="com.nflg.wms.repository.mapper.WmsInventoryMapper">
|
||||
|
||||
</mapper>
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.nflg.wms.repository.mapper.WmsDeliverNormalOrderMapper">
|
||||
<mapper namespace="com.nflg.wms.repository.mapper.WmsNormalPrintOrderMapper">
|
||||
<select id="search" resultType="com.nflg.wms.common.pojo.vo.DeliverNormalOrderVO">
|
||||
select o.*,us.supplier_name,us.supplier_code, wb.no as workbench_no
|
||||
from wms_deliver_normal_order o
|
||||
from wms_normal_print_order o
|
||||
left join user_supplier us on o.supplier_id=us.user_id
|
||||
left join wms_workbench wb on o.workbench_id=wb.id
|
||||
<where>
|
||||
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
<select id="getList" resultType="com.nflg.wms.common.pojo.vo.DeliverNormalOrderVO">
|
||||
select o.*,us.supplier_name,us.supplier_code, wb.no as workbench_no
|
||||
from wms_deliver_normal_order o
|
||||
from wms_normal_print_order o
|
||||
left join user_supplier us on o.supplier_id=us.user_id
|
||||
left join wms_workbench wb on o.workbench_id=wb.id
|
||||
where o.id in
|
||||
|
|
@ -68,4 +68,12 @@
|
|||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="getWarehouseNo" resultType="java.lang.String">
|
||||
SELECT wh."no"
|
||||
FROM wms_storage s
|
||||
INNER JOIN wms_warehouse wh ON s.warehouse_id = wh."id"
|
||||
INNER JOIN dictionary_item di ON wh.factory_id = di."id"
|
||||
WHERE s.material_no = #{materialNo} and di."value" = #{factoryNo}
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -42,4 +42,30 @@
|
|||
inner join wms_structural_package_deliver_order_map pdom on pdo.id=pdom.deliver_id
|
||||
where pdom.order_id=#{id}
|
||||
</select>
|
||||
|
||||
<select id="allReceived" resultType="boolean">
|
||||
SELECT EXISTS
|
||||
(
|
||||
SELECT
|
||||
om.*
|
||||
FROM
|
||||
wms_structural_package_deliver_order_map om
|
||||
INNER JOIN wms_structural_package_order_tray ot ON om.order_id = ot.order_id
|
||||
WHERE
|
||||
om.deliver_id = #{deliverId} AND ot."state" != 3
|
||||
)
|
||||
</select>
|
||||
|
||||
<select id="getInfo" resultType="com.nflg.wms.common.pojo.vo.DeliverStructuralPackageOrderVO">
|
||||
SELECT o.*,m.no||wb."no" AS "workbench_code",us.supplier_code,us.supplier_name,sp.order_no AS "package_order_no"
|
||||
,sp."no" AS "package_no",sp."name" AS "package_desc",m."no" AS "model_no"
|
||||
FROM wms_structural_package_order o
|
||||
inner join wms_structural_package_deliver_order_map om on o.id = om.order_id
|
||||
LEFT JOIN wms_workbench wb ON o.workbench_id = wb."id"
|
||||
LEFT JOIN user_supplier us ON o.supplier_id = us.user_id
|
||||
LEFT JOIN wms_structural_package sp ON o.package_id = sp."id"
|
||||
LEFT JOIN wms_model m on o.model_id = m."id"
|
||||
where om.deliver_id = #{id}
|
||||
order by id desc
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ public class CodeGeneratorTest {
|
|||
)
|
||||
.strategyConfig(builder -> {
|
||||
builder
|
||||
.addInclude("wms_srm_material_receipt") //只生成指定表
|
||||
.addInclude("wms_normal_print_order") //只生成指定表
|
||||
.entityBuilder().idType(IdType.ASSIGN_ID)
|
||||
.enableLombok()
|
||||
.enableChainModel()
|
||||
|
|
|
|||
|
|
@ -0,0 +1,64 @@
|
|||
package com.nflg.wms.scheduled.processor;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.nflg.wms.repository.entity.WmsInTaskItem;
|
||||
import com.nflg.wms.repository.service.IWmsInTaskItemService;
|
||||
import com.nflg.wms.scheduled.service.SapService;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Component;
|
||||
import tech.powerjob.worker.core.processor.ProcessResult;
|
||||
import tech.powerjob.worker.core.processor.TaskContext;
|
||||
import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
|
||||
import tech.powerjob.worker.log.OmsLogger;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 同步物料库存信息到SAP
|
||||
*/
|
||||
@Component(value = "SyncStorageToSAPProcessor")
|
||||
public class SyncStorageToSAPProcessor implements BasicProcessor {
|
||||
|
||||
@Resource
|
||||
private SapService sapService;
|
||||
|
||||
@Resource
|
||||
private IWmsInTaskItemService inTaskItemService;
|
||||
|
||||
@Override
|
||||
public ProcessResult process(TaskContext context) {
|
||||
OmsLogger log = context.getOmsLogger();
|
||||
String param = context.getInstanceParams();
|
||||
log.info("任务参数:" + param);
|
||||
List<Long> ids = StrUtil.split(param, ',').stream().map(Long::parseLong).toList();
|
||||
List<WmsInTaskItem> datas = inTaskItemService.lambdaQuery()
|
||||
.in(CollectionUtil.isNotEmpty(ids), WmsInTaskItem::getId, ids)
|
||||
.in(WmsInTaskItem::getDataStatus, List.of(1, 3))
|
||||
.list();
|
||||
log.info("待处理数据数量:" + datas.size());
|
||||
if (CollectionUtil.isNotEmpty(datas)) {
|
||||
for (int i = 0; i < datas.size(); i++) {
|
||||
WmsInTaskItem data = datas.get(i);
|
||||
log.info("({}/{})处理数据:", i + 1, datas.size(), data.getItemCode());
|
||||
try {
|
||||
sapService.saveStorage(data.getFactory(), data.getItemCode(), data.getReceivedWarehouse(), StrUtil.split(data.getStorageLocation(), ","));
|
||||
data.setDataStatus((short) 2);
|
||||
} catch (Exception ex) {
|
||||
data.setDataStatus((short) 3);
|
||||
data.setFailResult(ex.getMessage());
|
||||
log.error("处理数据失败:{}", ex.getMessage());
|
||||
} finally {
|
||||
inTaskItemService.lambdaUpdate()
|
||||
.set(WmsInTaskItem::getDataStatus, data.getDataStatus())
|
||||
.set(WmsInTaskItem::getFailResult, data.getFailResult())
|
||||
.eq(WmsInTaskItem::getId, data.getId())
|
||||
.update();
|
||||
log.info("处理完成");
|
||||
}
|
||||
}
|
||||
}
|
||||
log.info("处理完成");
|
||||
return new ProcessResult(true);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,8 +1,10 @@
|
|||
package com.nflg.wms.scheduled.service;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.nflg.wms.common.pojo.dto.SAPSyncFromDTO;
|
||||
import com.nflg.wms.common.util.VUtil;
|
||||
import com.sap.conn.jco.*;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -20,6 +22,32 @@ public class SapService {
|
|||
@Resource
|
||||
private JCoRepository repository;
|
||||
|
||||
/**
|
||||
* 保存库存
|
||||
* @param factory 工厂编号
|
||||
* @param materialNo 物料编号
|
||||
* @param warehouseNo 仓库编号
|
||||
* @param binNos 储位编号列表
|
||||
*/
|
||||
public void saveStorage(String factory,String materialNo,String warehouseNo,List<String> binNos) throws JCoException {
|
||||
Map<String, Object> parameters = new HashMap<>();
|
||||
parameters.put("WERKS", factory);
|
||||
parameters.put("MATNR", materialNo);
|
||||
parameters.put("LGORT", warehouseNo);
|
||||
parameters.put("LGPBE", StrUtil.join("/",binNos));
|
||||
|
||||
JCoTable tOut = exec("ZWM3A02", parameters);
|
||||
|
||||
if (tOut.getNumRows() > 0){
|
||||
tOut.setRow(0);
|
||||
VUtil.trueThrowBusinessError(StrUtil.equals(tOut.getString("E_TYPE"),"E"))
|
||||
.throwMessage(tOut.getString("E_MSG"));
|
||||
}else {
|
||||
log.error("保存库存失败");
|
||||
VUtil.trueThrowBusinessError(true).throwMessage("保存库存失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取库存信息
|
||||
* @param factory 工厂编号
|
||||
|
|
@ -63,6 +91,10 @@ public class SapService {
|
|||
return result;
|
||||
}
|
||||
|
||||
private JCoTable exec(String functionName, Map<String, Object> parameters) throws JCoException {
|
||||
return exec(functionName, parameters, null);
|
||||
}
|
||||
|
||||
private JCoTable exec(String functionName, Map<String, Object> parameters, Map<String, List<Map<String, Object>>> tables) throws JCoException {
|
||||
JCoFunction function = repository.getFunction(functionName);
|
||||
log.info("SAP ImportParameter:{}", JSONUtil.toJsonStr(parameters));
|
||||
|
|
|
|||
Loading…
Reference in New Issue