feat: 添加功能

This commit is contained in:
曹鹏飞 2025-08-01 18:25:09 +08:00
parent 8a0b9205e3
commit dacbe67cc8
48 changed files with 1891 additions and 2 deletions

View File

@ -0,0 +1,264 @@
package com.nflg.wms.admin.controller;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.nflg.wms.common.constant.STATE;
import com.nflg.wms.common.pojo.ApiResult;
import com.nflg.wms.common.pojo.PageData;
import com.nflg.wms.common.pojo.dto.BomMaterialDTO;
import com.nflg.wms.common.pojo.dto.GongZhuangTaiZhangExcelCheckDTO;
import com.nflg.wms.common.pojo.qo.GongZhuangTaiZhangAddQO;
import com.nflg.wms.common.pojo.qo.GongZhuangTaiZhangCheckAddQO;
import com.nflg.wms.common.pojo.qo.GongZhuangTaiZhangSearchQO;
import com.nflg.wms.common.pojo.qo.GongZhuangTaiZhangUpdateQO;
import com.nflg.wms.common.util.DateTimeUtil;
import com.nflg.wms.common.util.EecExcelUtil;
import com.nflg.wms.common.util.UserUtil;
import com.nflg.wms.common.util.VUtil;
import com.nflg.wms.repository.entity.WmsGongzhuangTaizhang;
import com.nflg.wms.repository.entity.WmsGongzhuangTaizhangCheck;
import com.nflg.wms.repository.service.IWmsGongzhuangTaizhangCheckService;
import com.nflg.wms.repository.service.IWmsGongzhuangTaizhangService;
import com.nflg.wms.starter.BaseController;
import com.nflg.wms.starter.service.BomMaterialService;
import com.nflg.wms.starter.service.FileUploadService;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.ttzero.excel.entity.ListSheet;
import org.ttzero.excel.entity.Workbook;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* 工装台账管理
*/
@RestController
@RequestMapping("/gongzhuang/taizhang")
public class GongZhuangTaiZhangController extends BaseController {
@Resource
private IWmsGongzhuangTaizhangService gongzhuangTaizhangService;
@Resource
private IWmsGongzhuangTaizhangCheckService gongzhuangTaizhangCheckService;
@Resource
private FileUploadService fileUploadService;
@Resource
private BomMaterialService bomMaterialService;
/**
* 添加
* @param request 请求参数
*/
@PostMapping("add")
public ApiResult<Void> add(@Valid @RequestBody GongZhuangTaiZhangAddQO request) {
BomMaterialDTO materialDTO = bomMaterialService.getMaterialInfo(request.getNo());
VUtil.trueThrowBusinessError(Objects.isNull(materialDTO)).throwMessage("工装编号无效");
gongzhuangTaizhangService.add(request);
return ApiResult.success();
}
/**
* 更新
* @param request 请求参数
*/
@PostMapping("update")
public ApiResult<Void> update(@Valid @RequestBody GongZhuangTaiZhangUpdateQO request) {
gongzhuangTaizhangService.update(request);
return ApiResult.success();
}
/**
* 搜索
* @param request 请求信息
*/
@PostMapping("search")
public ApiResult<PageData<WmsGongzhuangTaizhang>> search(@Valid @RequestBody GongZhuangTaiZhangSearchQO request) {
return ApiResult.success(gongzhuangTaizhangService.search(request));
}
/**
* 删除
* @param ids id列表
*/
@PostMapping("delete")
public ApiResult<Void> delete(@Valid @RequestBody List<Long> ids) {
gongzhuangTaizhangService.delete(ids);
return ApiResult.success();
}
/**
* 导出模版
*/
@GetMapping("export")
public void exportSelect(HttpServletResponse response) throws Exception {
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("工装台账模板.xlsx", StandardCharsets.UTF_8));
List<GongZhuangTaiZhangAddQO> datas = new ArrayList<>();
datas.add(new GongZhuangTaiZhangAddQO());
new Workbook()
.addSheet(new ListSheet<>(datas))
.writeTo(response.getOutputStream());
}
/**
* 导入
* @param file 文件
*/
@Transactional
@PostMapping("import")
public ApiResult importFromExcel(@RequestParam(value = "file") MultipartFile file) throws IOException {
List<GongZhuangTaiZhangExcelCheckDTO> data = EecExcelUtil.getExcelContext(file.getInputStream(), GongZhuangTaiZhangExcelCheckDTO.class);
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(data)).throwMessage("导入文件内容为空");
if (checkAndImport(data)) {
return ApiResult.success();
} else {
try(ByteArrayOutputStream osOut = new ByteArrayOutputStream()) {
new Workbook()
.addSheet(new ListSheet<>(data))
.writeTo(osOut);
try(ByteArrayInputStream isIn = new ByteArrayInputStream(osOut.toByteArray())) {
return ApiResult.error(STATE.DataNoCheckPass, "导入文件失败",fileUploadService.upload("temp/" + DateTimeUtil.format(LocalDate.now(),"yyyyMMdd")+"/"+ IdUtil.fastUUID() + ".xlsx", isIn));
}
}catch (Exception e){
return ApiResult.error(STATE.BusinessError, "保存文件出错");
}
}
}
@Transactional
public boolean checkAndImport(List<GongZhuangTaiZhangExcelCheckDTO> data) {
List<WmsGongzhuangTaizhang> infos = new ArrayList<>();
for (GongZhuangTaiZhangExcelCheckDTO dto : data) {
WmsGongzhuangTaizhang info = Convert.convert(WmsGongzhuangTaizhang.class, dto);
StringBuilder sb = new StringBuilder();
if (Objects.isNull(dto.getNo())) {
sb.append("工装编号不能为空;");
} else {
BomMaterialDTO materialDTO =bomMaterialService.getMaterialInfo(dto.getNo());
if (Objects.isNull(materialDTO)){
sb.append("工装编号无效;");
}else {
WmsGongzhuangTaizhang dbInfo = gongzhuangTaizhangService.lambdaQuery().eq(WmsGongzhuangTaizhang::getNo, dto.getNo()).one();
if (Objects.isNull(dbInfo)) {
info.setCreateBy(UserUtil.getUserName());
info.setCreateTime(LocalDateTime.now());
} else {
info.setId(dbInfo.getId());
info.setUpdateBy(UserUtil.getUserName());
info.setUpdateTime(LocalDateTime.now());
}
}
}
dto.setError(sb.toString());
infos.add(info);
}
if (data.stream().noneMatch(it -> StrUtil.isNotBlank(it.getError()))) {
gongzhuangTaizhangService.saveOrUpdateBatch(infos);
return true;
}
return false;
}
/**
* 添加检验记录
* @param request 请求参数
*/
@PostMapping("addCheck")
public ApiResult<Void> addCheck(@Valid @RequestBody GongZhuangTaiZhangCheckAddQO request) {
VUtil.trueThrowBusinessError(!gongzhuangTaizhangService.lambdaQuery().eq(WmsGongzhuangTaizhang::getNo, request.getNo()).exists())
.throwMessage("请先添加工装编号");
gongzhuangTaizhangCheckService.add(request);
return ApiResult.success();
}
/**
* 导出检验模版
*/
@GetMapping("exportCheckTemplate")
public void exportCheckTemplate(HttpServletResponse response) throws Exception {
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("工装检验明细模板.xlsx", StandardCharsets.UTF_8));
List<GongZhuangTaiZhangCheckAddQO> datas = new ArrayList<>();
datas.add(new GongZhuangTaiZhangCheckAddQO());
new Workbook()
.addSheet(new ListSheet<>(datas))
.writeTo(response.getOutputStream());
}
/**
* 导入检验记录
* @param file 文件
*/
@Transactional
@PostMapping("importChecks")
public ApiResult importChecks(@RequestParam(value = "file") MultipartFile file) throws IOException {
List<GongZhuangTaiZhangCheckAddQO> data = EecExcelUtil.getExcelContext(file.getInputStream(), GongZhuangTaiZhangCheckAddQO.class);
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(data)).throwMessage("导入文件内容为空");
if (checkAndImportChecks(data)) {
return ApiResult.success();
} else {
try(ByteArrayOutputStream osOut = new ByteArrayOutputStream()) {
new Workbook()
.addSheet(new ListSheet<>(data))
.writeTo(osOut);
try(ByteArrayInputStream isIn = new ByteArrayInputStream(osOut.toByteArray())) {
return ApiResult.error(STATE.DataNoCheckPass, "导入文件失败",fileUploadService.upload("temp/" + DateTimeUtil.format(LocalDate.now(),"yyyyMMdd")+"/"+ IdUtil.fastUUID() + ".xlsx", isIn));
}
}catch (Exception e){
return ApiResult.error(STATE.BusinessError, "保存文件出错");
}
}
}
@Transactional
public boolean checkAndImportChecks(List<GongZhuangTaiZhangCheckAddQO> data) {
List<WmsGongzhuangTaizhangCheck> infos = new ArrayList<>();
for (GongZhuangTaiZhangCheckAddQO dto : data) {
WmsGongzhuangTaizhangCheck info = Convert.convert(WmsGongzhuangTaizhangCheck.class, dto);
StringBuilder sb = new StringBuilder();
if (Objects.isNull(dto.getNo())) {
sb.append("工装编号不能为空;");
} else {
BomMaterialDTO materialDTO =bomMaterialService.getMaterialInfo(dto.getNo());
if (Objects.isNull(materialDTO)){
sb.append("工装编号无效;");
}else {
WmsGongzhuangTaizhang dbInfo = gongzhuangTaizhangService.lambdaQuery().eq(WmsGongzhuangTaizhang::getNo, dto.getNo()).one();
if (Objects.isNull(dbInfo)) {
sb.append("请先添加工装编号;");
} else {
info.setCreateBy(UserUtil.getUserName());
info.setCreateTime(LocalDateTime.now());
}
}
}
dto.setError(sb.toString());
infos.add(info);
}
if (data.stream().noneMatch(it -> StrUtil.isNotBlank(it.getError()))) {
gongzhuangTaizhangCheckService.saveOrUpdateBatch(infos);
return true;
}
return false;
}
}

