外协标准工序代码

liweidong^2
maxiangong 2 days ago
parent f945472793
commit aac86fd8f5
  1. 53
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/entity/OemStandardProcessEntity.java
  2. 47
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/excel/OemStandardProcessExcel.java
  3. 38
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/OemStandardProcessVO.java
  4. 146
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemStandardProcessController.java
  5. 27
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStandardProcessMapper.java
  6. 63
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStandardProcessMapper.xml
  7. 25
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/IOemStandardProcessService.java
  8. 25
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStandardProcessServiceImpl.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;
}

@ -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;
}

@ -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;
}

@ -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<IPage<OemStandardProcessVO>> page(OemStandardProcessVO oemStandardProcess, Query query) {
IPage<OemStandardProcessVO> 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<OemStandardProcessEntity> oemStandardProcessList) {
for (OemStandardProcessEntity oemStandardProcessEntity : oemStandardProcessList) {
LambdaQueryWrapper<OemStandardProcessEntity> wrapper = new LambdaQueryWrapper<OemStandardProcessEntity>().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<OemStandardProcessEntity> 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<Resource> 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<OemStandardProcessExcel> importList = ExcelUtil.read(file, 0, 1, OemStandardProcessExcel.class);
Set<String> uniqueSet = new HashSet<>();
List<OemStandardProcessEntity> 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<BsProcessSetEntity>().eq(BsProcessSetEntity::getName, row.getProcessName()));
if (processSet == null) {
return R.fail(rowNum + "行错误,系统无此工序");
}
OemStandardProcessEntity exist = oemStandardProcessService.getOne(new LambdaQueryWrapper<OemStandardProcessEntity>().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));
}
}

@ -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<OemStandardProcessEntity> {
/**
* 自定义分页
*
* @param page 分页参数
* @param oemStandardProcess 查询参数
* @return List<BsEfficiencyTaskVO>
*/
List<OemStandardProcessVO> selectOemStandardProcessPage(IPage page, OemStandardProcessVO oemStandardProcess);
}

@ -0,0 +1,63 @@
<?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="org.springblade.desk.oem.mapper.OemStandardProcessMapper">
<!-- 通用查询映射结果 -->
<resultMap id="mesOemStandardProcessVOResultMap" type="org.springblade.desk.oem.pojo.vo.OemStandardProcessVO">
<result column="ID" property="id"/>
<result column="PROCESS_ID" property="processId"/>
<result column="PLATE" property="plate"/>
<result column="PLATE_THICKNESS" property="plateThickness"/>
<result column="PART_NAME" property="partName"/>
<result column="STANDARD_PROCESS_CODE" property="standardProcessCode"/>
<result column="CREATE_USER" property="createUser"/>
<result column="CREATE_TIME" property="createTime"/>
<result column="CREATE_DEPT" property="createDept"/>
<result column="UPDATE_USER" property="updateUser"/>
<result column="UPDATE_TIME" property="updateTime"/>
<result column="STATUS" property="status"/>
<result column="IS_DELETED" property="isDeleted"/>
<result column="PROCESS_NAME" property="processName"/>
<result column="UPDATE_USER_NAME" property="updateUserName"/>
</resultMap>
<select id="selectOemStandardProcessPage" resultMap="mesOemStandardProcessVOResultMap">
SELECT * FROM (
SELECT t.*,
p.NAME as PROCESS_NAME,
bu.REAL_NAME as UPDATE_USER_NAME
FROM MES_OEM_STANDARD_PROCESS t
INNER JOIN BS_PROCESS_SET p ON t.PROCESS_ID = p.ID AND p.IS_DELETED = 0
LEFT JOIN BLADE_USER bu ON t.update_user = bu.id
<where>
t.IS_DELETED = 0
<if test="oemStandardProcess.processName != null">
AND p.NAME like concat(concat('%', #{oemStandardProcess.processName}),'%')
</if>
<if test="oemStandardProcess.plate != null">
AND t.PLATE like concat(concat('%', #{oemStandardProcess.plate}),'%')
</if>
<if test="oemStandardProcess.plateThickness != null">
AND t.PLATE_THICKNESS like concat(concat('%', #{oemStandardProcess.plateThickness}),'%')
</if>
<if test="oemStandardProcess.partName != null">
AND t.PART_NAME like concat(concat('%', #{oemStandardProcess.partName}),'%')
</if>
<if test="oemStandardProcess.standardProcessCode != null">
AND t.STANDARD_PROCESS_CODE like concat(concat('%', #{oemStandardProcess.standardProcessCode}),'%')
</if>
</where>
)
<choose>
<when test="oemStandardProcess.orderByField != null and oemStandardProcess.orderByField != ''">
ORDER BY ${oemStandardProcess.orderByField}
<if test="oemStandardProcess.isAsc">ASC</if>
<if test="!oemStandardProcess.isAsc">DESC</if>
</when>
<otherwise>
ORDER BY CREATE_TIME DESC
</otherwise>
</choose>
</select>
</mapper>

@ -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<OemStandardProcessEntity> {
/**
* 自定义分页
*
* @param page 分页参数
* @param oemStandardProcess 查询参数
* @return IPage<OemStandardProcessVO>
*/
IPage<OemStandardProcessVO> selectOemStandardProcessPage(IPage<OemStandardProcessVO> page, OemStandardProcessVO oemStandardProcess);
}

@ -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<OemStandardProcessMapper, OemStandardProcessEntity> implements IOemStandardProcessService {
@Override
public IPage<OemStandardProcessVO> selectOemStandardProcessPage(IPage<OemStandardProcessVO> page, OemStandardProcessVO oemStandardProcess) {
return page.setRecords(baseMapper.selectOemStandardProcessPage(page, oemStandardProcess));
}
}
Loading…
Cancel
Save