Compare commits

...

3 Commits

Author SHA1 Message Date
zhangke c6f40c86a9 Merge branch 'develop' into dev_zhangke 2025-09-10 21:43:04 +08:00
zhangke 354677520f 1、零部件出库单测试完毕 2025-09-10 21:37:58 +08:00
曹鹏飞 272555b84c 一些优化 2025-09-10 18:09:31 +08:00
31 changed files with 480 additions and 156 deletions

View File

@ -101,9 +101,9 @@ public class ComponentOutboundController {
}
/**
* 出库单详情列表
* 扫码记录
*
* @param itemId 出库单详情ID不能为空
* @param itemId
* @return 扫码信息
*/
@GetMapping("getscancodes")
@ -144,6 +144,7 @@ public class ComponentOutboundController {
ZWM3A20DTO zwm3a20DTO = new ZWM3A20DTO()
.setItSernrPatch(new ArrayList<>())
.setItem(new ArrayList<>())
.setItSernr(new ArrayList<>())
.setItSernrPatch(new ArrayList<>())
.setIType("A")
.setIvDelivery(packing.getVbeln());
@ -206,7 +207,7 @@ public class ComponentOutboundController {
outboundScanCodes.add(scanCodes);
//组装下库存信息
setInventoryDTO(inventories, outboundItem.getIdnrk(),
packing.getFactoryNo(), outboundItem.getLgort(), code.getSerialNumber(), code.getCodeNum());
packing.getFactoryNo(), outboundItem.getLgort(), code.getBatchNumber(), code.getCodeNum());
}

View File

@ -308,19 +308,10 @@ public class InCostCenterBackController extends BaseController {
InCostcenterBackInfoVO vo = inCostcenterBackTicketService.getInfo(id);
VUtil.trueThrowBusinessError(Objects.isNull(vo)).throwMessage("入库单不存在");
vo.setItems(Convert.toList(InCostcenterBackInfoItemVO.class, inCostcenterBackTicketItemService.getList(id)));
vo.getItems().forEach(item -> item.setLgort(vo.getLgort()));
return ApiResult.success(vo);
}
/**
* 获取入库单扫码记录
* @param ticketItemId 入库单项ID
* @return 扫码记录
*/
@GetMapping("getScanRecords")
public ApiResult<List<InMaterialScanRecord>> getScanRecords(@Valid @RequestParam @NotNull Long ticketItemId) {
return ApiResult.success(inMaterialScanRecordRespository.findByTicketItemId(ticketItemId));
}
/**
* 导出退料单
*/
@ -355,20 +346,21 @@ public class InCostCenterBackController extends BaseController {
InCostcenterBackInfoVO order = inCostcenterBackTicketService.getInfo(id);
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("退料入库单不存在");
order.setNo(order.getTicketNo());
List<WmsInCostcenterBackItem> list = inCostcenterBackTicketItemService.getList(id);
List<InCostcenterBackItemVO> list = Convert.toList(InCostcenterBackItemVO.class, inCostcenterBackTicketItemService.getList(id));
// InCostcenterBackInfoVO order = new InCostcenterBackInfoVO();
// order.setNo(NoUtil.getOutCostcenterNo());
// List<WmsInCostcenterBackItem> list = new ArrayList<>();
// for (int i = 0, count = RandomUtil.randomInt(1, 100); i < count; i++) {
// list.add(new WmsInCostcenterBackItem().setMatnr(RandomUtil.randomNumbers(11)).setMaktx("非金属联件和紧固件等 M6 DIN 982 不锈钢304"));
// }
list.forEach(item -> item.setLgort(order.getLgort()));
Map<String, String> base = new HashMap<>();
base.put("date", DateUtil.format(LocalDateTime.now(), "yyyy-MM-dd"));
base.put("qrcode", QRCodeUtil.generateQRCodeBase64(order.getNo(), 100, 100));
Map<String, Object> variables = new HashMap<>();
variables.put("info", order);
variables.put("base", base);
variables.put("pages", PdfPageDTO.create(list, 17, new WmsInCostcenterBackItem()));
variables.put("pages", PdfPageDTO.create(list, 17, new InCostcenterBackItemVO()));
String html = ThymeleafUtil.generator("/template/", "成本中心退料单", ".html", variables);
PdfGeneratorUtil.generatePdf("成本中心退料入库单" + order.getNo(), html, response);
}

View File

