添加功能
This commit is contained in:
parent
cf16a46271
commit
ea3c00ce24
|
|
@ -87,7 +87,7 @@ public class BinController extends BaseController {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出选中的仓库,为空时导出模版
|
* 导出选中的储位,为空时导出模版
|
||||||
* @param ids 选中的id集合
|
* @param ids 选中的id集合
|
||||||
*/
|
*/
|
||||||
@PostMapping("export")
|
@PostMapping("export")
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import com.nflg.wms.common.pojo.PageData;
|
||||||
import com.nflg.wms.common.pojo.dto.BomMaterialDTO;
|
import com.nflg.wms.common.pojo.dto.BomMaterialDTO;
|
||||||
import com.nflg.wms.common.pojo.qo.BomSearchQO;
|
import com.nflg.wms.common.pojo.qo.BomSearchQO;
|
||||||
import com.nflg.wms.common.pojo.qo.BomUpdateQO;
|
import com.nflg.wms.common.pojo.qo.BomUpdateQO;
|
||||||
|
import com.nflg.wms.common.pojo.vo.BomMaterialVO;
|
||||||
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;
|
||||||
|
|
@ -50,7 +51,7 @@ public class BomController extends BaseController {
|
||||||
* @param request 搜索参数
|
* @param request 搜索参数
|
||||||
*/
|
*/
|
||||||
@PostMapping("search")
|
@PostMapping("search")
|
||||||
public ApiResult<PageData<BomMaterialDTO>> search(@Valid @RequestBody BomSearchQO request){
|
public ApiResult<PageData<BomMaterialVO>> search(@Valid @RequestBody BomSearchQO request){
|
||||||
return ApiResult.success(bomControllerService.search(request));
|
return ApiResult.success(bomControllerService.search(request));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import com.google.common.collect.Sets;
|
||||||
import com.nflg.wms.admin.util.DateTimeUtil;
|
import com.nflg.wms.admin.util.DateTimeUtil;
|
||||||
import com.nflg.wms.admin.util.PdfGeneratorUtil;
|
import com.nflg.wms.admin.util.PdfGeneratorUtil;
|
||||||
import com.nflg.wms.admin.util.QRCodeUtil;
|
import com.nflg.wms.admin.util.QRCodeUtil;
|
||||||
|
import com.nflg.wms.admin.util.ThymeleafUtil;
|
||||||
import com.nflg.wms.common.constant.UserType;
|
import com.nflg.wms.common.constant.UserType;
|
||||||
import com.nflg.wms.common.pojo.ApiResult;
|
import com.nflg.wms.common.pojo.ApiResult;
|
||||||
import com.nflg.wms.common.pojo.PageData;
|
import com.nflg.wms.common.pojo.PageData;
|
||||||
|
|
@ -37,10 +38,7 @@ import org.springframework.core.io.ClassPathResource;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.thymeleaf.TemplateEngine;
|
import org.thymeleaf.TemplateEngine;
|
||||||
import org.thymeleaf.context.Context;
|
|
||||||
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
@ -157,18 +155,18 @@ public class DeliverNormalOrderController extends BaseController {
|
||||||
*/
|
*/
|
||||||
@GetMapping("exportPdf")
|
@GetMapping("exportPdf")
|
||||||
public void exportPdf(HttpServletResponse response, @Valid @RequestParam @NotNull Long id) throws Exception {
|
public void exportPdf(HttpServletResponse response, @Valid @RequestParam @NotNull Long id) throws Exception {
|
||||||
// List<WmsDeliverNormalOrderItem> orders = deliverNormalOrderItemService.getByDeliverId(id);
|
List<WmsDeliverNormalOrderItem> orders = deliverNormalOrderItemService.getByDeliverId(id);
|
||||||
// VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(orders)).throwMessage("没有需要导出的数据");
|
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(orders)).throwMessage("没有需要导出的数据");
|
||||||
List<WmsDeliverNormalOrderItem> orders=new ArrayList<>();
|
// List<WmsDeliverNormalOrderItem> orders=new ArrayList<>();
|
||||||
orders.add(new WmsDeliverNormalOrderItem()
|
// orders.add(new WmsDeliverNormalOrderItem()
|
||||||
.setMaterialNo("TEST00001")
|
// .setMaterialNo("TEST00001")
|
||||||
.setMaterialDesc("测试物料")
|
// .setMaterialDesc("测试物料")
|
||||||
.setBatchNum(new BigDecimal("36"))
|
// .setBatchNum(new BigDecimal("36"))
|
||||||
.setLableNum(4)
|
// .setLableNum(4)
|
||||||
.setMinPackageNum(new BigDecimal("10"))
|
// .setMinPackageNum(new BigDecimal("10"))
|
||||||
.setUniqNo(DateTimeUtil.getForDeliverOrderItemNo())
|
// .setUniqNo(DateTimeUtil.getForDeliverOrderItemNo())
|
||||||
.setBatchNo("TEST00001")
|
// .setBatchNo("TEST00001")
|
||||||
);
|
// );
|
||||||
List<DeliverNormalOrderItemDTO> datas = new ArrayList<>();
|
List<DeliverNormalOrderItemDTO> datas = new ArrayList<>();
|
||||||
for (WmsDeliverNormalOrderItem order : orders) {
|
for (WmsDeliverNormalOrderItem order : orders) {
|
||||||
for (int i = 0; i < order.getLableNum(); i++) {
|
for (int i = 0; i < order.getLableNum(); i++) {
|
||||||
|
|
@ -184,15 +182,9 @@ public class DeliverNormalOrderController extends BaseController {
|
||||||
datas.add(dto);
|
datas.add(dto);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
|
|
||||||
resolver.setPrefix("/template/qrcode/");
|
|
||||||
resolver.setSuffix(".html");
|
|
||||||
templateEngine.setTemplateResolver(resolver);
|
|
||||||
Map<String, Object> variables = new HashMap<>();
|
Map<String, Object> variables = new HashMap<>();
|
||||||
variables.put("list", datas);
|
variables.put("list", datas);
|
||||||
Context context = new Context();
|
String html = ThymeleafUtil.generator("/template/qrcode/", "dp", ".html", variables);
|
||||||
context.setVariables(variables);
|
|
||||||
String html = templateEngine.process("dp", context);
|
|
||||||
URL baseUrl = new ClassPathResource("template/qrcode/").getURL();
|
URL baseUrl = new ClassPathResource("template/qrcode/").getURL();
|
||||||
PdfGeneratorUtil.generatePdf("普通物料条码", html,baseUrl.toString(), response);
|
PdfGeneratorUtil.generatePdf("普通物料条码", html,baseUrl.toString(), response);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -123,10 +123,10 @@ public class StructuralPackageController extends BaseController {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出钢构包
|
* 导出钢构包,id为空时导出模板
|
||||||
*/
|
*/
|
||||||
@GetMapping("exportKit")
|
@GetMapping("exportKit")
|
||||||
public void exportKit(HttpServletResponse response,@Valid @RequestParam @NotNull Long id) throws Exception {
|
public void exportKit(HttpServletResponse response,@RequestParam(required = false) Long id) throws Exception {
|
||||||
packageControllerService.exportKit(response,id);
|
packageControllerService.exportKit(response,id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import com.nflg.wms.common.pojo.dto.BomImportExcelDTO;
|
||||||
import com.nflg.wms.common.pojo.dto.BomMaterialDTO;
|
import com.nflg.wms.common.pojo.dto.BomMaterialDTO;
|
||||||
import com.nflg.wms.common.pojo.qo.BomSearchQO;
|
import com.nflg.wms.common.pojo.qo.BomSearchQO;
|
||||||
import com.nflg.wms.common.pojo.qo.BomUpdateQO;
|
import com.nflg.wms.common.pojo.qo.BomUpdateQO;
|
||||||
|
import com.nflg.wms.common.pojo.vo.BomMaterialVO;
|
||||||
import com.nflg.wms.common.util.DateTimeUtil;
|
import com.nflg.wms.common.util.DateTimeUtil;
|
||||||
import com.nflg.wms.common.util.EecExcelUtil;
|
import com.nflg.wms.common.util.EecExcelUtil;
|
||||||
import com.nflg.wms.common.util.UserUtil;
|
import com.nflg.wms.common.util.UserUtil;
|
||||||
|
|
@ -81,7 +82,7 @@ public class BomControllerService {
|
||||||
}).toList());
|
}).toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
public PageData<BomMaterialDTO> search(@Valid BomSearchQO request) {
|
public PageData<BomMaterialVO> search(@Valid BomSearchQO request) {
|
||||||
return bomService.search(request);
|
return bomService.search(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,13 @@ public class StorageControllerService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public IPage<StorageVO> search(@Valid StorageSearchQO request) {
|
public IPage<StorageVO> search(@Valid StorageSearchQO request) {
|
||||||
return storageService.search(request);
|
IPage<StorageVO> page = storageService.search(request);
|
||||||
|
page.getRecords().forEach(storageVO ->
|
||||||
|
{
|
||||||
|
List<String> binNos = StrUtil.split(storageVO.getBinNos(), ",");
|
||||||
|
storageVO.setBinIds(binService.lambdaQuery().select(WmsBin::getId).in(WmsBin::getNo,binNos).list().stream().map(WmsBin::getId).toList());
|
||||||
|
});
|
||||||
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.nflg.wms.admin.util.PdfGeneratorUtil;
|
import com.nflg.wms.admin.util.PdfGeneratorUtil;
|
||||||
|
import com.nflg.wms.admin.util.ThymeleafUtil;
|
||||||
import com.nflg.wms.common.constant.STATE;
|
import com.nflg.wms.common.constant.STATE;
|
||||||
import com.nflg.wms.common.pojo.ApiResult;
|
import com.nflg.wms.common.pojo.ApiResult;
|
||||||
import com.nflg.wms.common.pojo.PageData;
|
import com.nflg.wms.common.pojo.PageData;
|
||||||
|
|
@ -40,8 +41,6 @@ import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
import org.thymeleaf.TemplateEngine;
|
import org.thymeleaf.TemplateEngine;
|
||||||
import org.thymeleaf.context.Context;
|
|
||||||
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;
|
|
||||||
import org.ttzero.excel.entity.ListSheet;
|
import org.ttzero.excel.entity.ListSheet;
|
||||||
import org.ttzero.excel.entity.TemplateSheet;
|
import org.ttzero.excel.entity.TemplateSheet;
|
||||||
import org.ttzero.excel.entity.Workbook;
|
import org.ttzero.excel.entity.Workbook;
|
||||||
|
|
@ -325,32 +324,34 @@ public class StructuralPackageControllerService {
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void exportKit(HttpServletResponse response, @Valid @NotNull Long id) throws IOException {
|
public void exportKit(HttpServletResponse response, Long id) throws IOException {
|
||||||
|
if (Objects.isNull(id)) {
|
||||||
|
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
|
||||||
|
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("钢构包导入模板.xlsx", StandardCharsets.UTF_8));
|
||||||
|
new Workbook()
|
||||||
|
.addSheet(new TemplateSheet(new ClassPathResource("template/钢构包导出.xlsx").getInputStream()))
|
||||||
|
.writeTo(response.getOutputStream());
|
||||||
|
} else {
|
||||||
PackageVO packageInfo = packageService.getInfo(id);
|
PackageVO packageInfo = packageService.getInfo(id);
|
||||||
VUtil.trueThrowBusinessError(Objects.isNull(packageInfo)).throwMessage("数据不存在");
|
VUtil.trueThrowBusinessError(Objects.isNull(packageInfo)).throwMessage("数据不存在");
|
||||||
List<PackageMaterialDTO> list = JSONUtil.toList(packageInfo.getMaterials(), PackageMaterialDTO.class);
|
List<PackageMaterialDTO> list = JSONUtil.toList(packageInfo.getMaterials(), PackageMaterialDTO.class);
|
||||||
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
|
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
|
||||||
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode(packageInfo.getNo()+"钢构包.xlsx", StandardCharsets.UTF_8));
|
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode(packageInfo.getNo() + "钢构包.xlsx", StandardCharsets.UTF_8));
|
||||||
new Workbook()
|
new Workbook()
|
||||||
.addSheet(new TemplateSheet(new ClassPathResource("template/钢构包导出.xlsx").getInputStream())
|
.addSheet(new TemplateSheet(new ClassPathResource("template/钢构包导出.xlsx").getInputStream())
|
||||||
.setData(packageInfo)
|
.setData(packageInfo)
|
||||||
.setData("list", list)
|
.setData("list", list)
|
||||||
).writeTo(response.getOutputStream());
|
).writeTo(response.getOutputStream());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void exportPdf(HttpServletResponse response, @Valid @NotNull Long id) throws Exception {
|
public void exportPdf(HttpServletResponse response, @Valid @NotNull Long id) throws Exception {
|
||||||
PackageVO vo = packageService.getInfo(id);
|
PackageVO vo = packageService.getInfo(id);
|
||||||
VUtil.trueThrowBusinessError(Objects.isNull(vo)).throwMessage("数据不存在");
|
VUtil.trueThrowBusinessError(Objects.isNull(vo)).throwMessage("数据不存在");
|
||||||
ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
|
|
||||||
resolver.setPrefix("/template/");
|
|
||||||
resolver.setSuffix(".html");
|
|
||||||
templateEngine.setTemplateResolver(resolver);
|
|
||||||
Map<String, Object> variables = new HashMap<>();
|
Map<String, Object> variables = new HashMap<>();
|
||||||
variables.put("info", vo);
|
variables.put("info", vo);
|
||||||
variables.put("list", vo.getMaterialList());
|
variables.put("list", vo.getMaterialList());
|
||||||
Context context = new Context();
|
String html = ThymeleafUtil.generator("/template/", "StructuralPackage", ".html", variables);
|
||||||
context.setVariables(variables);
|
|
||||||
String html = templateEngine.process("StructuralPackage", context);
|
|
||||||
PdfGeneratorUtil.generatePdf(vo.getNo() + "老鼠图", html, response);
|
PdfGeneratorUtil.generatePdf(vo.getNo() + "老鼠图", html, response);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
package com.nflg.wms.admin.util;
|
||||||
|
|
||||||
|
import org.thymeleaf.context.Context;
|
||||||
|
import org.thymeleaf.spring6.SpringTemplateEngine;
|
||||||
|
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class ThymeleafUtil {
|
||||||
|
|
||||||
|
public static String generator(String prefix,String template,String suffix, Map<String, Object> variables){
|
||||||
|
ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
|
||||||
|
resolver.setPrefix(prefix);
|
||||||
|
resolver.setSuffix(".html");
|
||||||
|
SpringTemplateEngine engine = new SpringTemplateEngine();
|
||||||
|
engine.setTemplateResolver(resolver);
|
||||||
|
engine.setEnableSpringELCompiler(true);
|
||||||
|
Context context = new Context();
|
||||||
|
context.setVariables(variables);
|
||||||
|
return engine.process("StructuralPackage", context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -12,7 +12,7 @@ public class BinExcelExportDTO {
|
||||||
* 仓库编码
|
* 仓库编码
|
||||||
*/
|
*/
|
||||||
@ExcelColumn("*仓库编码")
|
@ExcelColumn("*仓库编码")
|
||||||
private String warehouseCode;
|
private String warehouseNo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 储位编码
|
* 储位编码
|
||||||
|
|
|
||||||
|
|
@ -15,5 +15,5 @@ public class PackageSearchQO extends PageQO {
|
||||||
/**
|
/**
|
||||||
* 机型id
|
* 机型id
|
||||||
*/
|
*/
|
||||||
private Long modelId;
|
private String modelId;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,70 @@
|
||||||
|
package com.nflg.wms.common.pojo.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class BomMaterialVO {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上级id
|
||||||
|
*/
|
||||||
|
private Long parentId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SAP料号
|
||||||
|
*/
|
||||||
|
private String materialNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料描述
|
||||||
|
*/
|
||||||
|
private String materialDesc;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 图号
|
||||||
|
*/
|
||||||
|
private String drawingNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数量
|
||||||
|
*/
|
||||||
|
private BigDecimal num;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 重量
|
||||||
|
*/
|
||||||
|
private BigDecimal materialWeight;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人
|
||||||
|
*/
|
||||||
|
private String createBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 最后更新人
|
||||||
|
*/
|
||||||
|
private String updateBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 最后更新时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 子节点
|
||||||
|
*/
|
||||||
|
private List<BomMaterialVO> children;
|
||||||
|
}
|
||||||
|
|
@ -3,6 +3,7 @@ package com.nflg.wms.common.pojo.vo;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class StorageVO {
|
public class StorageVO {
|
||||||
|
|
@ -19,11 +20,21 @@ public class StorageVO {
|
||||||
*/
|
*/
|
||||||
private String materialDescribe;
|
private String materialDescribe;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仓库id
|
||||||
|
*/
|
||||||
|
private String warehouseId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 仓库编码
|
* 仓库编码
|
||||||
*/
|
*/
|
||||||
private String warehouseNo;
|
private String warehouseNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 储位id列表
|
||||||
|
*/
|
||||||
|
private List<Long> binIds;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 储位编码
|
* 储位编码
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,8 @@ package com.nflg.wms.repository.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.nflg.wms.common.pojo.PageData;
|
import com.nflg.wms.common.pojo.PageData;
|
||||||
import com.nflg.wms.common.pojo.dto.BomMaterialDTO;
|
|
||||||
import com.nflg.wms.common.pojo.qo.BomSearchQO;
|
import com.nflg.wms.common.pojo.qo.BomSearchQO;
|
||||||
|
import com.nflg.wms.common.pojo.vo.BomMaterialVO;
|
||||||
import com.nflg.wms.repository.entity.WmsBom;
|
import com.nflg.wms.repository.entity.WmsBom;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
|
|
||||||
|
|
@ -23,5 +23,5 @@ public interface IWmsBomService extends IService<WmsBom> {
|
||||||
|
|
||||||
void update(Long parentId, List<WmsBom> list);
|
void update(Long parentId, List<WmsBom> list);
|
||||||
|
|
||||||
PageData<BomMaterialDTO> search(@Valid BomSearchQO request);
|
PageData<BomMaterialVO> search(@Valid BomSearchQO request);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,8 @@ import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.nflg.wms.common.pojo.PageData;
|
import com.nflg.wms.common.pojo.PageData;
|
||||||
import com.nflg.wms.common.pojo.dto.BomMaterialDTO;
|
|
||||||
import com.nflg.wms.common.pojo.qo.BomSearchQO;
|
import com.nflg.wms.common.pojo.qo.BomSearchQO;
|
||||||
|
import com.nflg.wms.common.pojo.vo.BomMaterialVO;
|
||||||
import com.nflg.wms.common.util.UserUtil;
|
import com.nflg.wms.common.util.UserUtil;
|
||||||
import com.nflg.wms.common.util.VUtil;
|
import com.nflg.wms.common.util.VUtil;
|
||||||
import com.nflg.wms.repository.entity.WmsBom;
|
import com.nflg.wms.repository.entity.WmsBom;
|
||||||
|
|
@ -55,7 +55,7 @@ public class WmsBomServiceImpl extends ServiceImpl<WmsBomMapper, WmsBom> impleme
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageData<BomMaterialDTO> search(BomSearchQO request) {
|
public PageData<BomMaterialVO> search(BomSearchQO request) {
|
||||||
List<WmsBom> boms = lambdaQuery()
|
List<WmsBom> boms = lambdaQuery()
|
||||||
.like(StrUtil.isNotBlank(request.getNo()), WmsBom::getNo, request.getNo())
|
.like(StrUtil.isNotBlank(request.getNo()), WmsBom::getNo, request.getNo())
|
||||||
.like(StrUtil.isNotBlank(request.getDescribe()), WmsBom::getDescribe, request.getDescribe())
|
.like(StrUtil.isNotBlank(request.getDescribe()), WmsBom::getDescribe, request.getDescribe())
|
||||||
|
|
@ -64,34 +64,34 @@ public class WmsBomServiceImpl extends ServiceImpl<WmsBomMapper, WmsBom> impleme
|
||||||
if (CollectionUtil.isNotEmpty(parentIds)) {
|
if (CollectionUtil.isNotEmpty(parentIds)) {
|
||||||
boms.addAll(listByIds(parentIds));
|
boms.addAll(listByIds(parentIds));
|
||||||
}
|
}
|
||||||
List<BomMaterialDTO> datas = boms.stream()
|
List<BomMaterialVO> datas = boms.stream()
|
||||||
.filter(it -> it.getParentId() == 0L)
|
.filter(it -> it.getParentId() == 0L)
|
||||||
.sorted(Comparator.comparing(WmsBom::getId))
|
.sorted(Comparator.comparing(WmsBom::getId))
|
||||||
.skip((long) (request.getPage() - 1) * request.getPageSize())
|
.skip((long) (request.getPage() - 1) * request.getPageSize())
|
||||||
.limit(request.getPageSize())
|
.limit(request.getPageSize())
|
||||||
.map(it -> new BomMaterialDTO()
|
.map(it -> new BomMaterialVO()
|
||||||
.setId(it.getId())
|
.setId(it.getId())
|
||||||
.setParentId(it.getParentId())
|
.setParentId(it.getParentId())
|
||||||
.setMaterialNo(it.getNo())
|
.setMaterialNo(it.getNo())
|
||||||
.setMaterialDesc(it.getDescribe())
|
.setMaterialDesc(it.getDescribe())
|
||||||
.setDrawingNo(it.getDrawingNo())
|
.setDrawingNo(it.getDrawingNo())
|
||||||
.setNum(it.getNum())
|
.setNum(it.getNum())
|
||||||
.setMaterialWeight(String.valueOf(it.getWeight()))
|
.setMaterialWeight(it.getWeight())
|
||||||
.setChildren(boms.stream()
|
.setChildren(boms.stream()
|
||||||
.filter(child -> child.getParentId().equals(it.getId()))
|
.filter(child -> child.getParentId().equals(it.getId()))
|
||||||
.map(child -> {
|
.map(child -> {
|
||||||
return new BomMaterialDTO()
|
return new BomMaterialVO()
|
||||||
.setId(child.getId())
|
.setId(child.getId())
|
||||||
.setParentId(child.getParentId())
|
.setParentId(child.getParentId())
|
||||||
.setMaterialNo(child.getNo())
|
.setMaterialNo(child.getNo())
|
||||||
.setMaterialDesc(child.getDescribe())
|
.setMaterialDesc(child.getDescribe())
|
||||||
.setDrawingNo(child.getDrawingNo())
|
.setDrawingNo(child.getDrawingNo())
|
||||||
.setNum(child.getNum())
|
.setNum(child.getNum())
|
||||||
.setMaterialWeight(String.valueOf(child.getWeight()));
|
.setMaterialWeight(child.getWeight());
|
||||||
})
|
})
|
||||||
.toList()
|
.toList()
|
||||||
)).toList();
|
)).toList();
|
||||||
return new PageData<BomMaterialDTO>()
|
return new PageData<BomMaterialVO>()
|
||||||
.setPage(request.getPage())
|
.setPage(request.getPage())
|
||||||
.setPageSize(request.getPageSize())
|
.setPageSize(request.getPageSize())
|
||||||
.setTotal(datas.size())
|
.setTotal(datas.size())
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
FROM (
|
FROM (
|
||||||
SELECT
|
SELECT
|
||||||
s.*,
|
s.*,
|
||||||
|
wh.id AS "warehouseId",
|
||||||
wh.no AS "warehouseNo",
|
wh.no AS "warehouseNo",
|
||||||
m.no AS "materialNo",
|
m.no AS "materialNo",
|
||||||
m.describe AS "materialDescribe",
|
m.describe AS "materialDescribe",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue