添加功能
This commit is contained in:
parent
2937eeeab2
commit
58637851e4
|
|
@ -61,11 +61,6 @@
|
|||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-mail</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cglib</groupId>
|
||||
<artifactId>cglib</artifactId>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package com.nflg.wms.admin.controller;
|
|||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.crypto.digest.DigestUtil;
|
||||
|
|
@ -20,8 +21,10 @@ import com.nflg.wms.common.pojo.ApiResult;
|
|||
import com.nflg.wms.common.pojo.PageData;
|
||||
import com.nflg.wms.common.pojo.dto.PackageMaterialDTO;
|
||||
import com.nflg.wms.common.pojo.dto.SAPOrderDTO;
|
||||
import com.nflg.wms.common.pojo.dto.SAPSyncFromDTO;
|
||||
import com.nflg.wms.common.pojo.qo.*;
|
||||
import com.nflg.wms.common.pojo.vo.*;
|
||||
import com.nflg.wms.common.util.BeanUtil;
|
||||
import com.nflg.wms.common.util.EecExcelUtil;
|
||||
import com.nflg.wms.common.util.UserUtil;
|
||||
import com.nflg.wms.common.util.VUtil;
|
||||
|
|
@ -35,6 +38,7 @@ import jakarta.validation.Valid;
|
|||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
|
@ -47,7 +51,6 @@ import java.io.InputStream;
|
|||
import java.math.BigDecimal;
|
||||
import java.net.URL;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
|
@ -55,6 +58,7 @@ import java.util.stream.Collectors;
|
|||
/**
|
||||
* 钢构件订单管理
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/deliver/order/package")
|
||||
public class StructuralPackageOrderController extends BaseController {
|
||||
|
|
@ -89,6 +93,9 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
@Resource
|
||||
private IWmsStructuralPackageDeliverOrderMapService structuralPackageDeliverOrderMapService;
|
||||
|
||||
@Resource
|
||||
private IWmsStructuralPackageStorageTaskService structuralPackageStorageTaskService;
|
||||
|
||||
/**
|
||||
* 搜索SAP订单
|
||||
* @param request 请求参数
|
||||
|
|
@ -141,7 +148,7 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
.setMaterialDesc(material.getName())
|
||||
.setVersion(material.getVersion())
|
||||
.setWeight(material.getWeight())
|
||||
.setPlanNum(material.getNum().multiply(BigDecimal.valueOf(num)))
|
||||
.setPlanNum(material.getNum()*num)
|
||||
.setImage(material.getImage())
|
||||
);
|
||||
if (Objects.nonNull(material.getWeight())) {
|
||||
|
|
@ -194,7 +201,7 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
.setOrderId(order.getId())
|
||||
.setNo(it.getNo())
|
||||
.setWeight(BigDecimal.ZERO)
|
||||
.setNum(BigDecimal.ZERO)
|
||||
.setNum(0)
|
||||
.setStation(it.getStation())
|
||||
.setTray(it.getTray())).toList();
|
||||
List<WmsStructuralPackageOrderTrayItem> items = new ArrayList<>();
|
||||
|
|
@ -204,8 +211,8 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
WmsStructuralPackageOrderTrayItem item = Convert.convert(WmsStructuralPackageOrderTrayItem.class, it);
|
||||
item.setOrderId(order.getId());
|
||||
item.setTrayId(tray.getId());
|
||||
tray.setNum(tray.getNum().add(item.getPlanNum().multiply(BigDecimal.valueOf(order.getNum()))));
|
||||
tray.setWeight(tray.getWeight().add(item.getPlanNum().multiply(it.getWeight())));
|
||||
tray.setNum(tray.getNum()+(item.getPlanNum()*order.getNum()));
|
||||
tray.setWeight(tray.getWeight().add(NumberUtil.mul(it.getWeight(),new BigDecimal(item.getPlanNum()))));
|
||||
return item;
|
||||
}).toList()
|
||||
);
|
||||
|
|
@ -391,12 +398,17 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
DeliverStructuralPackageOrderExtendVO trayVO = deliverStructuralPackageOrderTrayService.getInfo(id);
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(trayVO)).throwMessage("数据不存在");
|
||||
List<DeliverStructuralPackageOrderTrayItemVO> list = deliverStructuralPackageOrderTrayItemService.getListByTrayId(id);
|
||||
List<DeliverStructuralPackageOrderTrayItemVO> datas = new ArrayList<>();
|
||||
for (DeliverStructuralPackageOrderTrayItemVO it : list) {
|
||||
it.setQrCode(com.nflg.wms.common.util.DateTimeUtil.format(LocalDate.now(),"yyyyMMdd")+RandomUtil.randomString(6) +"_"+it.getMaterialNo() + "_" + it.getTrayNo() + "_1");
|
||||
it.setQrCodeImage("data:image/png;base64," + Base64.getEncoder().encodeToString(QRCodeUtil.generateQRCode(it.getQrCode(), 200, 200)));
|
||||
for (int i = 0; i < it.getPlanNum(); i++) {
|
||||
DeliverStructuralPackageOrderTrayItemVO vo = BeanUtil.copy(it, DeliverStructuralPackageOrderTrayItemVO.class);
|
||||
vo.setQrCode(it.getId() + "-" + (i + 1) + "^" + it.getMaterialNo() + "_" + it.getTrayNo() + "_1");
|
||||
vo.setQrCodeImage("data:image/png;base64," + Base64.getEncoder().encodeToString(QRCodeUtil.generateQRCode(vo.getQrCode(), 200, 200)));
|
||||
datas.add(vo);
|
||||
}
|
||||
}
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
variables.put("list", list);
|
||||
variables.put("list", datas);
|
||||
String html = ThymeleafUtil.generator("/template/qrcode/", "spitem", ".html", variables);
|
||||
URL baseUrl = new ClassPathResource("template/qrcode/").getURL();
|
||||
PdfGeneratorUtil.generatePdf(trayVO.getExternalOrderNo() + "-" + trayVO.getWorkbenchCode() + "标签", html, baseUrl.toString(), response);
|
||||
|
|
@ -439,7 +451,7 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 根据托盘号获取托盘信息(打包用)
|
||||
* 根据托盘号获取托盘信息(PDA使用)
|
||||
*/
|
||||
@GetMapping("getTrayInfoByNo")
|
||||
public ApiResult<DeliverStructuralPackageOrderTrayVO> getTrayInfoByNo(@Valid @RequestParam @NotBlank String trayNo){
|
||||
|
|
@ -459,13 +471,13 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
WmsStructuralPackageOrderTray tray = deliverStructuralPackageOrderTrayService.lambdaQuery().eq(WmsStructuralPackageOrderTray::getNo, request.getTrayNo()).one();
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(tray)).throwMessage("托盘不存在");
|
||||
VUtil.trueThrowBusinessError(!Objects.equals(tray.getState(), OrderState.Unpackaged.getState())).throwMessage("请勿重复打包");
|
||||
VUtil.trueThrowBusinessError(tray.getNum().compareTo(BigDecimal.valueOf(request.getQrCodes().size())) == 0).throwMessage("打包数量不足");
|
||||
VUtil.trueThrowBusinessError(tray.getNum().compareTo(request.getQrCodes().size()) != 0).throwMessage("打包数量不足");
|
||||
VUtil.trueThrowBusinessError(!deliverStructuralPackageOrderTrayService.lambdaUpdate()
|
||||
.set(WmsStructuralPackageOrderTray::getState, OrderState.Packaged.getState())
|
||||
.set(WmsStructuralPackageOrderTray::getPackBy, UserUtil.getUserName())
|
||||
.set(WmsStructuralPackageOrderTray::getPackTime, LocalDateTime.now())
|
||||
.eq(WmsStructuralPackageOrderTray::getState, OrderState.Unpackaged.getState())
|
||||
.eq(WmsStructuralPackageOrderTray::getTray, request.getTrayNo())
|
||||
.eq(WmsStructuralPackageOrderTray::getNo, request.getTrayNo())
|
||||
.update()).throwMessage("打包失败,请重试");
|
||||
packageMaterialScanRecordRepository.saveAll(request.getQrCodes().stream().map(qrCode -> {
|
||||
List<String> qrContents = StrUtil.split(qrCode, "^");
|
||||
|
|
@ -519,7 +531,7 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
.throwMessage("采购单号必须一致");
|
||||
Long packageId = trays.get(0).getPackageId();
|
||||
String externalOrderNo = trays.get(0).getExternalOrderNo();
|
||||
Long supplierId=trays.get(0).getSupplierId();
|
||||
Long supplierId = trays.get(0).getSupplierId();
|
||||
List<Long> tids = deliverStructuralPackageOrderTrayService.getIdsByMaterialAndExternalOrderNo(packageId, externalOrderNo);
|
||||
VUtil.trueThrowBusinessError(tids.size() != ids.size()).throwMessage("数据未齐套");
|
||||
String deliverOrderNo = RandomUtil.randomString(10);
|
||||
|
|
@ -532,6 +544,7 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
structuralPackageDeliverOrderMapService.saveBatch(ids.stream().map(id -> new WmsStructuralPackageDeliverOrderMap()
|
||||
.setDeliverId(deliverOrder.getId())
|
||||
.setOrderId(id)).toList());
|
||||
deliverStructuralPackageOrderTrayService.setStateByIds(ids, OrderState.InTransit);
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
|
|
@ -545,12 +558,92 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 根据送货单号查询订单信息
|
||||
* 根据送货单号查询订单信息(PDA使用)
|
||||
* @param orderNo 送货单号
|
||||
*/
|
||||
@GetMapping("getInfoByExternalOrderNo")
|
||||
public ApiResult<DeliverStructuralPackageOrderForPackageVO> getInfoByExternalOrderNo(@Valid @RequestParam @NotBlank String orderNo){
|
||||
List<DeliverStructuralPackageOrderForPackageItemVO> datas=deliverStructuralPackageOrderService.getInfoByExternalOrderNo(orderNo);
|
||||
return ApiResult.success(new DeliverStructuralPackageOrderForPackageVO());
|
||||
public ApiResult<DeliverStructuralPackageOrderForPackageVO> getInfoByExternalOrderNo(@Valid @RequestParam @NotBlank String orderNo) {
|
||||
List<DeliverStructuralPackageOrderForPackageItemVO> datas = deliverStructuralPackageOrderService.getInfoByExternalOrderNo(orderNo);
|
||||
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(datas)).throwMessage("未找到数据");
|
||||
datas.forEach(it -> {
|
||||
it.setTrayNos(deliverStructuralPackageOrderTrayService.lambdaQuery()
|
||||
.select(WmsStructuralPackageOrderTray::getNo)
|
||||
.eq(WmsStructuralPackageOrderTray::getOrderId, it.getId())
|
||||
.list()
|
||||
.stream()
|
||||
.map(WmsStructuralPackageOrderTray::getNo)
|
||||
.toList());
|
||||
//SAP
|
||||
SAPMaterialInfoInOrderDTO dto1 = sapService.getMaterialInfoInOrder(it.getExternalOrderNo(), it.getSupplierCode(), it.getPackageNo());
|
||||
if (Objects.isNull(dto1)) {
|
||||
log.error("{},{},{}未从SAP的ZIM_004接口查询到数据", it.getExternalOrderNo(), it.getSupplierCode(), it.getPackageNo());
|
||||
} else if (StrUtil.isBlank(dto1.getWarehouseNo())) {
|
||||
log.error("{},{},{}未从SAP的ZIM_004接口查询仓库为空", it.getExternalOrderNo(), it.getSupplierCode(), it.getPackageNo());
|
||||
} else {
|
||||
it.setWarehouseNo(dto1.getWarehouseNo());
|
||||
List<SAPSyncFromDTO> dtos = sapService.getStorage("1010", List.of(dto1.getWarehouseNo()), List.of(it.getPackageNo()), null, null);
|
||||
if (CollectionUtil.isEmpty(dtos)) {
|
||||
log.error("{},{},{}未从SAP的ZWM3A01接口查询到数据", "1010", dto1.getWarehouseNo(), it.getPackageNo());
|
||||
} else {
|
||||
it.setBinNos(dtos.get(0).getBinNos());
|
||||
}
|
||||
}
|
||||
});
|
||||
DeliverStructuralPackageOrderForPackageVO vo = new DeliverStructuralPackageOrderForPackageVO();
|
||||
vo.setItems(datas);
|
||||
vo.setSupplierCode(datas.get(0).getSupplierCode());
|
||||
vo.setSupplierName(datas.get(0).getSupplierName());
|
||||
return ApiResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 收货(PDA使用)
|
||||
* @param request 请求参数
|
||||
*/
|
||||
@Transactional
|
||||
@PostMapping("receive")
|
||||
public ApiResult<Void> receive(@Valid @RequestBody @NotNull StructuralPackageOrderReceiveQO request) {
|
||||
List<String> trayNos = deliverStructuralPackageOrderTrayService.lambdaQuery()
|
||||
.select(WmsStructuralPackageOrderTray::getNo)
|
||||
.eq(WmsStructuralPackageOrderTray::getOrderId, request.getId())
|
||||
.list()
|
||||
.stream()
|
||||
.map(WmsStructuralPackageOrderTray::getNo)
|
||||
.toList();
|
||||
VUtil.trueThrowBusinessError(!new HashSet<>(trayNos).equals(new HashSet<>(request.getTrayNos())))
|
||||
.throwMessage("托盘未齐套");
|
||||
VUtil.trueThrowBusinessError(!deliverStructuralPackageOrderTrayService.lambdaQuery()
|
||||
.eq(WmsStructuralPackageOrderTray::getOrderId, request.getId())
|
||||
.eq(WmsStructuralPackageOrderTray::getState, OrderState.InTransit.getState())
|
||||
.exists())
|
||||
.throwMessage("没有需要收货的数据");
|
||||
deliverStructuralPackageOrderTrayService.lambdaUpdate()
|
||||
.set(WmsStructuralPackageOrderTray::getState, OrderState.Received.getState())
|
||||
.set(WmsStructuralPackageOrderTray::getReceiveBy,UserUtil.getUserName())
|
||||
.set(WmsStructuralPackageOrderTray::getReceiveTime, LocalDateTime.now())
|
||||
.eq(WmsStructuralPackageOrderTray::getOrderId, request.getId())
|
||||
.eq(WmsStructuralPackageOrderTray::getState, OrderState.InTransit.getState())
|
||||
.update();
|
||||
//创建上架任务
|
||||
String deliverOrderNo = structuralPackageDeliverOrderService.getNoByOrderId(request.getId());
|
||||
String taskNo = "NFS" + deliverOrderNo;
|
||||
if (Objects.isNull(structuralPackageStorageTaskService.lambdaQuery().eq(WmsStructuralPackageStorageTask::getNo, taskNo).one())){
|
||||
structuralPackageStorageTaskService.save(new WmsStructuralPackageStorageTask()
|
||||
.setNo(taskNo)
|
||||
.setSourceFrom(1)
|
||||
.setSourceNo(deliverOrderNo)
|
||||
.setCreateTime(LocalDateTime.now())
|
||||
);
|
||||
}
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 搜索上架任务
|
||||
* @param request 查询参数
|
||||
*/
|
||||
@PostMapping("searchStorageTask")
|
||||
public ApiResult<PageData<WmsStructuralPackageStorageTask>> searchStorageTask(@Valid @RequestBody @NotNull StructuralPackageStorageTaskSearchQO request){
|
||||
return ApiResult.success(structuralPackageStorageTaskService.search(request));
|
||||
}
|
||||
}
|
||||
|
|
@ -13,4 +13,9 @@ public class SAPMaterialInfoInOrderDTO {
|
|||
* 未收货数量
|
||||
*/
|
||||
private BigDecimal transportNum;
|
||||
|
||||
/**
|
||||
* 仓库编号
|
||||
*/
|
||||
private String warehouseNo;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,15 +6,13 @@ import com.nflg.wms.admin.pojo.dto.SAPMaterialInfoInOrderDTO;
|
|||
import com.nflg.wms.common.constant.STATE;
|
||||
import com.nflg.wms.common.exception.NflgException;
|
||||
import com.nflg.wms.common.pojo.dto.SAPOrderDTO;
|
||||
import com.nflg.wms.common.pojo.dto.SAPSyncFromDTO;
|
||||
import com.sap.conn.jco.*;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
|
|
@ -26,9 +24,57 @@ public class SapService {
|
|||
@Resource
|
||||
private JCoRepository repository;
|
||||
|
||||
/**
|
||||
* 获取库存信息
|
||||
* @param factory 工厂编号
|
||||
* @param warehouseNos 仓库编号列表
|
||||
* @param beginTime 开始时间,格式yyyyMMdd
|
||||
* @param endTime 结束时间,格式yyyyMMdd
|
||||
*/
|
||||
public List<SAPSyncFromDTO> getStorage(String factory, List<String> warehouseNos,List<String> materialNos, String beginTime, String endTime) {
|
||||
Map<String, Object> parameters = new HashMap<>();
|
||||
parameters.put("I_WERKS", factory);
|
||||
parameters.put("I_TYPE", Objects.nonNull(beginTime) || Objects.nonNull(endTime) ? "I" : "A");
|
||||
if (Objects.nonNull(beginTime)) {
|
||||
parameters.put("S_DATE", beginTime);
|
||||
}
|
||||
if (Objects.nonNull(endTime)) {
|
||||
parameters.put("E_DATE", endTime);
|
||||
}
|
||||
|
||||
Map<String, List<Map<String, Object>>> tables = new HashMap<>();
|
||||
List<Map<String, Object>> warehouses = new ArrayList<>();
|
||||
warehouseNos.forEach(warehouseNo -> {
|
||||
warehouses.add(Map.of("LGORT", warehouseNo));
|
||||
});
|
||||
tables.put("IT_LGORT", warehouses);
|
||||
List<Map<String, Object>> materials = new ArrayList<>();
|
||||
materialNos.forEach(materialNo -> {
|
||||
materials.add(Map.of("MATNR", materialNo));
|
||||
});
|
||||
tables.put("IT_MATNR", materials);
|
||||
|
||||
JCoTable tOut = exec("ZWM3A01", parameters, tables);
|
||||
|
||||
List<SAPSyncFromDTO> result = new ArrayList<>();
|
||||
for (int i = 0; i < tOut.getNumRows(); i++) {
|
||||
tOut.setRow(i);
|
||||
result.add(new SAPSyncFromDTO()
|
||||
.setFactoryNo(tOut.getString("WERKS"))
|
||||
.setMaterialNo(tOut.getString("MATNR"))
|
||||
.setMaterialDesc(tOut.getString("MAKTX"))
|
||||
.setWarehouseNo(tOut.getString("LGORT"))
|
||||
.setWarehouseName(tOut.getString("LGOBE"))
|
||||
.setBinNos(tOut.getString("LGPBE")))
|
||||
;
|
||||
}
|
||||
log.debug("数据:{}", JSONUtil.toJsonStr(result));
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取订单中物料的信息
|
||||
* @param orderNo 送货单号
|
||||
* @param orderNo 采购单号
|
||||
* @param supplierNo 供应商编号
|
||||
* @param materialNo 物料编号
|
||||
*/
|
||||
|
|
@ -42,7 +88,8 @@ public class SapService {
|
|||
|
||||
tOut.setRow(0);
|
||||
return new SAPMaterialInfoInOrderDTO()
|
||||
.setTransportNum(tOut.getBigDecimal("WSHSL"));
|
||||
.setTransportNum(tOut.getBigDecimal("WSHSL"))
|
||||
.setWarehouseNo(tOut.getString("LGORT"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -77,6 +124,10 @@ public class SapService {
|
|||
return exec(functionName, parameters, null,"T_OUT");
|
||||
}
|
||||
|
||||
private JCoTable exec(String functionName, Map<String, Object> parameters, Map<String, List<Map<String, Object>>> tables) {
|
||||
return exec(functionName, parameters, tables,"T_OUT");
|
||||
}
|
||||
|
||||
private JCoTable exec(String functionName, Map<String, Object> parameters, Map<String, List<Map<String, Object>>> tables,String outName) {
|
||||
try {
|
||||
log.info("SAP functionName:{}",functionName);
|
||||
|
|
|
|||
|
|
@ -226,7 +226,7 @@ public class StructuralPackageControllerService {
|
|||
sb.append("数量无效;");
|
||||
}
|
||||
else {
|
||||
materialDTO.setNum(new BigDecimal(dto.getNum()));
|
||||
materialDTO.setNum(Integer.valueOf(dto.getNum()));
|
||||
}
|
||||
if (StrUtil.isBlank(dto.getWeight())) {
|
||||
sb.append("重量不能为空;");
|
||||
|
|
@ -334,7 +334,7 @@ public class StructuralPackageControllerService {
|
|||
}else if (!NumberUtils.isCreatable(num)){
|
||||
sb.append(StrUtil.format("第{}行数量无效;", row.getRowNum()));
|
||||
}else {
|
||||
dto.setNum(new BigDecimal(num));
|
||||
dto.setNum(Integer.valueOf(num));
|
||||
}
|
||||
num=row.getString(4);
|
||||
if (StrUtil.isBlank(num)){
|
||||
|
|
@ -353,7 +353,7 @@ public class StructuralPackageControllerService {
|
|||
});
|
||||
VUtil.trueThrowBusinessError(!sb.isEmpty()).throwMessage("数据校验失败:"+ sb);
|
||||
packageInfo.setWeight(materials.stream()
|
||||
.map(m -> m.getWeight().multiply(m.getNum()))
|
||||
.map(m -> m.getWeight().multiply(new BigDecimal(m.getNum())))
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||
packageInfo.setMaterials(JSONUtil.toJsonStr(materials));
|
||||
packageService.add(packageInfo);
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@ import java.util.Objects;
|
|||
public enum OrderState {
|
||||
|
||||
Unpackaged((short) 0, "未打包"),
|
||||
Packaged((short) 1, "已打包");
|
||||
Packaged((short) 1, "已打包"),
|
||||
InTransit((short) 2, "在途"),
|
||||
Received((short) 3, "已收货");
|
||||
|
||||
private final short state;
|
||||
private final String description;
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ public class PackageMaterialDTO {
|
|||
/**
|
||||
* 数量
|
||||
*/
|
||||
private BigDecimal num;
|
||||
private Integer num;
|
||||
|
||||
/**
|
||||
* 重量
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ public class SAPSyncFromDTO {
|
|||
private String materialDesc;
|
||||
private String warehouseNo;
|
||||
private String warehouseName;
|
||||
private String binNo;
|
||||
private String binNos;
|
||||
|
||||
public String getMaterialNo() {
|
||||
return StrUtil.removeAllPrefix(materialNo, "0");
|
||||
|
|
|
|||
|
|
@ -0,0 +1,23 @@
|
|||
package com.nflg.wms.common.pojo.qo;
|
||||
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class StructuralPackageOrderReceiveQO {
|
||||
|
||||
/**
|
||||
* wms订单ID
|
||||
*/
|
||||
@NotNull
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 该订单下包含的托盘号
|
||||
*/
|
||||
@NotEmpty
|
||||
private List<String> trayNos;
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
package com.nflg.wms.common.pojo.qo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class StructuralPackageStorageTaskSearchQO extends SearchBaseQO{
|
||||
|
||||
/**
|
||||
* 任务单号
|
||||
*/
|
||||
private String taskNo;
|
||||
|
||||
/**
|
||||
* 原始单号
|
||||
*/
|
||||
private String orderNo;
|
||||
|
||||
/**
|
||||
* 任务类型,1:采购单入库
|
||||
*/
|
||||
private Integer type;
|
||||
}
|
||||
|
|
@ -3,10 +3,16 @@ package com.nflg.wms.common.pojo.vo;
|
|||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class DeliverStructuralPackageOrderForPackageItemVO {
|
||||
|
||||
/**
|
||||
* wms订单ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 供应商代码
|
||||
*/
|
||||
|
|
@ -37,6 +43,16 @@ public class DeliverStructuralPackageOrderForPackageItemVO {
|
|||
*/
|
||||
private String packageDesc;
|
||||
|
||||
/**
|
||||
* 仓库编号
|
||||
*/
|
||||
private String warehouseNo;
|
||||
|
||||
/**
|
||||
* 储位编号
|
||||
*/
|
||||
private String binNos;
|
||||
|
||||
/**
|
||||
* 总重
|
||||
*/
|
||||
|
|
@ -51,4 +67,9 @@ public class DeliverStructuralPackageOrderForPackageItemVO {
|
|||
* 托盘数量
|
||||
*/
|
||||
private Integer trayNum;
|
||||
|
||||
/**
|
||||
* 该订单下包含的托盘号
|
||||
*/
|
||||
private List<String> trayNos;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,11 +5,12 @@ import lombok.Data;
|
|||
import lombok.experimental.Accessors;
|
||||
import org.ttzero.excel.annotation.ExcelColumn;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
@Accessors
|
||||
public class DeliverStructuralPackageOrderTrayItemVO {
|
||||
public class DeliverStructuralPackageOrderTrayItemVO implements Serializable {
|
||||
|
||||
/**
|
||||
* 序号
|
||||
|
|
@ -64,19 +65,19 @@ public class DeliverStructuralPackageOrderTrayItemVO {
|
|||
* 计划数量
|
||||
*/
|
||||
@ExcelColumn(value = "计划数量",colIndex = 7)
|
||||
private BigDecimal planNum;
|
||||
private Integer planNum;
|
||||
|
||||
/**
|
||||
* 出货数量
|
||||
*/
|
||||
@ExcelColumn(value = "出货数量",colIndex = 8)
|
||||
private BigDecimal shipmentNum;
|
||||
private Integer shipmentNum;
|
||||
|
||||
/**
|
||||
* 入库数量
|
||||
*/
|
||||
@ExcelColumn(value = "入库数量",colIndex = 9)
|
||||
private BigDecimal storeNum;
|
||||
private Integer storeNum;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
|
|
|
|||
|
|
@ -39,17 +39,17 @@ public class TrayItemVO {
|
|||
/**
|
||||
* 计划数量
|
||||
*/
|
||||
private BigDecimal planNum;
|
||||
private Integer planNum;
|
||||
|
||||
/**
|
||||
* 出货数量
|
||||
*/
|
||||
private BigDecimal shipmentNum;
|
||||
private Integer shipmentNum;
|
||||
|
||||
/**
|
||||
* 入库数量
|
||||
*/
|
||||
private BigDecimal storeNum;
|
||||
private Integer storeNum;
|
||||
|
||||
/**
|
||||
* 图片
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
package com.nflg.wms.common.util;
|
||||
|
||||
import cn.hutool.json.JSONUtil;
|
||||
|
||||
public class BeanUtil {
|
||||
|
||||
public static <T> T copy(Object source, Class<T> clazz) {
|
||||
String data= JSONUtil.toJsonStr(source);
|
||||
return JSONUtil.toBean(data, clazz);
|
||||
}
|
||||
}
|
||||
|
|
@ -63,7 +63,7 @@ public class WmsStructuralPackageOrderTray implements Serializable {
|
|||
/**
|
||||
* 数量
|
||||
*/
|
||||
private BigDecimal num;
|
||||
private Integer num;
|
||||
|
||||
/**
|
||||
* 打包人
|
||||
|
|
@ -76,4 +76,28 @@ public class WmsStructuralPackageOrderTray implements Serializable {
|
|||
*/
|
||||
@TableField(updateStrategy = FieldStrategy.ALWAYS)
|
||||
private LocalDateTime packTime;
|
||||
|
||||
/**
|
||||
* 创建送货单人
|
||||
*/
|
||||
@TableField(updateStrategy = FieldStrategy.ALWAYS)
|
||||
private String sendBy;
|
||||
|
||||
/**
|
||||
* 创建送货单时间
|
||||
*/
|
||||
@TableField(updateStrategy = FieldStrategy.ALWAYS)
|
||||
private LocalDateTime sendTime;
|
||||
|
||||
/**
|
||||
* 收货人
|
||||
*/
|
||||
@TableField(updateStrategy = FieldStrategy.ALWAYS)
|
||||
private String receiveBy;
|
||||
|
||||
/**
|
||||
* 收货时间
|
||||
*/
|
||||
@TableField(updateStrategy = FieldStrategy.ALWAYS)
|
||||
private LocalDateTime receiveTime;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -64,17 +64,17 @@ public class WmsStructuralPackageOrderTrayItem implements Serializable {
|
|||
/**
|
||||
* 计划数量
|
||||
*/
|
||||
private BigDecimal planNum;
|
||||
private Integer planNum;
|
||||
|
||||
/**
|
||||
* 出货数量
|
||||
*/
|
||||
private BigDecimal shipmentNum;
|
||||
private Integer shipmentNum;
|
||||
|
||||
/**
|
||||
* 入库数量
|
||||
*/
|
||||
private BigDecimal storeNum;
|
||||
private Integer storeNum;
|
||||
|
||||
/**
|
||||
* 图片
|
||||
|
|
|
|||
|
|
@ -0,0 +1,58 @@
|
|||
package com.nflg.wms.repository.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2025
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@Accessors(chain = true)
|
||||
@TableName("wms_structural_package_storage_task")
|
||||
public class WmsStructuralPackageStorageTask implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 任务单号
|
||||
*/
|
||||
private String no;
|
||||
|
||||
/**
|
||||
* 来源,1:采购单入库
|
||||
*/
|
||||
private Integer sourceFrom;
|
||||
|
||||
/**
|
||||
* 来源单号
|
||||
*/
|
||||
private String sourceNo;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 上架时间
|
||||
*/
|
||||
private LocalDateTime storeTime;
|
||||
}
|
||||
|
|
@ -22,4 +22,6 @@ public interface WmsStructuralPackageDeliverOrderMapper extends BaseMapper<WmsSt
|
|||
IPage<StructuralPackageDeliverOrderVO> search(StructuralPackageDeliverOrderSearchQO request, List<Long> externalOrderIds, Page<?> objectPage);
|
||||
|
||||
List<Long> getIdsByExternalOrderNo(String externalOrderNo);
|
||||
|
||||
String getNoByOrderId(Long id);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
package com.nflg.wms.repository.mapper;
|
||||
|
||||
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.StructuralPackageStorageTaskSearchQO;
|
||||
import com.nflg.wms.repository.entity.WmsStructuralPackageStorageTask;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2025
|
||||
*/
|
||||
public interface WmsStructuralPackageStorageTaskMapper extends BaseMapper<WmsStructuralPackageStorageTask> {
|
||||
|
||||
IPage<WmsStructuralPackageStorageTask> search(StructuralPackageStorageTaskSearchQO request, Page<?> objectPage);
|
||||
}
|
||||
|
|
@ -19,4 +19,6 @@ import jakarta.validation.constraints.NotNull;
|
|||
public interface IWmsStructuralPackageDeliverOrderService extends IService<WmsStructuralPackageDeliverOrder> {
|
||||
|
||||
IPage<StructuralPackageDeliverOrderVO> search(@Valid @NotNull StructuralPackageDeliverOrderSearchQO request);
|
||||
|
||||
String getNoByOrderId(@NotNull Long id);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,12 +2,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.constant.OrderState;
|
||||
import com.nflg.wms.common.pojo.qo.StructuralPackageOrderSearchByStateQO;
|
||||
import com.nflg.wms.common.pojo.vo.DeliverStructuralPackageOrderExtendVO;
|
||||
import com.nflg.wms.common.pojo.vo.DeliverStructuralPackageOrderTrayVO;
|
||||
import com.nflg.wms.repository.entity.WmsStructuralPackageOrderTray;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -41,4 +43,6 @@ public interface IWmsStructuralPackageOrderTrayService extends IService<WmsStruc
|
|||
DeliverStructuralPackageOrderTrayVO getInfoByNo(@Valid @NotBlank String trayNo);
|
||||
|
||||
List<Long> getIdsByMaterialAndExternalOrderNo(Long packageId, String externalOrderNo);
|
||||
|
||||
void setStateByIds(@Valid @NotEmpty List<Long> ids, OrderState state);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
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.StructuralPackageStorageTaskSearchQO;
|
||||
import com.nflg.wms.repository.entity.WmsStructuralPackageStorageTask;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2025
|
||||
*/
|
||||
public interface IWmsStructuralPackageStorageTaskService extends IService<WmsStructuralPackageStorageTask> {
|
||||
|
||||
IPage<WmsStructuralPackageStorageTask> search(@Valid @NotNull StructuralPackageStorageTaskSearchQO request);
|
||||
}
|
||||
|
|
@ -3,7 +3,6 @@ package com.nflg.wms.repository.service.impl;
|
|||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.extra.cglib.CglibUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.nflg.wms.common.pojo.PageData;
|
||||
import com.nflg.wms.common.pojo.qo.DepartmentAddQO;
|
||||
|
|
@ -11,6 +10,7 @@ import com.nflg.wms.common.pojo.qo.DepartmentSearchQO;
|
|||
import com.nflg.wms.common.pojo.qo.DepartmentUpdateQO;
|
||||
import com.nflg.wms.common.pojo.vo.DepartmentSimpleVO;
|
||||
import com.nflg.wms.common.pojo.vo.DepartmentVO;
|
||||
import com.nflg.wms.common.util.BeanUtil;
|
||||
import com.nflg.wms.common.util.UserUtil;
|
||||
import com.nflg.wms.common.util.VUtil;
|
||||
import com.nflg.wms.repository.entity.Department;
|
||||
|
|
@ -66,7 +66,7 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
|
|||
public void update(DepartmentUpdateQO request) {
|
||||
Department dept1 = getById(request.getId());
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(dept1)).throwMessage("部门不存在");
|
||||
Department dept2 = CglibUtil.copy(dept1, Department.class);
|
||||
Department dept2 = BeanUtil.copy(dept1, Department.class);
|
||||
dept2.setName(request.getName())
|
||||
.setParentId(request.getParentId())
|
||||
.setUpdateBy(UserUtil.getUserName())
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package com.nflg.wms.repository.service.impl;
|
||||
|
||||
import cn.hutool.extra.cglib.CglibUtil;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
|
@ -10,6 +9,7 @@ import com.nflg.wms.common.pojo.qo.RoleSearchQO;
|
|||
import com.nflg.wms.common.pojo.qo.RoleUpdateQO;
|
||||
import com.nflg.wms.common.pojo.vo.MenuVO;
|
||||
import com.nflg.wms.common.pojo.vo.RoleVO;
|
||||
import com.nflg.wms.common.util.BeanUtil;
|
||||
import com.nflg.wms.common.util.VUtil;
|
||||
import com.nflg.wms.repository.entity.Menu;
|
||||
import com.nflg.wms.repository.entity.Role;
|
||||
|
|
@ -60,7 +60,7 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IR
|
|||
public void update(RoleUpdateQO request, String userName) {
|
||||
Role role1 = getById(request.getId());
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(role1)).throwMessage("角色不存在");
|
||||
Role role2 = CglibUtil.copy(role1, Role.class);
|
||||
Role role2 = BeanUtil.copy(role1, Role.class);
|
||||
role2.setCode(request.getCode())
|
||||
.setName(request.getName())
|
||||
.setEnable(request.getEnable())
|
||||
|
|
@ -80,7 +80,7 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IR
|
|||
public void enable(EnableQO request, String userName) {
|
||||
Role role1 = getById(request.getId());
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(role1)).throwMessage("角色不存在");
|
||||
Role role2 = CglibUtil.copy(role1, Role.class);
|
||||
Role role2 = BeanUtil.copy(role1, Role.class);
|
||||
role2.setEnable(request.getEnable())
|
||||
.setUpdateBy(userName)
|
||||
.setUpdateTime(LocalDateTime.now());
|
||||
|
|
|
|||
|
|
@ -9,8 +9,6 @@ import com.nflg.wms.common.pojo.vo.StructuralPackageDeliverOrderVO;
|
|||
import com.nflg.wms.repository.entity.WmsStructuralPackageDeliverOrder;
|
||||
import com.nflg.wms.repository.mapper.WmsStructuralPackageDeliverOrderMapper;
|
||||
import com.nflg.wms.repository.service.IWmsStructuralPackageDeliverOrderService;
|
||||
import com.nflg.wms.repository.service.IWmsStructuralPackageOrderService;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -26,9 +24,6 @@ import java.util.List;
|
|||
@Service
|
||||
public class WmsStructuralPackageDeliverOrderServiceImpl extends ServiceImpl<WmsStructuralPackageDeliverOrderMapper, WmsStructuralPackageDeliverOrder> implements IWmsStructuralPackageDeliverOrderService {
|
||||
|
||||
@Resource
|
||||
private IWmsStructuralPackageOrderService wmsStructuralPackageOrderService;
|
||||
|
||||
@Override
|
||||
public IPage<StructuralPackageDeliverOrderVO> search(StructuralPackageDeliverOrderSearchQO request) {
|
||||
List<Long> externalOrderIds = null;
|
||||
|
|
@ -37,4 +32,9 @@ public class WmsStructuralPackageDeliverOrderServiceImpl extends ServiceImpl<Wms
|
|||
}
|
||||
return baseMapper.search(request,externalOrderIds,new Page<>(request.getPage(),request.getPageSize()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNoByOrderId(Long id) {
|
||||
return baseMapper.getNoByOrderId(id);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,14 +4,17 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||
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.constant.OrderState;
|
||||
import com.nflg.wms.common.pojo.qo.StructuralPackageOrderSearchByStateQO;
|
||||
import com.nflg.wms.common.pojo.vo.DeliverStructuralPackageOrderExtendVO;
|
||||
import com.nflg.wms.common.pojo.vo.DeliverStructuralPackageOrderTrayVO;
|
||||
import com.nflg.wms.common.util.UserUtil;
|
||||
import com.nflg.wms.repository.entity.WmsStructuralPackageOrderTray;
|
||||
import com.nflg.wms.repository.mapper.WmsStructuralPackageOrderTrayMapper;
|
||||
import com.nflg.wms.repository.service.IWmsStructuralPackageOrderTrayService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
|
@ -74,4 +77,15 @@ public class WmsStructuralPackageOrderTrayServiceImpl extends ServiceImpl<WmsStr
|
|||
public List<Long> getIdsByMaterialAndExternalOrderNo(Long packageId, String externalOrderNo) {
|
||||
return baseMapper.getIdsByMaterialAndExternalOrderNo(packageId, externalOrderNo);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setStateByIds(List<Long> ids, OrderState state) {
|
||||
lambdaUpdate()
|
||||
.set(WmsStructuralPackageOrderTray::getState, state.getState())
|
||||
.set(WmsStructuralPackageOrderTray::getSendBy, UserUtil.getUserName())
|
||||
.set(WmsStructuralPackageOrderTray::getSendTime, LocalDateTime.now())
|
||||
.eq(WmsStructuralPackageOrderTray::getState, state.getState() - 1)
|
||||
.in(WmsStructuralPackageOrderTray::getId, ids)
|
||||
.update();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package com.nflg.wms.repository.service.impl;
|
||||
|
||||
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.StructuralPackageStorageTaskSearchQO;
|
||||
import com.nflg.wms.repository.entity.WmsStructuralPackageStorageTask;
|
||||
import com.nflg.wms.repository.mapper.WmsStructuralPackageStorageTaskMapper;
|
||||
import com.nflg.wms.repository.service.IWmsStructuralPackageStorageTaskService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2025
|
||||
*/
|
||||
@Service
|
||||
public class WmsStructuralPackageStorageTaskServiceImpl extends ServiceImpl<WmsStructuralPackageStorageTaskMapper, WmsStructuralPackageStorageTask> implements IWmsStructuralPackageStorageTaskService {
|
||||
|
||||
@Override
|
||||
public IPage<WmsStructuralPackageStorageTask> search(StructuralPackageStorageTaskSearchQO request) {
|
||||
return baseMapper.search(request,new Page<>(request.getPage(),request.getPageSize()));
|
||||
}
|
||||
}
|
||||
|
|
@ -34,4 +34,11 @@
|
|||
inner join wms_structural_package_deliver_order_map om on o.id=om.order_id
|
||||
where o.external_order_no like concat('%',#{externalOrderNo},'%')
|
||||
</select>
|
||||
|
||||
<select id="getNoByOrderId" resultType="java.lang.String">
|
||||
select pdo.no
|
||||
from wms_structural_package_deliver_order pdo
|
||||
inner join wms_structural_package_deliver_order_map pdom on pdo.id=pdom.deliver_id
|
||||
where pdom.order_id=#{id}
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -60,14 +60,14 @@
|
|||
order by id desc
|
||||
</select>
|
||||
|
||||
<select id="getInfoByExternalOrderNo"
|
||||
resultType="com.nflg.wms.common.pojo.vo.DeliverStructuralPackageOrderForPackageItemVO">
|
||||
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"
|
||||
<select id="getInfoByExternalOrderNo" resultType="com.nflg.wms.common.pojo.vo.DeliverStructuralPackageOrderForPackageItemVO">
|
||||
SELECT o.*,m.no||wb."no" AS "workbench_code",us.supplier_code,us.supplier_name,sp."no" AS "package_no"
|
||||
,sp."name" AS "package_desc"
|
||||
FROM wms_structural_package_order o
|
||||
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_workbench wb ON o.workbench_id=wb."id"
|
||||
LEFT JOIN wms_model m on o.model_id=m."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"
|
||||
where o.external_order_no=#{orderNo}
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,26 @@
|
|||
<?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.WmsStructuralPackageStorageTaskMapper">
|
||||
|
||||
<select id="search" resultType="com.nflg.wms.repository.entity.WmsStructuralPackageStorageTask">
|
||||
select *
|
||||
from wms_structural_package_storage_task
|
||||
<where>
|
||||
<if test="request.type != null">
|
||||
and source_from=#{type}
|
||||
</if>
|
||||
<if test="request.taskNo != null and request.taskNo!=''">
|
||||
and "no" like concat('%', #{request.taskNo}, '%')
|
||||
</if>
|
||||
<if test="request.orderNo != null and request.orderNo!=''">
|
||||
and source_no like concat('%', #{request.orderNo}, '%')
|
||||
</if>
|
||||
<if test="request.startDate!=null">
|
||||
and create_time >= #{request.startDate}
|
||||
</if>
|
||||
<if test="request.endDate!=null">
|
||||
and create_time <= #{request.endDate}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -33,7 +33,7 @@ public class CodeGeneratorTest {
|
|||
)
|
||||
.strategyConfig(builder -> {
|
||||
builder
|
||||
.addInclude("wms_structural_package_deliver_order_map") //只生成指定表
|
||||
.addInclude("wms_structural_package_storage_task") //只生成指定表
|
||||
.entityBuilder().idType(IdType.ASSIGN_ID)
|
||||
.enableLombok()
|
||||
.enableChainModel()
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ public class SyncStorageFromSAPProcessor implements BasicProcessor {
|
|||
for (DictionaryItem fy : dbFactorys) {
|
||||
log.info("处理工厂:{}", fy.getValue());
|
||||
try {
|
||||
List<SAPSyncFromDTO> list = sapService.SyncStorage(fy.getValue(), warehouseNos, beginDate, endDate);
|
||||
List<SAPSyncFromDTO> list = sapService.getStorage(fy.getValue(), warehouseNos, beginDate, endDate);
|
||||
if (CollectionUtil.isEmpty(list)) {
|
||||
log.info("没有获取到数据");
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ public class SapService {
|
|||
* @param beginTime 开始时间,格式yyyyMMdd
|
||||
* @param endTime 结束时间,格式yyyyMMdd
|
||||
*/
|
||||
public List<SAPSyncFromDTO> SyncStorage(String factory, List<String> warehouseNos, String beginTime, String endTime) throws JCoException {
|
||||
public List<SAPSyncFromDTO> getStorage(String factory, List<String> warehouseNos, String beginTime, String endTime) throws JCoException {
|
||||
Map<String, Object> parameters = new HashMap<>();
|
||||
parameters.put("I_WERKS", factory);
|
||||
parameters.put("I_TYPE", Objects.nonNull(beginTime) || Objects.nonNull(endTime) ? "I" : "A");
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ public class SapTestService {
|
|||
for (DictionaryItem fy: dbFactorys){
|
||||
log.info("处理工厂:{}", fy.getValue());
|
||||
try {
|
||||
List<SAPSyncFromDTO> list = sapService.SyncStorage(fy.getValue(), warehouseNos, beginDate, endDate);
|
||||
List<SAPSyncFromDTO> list = sapService.getStorage(fy.getValue(), warehouseNos, beginDate, endDate);
|
||||
if (CollectionUtil.isEmpty(list)) {
|
||||
log.info("没有获取到数据");
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Reference in New Issue