Compare commits

...

2 Commits

Author SHA1 Message Date
曹鹏飞 6a074de6f9 feat: bug-838 工艺室提出的问题 2025-10-17 17:45:21 +08:00
曹鹏飞 8600f90dcd feat: 一些优化 2025-10-13 14:31:51 +08:00
33 changed files with 174 additions and 45 deletions

View File

@ -101,9 +101,7 @@ public class ComponentPackingController {
.eq(WmsComponentPacking::getVbelv, request.getVbelv()) .eq(WmsComponentPacking::getVbelv, request.getVbelv())
.eq(WmsComponentPacking::getIsCompleted, 2) .eq(WmsComponentPacking::getIsCompleted, 2)
.one(); .one();
VUtil.trueThrowBusinessError(Objects.nonNull(packing), () -> "已存在相同的交货单,单号为【" + packing.getNo() + "】,状态为【" + (packing.getIsCompleted() == 0 ? "未出库" : "已出库") + "");
VUtil.trueThrowBusinessError(Objects.nonNull(packing))
.throwMessage("已存在相同的交货单,单号为【" + packing.getNo() + "】,状态为【" + (packing.getIsCompleted() == 0 ? "未出库" : "已出库") + "");
ZWM3A19DTO result = sapService.zwm3a19(request.getVbelv(), request.getWerks()); ZWM3A19DTO result = sapService.zwm3a19(request.getVbelv(), request.getWerks());
VUtil.trueThrowBusinessError(StrUtil.isBlank(result.getHeadDTO().getWbstk()) VUtil.trueThrowBusinessError(StrUtil.isBlank(result.getHeadDTO().getWbstk())
|| result.getHeadDTO().getWbstk().equalsIgnoreCase("C")) || result.getHeadDTO().getWbstk().equalsIgnoreCase("C"))

View File

@ -9,6 +9,7 @@ import com.nflg.wms.common.pojo.qo.*;
import com.nflg.wms.common.pojo.vo.EbomParentVO; import com.nflg.wms.common.pojo.vo.EbomParentVO;
import com.nflg.wms.common.pojo.vo.MaterialVO; import com.nflg.wms.common.pojo.vo.MaterialVO;
import com.nflg.wms.common.pojo.vo.QueryMaterialsVO; import com.nflg.wms.common.pojo.vo.QueryMaterialsVO;
import com.nflg.wms.repository.entity.WmsMaterial;
import com.nflg.wms.starter.BaseController; import com.nflg.wms.starter.BaseController;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
@ -22,6 +23,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* 图纸管理 * 图纸管理
@ -60,6 +62,15 @@ public class MaterialController extends BaseController {
return ApiResult.success(materialControllerService.search(request)); return ApiResult.success(materialControllerService.search(request));
} }
/**
* 批量获取图纸信息
* @param nos SAP料号列表
*/
@PostMapping("getMaterials")
public ApiResult<List<WmsMaterial>> getMaterials(@Valid @RequestBody @NotEmpty Set<String> nos) {
return ApiResult.success(materialControllerService.getMaterials(nos));
}
/** /**
* 获取图纸历史记录 * 获取图纸历史记录
* @param no SAP料号 * @param no SAP料号

View File

@ -207,8 +207,6 @@ public class OutAssistanceController extends BaseController {
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode.getContent()); MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode.getContent());
BigDecimal qrNum = qrCode.getNum(); BigDecimal qrNum = qrCode.getNum();
String materialNo = qrCodeContent.getMaterialNo(); String materialNo = qrCodeContent.getMaterialNo();
VUtil.trueThrowBusinessError(qrCode.getNum().compareTo(qrCodeContent.getNum()) > 0)
.throwMessage("物料" + materialNo + "的数量不能大于二维码中的数量");
dtos.add(qrCodeContent); dtos.add(qrCodeContent);
WmsOutAssistanceItem item = datas.stream().filter(d -> Objects.equals(d.getId(), qrCode.getItemId())).findFirst().orElse(null); WmsOutAssistanceItem item = datas.stream().filter(d -> Objects.equals(d.getId(), qrCode.getItemId())).findFirst().orElse(null);
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要领料"); VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要领料");

View File

@ -172,7 +172,9 @@ public class OutCostCenterController extends BaseController {
.setLgpbe(item.getLgpbe()) .setLgpbe(item.getLgpbe())
.setMaktx2(item.getMaktx()) .setMaktx2(item.getMaktx())
.setMatnr(item.getMatnr()) .setMatnr(item.getMatnr())
.setNum(item.getLeft())).toList() .setNum(item.getLeft())
.setMeins(item.getMeins())
).toList()
) )
); );
} }
@ -200,8 +202,6 @@ public class OutCostCenterController extends BaseController {
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode.getContent()); MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode.getContent());
BigDecimal qrNum = qrCode.getNum(); BigDecimal qrNum = qrCode.getNum();
String materialNo = qrCodeContent.getMaterialNo(); String materialNo = qrCodeContent.getMaterialNo();
VUtil.trueThrowBusinessError(qrCode.getNum().compareTo(qrCodeContent.getNum()) > 0)
.throwMessage("物料" + materialNo + "的数量不能大于二维码中的数量");
dtos.add(qrCodeContent); dtos.add(qrCodeContent);
WmsOutCostcenterItem item = datas.stream().filter(d -> Objects.equals(d.getId(), qrCode.getItemId())).findFirst().orElse(null); WmsOutCostcenterItem item = datas.stream().filter(d -> Objects.equals(d.getId(), qrCode.getItemId())).findFirst().orElse(null);
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要领料"); VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要领料");

View File

@ -281,6 +281,7 @@ public class OutProduceController extends BaseController {
.setLgpbe(item.getLgpbe()) .setLgpbe(item.getLgpbe())
.setMaktx2(item.getMaktx2()) .setMaktx2(item.getMaktx2())
.setMatnr(item.getMatnr()) .setMatnr(item.getMatnr())
.setMeins(item.getMeins())
.setNum(item.getSqsl().subtract(item.getNum()))) .setNum(item.getSqsl().subtract(item.getNum())))
.toList() .toList()
) )
@ -310,8 +311,6 @@ public class OutProduceController extends BaseController {
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode.getContent()); MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode.getContent());
String materialNo = qrCodeContent.getMaterialNo(); String materialNo = qrCodeContent.getMaterialNo();
BigDecimal qrNum = qrCode.getNum(); BigDecimal qrNum = qrCode.getNum();
VUtil.trueThrowBusinessError(qrCode.getNum().compareTo(qrCodeContent.getNum()) > 0)
.throwMessage("物料" + materialNo + "的数量不能大于二维码中的数量");
dtos.add(qrCodeContent); dtos.add(qrCodeContent);
WmsOutProduceItem item = datas.stream().filter(d -> Objects.equals(d.getId(), qrCode.getItemId())).findFirst().orElse(null); WmsOutProduceItem item = datas.stream().filter(d -> Objects.equals(d.getId(), qrCode.getItemId())).findFirst().orElse(null);
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要领料"); VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要领料");

View File

@ -142,6 +142,18 @@ public class TransferCompanyController extends BaseController {
return ApiResult.success(transferCompanyService.search(request)); return ApiResult.success(transferCompanyService.search(request));
} }
/**
* 删除
*/
@PostMapping("delete")
public ApiResult<Void> delete(@Valid @RequestBody @NotEmpty List<Long> ids) {
List<String> datas = transferCompanyService.getProhibitDelete(ids);
VUtil.trueThrowBusinessError(CollectionUtil.isNotEmpty(datas))
.throwMessage("以下订单已出库禁止删除:" + CollectionUtil.join(datas, ","));
transferCompanyService.removeByIds(ids);
return ApiResult.success();
}
/** /**
* 修改备注 * 修改备注
*/ */
@ -194,6 +206,7 @@ public class TransferCompanyController extends BaseController {
.setMatnr(item.getMatnr()) .setMatnr(item.getMatnr())
.setMaktx(item.getMaktx()) .setMaktx(item.getMaktx())
.setNum(item.getLeft()) .setNum(item.getLeft())
.setMeins(item.getMeins())
).toList() ).toList()
) )
); );
@ -221,8 +234,6 @@ public class TransferCompanyController extends BaseController {
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode.getContent()); MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode.getContent());
BigDecimal qrNum = qrCode.getNum(); BigDecimal qrNum = qrCode.getNum();
String materialNo = qrCodeContent.getMaterialNo(); String materialNo = qrCodeContent.getMaterialNo();
VUtil.trueThrowBusinessError(qrCode.getNum().compareTo(qrCodeContent.getNum()) > 0)
.throwMessage("物料" + materialNo + "的数量不能大于二维码中的数量");
WmsTransferCompanyItem item = datas.stream().filter(d -> Objects.equals(d.getId(), qrCode.getItemId())).findFirst().orElse(null); WmsTransferCompanyItem item = datas.stream().filter(d -> Objects.equals(d.getId(), qrCode.getItemId())).findFirst().orElse(null);
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要出库"); VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要出库");
VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0) VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0)
@ -376,8 +387,8 @@ public class TransferCompanyController extends BaseController {
.setContent(record.getContent()) .setContent(record.getContent())
.setBatchNo(record.getBatchNo()) .setBatchNo(record.getBatchNo())
.setSerialNo(record.getSerialNo()) .setSerialNo(record.getSerialNo())
.setFactoryNo(qo.getLgort1()) .setFactoryNo(ticket.getWerks())
.setWarehouseNo(qo.getItems().stream().filter(it -> Objects.equals(it.getId(), record.getTicketItemId())).findFirst().get().getBinNos()) .setWarehouseNo(qo.getLgort1())
.setUniqNo(record.getUniqNo()) .setUniqNo(record.getUniqNo())
.setRspos(record.getRspos()) .setRspos(record.getRspos())
.setNum(record.getNum()) .setNum(record.getNum())

View File

@ -157,10 +157,11 @@ public class TransferFactoryController extends BaseController {
* 删除 * 删除
*/ */
@PostMapping("delete") @PostMapping("delete")
public ApiResult<Void> delete(@Valid @RequestParam @NotNull Long id) { public ApiResult<Void> delete(@Valid @RequestBody @NotEmpty List<Long> ids) {
VUtil.trueThrowBusinessError(transferFactoryTicketService.lambdaQuery().eq(WmsTransferFactoryTicket::getOrderId, id).exists()) List<String> datas = transferFactoryService.getProhibitDelete(ids);
.throwMessage("已生成出库单,禁止删除!"); VUtil.trueThrowBusinessError(CollectionUtil.isNotEmpty(datas))
transferFactoryService.removeById(id); .throwMessage("以下订单已出库禁止删除:" + CollectionUtil.join(datas, ","));
transferFactoryService.removeByIds(ids);
return ApiResult.success(); return ApiResult.success();
} }
@ -201,6 +202,7 @@ public class TransferFactoryController extends BaseController {
.setLgort1(order.getUmlgo()) .setLgort1(order.getUmlgo())
.setLgort(order.getLgort()) .setLgort(order.getLgort())
.setNum(item.getLeft()) .setNum(item.getLeft())
.setMeins(item.getMeins())
.setBinIn(StrUtil.join("/", storageService.getBinNos(item.getMatnr(), order.getWerks(), order.getUmlgo()))) .setBinIn(StrUtil.join("/", storageService.getBinNos(item.getMatnr(), order.getWerks(), order.getUmlgo())))
.setBinOut(StrUtil.join("/", storageService.getBinNos(item.getMatnr(), order.getWerks(), order.getLgort()))) .setBinOut(StrUtil.join("/", storageService.getBinNos(item.getMatnr(), order.getWerks(), order.getLgort())))
).toList() ).toList()
@ -231,8 +233,6 @@ public class TransferFactoryController extends BaseController {
MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode.getContent()); MaterialQRCodeContentDTO qrCodeContent = NoUtil.getMaterialQRCodeContent(qrCode.getContent());
BigDecimal qrNum = qrCode.getNum(); BigDecimal qrNum = qrCode.getNum();
String materialNo = qrCodeContent.getMaterialNo(); String materialNo = qrCodeContent.getMaterialNo();
VUtil.trueThrowBusinessError(qrCode.getNum().compareTo(qrCodeContent.getNum()) > 0)
.throwMessage("物料" + materialNo + "的数量不能大于二维码中的数量");
WmsTransferFactoryItem item = datas.stream().filter(d -> Objects.equals(d.getId(), qrCode.getItemId())).findFirst().orElse(null); WmsTransferFactoryItem item = datas.stream().filter(d -> Objects.equals(d.getId(), qrCode.getItemId())).findFirst().orElse(null);
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要出库"); VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + materialNo + "不需要出库");
WmsTransferFactoryTicketItem pti = ticketItems.stream() WmsTransferFactoryTicketItem pti = ticketItems.stream()

View File

@ -53,6 +53,7 @@ import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Component @Component
@ -339,4 +340,8 @@ public class MaterialControllerService {
public EbomParentVO queryMaterial(@Valid @NotEmpty EbomMaterialQO request) { public EbomParentVO queryMaterial(@Valid @NotEmpty EbomMaterialQO request) {
return bomMaterialService.queryMaterial(request); return bomMaterialService.queryMaterial(request);
} }
public List<WmsMaterial> getMaterials(@Valid @NotEmpty Set<String> nos) {
return materialService.getMaterials(nos);
}
} }

