Browse Source

2024-09-18

RFQ 功能优化
java8
fengyuan_yang 2 years ago
parent
commit
de3d0eb35e
  1. 4
      src/main/java/com/xujie/sys/modules/part/mapper/RoutingManagementMapper.java
  2. 30
      src/main/java/com/xujie/sys/modules/part/service/impl/RoutingManagementServiceImpl.java
  3. 3
      src/main/resources/mapper/part/PartInformationMapper.xml
  4. 38
      src/main/resources/mapper/part/RoutingManagementMapper.xml

4
src/main/java/com/xujie/sys/modules/part/mapper/RoutingManagementMapper.java

@ -85,5 +85,7 @@ public interface RoutingManagementMapper extends BaseMapper<RoutingHeaderEntity>
List<PtmConditionItemEntity> getConditionItemList(@Param("site") String site, @Param("buNo") String buNo, @Param("conditionId") Integer conditionId);
List<RoutingComponentVo> getConditionOperationsInfo(@Param("site") String site, @Param("buNo") String buNo, @Param("conditionId") Integer conditionId);
List<RoutingComponentVo> getConditionOperationsInfo(@Param("conditionId") Integer conditionId);
List<RoutingComponentVo> getStandardRoutingOperationByProductGroupId(@Param("site") String site, @Param("buNo") String buNo, @Param("productGroupId") String otherGroup1);
}

30
src/main/java/com/xujie/sys/modules/part/service/impl/RoutingManagementServiceImpl.java

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

3
src/main/resources/mapper/part/PartInformationMapper.xml

@ -48,7 +48,8 @@
product_rev,
invtype,
code_no,
sourceBu,
dbo.get_code_desc(site, sourceBu, code_no, 'IP') as codeDesc
code_no,
dbo.get_bu_desc(site, sourceBu) as buDesc
FROM part
<where>

38
src/main/resources/mapper/part/RoutingManagementMapper.xml

@ -555,6 +555,29 @@
where site = #{site} and part_no = #{partNo} and routing_revision = #{routingRevision} and routing_type = #{routingType}
</update>
<select id="getStandardRoutingOperationByProductGroupId" resultType="com.xujie.sys.modules.part.vo.RoutingComponentVo">
SELECT
a.site,
a.bu_no,
b.operation_no,
b.operation_name,
b.work_center_no,
dbo.get_workCenter_desc(a.site, a.bu_no, b.work_center_no) as workCenterDesc,
b.labor_class_no,
dbo.get_labor_class_desc(a.site, a.bu_no, b.labor_class_no) as laborClassDesc,
b.setup_labor_class_no,
dbo.get_labor_class_desc(a.site, a.bu_no, b.setup_labor_class_no) as setupLaborClassDesc
FROM part_group_std_operations as a
left join standard_routing_operation as b on a.operation_id = b.id
where a.site = #{site} and a.bu_no = #{buNo} and a.product_group_id = #{productGroupId}
</select>
<!-- 获取的商品组的属性 -->
<select id="getPtmCondition" resultType="PgPtmConditionEntity">
SELECT
@ -592,16 +615,11 @@
a.labor_cycle_time,
a.mach_cycle_time,
c.operation_no,
c.operation_name,
c.work_center_no,
dbo.get_workCenter_desc(a.site, a.bu_no, c.work_center_no) as workCenterDesc,
c.labor_class_no,
dbo.get_labor_class_desc(a.site, a.bu_no, c.labor_class_no) as laborClassDesc,
c.setup_labor_class_no,
dbo.get_labor_class_desc(a.site, a.bu_no, c.setup_labor_class_no) as setupLaborClassDesc
c.operation_name
FROM ptm_condition_process as a
left join part_group_std_operations as b on a.site = b.site and a.bu_no = b.bu_no and a.part_group_std_operations_id = b.id
left join standard_routing_operation as c on a.site = c.site and a.bu_no = c.bu_no and b.operation_no = c.operation_no
where a.site = #{site} and a.bu_no = #{buNo} and a.condition_id = #{conditionId}
left join part_group_std_operations as b on a.part_group_std_operations_id = b.id
left join standard_routing_operation as c on b.operation_id = c.id
where a.condition_id = #{conditionId}
</select>
</mapper>
Loading…
Cancel
Save