View File

@ -0,0 +1,351 @@
package com.nflg.wms.admin.controller;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.nflg.wms.common.constant.STATE;
import com.nflg.wms.common.pojo.ApiResult;
import com.nflg.wms.common.pojo.PageData;
import com.nflg.wms.common.pojo.dto.BomMaterialDTO;
import com.nflg.wms.common.pojo.dto.ToolMaterialCheckExcelDTO;
import com.nflg.wms.common.pojo.dto.ToolMaterialExcelCheckDTO;
import com.nflg.wms.common.pojo.dto.ToolMaterialMaintainExcelDTO;
import com.nflg.wms.common.pojo.qo.*;
import com.nflg.wms.common.util.DateTimeUtil;
import com.nflg.wms.common.util.EecExcelUtil;
import com.nflg.wms.common.util.UserUtil;
import com.nflg.wms.common.util.VUtil;
import com.nflg.wms.repository.entity.WmsToolMaterial;
import com.nflg.wms.repository.entity.WmsToolMaterialCheck;
import com.nflg.wms.repository.entity.WmsToolMaterialMaintain;
import com.nflg.wms.repository.service.IWmsToolMaterialCheckService;
import com.nflg.wms.repository.service.IWmsToolMaterialMaintainService;
import com.nflg.wms.repository.service.IWmsToolMaterialService;
import com.nflg.wms.starter.BaseController;
import com.nflg.wms.starter.service.BomMaterialService;
import com.nflg.wms.starter.service.FileUploadService;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.ttzero.excel.entity.ListSheet;
import org.ttzero.excel.entity.Workbook;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* 工具物料管理
*/
@RestController
@RequestMapping("/tool/material")
public class ToolMaterialController extends BaseController {
@Resource
private IWmsToolMaterialService toolMaterialService;
@Resource
private IWmsToolMaterialCheckService toolMaterialCheckService;
@Resource
private IWmsToolMaterialMaintainService toolMaterialMaintainService;
@Resource
private FileUploadService fileUploadService;
@Resource
private BomMaterialService bomMaterialService;
/**
* 添加
* @param request 请求参数
*/
@PostMapping("add")
public ApiResult<Void> add(@Valid @RequestBody ToolMaterialAddQO request) {
BomMaterialDTO materialDTO = bomMaterialService.getMaterialInfo(request.getNo());
VUtil.trueThrowBusinessError(Objects.isNull(materialDTO)).throwMessage("物料号无效");
toolMaterialService.add(request);
return ApiResult.success();
}
/**
* 更新
* @param request 请求参数
*/
@PostMapping("update")
public ApiResult<Void> update(@Valid @RequestBody ToolMaterialUpdateQO request) {
toolMaterialService.update(request);
return ApiResult.success();
}
/**
* 搜索
* @param request 请求信息
*/
@PostMapping("search")
public ApiResult<PageData<WmsToolMaterial>> search(@Valid @RequestBody ToolMaterialSearchQO request) {
return ApiResult.success(toolMaterialService.search(request));
}
/**
* 删除
* @param ids id列表
*/
@PostMapping("delete")
public ApiResult<Void> delete(@Valid @RequestBody List<Long> ids) {
toolMaterialService.delete(ids);
return ApiResult.success();
}
/**
* 导出模版
*/
@GetMapping("export")
public void exportSelect(HttpServletResponse response) throws Exception {
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("工具物料信息模板.xlsx", StandardCharsets.UTF_8));
List<ToolMaterialAddQO> datas = new ArrayList<>();
datas.add(new ToolMaterialAddQO());
new Workbook()
.addSheet(new ListSheet<>(datas))
.writeTo(response.getOutputStream());
}
/**
* 导入
* @param file 文件
*/
@Transactional
@PostMapping("import")
public ApiResult importFromExcel(@RequestParam(value = "file") MultipartFile file) throws IOException {
List<ToolMaterialExcelCheckDTO> data = EecExcelUtil.getExcelContext(file.getInputStream(), ToolMaterialExcelCheckDTO.class);
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(data)).throwMessage("导入文件内容为空");
if (checkAndImport(data)) {
return ApiResult.success();
} else {
try (ByteArrayOutputStream osOut = new ByteArrayOutputStream()) {
new Workbook()
.addSheet(new ListSheet<>(data))
.writeTo(osOut);
try (ByteArrayInputStream isIn = new ByteArrayInputStream(osOut.toByteArray())) {
return ApiResult.error(STATE.DataNoCheckPass, "导入文件失败", fileUploadService.upload("temp/" + DateTimeUtil.format(LocalDate.now(), "yyyyMMdd") + "/" + IdUtil.fastUUID() + ".xlsx", isIn));
}
} catch (Exception e) {
return ApiResult.error(STATE.BusinessError, "保存文件出错");
}
}
}
@Transactional
public boolean checkAndImport(List<ToolMaterialExcelCheckDTO> data) {
List<WmsToolMaterial> infos = new ArrayList<>();
for (ToolMaterialExcelCheckDTO dto : data) {
WmsToolMaterial info = Convert.convert(WmsToolMaterial.class, dto);
StringBuilder sb = new StringBuilder();
if (Objects.isNull(dto.getNo())) {
sb.append("物料号不能为空;");
} else {
BomMaterialDTO materialDTO = bomMaterialService.getMaterialInfo(dto.getNo());
if (Objects.isNull(materialDTO)) {
sb.append("物料号无效;");
} else {
WmsToolMaterial dbInfo = toolMaterialService.lambdaQuery().eq(WmsToolMaterial::getNo, dto.getNo()).one();
if (Objects.isNull(dbInfo)) {
info.setCreateBy(UserUtil.getUserName());
info.setCreateTime(LocalDateTime.now());
} else {
info.setId(dbInfo.getId());
info.setUpdateBy(UserUtil.getUserName());
info.setUpdateTime(LocalDateTime.now());
}
}
}
dto.setError(sb.toString());
infos.add(info);
}
if (data.stream().noneMatch(it -> StrUtil.isNotBlank(it.getError()))) {
toolMaterialService.saveOrUpdateBatch(infos);
return true;
}
return false;
}
/**
* 添加检验记录
* @param request 请求参数
*/
@PostMapping("addCheck")
public ApiResult<Void> addCheck(@Valid @RequestBody ToolMaterialCheckAddQO request) {
VUtil.trueThrowBusinessError(!toolMaterialService.lambdaQuery().eq(WmsToolMaterial::getNo, request.getNo()).exists())
.throwMessage("请先添加工具物料信息");
toolMaterialCheckService.add(request);
return ApiResult.success();
}
/**
* 导出检验模版
*/
@GetMapping("exportCheckTemplate")
public void exportCheckTemplate(HttpServletResponse response) throws Exception {
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("工具检验明细模板.xlsx", StandardCharsets.UTF_8));
List<ToolMaterialCheckAddQO> datas = new ArrayList<>();
datas.add(new ToolMaterialCheckAddQO());
new Workbook()
.addSheet(new ListSheet<>(datas))
.writeTo(response.getOutputStream());
}
/**
* 导入检验记录
* @param file 文件
*/
@Transactional
@PostMapping("importChecks")
public ApiResult importChecks(@RequestParam(value = "file") MultipartFile file) throws IOException {
List<ToolMaterialCheckExcelDTO> data = EecExcelUtil.getExcelContext(file.getInputStream(), ToolMaterialCheckExcelDTO.class);
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(data)).throwMessage("导入文件内容为空");
if (checkAndImportChecks(data)) {
return ApiResult.success();
} else {
try (ByteArrayOutputStream osOut = new ByteArrayOutputStream()) {
new Workbook()
.addSheet(new ListSheet<>(data))
.writeTo(osOut);
try (ByteArrayInputStream isIn = new ByteArrayInputStream(osOut.toByteArray())) {
return ApiResult.error(STATE.DataNoCheckPass, "导入文件失败", fileUploadService.upload("temp/" + DateTimeUtil.format(LocalDate.now(), "yyyyMMdd") + "/" + IdUtil.fastUUID() + ".xlsx", isIn));
}
} catch (Exception e) {
return ApiResult.error(STATE.BusinessError, "保存文件出错");
}
}
}
@Transactional
public boolean checkAndImportChecks(List<ToolMaterialCheckExcelDTO> data) {
List<WmsToolMaterialCheck> infos = new ArrayList<>();
for (ToolMaterialCheckExcelDTO dto : data) {
WmsToolMaterialCheck info = Convert.convert(WmsToolMaterialCheck.class, dto);
StringBuilder sb = new StringBuilder();
if (Objects.isNull(dto.getNo())) {
sb.append("物料号不能为空;");
} else {
BomMaterialDTO materialDTO = bomMaterialService.getMaterialInfo(dto.getNo());
if (Objects.isNull(materialDTO)) {
sb.append("物料号无效;");
} else {
WmsToolMaterial dbInfo = toolMaterialService.lambdaQuery().eq(WmsToolMaterial::getNo, dto.getNo()).one();
if (Objects.isNull(dbInfo)) {
sb.append("请先添加工具物料信息;");
} else {
info.setCreateBy(UserUtil.getUserName());
info.setCreateTime(LocalDateTime.now());
}
}
}
dto.setError(sb.toString());
infos.add(info);
}
if (data.stream().noneMatch(it -> StrUtil.isNotBlank(it.getError()))) {
toolMaterialCheckService.saveOrUpdateBatch(infos);
return true;
}
return false;
}
/**
* 添加维修记录
* @param request 请求参数
*/
@PostMapping("addMaintain")
public ApiResult<Void> addMaintain(@Valid @RequestBody ToolMaterialMaintainAddQO request) {
VUtil.trueThrowBusinessError(!toolMaterialService.lambdaQuery().eq(WmsToolMaterial::getNo, request.getNo()).exists())
.throwMessage("请先添加工具物料信息");
toolMaterialMaintainService.add(request);
return ApiResult.success();
}
/**
* 导出维修模版
*/
@GetMapping("exportMaintainTemplate")
public void exportMaintainTemplate(HttpServletResponse response) throws Exception {
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("工具维修明细模板.xlsx", StandardCharsets.UTF_8));
List<ToolMaterialMaintainAddQO> datas = new ArrayList<>();
datas.add(new ToolMaterialMaintainAddQO());
new Workbook()
.addSheet(new ListSheet<>(datas))
.writeTo(response.getOutputStream());
}
/**
* 导入维修记录
* @param file 文件
*/
@Transactional
@PostMapping("importMaintains")
public ApiResult importMaintains(@RequestParam(value = "file") MultipartFile file) throws IOException {
List<ToolMaterialMaintainExcelDTO> data = EecExcelUtil.getExcelContext(file.getInputStream(), ToolMaterialMaintainExcelDTO.class);
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(data)).throwMessage("导入文件内容为空");
if (checkAndImportMaintains(data)) {
return ApiResult.success();
} else {
try (ByteArrayOutputStream osOut = new ByteArrayOutputStream()) {
new Workbook()
.addSheet(new ListSheet<>(data))
.writeTo(osOut);
try (ByteArrayInputStream isIn = new ByteArrayInputStream(osOut.toByteArray())) {
return ApiResult.error(STATE.DataNoCheckPass, "导入文件失败", fileUploadService.upload("temp/" + DateTimeUtil.format(LocalDate.now(), "yyyyMMdd") + "/" + IdUtil.fastUUID() + ".xlsx", isIn));
}
} catch (Exception e) {
return ApiResult.error(STATE.BusinessError, "保存文件出错");
}
}
}
@Transactional
public boolean checkAndImportMaintains(List<ToolMaterialMaintainExcelDTO> data) {
List<WmsToolMaterialMaintain> infos = new ArrayList<>();
for (ToolMaterialMaintainExcelDTO dto : data) {
WmsToolMaterialMaintain info = Convert.convert(WmsToolMaterialMaintain.class, dto);
StringBuilder sb = new StringBuilder();
if (Objects.isNull(dto.getNo())) {
sb.append("物料号不能为空;");
} else {
BomMaterialDTO materialDTO = bomMaterialService.getMaterialInfo(dto.getNo());
if (Objects.isNull(materialDTO)) {
sb.append("物料号无效;");
} else {
WmsToolMaterial dbInfo = toolMaterialService.lambdaQuery().eq(WmsToolMaterial::getNo, dto.getNo()).one();
if (Objects.isNull(dbInfo)) {
sb.append("请先添加工具物料信息;");
} else {
info.setCreateBy(UserUtil.getUserName());
info.setCreateTime(LocalDateTime.now());
}
}
}
dto.setError(sb.toString());
infos.add(info);
}
if (data.stream().noneMatch(it -> StrUtil.isNotBlank(it.getError()))) {
toolMaterialMaintainService.saveOrUpdateBatch(infos);
return true;
}
return false;
}
}