View File

@ -947,8 +947,13 @@ public class SapService {
parameters.put("S_DATE", DateTimeUtil.format(query.getStartDate(), "yyyyMMdd")); parameters.put("S_DATE", DateTimeUtil.format(query.getStartDate(), "yyyyMMdd"));
parameters.put("E_DATE", DateTimeUtil.format(query.getEndDate(), "yyyyMMdd")); parameters.put("E_DATE", DateTimeUtil.format(query.getEndDate(), "yyyyMMdd"));
Map<String, List<Map<String, Object>>> tables = new HashMap<>();
if (StrUtil.isNotBlank(query.getEbeln())) {
tables.put("S_EBELN", List.of(Map.of("EBELN", query.getEbeln())));
}
// 调用 SAP RFC 函数 ZWM00_MB112 // 调用 SAP RFC 函数 ZWM00_MB112
JCoFunction function = exec("ZWM3A15", parameters, null); JCoFunction function = exec("ZWM3A15", parameters, tables);
// 处理返回表 T_RETURN判断执行是否成功 // 处理返回表 T_RETURN判断执行是否成功
JCoParameterList exportParam = function.getExportParameterList(); JCoParameterList exportParam = function.getExportParameterList();
VUtil.trueThrowBusinessError(Objects.isNull(exportParam)).throwMessage("无法获取到有效的物料凭证信息"); VUtil.trueThrowBusinessError(Objects.isNull(exportParam)).throwMessage("无法获取到有效的物料凭证信息");
@ -982,8 +987,13 @@ public class SapService {
parameters.put("S_DATE", DateTimeUtil.format(query.getStartDate(), "yyyyMMdd")); parameters.put("S_DATE", DateTimeUtil.format(query.getStartDate(), "yyyyMMdd"));
parameters.put("E_DATE", DateTimeUtil.format(query.getEndDate(), "yyyyMMdd")); parameters.put("E_DATE", DateTimeUtil.format(query.getEndDate(), "yyyyMMdd"));
Map<String, List<Map<String, Object>>> tables = new HashMap<>();
if (StrUtil.isNotBlank(query.getRsnum())) {
tables.put("S_RSNUM", List.of(Map.of("RSNUM", query.getRsnum())));
}
// 调用 SAP RFC 函数 ZWM00_MB112 // 调用 SAP RFC 函数 ZWM00_MB112
JCoFunction function = exec("ZWM3A16", parameters, null); JCoFunction function = exec("ZWM3A16", parameters, tables);
// 处理返回表 T_RETURN判断执行是否成功 // 处理返回表 T_RETURN判断执行是否成功
JCoParameterList exportParam = function.getExportParameterList(); JCoParameterList exportParam = function.getExportParameterList();

View File

@ -340,9 +340,9 @@ public class StructuralPackageControllerService {
break; break;
default: default:
if (row.getRowNum() > 7) { if (row.getRowNum() > 7) {
String mno = row.getString(0); String mno = StrUtil.trim(row.getString(0));
if (StrUtil.isBlank(mno)) { if (StrUtil.isBlank(mno)) {
sb.append(StrUtil.format("第{}行零件编码不能为空;", row.getRowNum())); // sb.append(StrUtil.format("第{}行零件编码不能为空;", row.getRowNum()));
break; break;
} }
WmsMaterial material1 = materialService.getCurrent(mno); WmsMaterial material1 = materialService.getCurrent(mno);

View File

@ -36,9 +36,9 @@ public class DeployTest {
//处理主jar包 //处理主jar包
handleFile(sshUtil, localPath + jarName, remotePath + jarName); handleFile(sshUtil, localPath + jarName, remotePath + jarName);
//处理字体目录 //处理字体目录
handleDir(sshUtil, localPath, remotePath, "fonts"); // handleDir(sshUtil, localPath, remotePath, "fonts");
//处理lib目录 //处理lib目录
handleDir(sshUtil, localPath, remotePath, "lib"); // handleDir(sshUtil, localPath, remotePath, "lib");
//执行脚本启动服务 //执行脚本启动服务
sshUtil.exec("cd " + remotePath + " && ./restart.sh"); sshUtil.exec("cd " + remotePath + " && ./restart.sh");
sshUtil.disconnect(); sshUtil.disconnect();

View File

@ -63,4 +63,9 @@ public class AllocationOrderQO extends PageQO {
} }
return endDate; return endDate;
} }
/**
* 采购凭证号
*/
private String ebeln;
} }

View File

@ -1,7 +1,6 @@
package com.nflg.wms.common.pojo.qo; package com.nflg.wms.common.pojo.qo;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@ -15,7 +14,6 @@ import java.util.Objects;
public class DepartmentMaterialRequisitionQO { public class DepartmentMaterialRequisitionQO {
//工厂 //工厂
@NotBlank
private String werks; private String werks;
//未过账 选中为X否则为空 //未过账 选中为X否则为空

View File

@ -1,6 +1,5 @@
package com.nflg.wms.common.pojo.qo; package com.nflg.wms.common.pojo.qo;
import jakarta.validation.constraints.NotBlank;
import lombok.Data; import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@ -12,7 +11,6 @@ import java.util.Objects;
public class DepartmentMaterialReturnSlipQO { public class DepartmentMaterialReturnSlipQO {
//工厂 //工厂
@NotBlank
private String werks; private String werks;
/** /**

View File

@ -1,6 +1,7 @@
package com.nflg.wms.common.pojo.qo; package com.nflg.wms.common.pojo.qo;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -34,25 +35,25 @@ public class MaterialAddQO {
/** /**
* 重量 * 重量
*/ */
@NotBlank @NotNull
private BigDecimal weight; private BigDecimal weight;
/** /**
* 长度 * 长度
*/ */
@NotBlank @NotNull
private BigDecimal length; private BigDecimal length;
/** /**
* 宽度 * 宽度
*/ */
@NotBlank @NotNull
private BigDecimal width; private BigDecimal width;
/** /**
* 高度 * 高度
*/ */
@NotBlank @NotNull
private BigDecimal height; private BigDecimal height;
/** /**

View File

@ -39,4 +39,9 @@ public class TransferCompanySearchQO extends SearchBaseQO {
* 转出存储地点 * 转出存储地点
*/ */
private String lgfsb1; private String lgfsb1;
/**
* 采购凭证号
*/
private String ebeln;
} }

View File

@ -67,4 +67,9 @@ public class TransferOrderQO extends PageQO {
} }
return endDate; return endDate;
} }
/**
* 预留/相关需求的编号
*/
private String rsnum;
} }