@ -228,16 +228,6 @@ public class InProduceOrderController extends BaseController {
return ApiResult.success(vo);
}
/**
* 获取入库单扫码记录
* @param itemId 项ID
* @return 扫码记录
*/
@GetMapping("getScanRecords")
public ApiResult<List<InMaterialScanRecord>> getScanRecords(@Valid @RequestParam @NotNull Long itemId) {
return ApiResult.success(inMaterialScanRecordRespository.findByTicketItemId(itemId));
}
/**
* 删除
* @param id 订单ID

View File

@ -132,7 +132,7 @@ public class OutPurchaseController extends BaseController {
.setEbelp(it.getEbelp())
.setRetpo(it.getRetpo())
.setMatnr(it.getMatnr())
.setMaktx("")
.setMaktx(it.getMaktx())
.setErfmg(it.getNum())
.setMeins(it.getMeins())
.setCharg(it.getCharg())

View File

@ -137,5 +137,13 @@ public class StructuralPackageController extends BaseController {
public ApiResult<String> exportPdf(@Valid @RequestParam @NotNull Long id) throws Exception {
return ApiResult.success(packageControllerService.exportPdf(id));
}
//
// /**
// * 导出老鼠图PDF
// */
// @GetMapping("exportPdf")
// public void exportPdf(HttpServletResponse response,@Valid @RequestParam @NotNull Long id) throws Exception {
// packageControllerService.exportPdf1(response,id);
// }
}

View File

@ -14,6 +14,7 @@ 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.dto.PdfPageDTO;
import com.nflg.wms.admin.pojo.dto.SAPMaterialInfoInOrderDTO;
import com.nflg.wms.admin.repository.PackageMaterialScanRecordRepository;
import com.nflg.wms.admin.service.BasdeSerialNumberControllerService;
@ -425,8 +426,8 @@ public class StructuralPackageOrderController extends BaseController {
).toList();
Map<String, Object> variables = new HashMap<>();
variables.put("info", vo);
variables.put("list", items);
String html = ThymeleafUtil.generator("/template/", "StructuralPackage", ".html", variables);
variables.put("pages", PdfPageDTO.create(items, 9, new PackageMaterialDTO()));
String html = ThymeleafUtil.generator("/template/", "钢构件老鼠图", ".html", variables);
// PdfGeneratorUtil.generatePdf(vo.getExternalOrderNo() + "-" + vo.getWorkbenchCode() + "老鼠图", html, response);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
PdfGeneratorUtil.generatePdf(vo.getExternalOrderNo() + "-" + vo.getWorkbenchCode() + "老鼠图", html, outputStream);

View File

@ -59,9 +59,6 @@ public class ComponentOutboundControllerService {
wmsComponentOutboundItemService.saveBatch(outboundItems);
}
if (CollectionUtil.isNotEmpty(outboundScanCodes)) {
wmsComponentOutboundScanCodesService.insert(outboundScanCodes);
}
if (CollectionUtil.isNotEmpty(inventories)) {
inventoryService.out(inventories);
@ -79,5 +76,10 @@ public class ComponentOutboundControllerService {
.set(WmsComponentOutbound::getMaterialDocYear, result.getValue())
.eq(WmsComponentOutbound::getId, outbound.getId())
.update();
if (CollectionUtil.isNotEmpty(outboundScanCodes)) {
wmsComponentOutboundScanCodesService.insert(outboundScanCodes);
}
}
}

View File