View File

@ -60,6 +60,7 @@
host = ${HOSTIP}
</labels>
<structuredMetadata>
traceId = %X{traceId}
level = %level
thread = %thread
class = %logger

View File

@ -47,6 +47,7 @@
host = ${HOSTIP}
</labels>
<structuredMetadata>
traceId = %X{traceId}
level = %level
thread = %thread
class = %logger

View File

@ -0,0 +1,17 @@
package com.nflg.wms.common.pojo.dto;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.nflg.wms.common.pojo.qo.GongZhuangTaiZhangAddQO;
import lombok.Data;
import org.ttzero.excel.annotation.ExcelColumn;
@Data
public class GongZhuangTaiZhangExcelCheckDTO extends GongZhuangTaiZhangAddQO {
/**
* 错误信息
*/
@JsonIgnore
@ExcelColumn("错误信息")
private String error;
}

View File

@ -0,0 +1,17 @@
package com.nflg.wms.common.pojo.dto;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.nflg.wms.common.pojo.qo.ToolMaterialCheckAddQO;
import lombok.Data;
import org.ttzero.excel.annotation.ExcelColumn;
@Data
public class ToolMaterialCheckExcelDTO extends ToolMaterialCheckAddQO {
/**
* 错误信息
*/
@JsonIgnore
@ExcelColumn("错误信息")
private String error;
}

