|
|
|
@ -19,6 +19,7 @@ import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
import java.util.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
@Service |
|
|
|
public class RoutingManagementServiceImpl extends ServiceImpl<RoutingManagementMapper, RoutingHeaderEntity> implements RoutingManagementService { |
|
|
|
@ -651,11 +652,14 @@ public class RoutingManagementServiceImpl extends ServiceImpl<RoutingManagementM |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public List<RoutingComponentVo> getStandardOperations(RoutingHeaderVo data) { |
|
|
|
List<RoutingComponentVo> operations = new ArrayList<>(); |
|
|
|
//List<RoutingComponentVo> operations = new ArrayList<>(); |
|
|
|
|
|
|
|
// 获得物料的商品组1 |
|
|
|
PartInformationEntity part = partInformationMapper.selectOne(new QueryWrapper<PartInformationEntity>().eq("site", data.getSite()).eq("sourceBu", data.getBuNo()).eq("part_no", data.getPartNo())); |
|
|
|
|
|
|
|
// 根据商品组1查标准工序 |
|
|
|
List<RoutingComponentVo> operations = routingManagementMapper.getStandardRoutingOperationByProductGroupId(data.getSite(), data.getBuNo(), part.getOtherGroup1()); |
|
|
|
|
|
|
|
// 获得物料维护的属性 |
|
|
|
PartSubPropertiesValueData valueData = new PartSubPropertiesValueData(); |
|
|
|
valueData.setSite(data.getSite()); |
|
|
|
@ -664,6 +668,7 @@ public class RoutingManagementServiceImpl extends ServiceImpl<RoutingManagementM |
|
|
|
valueData.setPartNo(data.getPartNo()); |
|
|
|
List<PartSubPropertiesValueData> partItems = partInformationMapper.getItemModal(valueData); |
|
|
|
|
|
|
|
|
|
|
|
// 获取的商品组的condition |
|
|
|
List<PgPtmConditionEntity> conditionList = routingManagementMapper.getPtmCondition(data.getSite(), data.getBuNo(), part.getOtherGroup1()); |
|
|
|
for (PgPtmConditionEntity conditionData : conditionList) { |
|
|
|
@ -677,14 +682,33 @@ public class RoutingManagementServiceImpl extends ServiceImpl<RoutingManagementM |
|
|
|
boolean b = partItems.stream().allMatch( |
|
|
|
partItem -> conditionItems.stream().anyMatch( |
|
|
|
conditionItem -> |
|
|
|
Objects.equals(partItem.getItemNo(), conditionItem.getItemNo()) && |
|
|
|
Objects.equals(partItem.getPropertiesItemNo(), conditionItem.getItemNo()) && |
|
|
|
Objects.equals(partItem.getTextValue(), conditionItem.getTextValue()) && |
|
|
|
Objects.equals(partItem.getNumValue(), conditionItem.getNumValue()) |
|
|
|
) |
|
|
|
); |
|
|
|
if (b) { |
|
|
|
// 获取该condition下维护的工序 |
|
|
|
operations = routingManagementMapper.getConditionOperationsInfo(data.getSite(), data.getBuNo(), conditionData.getConditionId()); |
|
|
|
List<RoutingComponentVo> conditionOperations = routingManagementMapper.getConditionOperationsInfo(conditionData.getConditionId()); |
|
|
|
|
|
|
|
// 创建一个映射,键为 operationNo,值为对应的 RoutingComponentVo 对象 |
|
|
|
Map<Integer, RoutingComponentVo> conditionOperationsMap = conditionOperations.stream() |
|
|
|
.collect(Collectors.toMap(RoutingComponentVo::getOperationNo, vo -> vo)); |
|
|
|
|
|
|
|
// 赋值 labor_run_factor mach_run_factor labor_cycle_time mach_cycle_time |
|
|
|
for (RoutingComponentVo operation : operations) { |
|
|
|
// 检查 conditionOperationsMap 中是否存在相同的 operationNo |
|
|
|
if (conditionOperationsMap.containsKey(operation.getOperationNo())) { |
|
|
|
// 获取 conditionOperations 中具有相同 operationNo 的 RoutingComponentVo 对象 |
|
|
|
RoutingComponentVo conditionOperation = conditionOperationsMap.get(operation.getOperationNo()); |
|
|
|
|
|
|
|
// 更新 operations 中的对象属性 |
|
|
|
operation.setMachRunFactor(conditionOperation.getMachRunFactor()); |
|
|
|
operation.setLaborRunFactor(conditionOperation.getLaborRunFactor()); |
|
|
|
operation.setMachCycleTime(conditionOperation.getMachCycleTime()); |
|
|
|
operation.setLaborCycleTime(conditionOperation.getLaborCycleTime()); |
|
|
|
} |
|
|
|
} |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|