外协结算

liweidong
maxiangong 2 months ago
parent 1e6418c0e6
commit 8c5edad47c
  1. 3
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/StatementVO.java
  2. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStatementMapper.xml
  3. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java

@ -22,9 +22,6 @@ public class StatementVO extends OemStatementEntity {
@Schema(description = "外协工序ID")
private Long opId;
@Schema(description = "工序ID")
private Long psId;
@Schema(description = "工艺能力ID")
private Long caId;

@ -51,7 +51,7 @@
<result column="oc_id" property="ocId"/>
<result column="os_id" property="osId"/>
<result column="op_id" property="opId"/>
<result column="ps_id" property="psId"/>
<result column="pps_id" property="ppsId"/>
<result column="ca_id" property="caId"/>
<result column="wor_id" property="worId"/>
<result column="yo_id" property="yoId"/>
@ -111,7 +111,7 @@
a.wo_id,
a.ca_id,
a.OC_ID,
a.pps_id as ps_id,
a.pps_id,
b.name as ps_name,
c.code as OC_CODE,
c.OC_NAME,

@ -1355,7 +1355,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper,
*/
private void matchStandardProcess(List<StatementVO> settlementVOs) {
// 根据工序Id分组
Map<Long, List<StatementVO>> groupByPsId = settlementVOs.stream().collect(Collectors.groupingBy(StatementVO::getPsId));
Map<Long, List<StatementVO>> groupByPsId = settlementVOs.stream().collect(Collectors.groupingBy(StatementVO::getPpsId));
Set<Long> psIds = groupByPsId.keySet();
final int batchSize = 500;
List<OemStandardProcessEntity> allStandardList = new ArrayList<>();
@ -1390,31 +1390,31 @@ public class OemStatementServiceImpl extends BaseServiceImpl<OemStatementMapper,
}
// ====================== 规则1:仅【工序】,其他全为null ======================
for (OemStandardProcessEntity s : allStandardList) {
boolean rule1 = Objects.equals(s.getProcessId(), statementVO.getPsId()) && StringUtils.isEmpty(s.getPlate()) && StringUtils.isEmpty(s.getPlateThickness()) && StringUtils.isEmpty(s.getPartName());
boolean rule1 = Objects.equals(s.getProcessId(), statementVO.getPpsId()) && StringUtils.isEmpty(s.getPlate()) && StringUtils.isEmpty(s.getPlateThickness()) && StringUtils.isEmpty(s.getPartName());
if (rule1) return s;
}
// ====================== 规则2:仅【工序+镀种】,其他null ======================
for (OemStandardProcessEntity s : allStandardList) {
boolean rule2 = Objects.equals(s.getProcessId(), statementVO.getPsId()) && StringUtils.equals(s.getPlate(), statementVO.getPlate()) && StringUtils.isEmpty(s.getPlateThickness()) && StringUtils.isEmpty(s.getPartName());
boolean rule2 = Objects.equals(s.getProcessId(), statementVO.getPpsId()) && StringUtils.equals(s.getPlate(), statementVO.getPlate()) && StringUtils.isEmpty(s.getPlateThickness()) && StringUtils.isEmpty(s.getPartName());
if (rule2) return s;
}
// ====================== 规则3:仅【工序+镀层厚度】,其他null ======================
for (OemStandardProcessEntity s : allStandardList) {
boolean rule3 = Objects.equals(s.getProcessId(), statementVO.getPsId()) && StringUtils.isEmpty(s.getPlate()) && StringUtils.equals(s.getPlateThickness(), statementVO.getPlateThickness()) && StringUtils.isEmpty(s.getPartName());
boolean rule3 = Objects.equals(s.getProcessId(), statementVO.getPpsId()) && StringUtils.isEmpty(s.getPlate()) && StringUtils.equals(s.getPlateThickness(), statementVO.getPlateThickness()) && StringUtils.isEmpty(s.getPartName());
if (rule3) return s;
}
// ====================== 规则4:仅【工序+零件名】,其他null ======================
for (OemStandardProcessEntity s : allStandardList) {
boolean rule4 = Objects.equals(s.getProcessId(), statementVO.getPsId()) && StringUtils.isEmpty(s.getPlate()) && StringUtils.isEmpty(s.getPlateThickness()) && StringUtils.equals(s.getPartName(), statementVO.getPartName());
boolean rule4 = Objects.equals(s.getProcessId(), statementVO.getPpsId()) && StringUtils.isEmpty(s.getPlate()) && StringUtils.isEmpty(s.getPlateThickness()) && StringUtils.equals(s.getPartName(), statementVO.getPartName());
if (rule4) return s;
}
// ====================== 规则5:【工序+镀层厚度+零件名】,镀种null ======================
for (OemStandardProcessEntity s : allStandardList) {
boolean rule5 = Objects.equals(s.getProcessId(), statementVO.getPsId()) && StringUtils.isEmpty(s.getPlate()) && StringUtils.equals(s.getPlateThickness(), statementVO.getPlateThickness()) && StringUtils.equals(s.getPartName(), statementVO.getPartName());
boolean rule5 = Objects.equals(s.getProcessId(), statementVO.getPpsId()) && StringUtils.isEmpty(s.getPlate()) && StringUtils.equals(s.getPlateThickness(), statementVO.getPlateThickness()) && StringUtils.equals(s.getPartName(), statementVO.getPartName());
if (rule5) return s;
}
return null;

Loading…
Cancel
Save