标准工序代码

liweidong
maxiangong 1 day ago
parent 6604110438
commit 25fff58fdf
  1. 6
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/entity/OemStandardProcessEntity.java
  2. 3
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/OemStandardProcessVO.java
  3. 29
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemStandardProcessController.java
  4. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStandardProcessMapper.xml
  5. 28
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java

@ -24,10 +24,10 @@ public class OemStandardProcessEntity extends BaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 工序ID * 工序名称
*/ */
@Schema(description = "工序ID") @Schema(description = "工序名称")
private Long processId; private String processName;
/** /**
* 镀种 * 镀种
*/ */

@ -20,9 +20,6 @@ public class OemStandardProcessVO extends OemStandardProcessEntity {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@Schema(description = "工序名称")
private String processName;
@Schema(description = "维护人") @Schema(description = "维护人")
private String updateUserName; private String updateUserName;

@ -68,11 +68,27 @@ public class OemStandardProcessController {
@Operation(summary = "新增或修改", description = "传入bsEfficiencyTempList") @Operation(summary = "新增或修改", description = "传入bsEfficiencyTempList")
public R submit(@Valid @RequestBody List<OemStandardProcessEntity> oemStandardProcessList) { public R submit(@Valid @RequestBody List<OemStandardProcessEntity> oemStandardProcessList) {
for (OemStandardProcessEntity 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()); LambdaQueryWrapper<OemStandardProcessEntity> qw = new LambdaQueryWrapper<>();
qw.eq(OemStandardProcessEntity::getProcessName, oemStandardProcessEntity.getProcessName());
if (StringUtils.isEmpty(oemStandardProcessEntity.getPlate())) {
qw.isNull(OemStandardProcessEntity::getPlate);
} else {
qw.eq(OemStandardProcessEntity::getPlate, oemStandardProcessEntity.getPlate());
}
if (StringUtils.isEmpty(oemStandardProcessEntity.getPlateThickness())) {
qw.isNull(OemStandardProcessEntity::getPlateThickness);
} else {
qw.eq(OemStandardProcessEntity::getPlateThickness, oemStandardProcessEntity.getPlateThickness());
}
if (StringUtils.isEmpty(oemStandardProcessEntity.getPartName())) {
qw.isNull(OemStandardProcessEntity::getPartName);
} else {
qw.eq(OemStandardProcessEntity::getPartName, oemStandardProcessEntity.getPartName());
}
if (oemStandardProcessEntity.getId() != null) { if (oemStandardProcessEntity.getId() != null) {
wrapper.ne(OemStandardProcessEntity::getId, oemStandardProcessEntity.getId()); qw.ne(OemStandardProcessEntity::getId, oemStandardProcessEntity.getId());
} }
List<OemStandardProcessEntity> list = oemStandardProcessService.list(wrapper); List<OemStandardProcessEntity> list = oemStandardProcessService.list(qw);
if (CollectionUtils.isNotEmpty(list)) { if (CollectionUtils.isNotEmpty(list)) {
return R.fail("数据已存在"); return R.fail("数据已存在");
} }
@ -129,12 +145,12 @@ public class OemStandardProcessController {
if (!uniqueSet.add(uniqueStr)) { if (!uniqueSet.add(uniqueStr)) {
return R.fail(rowNum + "行在Excel中重复"); return R.fail(rowNum + "行在Excel中重复");
} }
BsProcessSetEntity processSet = bsProcessSetService.getOne(new LambdaQueryWrapper<BsProcessSetEntity>().eq(BsProcessSetEntity::getName, row.getProcessName())); List<BsProcessSetEntity> processSet = bsProcessSetService.list(new LambdaQueryWrapper<BsProcessSetEntity>().eq(BsProcessSetEntity::getName, row.getProcessName()));
if (processSet == null) { if (CollectionUtils.isEmpty(processSet)) {
return R.fail(rowNum + "行错误,系统无此工序"); return R.fail(rowNum + "行错误,系统无此工序");
} }
LambdaQueryWrapper<OemStandardProcessEntity> qw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<OemStandardProcessEntity> qw = new LambdaQueryWrapper<>();
qw.eq(OemStandardProcessEntity::getProcessId, processSet.getId()); qw.eq(OemStandardProcessEntity::getProcessName, row.getProcessName());
if (StringUtils.isEmpty(row.getPlate())) { if (StringUtils.isEmpty(row.getPlate())) {
qw.isNull(OemStandardProcessEntity::getPlate); qw.isNull(OemStandardProcessEntity::getPlate);
} else { } else {
@ -156,7 +172,6 @@ public class OemStandardProcessController {
} }
OemStandardProcessEntity entity = new OemStandardProcessEntity(); OemStandardProcessEntity entity = new OemStandardProcessEntity();
BeanUtils.copyProperties(row, entity); BeanUtils.copyProperties(row, entity);
entity.setProcessId(processSet.getId());
entityList.add(entity); entityList.add(entity);
} }
return R.status(oemStandardProcessService.saveBatch(entityList)); return R.status(oemStandardProcessService.saveBatch(entityList));

@ -5,7 +5,7 @@
<!-- 通用查询映射结果 --> <!-- 通用查询映射结果 -->
<resultMap id="mesOemStandardProcessVOResultMap" type="org.springblade.desk.oem.pojo.vo.OemStandardProcessVO"> <resultMap id="mesOemStandardProcessVOResultMap" type="org.springblade.desk.oem.pojo.vo.OemStandardProcessVO">
<result column="ID" property="id"/> <result column="ID" property="id"/>
<result column="PROCESS_ID" property="processId"/> <result column="PROCESS_NAME" property="processName"/>
<result column="PLATE" property="plate"/> <result column="PLATE" property="plate"/>
<result column="PLATE_THICKNESS" property="plateThickness"/> <result column="PLATE_THICKNESS" property="plateThickness"/>
<result column="PART_NAME" property="partName"/> <result column="PART_NAME" property="partName"/>
@ -24,15 +24,13 @@
<select id="selectOemStandardProcessPage" resultMap="mesOemStandardProcessVOResultMap"> <select id="selectOemStandardProcessPage" resultMap="mesOemStandardProcessVOResultMap">
SELECT * FROM ( SELECT * FROM (
SELECT t.*, SELECT t.*,
p.NAME as PROCESS_NAME,
bu.REAL_NAME as UPDATE_USER_NAME bu.REAL_NAME as UPDATE_USER_NAME
FROM MES_OEM_STANDARD_PROCESS t 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 LEFT JOIN BLADE_USER bu ON t.update_user = bu.id
<where> <where>
t.IS_DELETED = 0 t.IS_DELETED = 0
<if test="oemStandardProcess.processName != null"> <if test="oemStandardProcess.processName != null">
AND p.NAME like concat(concat('%', #{oemStandardProcess.processName}),'%') AND t.PROCESS_NAME like concat(concat('%', #{oemStandardProcess.processName}),'%')
</if> </if>
<if test="oemStandardProcess.plate != null"> <if test="oemStandardProcess.plate != null">
AND t.PLATE like concat(concat('%', #{oemStandardProcess.plate}),'%') AND t.PLATE like concat(concat('%', #{oemStandardProcess.plate}),'%')

@ -1387,19 +1387,19 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper,
*/ */
private void matchStandardProcess(List<StatementVO> settlementVOs) { private void matchStandardProcess(List<StatementVO> settlementVOs) {
// 根据工序Id分组 // 根据工序Id分组
Map<Long, List<StatementVO>> groupByPsId = settlementVOs.stream().collect(Collectors.groupingBy(StatementVO::getPpsId)); Map<String, List<StatementVO>> groupByPsName = settlementVOs.stream().collect(Collectors.groupingBy(StatementVO::getPsName));
Set<Long> psIds = groupByPsId.keySet(); Set<String> psNames = groupByPsName.keySet();
final int batchSize = 500; final int batchSize = 500;
List<OemStandardProcessEntity> allStandardList = new ArrayList<>(); List<OemStandardProcessEntity> allStandardList = new ArrayList<>();
List<List<Long>> splitPsIds = Lists.partition(new ArrayList<>(psIds), batchSize); List<List<String>> splitPsNames = Lists.partition(new ArrayList<>(psNames), batchSize);
for (List<Long> subPsIds : splitPsIds) { for (List<String> subPsNames : splitPsNames) {
List<OemStandardProcessEntity> batchList = oemStandardProcessService.list(new LambdaQueryWrapper<OemStandardProcessEntity>().in(OemStandardProcessEntity::getProcessId, subPsIds)); List<OemStandardProcessEntity> batchList = oemStandardProcessService.list(new LambdaQueryWrapper<OemStandardProcessEntity>().in(OemStandardProcessEntity::getProcessName, subPsNames));
allStandardList.addAll(batchList); allStandardList.addAll(batchList);
} }
Map<Long, List<OemStandardProcessEntity>> standardMap = allStandardList.stream().collect(Collectors.groupingBy(OemStandardProcessEntity::getProcessId)); Map<String, List<OemStandardProcessEntity>> standardMap = allStandardList.stream().collect(Collectors.groupingBy(OemStandardProcessEntity::getProcessName));
for (Map.Entry<Long, List<StatementVO>> entry : groupByPsId.entrySet()) { for (Map.Entry<String, List<StatementVO>> entry : groupByPsName.entrySet()) {
Long psId = entry.getKey(); String psName = entry.getKey();
List<OemStandardProcessEntity> standardProcessList = standardMap.getOrDefault(psId, Collections.emptyList()); List<OemStandardProcessEntity> standardProcessList = standardMap.getOrDefault(psName, Collections.emptyList());
for (StatementVO statementVO : entry.getValue()) { for (StatementVO statementVO : entry.getValue()) {
OemStandardProcessEntity oemStandardProcessEntity = getStandardProcessCode(standardProcessList, statementVO); OemStandardProcessEntity oemStandardProcessEntity = getStandardProcessCode(standardProcessList, statementVO);
if (oemStandardProcessEntity != null) { if (oemStandardProcessEntity != null) {
@ -1422,31 +1422,31 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper,
} }
// ====================== 规则1:仅【工序】,其他全为null ====================== // ====================== 规则1:仅【工序】,其他全为null ======================
for (OemStandardProcessEntity s : allStandardList) { for (OemStandardProcessEntity s : allStandardList) {
boolean rule1 = Objects.equals(s.getProcessId(), statementVO.getPpsId()) && StringUtils.isEmpty(s.getPlate()) && StringUtils.isEmpty(s.getPlateThickness()) && StringUtils.isEmpty(s.getPartName()); boolean rule1 = Objects.equals(s.getProcessName(), statementVO.getPsName()) && StringUtils.isEmpty(s.getPlate()) && StringUtils.isEmpty(s.getPlateThickness()) && StringUtils.isEmpty(s.getPartName());
if (rule1) return s; if (rule1) return s;
} }
// ====================== 规则2:仅【工序+镀种】,其他null ====================== // ====================== 规则2:仅【工序+镀种】,其他null ======================
for (OemStandardProcessEntity s : allStandardList) { for (OemStandardProcessEntity s : allStandardList) {
boolean rule2 = Objects.equals(s.getProcessId(), statementVO.getPpsId()) && StringUtils.equals(s.getPlate(), statementVO.getPlate()) && StringUtils.isEmpty(s.getPlateThickness()) && StringUtils.isEmpty(s.getPartName()); boolean rule2 = Objects.equals(s.getProcessName(), statementVO.getPsName()) && StringUtils.equals(s.getPlate(), statementVO.getPlate()) && StringUtils.isEmpty(s.getPlateThickness()) && StringUtils.isEmpty(s.getPartName());
if (rule2) return s; if (rule2) return s;
} }
// ====================== 规则3:仅【工序+镀层厚度】,其他null ====================== // ====================== 规则3:仅【工序+镀层厚度】,其他null ======================
for (OemStandardProcessEntity s : allStandardList) { for (OemStandardProcessEntity s : allStandardList) {
boolean rule3 = Objects.equals(s.getProcessId(), statementVO.getPpsId()) && StringUtils.isEmpty(s.getPlate()) && StringUtils.equals(s.getPlateThickness(), statementVO.getRosThickness()) && StringUtils.isEmpty(s.getPartName()); boolean rule3 = Objects.equals(s.getProcessName(), statementVO.getPsName()) && StringUtils.isEmpty(s.getPlate()) && StringUtils.equals(s.getPlateThickness(), statementVO.getRosThickness()) && StringUtils.isEmpty(s.getPartName());
if (rule3) return s; if (rule3) return s;
} }
// ====================== 规则4:仅【工序+零件名】,其他null ====================== // ====================== 规则4:仅【工序+零件名】,其他null ======================
for (OemStandardProcessEntity s : allStandardList) { for (OemStandardProcessEntity s : allStandardList) {
boolean rule4 = Objects.equals(s.getProcessId(), statementVO.getPpsId()) && StringUtils.isEmpty(s.getPlate()) && StringUtils.isEmpty(s.getPlateThickness()) && StringUtils.equals(s.getPartName(), statementVO.getPartName()); boolean rule4 = Objects.equals(s.getProcessName(), statementVO.getPsName()) && StringUtils.isEmpty(s.getPlate()) && StringUtils.isEmpty(s.getPlateThickness()) && StringUtils.equals(s.getPartName(), statementVO.getPartName());
if (rule4) return s; if (rule4) return s;
} }
// ====================== 规则5:【工序+镀层厚度+零件名】,镀种null ====================== // ====================== 规则5:【工序+镀层厚度+零件名】,镀种null ======================
for (OemStandardProcessEntity s : allStandardList) { for (OemStandardProcessEntity s : allStandardList) {
boolean rule5 = Objects.equals(s.getProcessId(), statementVO.getPpsId()) && StringUtils.isEmpty(s.getPlate()) && StringUtils.equals(s.getPlateThickness(), statementVO.getRosThickness()) && StringUtils.equals(s.getPartName(), statementVO.getPartName()); boolean rule5 = Objects.equals(s.getProcessName(), statementVO.getPsName()) && StringUtils.isEmpty(s.getPlate()) && StringUtils.equals(s.getPlateThickness(), statementVO.getRosThickness()) && StringUtils.equals(s.getPartName(), statementVO.getPartName());
if (rule5) return s; if (rule5) return s;
} }
return null; return null;

Loading…
Cancel
Save