View File

@ -0,0 +1,17 @@
package com.nflg.wms.common.pojo.dto;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.nflg.wms.common.pojo.qo.ToolMaterialAddQO;
import lombok.Data;
import org.ttzero.excel.annotation.ExcelColumn;
@Data
public class ToolMaterialExcelCheckDTO extends ToolMaterialAddQO {
/**
* 错误信息
*/
@JsonIgnore
@ExcelColumn("错误信息")
private String error;
}

View File

@ -0,0 +1,17 @@
package com.nflg.wms.common.pojo.dto;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.nflg.wms.common.pojo.qo.ToolMaterialMaintainAddQO;
import lombok.Data;
import org.ttzero.excel.annotation.ExcelColumn;
@Data
public class ToolMaterialMaintainExcelDTO extends ToolMaterialMaintainAddQO {
/**
* 错误信息
*/
@JsonIgnore
@ExcelColumn("错误信息")
private String error;
}

View File

@ -0,0 +1,82 @@
package com.nflg.wms.common.pojo.qo;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import org.ttzero.excel.annotation.ExcelColumn;
@Data
public class GongZhuangTaiZhangAddQO {
/**
* 工装编号
*/
@NotBlank
@ExcelColumn("*工装编号")
private String no;
/**
* 工装名称
*/
@ExcelColumn("工装名称")
private String name;
/**
* 图号
*/
@ExcelColumn("图号")
private String drawingNo;
/**
* 保管人员
*/
@ExcelColumn("保管人员")
private String userName;
/**
* 保管车间
*/
@ExcelColumn("保管车间")
private String workShop;
/**
* 机型
*/
@ExcelColumn("机型")
private String model;
/**
* 入库时间
*/
@ExcelColumn("入库时间")
private String inTime;
/**
* 检验周期
*/
@ExcelColumn("检验周期")
private String inspectionCycle;
/**
* 使用工段
*/
@ExcelColumn("使用工段")
private String useSection;
/**
* 数量
*/
@ExcelColumn("数量")
private String num;
/**
* 单位
*/
@ExcelColumn("单位")
private String unit;
/**
* 备注
*/
@ExcelColumn("备注")
private String remark;
}

