From aac86fd8f54f2b79de0d95bcd77c14f11d62a87f Mon Sep 17 00:00:00 2001 From: maxiangong <298222784@qq.com> Date: Wed, 29 Apr 2026 17:09:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=96=E5=8D=8F=E6=A0=87=E5=87=86=E5=B7=A5?= =?UTF-8?q?=E5=BA=8F=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/entity/OemStandardProcessEntity.java | 53 +++++++ .../pojo/excel/OemStandardProcessExcel.java | 47 ++++++ .../oem/pojo/vo/OemStandardProcessVO.java | 38 +++++ .../OemStandardProcessController.java | 146 ++++++++++++++++++ .../oem/mapper/OemStandardProcessMapper.java | 27 ++++ .../oem/mapper/OemStandardProcessMapper.xml | 63 ++++++++ .../service/IOemStandardProcessService.java | 25 +++ .../impl/OemStandardProcessServiceImpl.java | 25 +++ 8 files changed, 424 insertions(+) create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/entity/OemStandardProcessEntity.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/excel/OemStandardProcessExcel.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/OemStandardProcessVO.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemStandardProcessController.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStandardProcessMapper.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStandardProcessMapper.xml create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/IOemStandardProcessService.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStandardProcessServiceImpl.java diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/entity/OemStandardProcessEntity.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/entity/OemStandardProcessEntity.java new file mode 100644 index 00000000..57117a6b --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/entity/OemStandardProcessEntity.java @@ -0,0 +1,53 @@ +package org.springblade.desk.oem.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serial; + +/** + * 外协标准工序代码 实体类 + * + * @author maxg + * @since 2026-04-29 + */ +@Data +@TableName("MES_OEM_STANDARD_PROCESS") +@Schema(description = "OemStandardProcess对象") +@EqualsAndHashCode(callSuper = true) +public class OemStandardProcessEntity extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 工序ID + */ + @Schema(description = "工序ID") + private Long processId; + /** + * 镀种 + */ + @Schema(description = "镀种") + private String plate; + /** + * 镀层厚度 + */ + @Schema(description = "镀层厚度") + private String plateThickness; + /** + * 零件名称 + */ + @Schema(description = "零件名称") + private String partName; + /** + * 标准工序代码 + */ + @Schema(description = "标准工序代码") + private String standardProcessCode; + + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/excel/OemStandardProcessExcel.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/excel/OemStandardProcessExcel.java new file mode 100644 index 00000000..7c6b62d4 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/excel/OemStandardProcessExcel.java @@ -0,0 +1,47 @@ +package org.springblade.desk.oem.pojo.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 外协标准工序代码模板导入 + * + * @author maxg + * @since 2026-04-29 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class OemStandardProcessExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + @ColumnWidth(20) + @ExcelProperty("工序") + private String processName; + + @ColumnWidth(20) + @ExcelProperty("镀种") + private String plate; + + @ColumnWidth(20) + @ExcelProperty("镀层厚度") + private String plateThickness; + + @ColumnWidth(20) + @ExcelProperty("零件名称") + private String partName; + + @ColumnWidth(20) + @ExcelProperty("标准工序代码") + private String standardProcessCode; +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/OemStandardProcessVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/OemStandardProcessVO.java new file mode 100644 index 00000000..1638eb4f --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/OemStandardProcessVO.java @@ -0,0 +1,38 @@ +package org.springblade.desk.oem.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.desk.oem.pojo.entity.OemStandardProcessEntity; + +import java.io.Serial; + +/** + * 外协标准工序代码 视图实体类 + * + * @author maxg + * @since 2026-04-29 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OemStandardProcessVO extends OemStandardProcessEntity { + + @Serial + private static final long serialVersionUID = 1L; + + @Schema(description = "工序名称") + private String processName; + + @Schema(description = "维护人") + private String updateUserName; + + /** + * 排序字段 + */ + private String orderByField; + /** + * true: 升序,false: 降序 + */ + private boolean isAsc; + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemStandardProcessController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemStandardProcessController.java new file mode 100644 index 00000000..4fc5428e --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemStandardProcessController.java @@ -0,0 +1,146 @@ +package org.springblade.desk.oem.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.apache.commons.lang3.StringUtils; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.desk.basic.util.ExcelExtUtil; +import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity; +import org.springblade.desk.dashboard.service.IBsProcessSetService; +import org.springblade.desk.oem.pojo.entity.OemStandardProcessEntity; +import org.springblade.desk.oem.pojo.excel.OemStandardProcessExcel; +import org.springblade.desk.oem.pojo.vo.OemStandardProcessVO; +import org.springblade.desk.oem.service.IOemStandardProcessService; +import org.springframework.beans.BeanUtils; +import org.springframework.core.io.Resource; +import org.springframework.http.ResponseEntity; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * 外协标准工序代码 控制器 + * + * @author maxg + * @since 2026-04-29 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/mesOemStandardProcess") +@Tag(name = "外协标准工序代码", description = "外协标准工序代码接口") +public class OemStandardProcessController { + + private final IOemStandardProcessService oemStandardProcessService; + + private final IBsProcessSetService bsProcessSetService; + + /** + * 外协标准工序代码 自定义分页 + */ + @GetMapping("/page") + @Operation(summary = "分页", description = "传入oemStandardProcess") + public R> page(OemStandardProcessVO oemStandardProcess, Query query) { + IPage pages = oemStandardProcessService.selectOemStandardProcessPage(Condition.getPage(query), oemStandardProcess); + return R.data(pages); + } + + /** + * 外协标准工序代码 新增或修改 + * + * @param oemStandardProcessList + * @return + */ + @PostMapping("/submit") + @Operation(summary = "新增或修改", description = "传入bsEfficiencyTempList") + public R submit(@Valid @RequestBody List oemStandardProcessList) { + for (OemStandardProcessEntity oemStandardProcessEntity : oemStandardProcessList) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper().eq(OemStandardProcessEntity::getProcessId, oemStandardProcessEntity.getProcessId()).eq(OemStandardProcessEntity::getPlate, oemStandardProcessEntity.getPlate()).eq(OemStandardProcessEntity::getPlateThickness, oemStandardProcessEntity.getPlateThickness()).eq(OemStandardProcessEntity::getPartName, oemStandardProcessEntity.getPartName()); + if (oemStandardProcessEntity.getId() != null) { + wrapper.ne(OemStandardProcessEntity::getId, oemStandardProcessEntity.getId()); + } + List list = oemStandardProcessService.list(wrapper); + if (!CollectionUtils.isEmpty(list)) { + return R.fail("数据已存在"); + } + } + return R.status(oemStandardProcessService.saveOrUpdateBatch(oemStandardProcessList)); + } + + /** + * 外协标准工序代码 删除 + */ + @PostMapping("/remove") + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(oemStandardProcessService.deleteLogic(Func.toLongList(ids))); + } + + /** + * 外协标准工序代码 下载模板 + * @return + */ + @GetMapping("/download-excel-template") + @Operation(summary = "下载Excel模板", description = "") + public ResponseEntity downloadExcelTemplate() { + return ExcelExtUtil.downloadXlsTemplate("Excel/oem/标准工序代码.xls", "导入模版-标准工序代码.xls"); + } + + /** + * 外协标准工序代码 导入Excel + * @param file + * @return + */ + @PostMapping("/import-excel") + @Operation(summary = "导入Excel", description = "MultipartFile") + public R importExcel(@RequestParam("file") MultipartFile file) { + R checkR = ExcelExtUtil.importExcelCheck(file); + if (checkR != null) { + return checkR; + } + List importList = ExcelUtil.read(file, 0, 1, OemStandardProcessExcel.class); + Set uniqueSet = new HashSet<>(); + List entityList = new ArrayList<>(); + for (int i = 0; i < importList.size(); i++) { + int rowNum = i + 2; + OemStandardProcessExcel row = importList.get(i); + if (StringUtils.isEmpty(row.getProcessName())) { + return R.fail(rowNum + "行工序未填写"); + } + if(StringUtils.isEmpty(row.getStandardProcessCode())){ + return R.fail(rowNum + "行标准工序代码未填写"); + } + String uniqueStr = StringUtils.joinWith("|", row.getProcessName(), row.getPlate(), row.getPlateThickness(), row.getPartName()); + if (!uniqueSet.add(uniqueStr)) { + return R.fail(rowNum + "行在Excel中重复"); + } + BsProcessSetEntity processSet = bsProcessSetService.getOne(new LambdaQueryWrapper().eq(BsProcessSetEntity::getName, row.getProcessName())); + if (processSet == null) { + return R.fail(rowNum + "行错误,系统无此工序"); + } + OemStandardProcessEntity exist = oemStandardProcessService.getOne(new LambdaQueryWrapper().eq(OemStandardProcessEntity::getProcessId, processSet.getId()).eq(OemStandardProcessEntity::getPlate, row.getPlate()).eq(OemStandardProcessEntity::getPlateThickness, row.getPlateThickness()).eq(OemStandardProcessEntity::getPartName, row.getPartName())); + if (exist != null) { + return R.fail(rowNum + "行错误,数据已存在"); + } + OemStandardProcessEntity entity = new OemStandardProcessEntity(); + BeanUtils.copyProperties(row, entity); + entity.setProcessId(processSet.getId()); + entityList.add(entity); + } + return R.status(oemStandardProcessService.saveBatch(entityList)); + } + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStandardProcessMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStandardProcessMapper.java new file mode 100644 index 00000000..6869939a --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStandardProcessMapper.java @@ -0,0 +1,27 @@ +package org.springblade.desk.oem.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.desk.efficiency.pojo.vo.BsEfficiencyTaskVO; +import org.springblade.desk.oem.pojo.entity.OemStandardProcessEntity; +import org.springblade.desk.oem.pojo.vo.OemStandardProcessVO; + +import java.util.List; + +/** + * 外协标准工序代码 Mapper接口 + * + * @author maxg + * @since 2026-04-29 + */ +public interface OemStandardProcessMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page 分页参数 + * @param oemStandardProcess 查询参数 + * @return List + */ + List selectOemStandardProcessPage(IPage page, OemStandardProcessVO oemStandardProcess); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStandardProcessMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStandardProcessMapper.xml new file mode 100644 index 00000000..4cdb8d80 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStandardProcessMapper.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/IOemStandardProcessService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/IOemStandardProcessService.java new file mode 100644 index 00000000..680d55fa --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/IOemStandardProcessService.java @@ -0,0 +1,25 @@ +package org.springblade.desk.oem.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.efficiency.pojo.vo.BsEfficiencyTaskParamVO; +import org.springblade.desk.oem.pojo.entity.OemStandardProcessEntity; +import org.springblade.desk.oem.pojo.vo.OemStandardProcessVO; + +/** + * 外协标准工序代码 服务类 + * + * @author maxg + * @since 2026-04-29 + */ +public interface IOemStandardProcessService extends BaseService { + + /** + * 自定义分页 + * + * @param page 分页参数 + * @param oemStandardProcess 查询参数 + * @return IPage + */ + IPage selectOemStandardProcessPage(IPage page, OemStandardProcessVO oemStandardProcess); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStandardProcessServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStandardProcessServiceImpl.java new file mode 100644 index 00000000..d5774b88 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStandardProcessServiceImpl.java @@ -0,0 +1,25 @@ +package org.springblade.desk.oem.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.desk.oem.mapper.OemStandardProcessMapper; +import org.springblade.desk.oem.pojo.entity.OemStandardProcessEntity; +import org.springblade.desk.oem.pojo.vo.OemStandardProcessVO; +import org.springblade.desk.oem.service.IOemStandardProcessService; +import org.springframework.stereotype.Service; + +/** + * 外协标准工序代码 服务实现类 + * + * @author maxg + * @since 2026-04-29 + */ +@Service +public class OemStandardProcessServiceImpl extends BaseServiceImpl implements IOemStandardProcessService { + + @Override + public IPage selectOemStandardProcessPage(IPage page, OemStandardProcessVO oemStandardProcess) { + return page.setRecords(baseMapper.selectOemStandardProcessPage(page, oemStandardProcess)); + } + +}