@ -421,24 +421,22 @@ public class SapService {
// 调用 SAP RFC 函数 ZWM00_MB112
JCoFunction function = exec("ZWM00_MB112", parameters, tables);
// 处理返回表 T_RETURN判断执行是否成功
JCoTable returnTable = function.getTableParameterList().getTable("T_RETURN");
log.info("SAP返回: {}", returnTable);
VUtil.trueThrowBusinessError(returnTable.getNumRows() <= 0).throwMessage("SAP未返回结果状态");
JCoParameterList parameterList = function.getExportParameterList();
if (StrUtil.isBlank(parameterList.getString("E_MBLNR"))) {
JCoTable returnTable = function.getTableParameterList().getTable("T_RETURN");
VUtil.trueThrowBusinessError(returnTable.getNumRows() <= 0).throwMessage("SAP未返回结果状态");
returnTable.setRow(0);
VUtil.trueThrowBusinessError(StrUtil.equals(returnTable.getString("TYPE"), "E"))
.throwMessage(returnTable.getString("MESSAGE"));
return null;
} else {
C_MaterialReturnDTO result = new C_MaterialReturnDTO()
.setEMblnr(parameterList.getString("E_MBLNR"))
.setEMJahr(parameterList.getString("E_MJAHR"));
returnTable.setRow(0);
VUtil.trueThrowBusinessError(StrUtil.equals(returnTable.getString("TYPE"), "E"))
.throwMessage(returnTable.getString("MESSAGE"));
// 获取导出参数构造返回结果对象
JCoParameterList exportParam = function.getExportParameterList();
VUtil.trueThrowBusinessError(Objects.isNull(exportParam)).throwMessage("无法获取到有效的物料凭证信息");
C_MaterialReturnDTO result = new C_MaterialReturnDTO()
.setEMblnr(exportParam.getString("E_MBLNR"))
.setEMJahr(exportParam.getString("E_MJAHR"));
log.info("SAP返回物料凭证信息: MBLNR={}, MJAHR={}", result.getEMblnr(), result.getEMJahr());
return result;
log.info("SAP返回物料凭证信息: MBLNR={}, MJAHR={}", result.getEMblnr(), result.getEMJahr());
return result;
}
}
@ -1216,7 +1214,7 @@ public class SapService {
if (CollectionUtil.isNotEmpty(dto.getItSernrPatch())) {
tables.put("IT_SERNR_PATCH", JCoUtil.toMapList(dto.getItSernrPatch()));
}
log.info("输入表数据: {}", JSONUtil.toJsonStr(tables));
JCoFunction function = exec("ZWM3A20", parameters, tables);
JCoStructure structure = function.getExportParameterList().getStructure("OUTPUT");

View File

@ -8,6 +8,7 @@ import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nflg.wms.admin.pojo.dto.PdfPageDTO;
import com.nflg.wms.admin.pojo.dto.ZWM3A17DTO;
import com.nflg.wms.admin.pojo.dto.ZWM3A17Item1DTO;
import com.nflg.wms.admin.util.PdfGeneratorUtil;
@ -409,14 +410,25 @@ public class StructuralPackageControllerService {
vo.setQrCode(QRCodeUtil.generateQRCodeBase64(vo.getNo(), 100, 100));
Map<String, Object> variables = new HashMap<>();
variables.put("info", vo);
variables.put("list", vo.getMaterialList());
String html = ThymeleafUtil.generator("/template/", "StructuralPackage", ".html", variables);
variables.put("pages", PdfPageDTO.create(vo.getMaterialList(), 9, new PackageMaterialDTO()));
String html = ThymeleafUtil.generator("/template/", "钢构件老鼠图", ".html", variables);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
PdfGeneratorUtil.generatePdf(vo.getNo() + "老鼠图", html, outputStream);
InputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
return fileUploadService.upload("tmp/sp/" + RandomUtil.randomString(10) + ".pdf", inputStream);
}
// public void exportPdf1(HttpServletResponse response,@Valid @NotNull Long id) throws Exception {
// PackageVO vo = packageService.getInfo(id);
// VUtil.trueThrowBusinessError(Objects.isNull(vo)).throwMessage("数据不存在");
// vo.setQrCode(QRCodeUtil.generateQRCodeBase64(vo.getNo(), 100, 100));
// Map<String, Object> variables = new HashMap<>();
// variables.put("info", vo);
// variables.put("pages", PdfPageDTO.create(vo.getMaterialList(), 9, new PackageMaterialDTO()));
// String html = ThymeleafUtil.generator("/template/", "钢构件老鼠图", ".html", variables);
// PdfGeneratorUtil.generatePdf(vo.getNo() + "老鼠图", html, response);
// }
@Transactional
public void materialStorage(List<WmsInTaskItem> list, List<MaterialStorageItemQO> items) {
items.forEach(this::syncStorage);

View File

@ -1,78 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8" />
<meta content="IE=edge" http-equiv="X-UA-Compatible" />
<meta content="width=device-width, initial-scale=1.0" name="viewport" />
<title>钢构包</title>
<link href="../css/StructuralPackage.css" rel="stylesheet" type="text/css" />
<style>
body {
font-size: 9px;
font-family: SimSun, Arial, sans-serif;
font-weight: normal;
font-style: normal;
}
</style>
</head>
<body>
<div class="package-diagram">
<div class="package-logo">
<img src="../img/logo1.png" />
</div>
<table class="el-table el-table--small">
<td class="el-table__cell">
<table class="package-table el-table el-table--small"
style="border-top: 1px solid #333333; border-bottom: none !important;">
<tr>
<td class="el-table__cell"><span>订单号:<span style="display: inline;" th:text="${info.externalOrderNo}"></span></span></td>
<td class="el-table__cell"><span>行号:<span style="display: inline;" th:text="${info.rowNo}"></span></span></td>
<td class="el-table__cell"><span>托盘号:<span style="display: inline;" th:text="${info.trayNo}"></span></span></td>
<td class="el-table__cell" colspan="2"><span>供应商:<span style="display: inline;" th:text="${info.supplierName}"></span></span></td>
<td class="el-table__cell" rowspan="3" style="text-align: center;width: 120px;">
<img style="width: 100px;margin-top: 12px;" th:src="${info.qrCode}"/>
</td>
</tr>
<tr>
<td class="el-table__cell"><span>机型:<span style="display: inline;" th:text="${info.modelNos}"></span></span></td>
<td class="el-table__cell"><span>版本:<span style="display: inline;" th:text="${info.version}"></span></span></td>
<td class="el-table__cell"><span>机台号:<span style="display: inline;" th:text="${info.workbenchCode}"></span></span></td>
<td class="el-table__cell"><span>种类:<span style="display: inline;" th:text="${info.cate}"></span></span></td>
<td class="el-table__cell"><span>重量:<span style="display: inline;" th:text="${info.weight}"></span></span></td>
</tr>
<tr>
<td class="el-table__cell"><span>物料号:<span style="display: inline;" th:text="${info.no}"></span></span></td>
<td class="el-table__cell"><span>图号:<span style="display: inline;" th:text="${info.drawingNo}"></span></span></td>
<td class="el-table__cell" colspan="2"><span>物料描述:<span style="display: inline;" th:text="${info.name}"></span></span></td>
<td class="el-table__cell"><span>页码:</span></td>
</tr>
</table>
</td>
</table>
<table class="el-table el-table--small">
<td class="el-table__cell" th:each="item : ${list}">
<table class="package-table el-table el-table--small">
<tr>
<td class="el-table__cell td-img" colspan="2"><img style="height: 100px;margin: 5px;" th:alt="${item.image}" th:src="${item.image}"/></td>
</tr>
<tr>
<td class="el-table__cell"><span>SAP编码:<span style="display: inline;" th:text="${item.no}"></span></span></td>
<td class="el-table__cell"><span>图号:<span style="display: inline;" th:text="${item.drawingNo}"></span></span></td>
</tr>
<tr>
<td class="el-table__cell" colspan="2"><span>物料描述:<span style="display: inline;" th:text="${item.name}"></span></span></td>
</tr>
<tr>
<td class="el-table__cell"><span>数量:<span style="display: inline;" th:text="${item.num}"></span></span></td>
<td class="el-table__cell"><span>重量:<span style="display: inline;" th:text="${item.weight}"></span></span></td>
</tr>
</table>
</td>
</table>
</div>
</body>
</html>

View File

@ -177,7 +177,7 @@
<td th:text="${iterStat.count}">序号</td>
<td th:text="${item.matnr}">物料号</td>
<td th:text="${item.maktx}" class="col-left">非金属联件和紧固件等 M6 DIN 982 不锈钢304</td>
<td th:text="${info.lgort}">收料库</td>
<td th:text="${item.lgort}">收料库</td>
<td th:text="${item.matkl}">物料组</td>
<td th:text="${item.meins}">单位</td>
<td th:text="${item.num}">1000.00</td>

View File

@ -0,0 +1,151 @@
<!DOCTYPE html>
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>发货清单</title>
<style>
@page {
size: A4 landscape;
margin: 0;
}
body {
font-family: SimSun, serif;
font-size: 9pt;
}
.table-container {
width: 100%;
max-width: 800px;
margin: 0 auto;
}
.table-row {
width: 100%;
overflow: hidden;
background: #fff;
page-break-inside: avoid;
}
.table-cell {
float: left;
width: 20%;
padding: 6px;
box-sizing: border-box;
border-top: 1px solid #ccc;
border-left: 1px solid #ccc;
text-align: left;
}
/* 第一行加顶部边框 */
.first-row .table-cell {
border-top: 1px solid #ccc;
}
/* 最后一行加底部边框 */
.last-row .table-cell {
border-bottom: 1px solid #ccc;
}
/* 最后一列加右边框 */
.last-col {
border-right: 1px solid #ccc;
}
/* 表头样式 */
.header-cell {
font-weight: bold;
text-align: center;
font-size: 16pt;
padding: 10px;
}
.cell-center {
text-align: center;
}
</style>
</head>
<body>
<div class="table-container">
<div class="table-row first-row">
<div class="table-cell header-cell last-col" style="width: 100%">发货清单</div>
</div>
<div class="table-row">
<div class="table-cell" style="width: 35%">ZL-4.15(3-04)</div>
<div class="table-cell" style="width: 35%">福建南方路面机械股份有限公司</div>
<div class="table-cell" style="width: 15%">装车号V01</div>
<div class="table-cell last-col" style="width: 15%">001</div>
</div>
<div class="table-row">
<div class="table-cell cell-center" style="width: 9%">订单号</div>
<div class="table-cell" style="width: 11%">1172000</div>
<div class="table-cell cell-center" style="width: 8%">发货员</div>
<div class="table-cell" style="width: 8%">程慧芳</div>
<div class="table-cell cell-center" style="width: 13%">办事处/代理商</div>
<div class="table-cell" style="width: 11%">测试</div>
<div class="table-cell cell-center" style="width: 9%">发货日期</div>
<div class="table-cell" style="width: 11%">2025-08-04</div>
<div class="table-cell cell-center" style="width: 9%">发运方式</div>
<div class="table-cell last-col" style="width: 11%">&nbsp;</div>
</div>
<div class="table-row">
<div class="table-cell cell-center" style="width: 9%">设备编码</div>
<div class="table-cell" style="width: 11%">22222222222</div>
<div class="table-cell cell-center" style="width: 12%">收货人电话</div>
<div class="table-cell" style="width: 40%">于文强18365529799</div>
<div class="table-cell cell-center" style="width: 8%">货单号</div>
<div class="table-cell last-col" style="width: 20%">0000</div>
</div>
<div class="table-row">
<div class="table-cell cell-center" style="width: 9%">收货单位</div>
<div class="table-cell" style="width: 40%">安徽华恒创远新材料有限责任公司</div>
<div class="table-cell cell-center" style="width: 12%">签收人/电话</div>
<div class="table-cell last-col" style="width: 39%">于文强18365529799</div>
</div>
<div class="table-row">
<div class="table-cell cell-center" style="width: 9%">收货地址</div>
<div class="table-cell" style="width: 71%">安徽华恒创远新材料有限责任公司</div>
<div class="table-cell cell-center" style="width: 9%">收货日期</div>
<div class="table-cell last-col" style="width: 11%">2025-08-04</div>
</div>
<div class="table-row">
<div class="table-cell cell-center" style="width: 6%">司机</div>
<div class="table-cell" style="width: 14%">于文强</div>
<div class="table-cell cell-center" style="width: 8%">驾驶证</div>
<div class="table-cell" style="width: 26%">51254685465465465</div>
<div class="table-cell cell-center" style="width: 9%">车牌号</div>
<div class="table-cell" style="width: 12%">粤A12345</div>
<div class="table-cell cell-center" style="width: 10%">司机电话</div>
<div class="table-cell last-col" style="width: 15%">18888888888</div>
</div>
<div class="table-row">
<div class="table-cell cell-center" style="width: 6%">序号</div>
<div class="table-cell cell-center" style="width: 14%">配件编码</div>
<div class="table-cell cell-center" style="width: 34%">配件名称</div>
<div class="table-cell cell-center" style="width: 12%">货位号</div>
<div class="table-cell cell-center" style="width: 6%">单位</div>
<div class="table-cell cell-center" style="width: 8%">数量</div>
<div class="table-cell cell-center last-col" style="width: 20%">备注</div>
</div>
<div class="table-row" th:each="item : ${datas}">
<div th:text="${item.index}" class="table-cell cell-center" style="width: 6%">1</div>
<div class="table-cell cell-center" style="width: 14%">2100552783</div>
<div class="table-cell" style="width: 34%">IH1213T.4 衬板6号</div>
<div class="table-cell cell-center" style="width: 12%">E1-4-4</div>
<div class="table-cell cell-center" style="width: 6%">PC</div>
<div class="table-cell cell-center" style="width: 8%">20.000</div>
<div class="table-cell last-col" style="width: 20%">&nbsp;</div>
</div>
<div class="table-row last-row">
<div class="table-cell" style="width: 6%">&nbsp;</div>
<div class="table-cell" style="width: 14%">&nbsp;</div>
<div class="table-cell" style="width: 34%">&nbsp;</div>
<div class="table-cell" style="width: 12%">&nbsp;</div>
<div class="table-cell" style="width: 6%">&nbsp;</div>
<div class="table-cell" style="width: 8%">&nbsp;</div>
<div class="table-cell last-col" style="width: 20%">&nbsp;</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,141 @@
<!DOCTYPE html>
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>钢构件老鼠图</title>
<style>
@page {
size: A4;
margin: 0;
}
body {
font-family: SimSun, serif;
font-size: 9pt;
padding: 10px;
margin: 0 auto;
max-width: 100%;
}
.logo {
text-align: center;
}
.logo img {
height: 40px;
padding: 10px;
}
table {
width: 100%;
border-collapse: collapse;
border: 1px solid #000;
}
td {
border: 1px solid #000;
padding: 8px;
}
tr:first-child td {
border-top: none;
}
tr:last-child td {
border-bottom: none;
}
td:first-child {
border-left: none;
}
td:last-child {
border-right: none;
border-bottom: none;
}
.data-item {
width: 33.15%;
float: left;
border-right: 1px solid #000;
}
.data-item-row-first {
border-left: 1px solid #000;
}
.cell-img {
display: table-cell;
vertical-align: middle;
text-align: center;
padding: 10px;
height: auto;
overflow: hidden;
}
.cell-img img {
vertical-align: middle; /* 防止图片底部留空隙 */
height: auto;
}
.cell {
border-bottom: 1px solid #000;
padding: 8px;
overflow: hidden;
}
.container {
page-break-after: always;
}
.container:last-child {
page-break-after: auto;
}
</style>
</head>
<body>
<div class="container" th:each="page,pageStat : ${pages}">
<div class="logo"><img alt="" src="../img/logo1.png"/></div>
<table>
<tr>
<td>订单号:<span th:text="${info.externalOrderNo}">12255665451615</span></td>
<td>行号:<span th:text="${info.rowNo}">1111</span></td>
<td>托盘号:<span th:text="${info.trayNo}">1111</span></td>
<td colspan="2">供应商:<span th:text="${info.supplierName}">1111</span></td>
<td rowspan="3" class="cell-img" style="width: 130px;">
<img alt="" style="width: 100px;" th:src="${info.qrCode}" src="../img/logo1.png"/>
</td>
</tr>
<tr>
<td>机型:<span th:text="${info.modelNos}">12255665451615</span></td>
<td>版本:<span th:text="${info.version}">1</span></td>
<td>机台号:<span th:text="${info.workbenchCode}">1</span></td>
<td>种类:<span th:text="${info.cate}">1</span></td>
<td style="width: 80px;">总重:<span th:text="${info.weight}">348.41</span></td>
</tr>
<tr>
<td colspan="4">物料号:<span th:text="${info.no}">2222222222</span>&nbsp;图号:<span
th:text="${info.drawingNo}">12255665451615</span>&nbsp;描述:<span th:text="${info.name}">12255665451615</span>
</td>
<td>页码:<span th:text="${pageStat.count}">1</span>/<span th:text="${pageStat.size}">2</span></td>
</tr>
</table>
<div class="data-item" th:each="item,itemStat : ${page.datas}"
th:classappend="${itemStat.index % 3 == 0} ? 'data-item-row-first'">
<div class="cell" style="height: 200px;">
<div class="cell-img">
<img style="width: 200px;height: 180px;" alt=""
th:src="${item.image?: 'http://192.168.163.83:9000/api/v1/buckets/nflg-wms/objects/download?preview=true&prefix=template%2Fnone.png&version_id=null'}"/>
</div>
</div>
<div class="cell">SAP编码<span th:text="${item.no}">2222222222</span>&nbsp;图号:<span
th:text="${item.drawingNo}">12255665451615</span></div>
<div class="cell">名称:<span th:text="${item.name}">2222222222</span></div>
<div class="cell">数量:<span th:text="${item.num}">1</span>&nbsp;&nbsp;&nbsp;&nbsp;重量:<span
th:text="${item.weight}">348.41</span></div>
</div>
</div>
</body>
</html>

View File

@ -3,6 +3,7 @@ package com.nflg.wms.common.pojo.dto;
import com.nflg.wms.common.pojo.qo.SRMOrderReceiveItemQO;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
@Data
@ -31,7 +32,7 @@ public class SRMOrderReceiveDTO {
/**
* 发货时间
*/
private String deliveryNoteDate;
private LocalDateTime deliveryNoteDate;
/**
* 运单号

View File

@ -3,6 +3,7 @@ package com.nflg.wms.common.pojo.qo;
import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

View File

@ -3,6 +3,7 @@ package com.nflg.wms.common.pojo.qo;
import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

View File

@ -53,6 +53,8 @@ public class QCReceiptQO extends SearchBaseQO {
return receiveEndDate == null ? null : receiveEndDate.plusDays(1);
}
/**
* 入库单号
*/

View File

@ -32,4 +32,14 @@ public class ComponentPackingPdaVO {
* 交货单号
*/
private String vbelv;
/**
* 设备编号
*/
private String matnr;
/**
* 设备名称
*/
private String maktx;
}

View File

@ -3,6 +3,7 @@ package com.nflg.wms.common.pojo.vo;
import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDate;
import java.time.LocalDateTime;
@Data
@ -45,7 +46,7 @@ public class ComponentPackingVO {
/**
* 发货日期
*/
private LocalDateTime datum;
private LocalDate datum;
/**
* 箱号

View File

@ -68,4 +68,6 @@ public class InCostcenterBackInfoItemVO {
* 待退数量
*/
private BigDecimal left;
private String codeNum = "点击查看";
}

View File

@ -0,0 +1,71 @@
package com.nflg.wms.common.pojo.vo;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class InCostcenterBackItemVO {
private Long id;
/**
* 订单id
*/
private Long orderId;
/**
* 物料组
*/
private String matkl;
/**
* 物料号
*/
private String matnr;
/**
* 物料描述
*/
private String maktx;
/**
* 需求量
*/
private BigDecimal bdmng;
/**
* 基本计量单位
*/
private String meins;
/**
* 库存地点
*/
private String lgort;
/**
* 库存仓位
*/
private String lgpbe;
/**
* 项目文本
*/
private String sgtxt;
/**
* 退料数量
*/
private BigDecimal num;
/**
* 待退数量
*/
private BigDecimal left;
/**
* 预留/相关需求的项目编号
*/
private String rspos;
}

View File

@ -89,18 +89,18 @@ public class InCostcenterBackVO {
*/
private LocalDateTime updateTime;
/**
* SAP 同步成功或失败
*/
private Boolean sapStatus;
/**
* SAP同步失败原因
*/
private String sapError;
/**
* 状态0待上架1上架中2已上架
*/
private Integer state;
/**
* 物料凭证编号
*/
private String matDoc;
/**
* 物料凭证年度
*/
private String docYear;
}

View File

@ -43,6 +43,11 @@ public class ZWM3A05ItemVO {
*/
private String matnr;
/**
* 物料描述短文本
*/
private String maktx;
/**
* 批号
*/

View File

@ -9,6 +9,7 @@ import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**

View File

@ -74,7 +74,7 @@ public class WmsSrmOrder implements Serializable {
/**
* 发货日期
*/
private String deliveryNoteDate;
private LocalDateTime deliveryNoteDate;
/**
* 是否已完结

View File

@ -4,7 +4,8 @@
<select id="search" resultType="com.nflg.wms.common.pojo.vo.ComponentOutboundVO">
select id,packing_no,
outbound_no,matnr,name1,uname,vbeln,maktx,datum,xnum,cnum,bname,zjshz,zchep,tel_number,sernr,huodh,vbelv,p_name,l_bezei,l_name,g_streen,g_str_suppl2,wbstk,is_completed,create_name,create_time,factory_no
outbound_no,matnr,name1,uname,vbeln,maktx,datum,xnum,cnum,bname,zjshz,zchep,tel_number,sernr,huodh,vbelv,
p_name,l_bezei,l_name,g_streen,g_str_suppl2,wbstk,is_completed,create_name,create_time,factory_no
from wms_component_outbound
<where>
<if test="request.packingNo !=null and request.packingNo !=''">
@ -14,19 +15,19 @@
and name1 like concat('%', #{request.name1}, '%')
</if>
<if test="request.pName !=null and request.pName !=''">
and pName like concat('%', #{request.pName}, '%')
and p_name like concat('%', #{request.pName}, '%')
</if>
<if test="request.factoryNo !=null and request.factoryNo !=''">
and factoryNo = #{request.factoryNo}
and factory_no = #{request.factoryNo}
</if>
<if test="request.huodh !=null and request.huodh !=''">
and huodh like concat('%', #{request.huodh}, '%')
and vbelv like concat('%', #{request.huodh}, '%')
</if>
<if test="request.vbeln !=null and request.vbeln !=''">
and vbeln like concat('%', #{request.vbeln}, '%')
</if>
<if test="request.outboundNo !=null and request.outboundNo !=''">
and huodh like concat('%', #{request.outboundNo}, '%')
and outbound_no like concat('%', #{request.outboundNo}, '%')
</if>
<if test="request.startDate !=null">
and datum >= #{request.startDate}

View File

@ -3,7 +3,8 @@
<mapper namespace="com.nflg.wms.repository.mapper.WmsComponentPackingMapper">
<select id="search" resultType="com.nflg.wms.common.pojo.vo.ComponentPackingVO">
select
id,no,matnr,name1,uname,vbeln,maktx,datum,xnum,cnum,bname,zjshz,zchep,tel_number,sernr,huodh,vbelv,p_name,l_bezei,l_name,g_streen,g_str_suppl2,wbstk,is_completed,create_name,create_time,factory_no
id,no,matnr,name1,uname,vbeln,maktx,datum,xnum,cnum,bname,zjshz,zchep,tel_number,sernr,huodh,vbelv,p_name,
l_bezei,l_name,g_streen,g_str_suppl2,wbstk,is_completed,create_name,create_time,factory_no
from wms_component_packing
<where>
<if test="request.no !=null and request.no !=''">
@ -13,13 +14,13 @@
and name1 like concat('%', #{request.name1}, '%')
</if>
<if test="request.pName !=null and request.pName !=''">
and pName like concat('%', #{request.pName}, '%')
and p_name like concat('%', #{request.pName}, '%')
</if>
<if test="request.factoryNo !=null and request.factoryNo !=''">
and factoryNo = #{request.factoryNo}
and factory_no = #{request.factoryNo}
</if>
<if test="request.huodh !=null and request.huodh !=''">
and huodh like concat('%', #{request.huodh}, '%')
and vbelv like concat('%', #{request.huodh}, '%')
</if>
<if test="request.vbeln !=null and request.vbeln !=''">
and vbeln like concat('%', #{request.vbeln}, '%')
@ -36,7 +37,7 @@
<select id="getOutboundTask" resultType="com.nflg.wms.common.pojo.vo.ComponentPackingPdaVO">
select
id,no,vbeln,create_time,datum,vbelv
id,no,vbeln,create_time,datum,vbelv,matnr,maktx
from wms_component_packing
where is_completed=0
<if test="no !=null and no !=''">

View File

@ -3,7 +3,7 @@
<mapper namespace="com.nflg.wms.repository.mapper.WmsInCostcenterBackTicketItemMapper">
<select id="getList" resultType="com.nflg.wms.repository.entity.WmsInCostcenterBackItem">
SELECT icbti.id,icbti.num,icbi.*
SELECT icbti.id,icbti.num,icbti.lgpbe,icbi.*
FROM wms_in_costcenter_back_ticket_item icbti
INNER JOIN wms_in_costcenter_back_item icbi ON icbti.order_item_id=icbi."id"
WHERE icbti.ticket_id=#{id}

View File

@ -3,14 +3,14 @@
<mapper namespace="com.nflg.wms.repository.mapper.WmsInCostcenterBackTicketMapper">
<select id="getInfo" resultType="com.nflg.wms.common.pojo.vo.InCostcenterBackInfoVO">
SELECT icbt.id,icbt."no" AS "ticket_no",icbt.create_by,icbt.create_time,icb.*
SELECT icbt.id,icbt."no" AS "ticket_no",icbt.create_by,icbt.create_time,icbt.lgort,icb.*
FROM wms_in_costcenter_back_ticket icbt
INNER JOIN wms_in_costcenter_back icb ON icbt.order_id=icb."id"
WHERE icbt."id"=#{id}
</select>
<select id="search" resultType="com.nflg.wms.common.pojo.vo.InCostcenterBackVO">
SELECT icbt.id,icbt."no" AS "ticket_no",icbt.create_by,icbt.create_time,icb.*
SELECT icbt.id,icbt."no" AS "ticket_no",icbt.create_by,icbt.create_time,icbt.mat_doc,icbt.doc_year,icb.*
FROM wms_in_costcenter_back_ticket icbt
INNER JOIN wms_in_costcenter_back icb ON icbt.order_id=icb."id"
<where>

View File

@ -28,6 +28,10 @@
<if test="request.supplierNum !=null and request.supplierNum !=''">
and b.supplier_num = #{request.supplierNum}
</if>
<if test="request.poNumber !=null and request.poNumber !='' ">
and EXISTS (SELECT 1 FROM wms_po_receipt_item WHERE wms_po_receipt_item.receive_id = a.id and
wms_po_receipt_item.po_num like concat('%', #{request.poNumber}, '%'))
</if>
<if test="request.receiveStartDate !=null">
and a.create_time >= #{request.receiveStartDate}
</if>

View File

@ -47,12 +47,17 @@
<if test="request.supplierNum !=null and request.supplierNum !=''">
and b.supplier_num =#{request.supplierNum}
</if>
<if test="request.poNumber !=null and request.poNumber !='' ">
and EXISTS (SELECT 1 FROM wms_qc_receive_item WHERE wms_qc_receive_item.receive_id = a.id and
wms_qc_receive_item.po_num like concat('%', #{request.poNumber}, '%'))
</if>
<if test="request.receiveStartDate !=null">
and a.create_time >= #{request.receiveStartDate}
</if>
<if test="request.receiveEndDate !=null">
and a.create_time &lt; #{request.receiveEndDate}
</if>
<if test="request.deliveryStartDate !=null">
and b.delivery_note_date >= #{request.deliveryStartDate}
</if>