View File

@ -0,0 +1,48 @@
package com.nflg.wms.common.pojo.qo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import org.ttzero.excel.annotation.ExcelColumn;
@Data
public class GongZhuangTaiZhangCheckAddQO {
/**
* 工装编号
*/
@NotBlank
@ExcelColumn("*工装编号")
private String no;
/**
* 检验时间
*/
@ExcelColumn("检验时间")
private String checkTime;
/**
* 检验人
*/
@ExcelColumn("检验人")
private String checkUser;
/**
* 是否合格
*/
@ExcelColumn("是否合格")
private String qualified;
/**
* 备注
*/
@ExcelColumn("备注")
private String remark;
/**
* 错误信息
*/
@JsonIgnore
@ExcelColumn("错误信息")
private String error;
}

View File

@ -0,0 +1,12 @@
package com.nflg.wms.common.pojo.qo;
import lombok.Data;
@Data
public class GongZhuangTaiZhangSearchQO extends PageQO {
/**
* 工装编号
*/
private String no;
}

View File

@ -0,0 +1,11 @@
package com.nflg.wms.common.pojo.qo;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
@Data
public class GongZhuangTaiZhangUpdateQO extends GongZhuangTaiZhangAddQO{
@NotNull
private Long id;
}

View File

@ -0,0 +1,58 @@
package com.nflg.wms.common.pojo.qo;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import org.ttzero.excel.annotation.ExcelColumn;
@Data
public class ToolMaterialAddQO {
/**
* 物料号
*/
@NotBlank
@ExcelColumn("*物料号")
private String no;
/**
* 图号
*/
@ExcelColumn("图号")
private String drawingNo;
/**
* 物料名称
*/
@ExcelColumn("物料名称")
private String name;
/**
* 入库时间
*/
@ExcelColumn("入库时间")
private String inTime;
/**
* 检验周期
*/
@ExcelColumn("检验周期")
private String inspectionCycle;
/**
* 数量
*/
@ExcelColumn("数量")
private String num;
/**
* 单位
*/
@ExcelColumn("单位")
private String unit;
/**
* 备注
*/
@ExcelColumn("备注")
private String remark;
}

View File

@ -0,0 +1,40 @@
package com.nflg.wms.common.pojo.qo;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import org.ttzero.excel.annotation.ExcelColumn;
@Data
public class ToolMaterialCheckAddQO {
/**
* 物料号
*/
@NotBlank
@ExcelColumn("*物料号")
private String no;
/**
* 检验时间
*/
@ExcelColumn("检验时间")
private String checkTime;
/**
* 检验人
*/
@ExcelColumn("检验人")
private String checkUser;
/**
* 是否合格
*/
@ExcelColumn("是否合格")
private String qualified;
/**
* 备注
*/
@ExcelColumn("备注")
private String remark;
}

View File

@ -0,0 +1,40 @@
package com.nflg.wms.common.pojo.qo;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.ttzero.excel.annotation.ExcelColumn;
@Data
public class ToolMaterialMaintainAddQO {
/**
* 物料号
*/
@NotNull
@ExcelColumn("*物料号")
private String no;
/**
* 维修时间
*/
@ExcelColumn("维修时间")
private String maintainTime;
/**
* 维修人
*/
@ExcelColumn("维修人")
private String maintainUser;
/**
* 维修内容
*/
@ExcelColumn("维修内容")
private String maintainContent;
/**
* 备注
*/
@ExcelColumn("备注")
private String remark;
}

View File

@ -0,0 +1,12 @@
package com.nflg.wms.common.pojo.qo;
import lombok.Data;
@Data
public class ToolMaterialSearchQO extends PageQO{
/**
* 物料号
*/
private String no;
}

View File

@ -0,0 +1,11 @@
package com.nflg.wms.common.pojo.qo;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
@Data
public class ToolMaterialUpdateQO extends ToolMaterialAddQO {
@NotNull
private Long id;
}