View File

@ -40,4 +40,9 @@ public class TransferCompanyPdaItemVO {
* 调入储位 * 调入储位
*/ */
private String binIn; private String binIn;
/**
* 基本计量单位
*/
private String meins;
} }

View File

@ -45,4 +45,9 @@ public class TransferFactoryPdaItemVO {
* 数量 * 数量
*/ */
private BigDecimal num; private BigDecimal num;
/**
* 基本计量单位
*/
private String meins;
} }

View File

@ -9,6 +9,7 @@ import com.nflg.wms.repository.entity.WmsMaterial;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* <p> * <p>
@ -27,4 +28,6 @@ public interface WmsMaterialMapper extends BaseMapper<WmsMaterial> {
List<WmsMaterial> getNotSet(); List<WmsMaterial> getNotSet();
List<MaterialVO> searchNonPage(@Param("request") MaterialSearchQO request); List<MaterialVO> searchNonPage(@Param("request") MaterialSearchQO request);
List<WmsMaterial> getMaterials(Set<String> nos);
} }

View File

@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nflg.wms.common.pojo.qo.TransferCompanySearchQO; import com.nflg.wms.common.pojo.qo.TransferCompanySearchQO;
import com.nflg.wms.repository.entity.WmsTransferCompany; import com.nflg.wms.repository.entity.WmsTransferCompany;
import java.util.List;
/** /**
* <p> * <p>
* Mapper 接口 * Mapper 接口
@ -16,4 +18,6 @@ import com.nflg.wms.repository.entity.WmsTransferCompany;
public interface WmsTransferCompanyMapper extends BaseMapper<WmsTransferCompany> { public interface WmsTransferCompanyMapper extends BaseMapper<WmsTransferCompany> {
IPage<WmsTransferCompany> search(TransferCompanySearchQO request, Page<?> objectPage); IPage<WmsTransferCompany> search(TransferCompanySearchQO request, Page<?> objectPage);
List<String> getProhibitDelete(List<Long> ids);
} }

View File

@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nflg.wms.common.pojo.qo.TransferFactorySearchQO; import com.nflg.wms.common.pojo.qo.TransferFactorySearchQO;
import com.nflg.wms.repository.entity.WmsTransferFactory; import com.nflg.wms.repository.entity.WmsTransferFactory;
import java.util.List;
/** /**
* <p> * <p>
* 厂内调拨单 Mapper 接口 * 厂内调拨单 Mapper 接口
@ -16,4 +18,6 @@ import com.nflg.wms.repository.entity.WmsTransferFactory;
public interface WmsTransferFactoryMapper extends BaseMapper<WmsTransferFactory> { public interface WmsTransferFactoryMapper extends BaseMapper<WmsTransferFactory> {
IPage<WmsTransferFactory> search(TransferFactorySearchQO request, Page<Object> objectPage); IPage<WmsTransferFactory> search(TransferFactorySearchQO request, Page<Object> objectPage);
List<String> getProhibitDelete(List<Long> ids);
} }

View File

@ -7,8 +7,10 @@ import com.nflg.wms.common.pojo.vo.MaterialVO;
import com.nflg.wms.repository.entity.WmsMaterial; import com.nflg.wms.repository.entity.WmsMaterial;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* <p> * <p>
@ -33,4 +35,6 @@ public interface IWmsMaterialService extends IService<WmsMaterial> {
WmsMaterial getCurrent(String no); WmsMaterial getCurrent(String no);
List<MaterialVO> searchNonPage(@Valid MaterialSearchQO request); List<MaterialVO> searchNonPage(@Valid MaterialSearchQO request);
List<WmsMaterial> getMaterials(@Valid @NotEmpty Set<String> nos);
} }

View File

@ -5,6 +5,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.nflg.wms.common.pojo.qo.TransferCompanySearchQO; import com.nflg.wms.common.pojo.qo.TransferCompanySearchQO;
import com.nflg.wms.repository.entity.WmsTransferCompany; import com.nflg.wms.repository.entity.WmsTransferCompany;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotEmpty;
import java.util.List;
/** /**
* <p> * <p>
@ -16,4 +19,6 @@ import jakarta.validation.Valid;
public interface IWmsTransferCompanyService extends IService<WmsTransferCompany> { public interface IWmsTransferCompanyService extends IService<WmsTransferCompany> {
IPage<WmsTransferCompany> search(@Valid TransferCompanySearchQO request); IPage<WmsTransferCompany> search(@Valid TransferCompanySearchQO request);
List<String> getProhibitDelete(@Valid @NotEmpty List<Long> ids);
} }

View File

@ -5,6 +5,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.nflg.wms.common.pojo.qo.TransferFactorySearchQO; import com.nflg.wms.common.pojo.qo.TransferFactorySearchQO;
import com.nflg.wms.repository.entity.WmsTransferFactory; import com.nflg.wms.repository.entity.WmsTransferFactory;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotEmpty;
import java.util.List;
/** /**
* <p> * <p>
@ -16,4 +19,6 @@ import jakarta.validation.Valid;
public interface IWmsTransferFactoryService extends IService<WmsTransferFactory> { public interface IWmsTransferFactoryService extends IService<WmsTransferFactory> {
IPage<WmsTransferFactory> search(@Valid TransferFactorySearchQO request); IPage<WmsTransferFactory> search(@Valid TransferFactorySearchQO request);
List<String> getProhibitDelete(@Valid @NotEmpty List<Long> ids);
} }

View File

@ -14,6 +14,7 @@ import jakarta.annotation.Resource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* <p> * <p>
@ -70,4 +71,9 @@ public class WmsMaterialServiceImpl extends ServiceImpl<WmsMaterialMapper, WmsMa
public List<MaterialVO> searchNonPage(MaterialSearchQO request) { public List<MaterialVO> searchNonPage(MaterialSearchQO request) {
return baseMapper.searchNonPage(request); return baseMapper.searchNonPage(request);
} }
@Override
public List<WmsMaterial> getMaterials(Set<String> nos) {
return baseMapper.getMaterials(nos);
}
} }

View File

@ -9,6 +9,8 @@ import com.nflg.wms.repository.mapper.WmsTransferCompanyMapper;
import com.nflg.wms.repository.service.IWmsTransferCompanyService; import com.nflg.wms.repository.service.IWmsTransferCompanyService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
/** /**
* <p> * <p>
* 服务实现类 * 服务实现类
@ -23,4 +25,9 @@ public class WmsTransferCompanyServiceImpl extends ServiceImpl<WmsTransferCompan
public IPage<WmsTransferCompany> search(TransferCompanySearchQO request) { public IPage<WmsTransferCompany> search(TransferCompanySearchQO request) {
return baseMapper.search(request, new Page<>(request.getPage(), request.getPageSize())); return baseMapper.search(request, new Page<>(request.getPage(), request.getPageSize()));
} }
@Override
public List<String> getProhibitDelete(List<Long> ids) {
return baseMapper.getProhibitDelete(ids);
}
} }

View File

@ -9,6 +9,8 @@ import com.nflg.wms.repository.mapper.WmsTransferFactoryMapper;
import com.nflg.wms.repository.service.IWmsTransferFactoryService; import com.nflg.wms.repository.service.IWmsTransferFactoryService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
/** /**
* <p> * <p>
* 厂内调拨单 服务实现类 * 厂内调拨单 服务实现类
@ -23,4 +25,9 @@ public class WmsTransferFactoryServiceImpl extends ServiceImpl<WmsTransferFactor
public IPage<WmsTransferFactory> search(TransferFactorySearchQO request) { public IPage<WmsTransferFactory> search(TransferFactorySearchQO request) {
return baseMapper.search(request, new Page<>(request.getPage(), request.getPageSize())); return baseMapper.search(request, new Page<>(request.getPage(), request.getPageSize()));
} }
@Override
public List<String> getProhibitDelete(List<Long> ids) {
return baseMapper.getProhibitDelete(ids);
}
} }

View File

@ -79,7 +79,7 @@ public class WmsWorkbenchServiceImpl extends ServiceImpl<WmsWorkbenchMapper, Wms
@Override @Override
public IPage<WmsWorkbench> search(ModelSearchQO request) { public IPage<WmsWorkbench> search(ModelSearchQO request) {
return lambdaQuery() return lambdaQuery()
.like(StrUtil.isNotBlank(request.getNo()), WmsWorkbench::getNo, request.getNo()) .apply(StrUtil.isNotBlank(request.getNo()), "no ilike concat('%', {0}, '%')", request.getNo())
.orderByDesc(WmsWorkbench::getId) .orderByDesc(WmsWorkbench::getId)
.page(new Page<>(request.getPage(), request.getPageSize())); .page(new Page<>(request.getPage(), request.getPageSize()));
} }

View File

@ -47,4 +47,14 @@
</where> </where>
ORDER BY "no",id DESC ORDER BY "no",id DESC
</select> </select>
<select id="getMaterials" resultType="com.nflg.wms.repository.entity.WmsMaterial">
SELECT DISTINCT ON ("no") *
FROM wms_material
where "no" in
<foreach item="item" collection="nos" separator="," open="(" close=")">
#{item}
</foreach>
ORDER BY "no",id DESC
</select>
</mapper> </mapper>

View File

@ -18,12 +18,6 @@
<if test="request.werks!=null and request.werks!=''"> <if test="request.werks!=null and request.werks!=''">
and werks ilike concat('%',#{request.werks},'%') and werks ilike concat('%',#{request.werks},'%')
</if> </if>
<if test="request.bukrs!=null and request.bukrs!=''">
and bukrs ilike concat('%',#{request.bukrs},'%')
</if>
<if test="request.bukrs1!=null and request.bukrs1!=''">
and bukrs1 ilike concat('%',#{request.bukrs1},'%')
</if>
<if test="request.lgort!=null and request.lgort!=''"> <if test="request.lgort!=null and request.lgort!=''">
and lgort ilike concat('%',#{request.lgort},'%') and lgort ilike concat('%',#{request.lgort},'%')
</if> </if>
@ -33,7 +27,20 @@
<if test="request.lgfsb1!=null and request.lgfsb1!=''"> <if test="request.lgfsb1!=null and request.lgfsb1!=''">
and lgfsb1 ilike concat('%',#{request.lgfsb1},'%') and lgfsb1 ilike concat('%',#{request.lgfsb1},'%')
</if> </if>
<if test="request.ebeln!=null and request.ebeln!=''">
and ebeln ilike concat('%',#{request.ebeln},'%')
</if>
</where> </where>
order by id desc order by id desc
</select> </select>
<select id="getProhibitDelete" resultType="java.lang.String">
SELECT tc."no"
FROM wms_transfer_company tc
INNER JOIN wms_transfer_company_ticket tct ON tct.order_id=tc."id"
WHERE tc.id IN
<foreach item="item" collection="ids" separator="," open="(" close=")">
#{item}
</foreach>
</select>
</mapper> </mapper>

View File

@ -30,4 +30,14 @@
</where> </where>
order by id desc order by id desc
</select> </select>
<select id="getProhibitDelete" resultType="java.lang.String">
SELECT tf."no"
FROM wms_transfer_factory tf
INNER JOIN wms_transfer_factory_ticket tft ON tft.order_id=tf."id"
WHERE tf.id IN
<foreach item="item" collection="ids" separator="," open="(" close=")">
#{item}
</foreach>
</select>
</mapper> </mapper>

View File

@ -1,5 +1,6 @@
package com.nflg.wms.starter.service; package com.nflg.wms.starter.service;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.nflg.wms.common.pojo.dto.*; import com.nflg.wms.common.pojo.dto.*;
@ -19,9 +20,7 @@ import org.springframework.http.*;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import java.util.Collection; import java.util.*;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@Slf4j @Slf4j
@ -84,6 +83,10 @@ public class BomMaterialService {
} }
public List<BomMaterialDTO> getList(Collection<String> nos) { public List<BomMaterialDTO> getList(Collection<String> nos) {
log.info("查询主物料系统参数:" + JSONUtil.toJsonStr(nos));
if (CollectionUtil.isEmpty(nos)) {
return Collections.emptyList();
}
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON); headers.setContentType(MediaType.APPLICATION_JSON);
headers.add("authorization", getToken()); headers.add("authorization", getToken());
@ -100,7 +103,7 @@ public class BomMaterialService {
.throwMessage("查询主物料系统失败"); .throwMessage("查询主物料系统失败");
BomResultDTO<List<BomMaterialDTO>> resultDTO = response.getBody(); BomResultDTO<List<BomMaterialDTO>> resultDTO = response.getBody();
log.info("查询主物料系统返回数据:" + (Objects.nonNull(resultDTO.getData())&&resultDTO.getData().size()>1000?"数据超过1000条不打印":JSONUtil.toJsonStr(resultDTO))); log.info("查询主物料系统返回数据:" + (Objects.nonNull(resultDTO.getData())&&resultDTO.getData().size()>1000?"数据超过1000条不打印":JSONUtil.toJsonStr(resultDTO)));
return resultDTO.getData(); return Optional.ofNullable(resultDTO.getData()).orElse(Collections.emptyList());
} }
public BomMaterialDTO getMaterialInfo(String no) { public BomMaterialDTO getMaterialInfo(String no) {