feat: bug-784 钢构包订单添加缺件交货的功能
This commit is contained in:
parent
04b68647b3
commit
6a02cb9270
|
|
@ -323,7 +323,7 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
TrayItemVO ivo = Convert.convert(TrayItemVO.class, item);
|
||||
ivo.setNo(tray.getNo());
|
||||
if (Objects.equals(tray.getState(), (short) 3)) {
|
||||
ivo.setStoreNum(item.getShipmentNum());
|
||||
ivo.setStoreNum(item.getStoreNum());
|
||||
}
|
||||
return ivo;
|
||||
}).toList());
|
||||
|
|
@ -382,7 +382,7 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
*/
|
||||
@GetMapping("getItems")
|
||||
public ApiResult<List<DeliverStructuralPackageOrderTrayItemVO>> getItems(@Valid @RequestParam @NotNull Long id) {
|
||||
return ApiResult.success(deliverStructuralPackageOrderTrayItemService.getListByTrayId(id));
|
||||
return ApiResult.success(deliverStructuralPackageOrderTrayItemService.getListVOByTrayId(id));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -391,7 +391,7 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
*/
|
||||
@PostMapping("exportItems")
|
||||
public void exportItems(HttpServletResponse response, @Valid @RequestParam @NotNull Long id) throws IOException {
|
||||
List<DeliverStructuralPackageOrderTrayItemVO> list = deliverStructuralPackageOrderTrayItemService.getListByTrayId(id);
|
||||
List<DeliverStructuralPackageOrderTrayItemVO> list = deliverStructuralPackageOrderTrayItemService.getListVOByTrayId(id);
|
||||
EecExcelUtil.export("零件信息", "sheet1", list, response);
|
||||
}
|
||||
|
||||
|
|
@ -417,7 +417,7 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
.setDrawingNo(trayVO.getPackageDrawingNo())
|
||||
.setName(trayVO.getPackageDesc())
|
||||
.setQrCode(QRCodeUtil.generateQRCodeBase64(trayVO.getPackageNo(), 100, 100));
|
||||
List<DeliverStructuralPackageOrderTrayItemVO> list = deliverStructuralPackageOrderTrayItemService.getListByTrayId(id);
|
||||
List<DeliverStructuralPackageOrderTrayItemVO> list = deliverStructuralPackageOrderTrayItemService.getListVOByTrayId(id);
|
||||
List<PackageMaterialDTO> items = list.stream().map(item -> new PackageMaterialDTO()
|
||||
.setImage(item.getImage())
|
||||
.setNo(item.getMaterialNo())
|
||||
|
|
@ -445,7 +445,7 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
public void exportItemPdf(HttpServletResponse response, @Valid @RequestParam @NotNull Long id) throws Exception {
|
||||
DeliverStructuralPackageOrderExtendVO trayVO = deliverStructuralPackageOrderTrayService.getInfo(id);
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(trayVO)).throwMessage("数据不存在");
|
||||
List<DeliverStructuralPackageOrderTrayItemVO> list = deliverStructuralPackageOrderTrayItemService.getListByTrayId(id);
|
||||
List<DeliverStructuralPackageOrderTrayItemVO> list = deliverStructuralPackageOrderTrayItemService.getListVOByTrayId(id);
|
||||
List<DeliverStructuralPackageOrderTrayItemVO> datas = new ArrayList<>();
|
||||
for (DeliverStructuralPackageOrderTrayItemVO it : list) {
|
||||
for (int i = 0, count = it.getShipmentNum().intValue(); i < count; i++) {
|
||||
|
|
@ -526,12 +526,15 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
VUtil.trueThrowBusinessError(Objects.isNull(tray)).throwMessage("托盘不存在");
|
||||
VUtil.trueThrowBusinessError(!Objects.equals(tray.getState(), OrderState.Unpackaged.getState())).throwMessage("请勿重复打包");
|
||||
DeliverStructuralPackageOrderVO order = deliverStructuralPackageOrderService.getInfo(tray.getOrderId());
|
||||
List<DeliverStructuralPackageOrderTrayItemVO> trayItemVOS = deliverStructuralPackageOrderTrayItemService.getListByTrayId(tray.getId());
|
||||
List<WmsStructuralPackageOrderTrayItem> trayItems = deliverStructuralPackageOrderTrayItemService.getListByTrayId(tray.getId());
|
||||
List<String> materialNos = new ArrayList<>();
|
||||
List<StructuralPackageMaterialQRCodeContentDTO> qrCodeDTOs = request.getQrCodes().stream().map(NoUtil::getStructuralPackageMaterialQRCodeContent).toList();
|
||||
trayItemVOS.forEach(it -> {
|
||||
List<StructuralPackageMaterialQRCodeContentDTO> dtos = qrCodeDTOs.stream()
|
||||
.filter(qr -> StrUtil.equals(qr.getMaterialNo(), it.getMaterialNo()))
|
||||
List<StructuralPackageMaterialQRCodeContentDTO> qrCodeDTOs = new ArrayList<>();
|
||||
trayItems.forEach(it -> {
|
||||
PackTrayItemQO ri = request.getItems().stream().filter(r -> StrUtil.equals(r.getMaterialNo(), it.getMaterialNo())).findFirst().orElse(null);
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(ri)).throwMessage(it.getMaterialNo() + "未扫码");
|
||||
if (StrUtil.isBlank(ri.getRemark())) {
|
||||
List<StructuralPackageMaterialQRCodeContentDTO> dtos = ri.getQrCodes().stream()
|
||||
.map(NoUtil::getStructuralPackageMaterialQRCodeContent)
|
||||
.toList();
|
||||
if (it.getShipmentNum().compareTo(dtos.stream()
|
||||
.map(StructuralPackageMaterialQRCodeContentDTO::getNum)
|
||||
|
|
@ -543,6 +546,11 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
dto.setPackageNo(order.getPackageNo());
|
||||
dto.setTrayItemId(it.getId());
|
||||
});
|
||||
qrCodeDTOs.addAll(dtos);
|
||||
} else {
|
||||
it.setOfflineRemark(ri.getRemark());
|
||||
it.setOfflineReceived(false);
|
||||
}
|
||||
});
|
||||
VUtil.trueThrowBusinessError(CollectionUtil.isNotEmpty(materialNos))
|
||||
.throwMessage("以下物料的数量与托盘数量不一致:" + StrUtil.join(",", materialNos));
|
||||
|
|
@ -737,6 +745,25 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
return ApiResult.success(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 线下收货
|
||||
* @param itemIds 零件项id列表
|
||||
*/
|
||||
@PostMapping("offlineReceive")
|
||||
public ApiResult<Void> offlineReceive(@Valid @RequestBody @NotEmpty List<Long> itemIds) {
|
||||
List<WmsStructuralPackageOrderTrayItem> items = deliverStructuralPackageOrderTrayItemService.listByIds(itemIds);
|
||||
items.removeIf(it -> it.getOfflineReceived() != false);
|
||||
items.forEach(it -> {
|
||||
it.setOfflineReceived(true);
|
||||
it.setOfflineReceiveTime(LocalDateTime.now());
|
||||
it.setOfflineReceiveUser(UserUtil.getUserName());
|
||||
});
|
||||
if (CollectionUtil.isNotEmpty(items)) {
|
||||
deliverStructuralPackageOrderTrayItemService.updateBatchById(items);
|
||||
}
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 收货(PDA使用)
|
||||
* @param request 请求参数
|
||||
|
|
@ -767,6 +794,9 @@ public class StructuralPackageOrderController extends BaseController {
|
|||
.eq(WmsStructuralPackageOrderTray::getOrderId, request.getId())
|
||||
.eq(WmsStructuralPackageOrderTray::getState, OrderState.InTransit.getState())
|
||||
.update();
|
||||
List<WmsStructuralPackageOrderTrayItem> items = deliverStructuralPackageOrderTrayItemService.getList(request.getId());
|
||||
items.forEach(it -> it.setStoreNum(it.getShipmentNum()));
|
||||
deliverStructuralPackageOrderTrayItemService.updateBatchById(items);
|
||||
structuralPackageDeliverOrderService.updateStateByOrderId(request.getId());
|
||||
SAPMaterialInfoInOrderDTO dto = CollectionUtil.get(sapService.zim004(order.getExternalOrderNo(), order.getSupplierCode(), order.getPackageNo()), 0);
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(dto)).throwMessage("ZIM_004未查询到数据");
|
||||
|
|
|
|||
|
|
@ -0,0 +1,26 @@
|
|||
package com.nflg.wms.common.pojo.qo;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class PackTrayItemQO {
|
||||
|
||||
/**
|
||||
* 零件编码
|
||||
*/
|
||||
@NotBlank
|
||||
private String materialNo;
|
||||
|
||||
/**
|
||||
* 二维码列表
|
||||
*/
|
||||
private List<String> qrCodes;
|
||||
|
||||
/**
|
||||
* 线下交货原因
|
||||
*/
|
||||
private String remark;
|
||||
}
|
||||
|
|
@ -16,8 +16,8 @@ public class PackTrayQO {
|
|||
private String trayNo;
|
||||
|
||||
/**
|
||||
* 二维码列表
|
||||
* 零件列表
|
||||
*/
|
||||
@NotEmpty
|
||||
private List<String> qrCodes;
|
||||
private List<PackTrayItemQO> items;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,4 +60,9 @@ public class StructuralPackageDeliverOrderVO {
|
|||
* 工厂编号
|
||||
*/
|
||||
private String factoryNo;
|
||||
|
||||
/**
|
||||
* 是否存在缺货零件
|
||||
*/
|
||||
private Boolean quehuo;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ import lombok.Data;
|
|||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Objects;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
|
|
@ -67,4 +69,33 @@ public class TrayItemVO {
|
|||
* 条码数量
|
||||
*/
|
||||
private String codeNum = "点击查看";
|
||||
|
||||
/**
|
||||
* 是否线下
|
||||
*/
|
||||
private Boolean offline;
|
||||
|
||||
public Boolean getOffline() {
|
||||
return Objects.nonNull(offlineReceived);
|
||||
}
|
||||
|
||||
/**
|
||||
* 线下交货原因
|
||||
*/
|
||||
private String offlineRemark;
|
||||
|
||||
/**
|
||||
* 是否已线下交货
|
||||
*/
|
||||
private Boolean offlineReceived;
|
||||
|
||||
/**
|
||||
* 线下收货人
|
||||
*/
|
||||
private String offlineReceiveUser;
|
||||
|
||||
/**
|
||||
* 线下收货时间
|
||||
*/
|
||||
private LocalDateTime offlineReceiveTime;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -116,4 +116,9 @@ public class WmsStructuralPackageOrder implements Serializable {
|
|||
* 标志:关键部件
|
||||
*/
|
||||
private String kzkri;
|
||||
|
||||
/**
|
||||
* 是否存在缺货零件
|
||||
*/
|
||||
private Boolean quehuo;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import lombok.experimental.Accessors;
|
|||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
|
|
@ -85,4 +86,24 @@ public class WmsStructuralPackageOrderTrayItem implements Serializable {
|
|||
* 图号
|
||||
*/
|
||||
private String drawingNo;
|
||||
|
||||
/**
|
||||
* 线下交货原因
|
||||
*/
|
||||
private String offlineRemark;
|
||||
|
||||
/**
|
||||
* 是否已线下交货
|
||||
*/
|
||||
private Boolean offlineReceived;
|
||||
|
||||
/**
|
||||
* 线下收货人
|
||||
*/
|
||||
private String offlineReceiveUser;
|
||||
|
||||
/**
|
||||
* 线下收货时间
|
||||
*/
|
||||
private LocalDateTime offlineReceiveTime;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,7 +26,9 @@ public interface IWmsStructuralPackageOrderTrayItemService extends IService<WmsS
|
|||
|
||||
void deleteByOrderIds(List<Long> deleteIds);
|
||||
|
||||
List<DeliverStructuralPackageOrderTrayItemVO> getListByTrayId(@Valid @NotNull Long id);
|
||||
List<DeliverStructuralPackageOrderTrayItemVO> getListVOByTrayId(@Valid @NotNull Long id);
|
||||
|
||||
List<DeliverStructuralPackageOrderTrayItemSimpleVO> getSimpleListByTrayNo(@Valid @NotBlank String trayNo);
|
||||
|
||||
List<WmsStructuralPackageOrderTrayItem> getListByTrayId(Long id);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ public class WmsStructuralPackageOrderTrayItemServiceImpl extends ServiceImpl<Wm
|
|||
}
|
||||
|
||||
@Override
|
||||
public List<DeliverStructuralPackageOrderTrayItemVO> getListByTrayId(Long id) {
|
||||
public List<DeliverStructuralPackageOrderTrayItemVO> getListVOByTrayId(Long id) {
|
||||
return baseMapper.getListByTrayId(id);
|
||||
}
|
||||
|
||||
|
|
@ -46,4 +46,9 @@ public class WmsStructuralPackageOrderTrayItemServiceImpl extends ServiceImpl<Wm
|
|||
public List<DeliverStructuralPackageOrderTrayItemSimpleVO> getSimpleListByTrayNo(String trayNo) {
|
||||
return baseMapper.getSimpleListByTrayNo(trayNo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<WmsStructuralPackageOrderTrayItem> getListByTrayId(Long id) {
|
||||
return lambdaQuery().eq(WmsStructuralPackageOrderTrayItem::getTrayId, id).list();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,8 +3,9 @@
|
|||
<mapper namespace="com.nflg.wms.repository.mapper.WmsStructuralPackageDeliverOrderMapper">
|
||||
|
||||
<select id="search" resultType="com.nflg.wms.common.pojo.vo.StructuralPackageDeliverOrderVO">
|
||||
select pdo.*, us.supplier_code, us.supplier_name,di."name" AS "factory_no"
|
||||
select pdo.*, us.supplier_code, us.supplier_name,di."name" AS "factory_no",spo.quehuo
|
||||
from wms_structural_package_deliver_order pdo
|
||||
inner join wms_structural_package_order spo on pdo.id=spo.deliver_id
|
||||
inner join user_supplier us on pdo.supplier_id=us.id
|
||||
LEFT JOIN dictionary_item di ON pdo.factory_id=di."id"
|
||||
<where>
|
||||
|
|
|
|||
Loading…
Reference in New Issue