View File

@ -1,12 +1,12 @@
package com.nflg.wms.gateway.filter;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.nflg.wms.common.constant.Constant;
import org.slf4j.MDC;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
@ -14,6 +14,7 @@ import reactor.core.publisher.Mono;
import java.util.Optional;
@Order(Integer.MIN_VALUE)
@Component
public class TraceIdFilter implements GlobalFilter, Ordered {

View File

@ -12,6 +12,7 @@ import com.nflg.wms.gateway.service.AuthService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
/**
* [Sa-Token 权限认证] 配置类
@ -23,6 +24,7 @@ public class SaTokenConfigure {
// 注册 Sa-Token全局过滤器
@Bean
@Order(-90)
public SaReactorFilter getSaReactorFilter(AuthService authService) {
return new SaReactorFilter()
// 拦截地址

View File

@ -47,6 +47,7 @@
host = ${HOSTIP}
</labels>
<structuredMetadata>
traceId = %X{traceId}
level = %level
thread = %thread
class = %logger

View File

@ -0,0 +1,114 @@
package com.nflg.wms.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* <p>
*
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
@TableName("wms_gongzhuang_taizhang")
public class WmsGongzhuangTaizhang implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 工装编号
*/
private String no;
/**
* 图号
*/
private String drawingNo;
/**
* 工装名称
*/
private String name;
/**
* 保管人员
*/
private String userName;
/**
* 保管车间
*/
private String workShop;
/**
* 机型
*/
private String model;
/**
* 入库时间
*/
private String inTime;
/**
* 检验周期
*/
private String inspectionCycle;
/**
* 使用工段
*/
private String useSection;
/**
* 数量
*/
private BigDecimal num;
/**
* 单位
*/
private String unit;
/**
* 备注
*/
private String remark;
/**
* 创建人
*/
private String createBy;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 最后更新人
*/
private String updateBy;
/**
* 最后更新时间
*/
private LocalDateTime updateTime;
}

View File

@ -0,0 +1,68 @@
package com.nflg.wms.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
*
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
@TableName("wms_gongzhuang_taizhang_check")
public class WmsGongzhuangTaizhangCheck implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 工装编号
*/
private String no;
/**
* 检验时间
*/
private String checkTime;
/**
* 检验人
*/
private String checkUser;
/**
* 是否合格
*/
private Boolean qualified;
/**
* 备注
*/
private String remark;
/**
* 创建人
*/
private String createBy;
/**
* 创建时间
*/
private LocalDateTime createTime;
}

View File

@ -0,0 +1,93 @@
package com.nflg.wms.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 工具物料信息
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
@TableName("wms_tool_material")
public class WmsToolMaterial implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 物料号
*/
private String no;
/**
* 图号
*/
private String drawingNo;
/**
* 物料名称
*/
private String name;
/**
* 入库时间
*/
private String inTime;
/**
* 检验周期
*/
private String inspectionCycle;
/**
* 数量
*/
private String num;
/**
* 单位
*/
private String unit;
/**
* 备注
*/
private String remark;
/**
* 创建人
*/
private String createBy;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 最后更新人
*/
private String updateBy;
/**
* 最后更新时间
*/
private LocalDateTime updateTime;
}

View File

@ -0,0 +1,68 @@
package com.nflg.wms.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
*
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
@TableName("wms_tool_material_check")
public class WmsToolMaterialCheck implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 物料号
*/
private String no;
/**
* 检验时间
*/
private String checkTime;
/**
* 检验人
*/
private String checkUser;
/**
* 是否合格
*/
private String qualified;
/**
* 备注
*/
private String remark;
/**
* 创建人
*/
private String createBy;
/**
* 创建时间
*/
private LocalDateTime createTime;
}

View File

@ -0,0 +1,68 @@
package com.nflg.wms.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
*
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
@TableName("wms_tool_material_maintain")
public class WmsToolMaterialMaintain implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 物料号
*/
private String no;
/**
* 维修时间
*/
private String maintainTime;
/**
* 维修人
*/
private String maintainUser;
/**
* 维修内容
*/
private String maintainContent;
/**
* 备注
*/
private String remark;
/**
* 创建人
*/
private String createBy;
/**
* 创建时间
*/
private LocalDateTime createTime;
}

View File

@ -0,0 +1,16 @@
package com.nflg.wms.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.wms.repository.entity.WmsGongzhuangTaizhangCheck;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface WmsGongzhuangTaizhangCheckMapper extends BaseMapper<WmsGongzhuangTaizhangCheck> {
}

View File

@ -0,0 +1,16 @@
package com.nflg.wms.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.wms.repository.entity.WmsGongzhuangTaizhang;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface WmsGongzhuangTaizhangMapper extends BaseMapper<WmsGongzhuangTaizhang> {
}

View File

@ -0,0 +1,16 @@
package com.nflg.wms.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.wms.repository.entity.WmsToolMaterialCheck;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface WmsToolMaterialCheckMapper extends BaseMapper<WmsToolMaterialCheck> {
}

View File

@ -0,0 +1,16 @@
package com.nflg.wms.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.wms.repository.entity.WmsToolMaterialMaintain;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface WmsToolMaterialMaintainMapper extends BaseMapper<WmsToolMaterialMaintain> {
}

View File

@ -0,0 +1,16 @@
package com.nflg.wms.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.wms.repository.entity.WmsToolMaterial;
/**
* <p>
* 工具物料信息 Mapper 接口
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface WmsToolMaterialMapper extends BaseMapper<WmsToolMaterial> {
}

View File

@ -0,0 +1,19 @@
package com.nflg.wms.repository.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nflg.wms.common.pojo.qo.GongZhuangTaiZhangCheckAddQO;
import com.nflg.wms.repository.entity.WmsGongzhuangTaizhangCheck;
import jakarta.validation.Valid;
/**
* <p>
* 服务类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface IWmsGongzhuangTaizhangCheckService extends IService<WmsGongzhuangTaizhangCheck> {
void add(@Valid GongZhuangTaiZhangCheckAddQO request);
}

View File

@ -0,0 +1,30 @@
package com.nflg.wms.repository.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nflg.wms.common.pojo.qo.GongZhuangTaiZhangAddQO;
import com.nflg.wms.common.pojo.qo.GongZhuangTaiZhangSearchQO;
import com.nflg.wms.common.pojo.qo.GongZhuangTaiZhangUpdateQO;
import com.nflg.wms.repository.entity.WmsGongzhuangTaizhang;
import jakarta.validation.Valid;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface IWmsGongzhuangTaizhangService extends IService<WmsGongzhuangTaizhang> {
void add(@Valid GongZhuangTaiZhangAddQO request);
void update(@Valid GongZhuangTaiZhangUpdateQO request);
void delete(@Valid List<Long> ids);
IPage<WmsGongzhuangTaizhang> search(@Valid GongZhuangTaiZhangSearchQO request);
}

View File

@ -0,0 +1,19 @@
package com.nflg.wms.repository.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nflg.wms.common.pojo.qo.ToolMaterialCheckAddQO;
import com.nflg.wms.repository.entity.WmsToolMaterialCheck;
import jakarta.validation.Valid;
/**
* <p>
* 服务类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface IWmsToolMaterialCheckService extends IService<WmsToolMaterialCheck> {
void add(@Valid ToolMaterialCheckAddQO request);
}

View File

@ -0,0 +1,19 @@
package com.nflg.wms.repository.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nflg.wms.common.pojo.qo.ToolMaterialMaintainAddQO;
import com.nflg.wms.repository.entity.WmsToolMaterialMaintain;
import jakarta.validation.Valid;
/**
* <p>
* 服务类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface IWmsToolMaterialMaintainService extends IService<WmsToolMaterialMaintain> {
void add(@Valid ToolMaterialMaintainAddQO request);
}

View File

@ -0,0 +1,30 @@
package com.nflg.wms.repository.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nflg.wms.common.pojo.qo.ToolMaterialAddQO;
import com.nflg.wms.common.pojo.qo.ToolMaterialSearchQO;
import com.nflg.wms.common.pojo.qo.ToolMaterialUpdateQO;
import com.nflg.wms.repository.entity.WmsToolMaterial;
import jakarta.validation.Valid;
import java.util.List;
/**
* <p>
* 工具物料信息 服务类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface IWmsToolMaterialService extends IService<WmsToolMaterial> {
void add(@Valid ToolMaterialAddQO request);
void update(@Valid ToolMaterialUpdateQO request);
IPage<WmsToolMaterial> search(@Valid ToolMaterialSearchQO request);
void delete(@Valid List<Long> ids);
}

View File

@ -0,0 +1,32 @@
package com.nflg.wms.repository.service.impl;
import cn.hutool.core.convert.Convert;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.wms.common.pojo.qo.GongZhuangTaiZhangCheckAddQO;
import com.nflg.wms.common.util.UserUtil;
import com.nflg.wms.repository.entity.WmsGongzhuangTaizhangCheck;
import com.nflg.wms.repository.mapper.WmsGongzhuangTaizhangCheckMapper;
import com.nflg.wms.repository.service.IWmsGongzhuangTaizhangCheckService;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
/**
* <p>
* 服务实现类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Service
public class WmsGongzhuangTaizhangCheckServiceImpl extends ServiceImpl<WmsGongzhuangTaizhangCheckMapper, WmsGongzhuangTaizhangCheck> implements IWmsGongzhuangTaizhangCheckService {
@Override
public void add(GongZhuangTaiZhangCheckAddQO request) {
WmsGongzhuangTaizhangCheck info= Convert.convert(WmsGongzhuangTaizhangCheck.class, request);
info.setCreateBy(UserUtil.getUserName());
info.setCreateTime(LocalDateTime.now());
save(info);
}
}

View File

@ -0,0 +1,72 @@
package com.nflg.wms.repository.service.impl;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.wms.common.pojo.qo.GongZhuangTaiZhangAddQO;
import com.nflg.wms.common.pojo.qo.GongZhuangTaiZhangSearchQO;
import com.nflg.wms.common.pojo.qo.GongZhuangTaiZhangUpdateQO;
import com.nflg.wms.common.util.UserUtil;
import com.nflg.wms.repository.entity.WmsGongzhuangTaizhang;
import com.nflg.wms.repository.entity.WmsGongzhuangTaizhangCheck;
import com.nflg.wms.repository.mapper.WmsGongzhuangTaizhangMapper;
import com.nflg.wms.repository.service.IWmsGongzhuangTaizhangCheckService;
import com.nflg.wms.repository.service.IWmsGongzhuangTaizhangService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Service
public class WmsGongzhuangTaizhangServiceImpl extends ServiceImpl<WmsGongzhuangTaizhangMapper, WmsGongzhuangTaizhang> implements IWmsGongzhuangTaizhangService {
@Resource
private IWmsGongzhuangTaizhangCheckService gongzhuangTaizhangCheckService;
@Override
public void add(GongZhuangTaiZhangAddQO request) {
WmsGongzhuangTaizhang info = Convert.convert(WmsGongzhuangTaizhang.class, request);
info.setCreateBy(UserUtil.getUserName());
info.setCreateTime(LocalDateTime.now());
save(info);
}
@Override
public void update(GongZhuangTaiZhangUpdateQO request) {
WmsGongzhuangTaizhang info = Convert.convert(WmsGongzhuangTaizhang.class, request);
info.setUpdateBy(UserUtil.getUserName());
info.setUpdateTime(LocalDateTime.now());
updateById(info);
}
@Transactional
@Override
public void delete(List<Long> ids) {
List<WmsGongzhuangTaizhang> datas = listByIds(ids);
removeByIds(ids);
gongzhuangTaizhangCheckService.remove(
new LambdaQueryWrapper<WmsGongzhuangTaizhangCheck>()
.in(WmsGongzhuangTaizhangCheck::getNo, datas.stream().map(WmsGongzhuangTaizhang::getNo).toList())
);
}
@Override
public IPage<WmsGongzhuangTaizhang> search(GongZhuangTaiZhangSearchQO request) {
return lambdaQuery()
.like(StrUtil.isNotBlank(request.getNo()), WmsGongzhuangTaizhang::getNo, request.getNo())
.page(new Page<>(request.getPage(), request.getPageSize()));
}
}

View File

@ -0,0 +1,32 @@
package com.nflg.wms.repository.service.impl;
import cn.hutool.core.convert.Convert;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.wms.common.pojo.qo.ToolMaterialCheckAddQO;
import com.nflg.wms.common.util.UserUtil;
import com.nflg.wms.repository.entity.WmsToolMaterialCheck;
import com.nflg.wms.repository.mapper.WmsToolMaterialCheckMapper;
import com.nflg.wms.repository.service.IWmsToolMaterialCheckService;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
/**
* <p>
* 服务实现类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Service
public class WmsToolMaterialCheckServiceImpl extends ServiceImpl<WmsToolMaterialCheckMapper, WmsToolMaterialCheck> implements IWmsToolMaterialCheckService {
@Override
public void add(ToolMaterialCheckAddQO request) {
WmsToolMaterialCheck info = Convert.convert(WmsToolMaterialCheck.class, request);
info.setCreateBy(UserUtil.getUserName());
info.setCreateTime(LocalDateTime.now());
save(info);
}
}

View File

@ -0,0 +1,32 @@
package com.nflg.wms.repository.service.impl;
import cn.hutool.core.convert.Convert;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.wms.common.pojo.qo.ToolMaterialMaintainAddQO;
import com.nflg.wms.common.util.UserUtil;
import com.nflg.wms.repository.entity.WmsToolMaterialMaintain;
import com.nflg.wms.repository.mapper.WmsToolMaterialMaintainMapper;
import com.nflg.wms.repository.service.IWmsToolMaterialMaintainService;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
/**
* <p>
* 服务实现类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Service
public class WmsToolMaterialMaintainServiceImpl extends ServiceImpl<WmsToolMaterialMaintainMapper, WmsToolMaterialMaintain> implements IWmsToolMaterialMaintainService {
@Override
public void add(ToolMaterialMaintainAddQO request) {
WmsToolMaterialMaintain info= Convert.convert(WmsToolMaterialMaintain.class, request);
info.setCreateBy(UserUtil.getUserName());
info.setCreateTime(LocalDateTime.now());
save(info);
}
}

View File

@ -0,0 +1,83 @@
package com.nflg.wms.repository.service.impl;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.wms.common.pojo.qo.ToolMaterialAddQO;
import com.nflg.wms.common.pojo.qo.ToolMaterialSearchQO;
import com.nflg.wms.common.pojo.qo.ToolMaterialUpdateQO;
import com.nflg.wms.common.util.UserUtil;
import com.nflg.wms.repository.entity.WmsToolMaterial;
import com.nflg.wms.repository.entity.WmsToolMaterialCheck;
import com.nflg.wms.repository.entity.WmsToolMaterialMaintain;
import com.nflg.wms.repository.mapper.WmsToolMaterialMapper;
import com.nflg.wms.repository.service.IWmsToolMaterialCheckService;
import com.nflg.wms.repository.service.IWmsToolMaterialMaintainService;
import com.nflg.wms.repository.service.IWmsToolMaterialService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
* <p>
* 工具物料信息 服务实现类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Service
public class WmsToolMaterialServiceImpl extends ServiceImpl<WmsToolMaterialMapper, WmsToolMaterial> implements IWmsToolMaterialService {
@Resource
private IWmsToolMaterialCheckService toolMaterialCheckService;
@Resource
private IWmsToolMaterialMaintainService toolMaterialMaintainService;
@Override
public void add(ToolMaterialAddQO request) {
WmsToolMaterial info= Convert.convert(WmsToolMaterial.class, request);
info.setCreateBy(UserUtil.getUserName());
info.setCreateTime(LocalDateTime.now());
save(info);
}
@Override
public void update(ToolMaterialUpdateQO request) {
WmsToolMaterial info= Convert.convert(WmsToolMaterial.class, request);
info.setUpdateBy(UserUtil.getUserName());
info.setUpdateTime(LocalDateTime.now());
updateById(info);
}
@Override
public IPage<WmsToolMaterial> search(ToolMaterialSearchQO request) {
return lambdaQuery()
.like(StrUtil.isNotBlank(request.getNo()), WmsToolMaterial::getNo, request.getNo())
.page(new Page<>(request.getPage(), request.getPageSize()));
}
@Transactional
@Override
public void delete(List<Long> ids) {
Set<String> nos=listByIds(ids).stream().map(WmsToolMaterial::getNo).collect(Collectors.toSet());
removeByIds(ids);
toolMaterialCheckService.remove(
new LambdaQueryWrapper<WmsToolMaterialCheck>()
.in(WmsToolMaterialCheck::getNo, nos)
);
toolMaterialMaintainService.remove(
new LambdaQueryWrapper<WmsToolMaterialMaintain>()
.in(WmsToolMaterialMaintain::getNo, nos)
);
}
}

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nflg.wms.repository.mapper.WmsGongzhuangTaizhangCheckMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nflg.wms.repository.mapper.WmsGongzhuangTaizhangMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nflg.wms.repository.mapper.WmsToolMaterialCheckMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nflg.wms.repository.mapper.WmsToolMaterialMaintainMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nflg.wms.repository.mapper.WmsToolMaterialMapper">
</mapper>

View File

@ -33,7 +33,7 @@ public class CodeGeneratorTest {
)
.strategyConfig(builder -> {
builder
.addInclude("wms_normal_print_order") //只生成指定表
.addInclude("wms_tool_material_maintain") //只生成指定表
.entityBuilder().idType(IdType.ASSIGN_ID)
.enableLombok()
.enableChainModel()

View File

@ -60,6 +60,7 @@
host = ${HOSTIP}
</labels>
<structuredMetadata>
traceId = %X{traceId}
level = %level
thread = %thread
class = %logger

View File

@ -47,6 +47,7 @@
host = ${HOSTIP}
</labels>
<structuredMetadata>
traceId = %X{traceId}
level = %level
thread = %thread
class = %logger