Browse Source

2024-12-02

计算工时
java8
fengyuan_yang 1 year ago
parent
commit
6b788d7808
  1. 12
      src/main/java/com/xujie/sys/modules/part/controller/RoutingManagementController.java
  2. 2
      src/main/java/com/xujie/sys/modules/part/service/RoutingManagementService.java
  3. 118
      src/main/java/com/xujie/sys/modules/part/service/impl/RoutingManagementServiceImpl.java
  4. 2
      src/main/java/com/xujie/sys/modules/part/vo/RoutingComponentVo.java
  5. 4
      src/main/java/com/xujie/sys/modules/part/vo/RoutingHeaderVo.java

12
src/main/java/com/xujie/sys/modules/part/controller/RoutingManagementController.java

@ -310,4 +310,16 @@ public class RoutingManagementController {
List<RoutingComponentVo> list = routingManagementService.saveStandardOperation(data);
return R.ok().put("rows", list);
}
/**
* 计算工时
* @param data
* @return
*/
@PostMapping(value="/calculationTime")
@ResponseBody
public R calculationTime(@RequestBody RoutingHeaderVo data) {
List<RoutingComponentVo> list = routingManagementService.calculationTime(data);
return R.ok().put("rows", list);
}
}

2
src/main/java/com/xujie/sys/modules/part/service/RoutingManagementService.java

@ -54,4 +54,6 @@ public interface RoutingManagementService {
List<RoutingComponentVo> getStandardOperations(RoutingHeaderVo data);
List<RoutingComponentVo> saveStandardOperation(RoutingComponentVo data);
List<RoutingComponentVo> calculationTime(RoutingHeaderVo data);
}

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

@ -686,13 +686,50 @@ public class RoutingManagementServiceImpl extends ServiceImpl<RoutingManagementM
*/
@Override
public List<RoutingComponentVo> getStandardOperations(RoutingHeaderVo data) {
//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.getProductGroupId1());
return operations;
}
/**
* 新增工序
* @param data
* @return
*/
@Override
@Transactional
public List<RoutingComponentVo> saveStandardOperation(RoutingComponentVo data) {
if (!data.getInformationList().isEmpty()) {
// 删除旧工序
//routingManagementMapper.deleteRoutingComponent(data.getSite(), data.getBuNo(), data.getPartNo(), data.getRoutingType(), data.getRoutingRevision(), data.getAlternativeNo());
// 增加标准工序
for (RoutingComponentEntity componentEntity : data.getInformationList()) {
componentEntity.setPartNo(data.getPartNo());
componentEntity.setRoutingType(data.getRoutingType());
componentEntity.setRoutingRevision(data.getRoutingRevision());
componentEntity.setAlternativeNo(data.getAlternativeNo());
routingManagementMapper.saveRoutingComponent(componentEntity);
}
}
// 查询routing子明细列表
RoutingDetailEntity routingDetail = new RoutingDetailEntity();
BeanUtils.copyProperties(data, routingDetail);
List<RoutingComponentVo> list = routingManagementMapper.queryRoutingComponent(routingDetail);
return list;
}
/**
* 计算工时
* @param data
* @return
*/
@Override
public List<RoutingComponentVo> calculationTime(RoutingHeaderVo data) {
// 根据商品组1查标准工序
List<RoutingComponentVo> operations = data.getOperationList();
// 获得物料维护的属性
PartSubPropertiesValueData valueData = new PartSubPropertiesValueData();
@ -704,6 +741,9 @@ public class RoutingManagementServiceImpl extends ServiceImpl<RoutingManagementM
if (!operations.isEmpty()) {
for (RoutingComponentVo operation : operations) {
if (!"Y".equals(operation.getFlag())) {
continue;
}
// 获取各个值
int scale = 6; // 保留的小数位数
int scale2 = 10; // 保留的小数位数
@ -730,7 +770,7 @@ public class RoutingManagementServiceImpl extends ServiceImpl<RoutingManagementM
machCycleTime = intermediateResult.divide(numValue, scale, RoundingMode.HALF_UP);
}
} else if ("RFID绑定-TAL".equals(operation.getOperationName()) || "RFID绑定-Paris".equals(operation.getOperationName())
|| "Encoding(编码)".equals(operation.getOperationName()) || "CLS编码打印".equals(operation.getOperationName()) || operation.getOperationName().contains("后道检品")) {
|| "Encoding(编码)".equals(operation.getOperationName()) || "CLS编码打印".equals(operation.getOperationName()) || operation.getOperationName().contains("后道检品")) {
// 1 / (UPH x 效率) x 1000, UPH-TALUPH-ParisConverting-UPH(1,2,3)
List<PartSubPropertiesValueData> collect = new ArrayList<>();
if ("RFID绑定-TAL".equals(operation.getOperationName())) {
@ -794,79 +834,7 @@ public class RoutingManagementServiceImpl extends ServiceImpl<RoutingManagementM
operation.setLaborRunFactor(BigDecimal.ONE.divide(machCycleTime, 4, RoundingMode.HALF_UP)); // 人工单位产出
}
}
// // 获取的商品组的condition
// List<PgPtmConditionEntity> conditionList = routingManagementMapper.getPtmCondition(data.getSite(), data.getBuNo(), part.getProductGroupId1());
// for (PgPtmConditionEntity conditionData : conditionList) {
// // 查维护的属性集
// List<PtmConditionItemEntity> conditionItems = routingManagementMapper.getConditionItemList(data.getSite(), data.getBuNo(), conditionData.getConditionId());
// // 如果属性集合大小不等则直接跳过
// if (partItems.size() != conditionItems.size()) {
// continue;
// }
// // 比较属性编码和属性值是否一致
// boolean b = partItems.stream().allMatch(
// partItem -> conditionItems.stream().anyMatch(
// conditionItem ->
// Objects.equals(partItem.getPropertiesItemNo(), conditionItem.getItemNo()) &&
// Objects.equals(partItem.getTextValue(), conditionItem.getTextValue()) &&
// Objects.equals(partItem.getNumValue(), conditionItem.getNumValue())
// )
// );
// if (b) {
// // 获取该condition下维护的工序
// 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());
// operation.setConditionDesc(conditionData.getConditionDesc());
// }
// }
// break;
// }
// }
return operations;
}
/**
* 新增工序
* @param data
* @return
*/
@Override
@Transactional
public List<RoutingComponentVo> saveStandardOperation(RoutingComponentVo data) {
if (!data.getInformationList().isEmpty()) {
// 删除旧工序
//routingManagementMapper.deleteRoutingComponent(data.getSite(), data.getBuNo(), data.getPartNo(), data.getRoutingType(), data.getRoutingRevision(), data.getAlternativeNo());
// 增加标准工序
for (RoutingComponentEntity componentEntity : data.getInformationList()) {
componentEntity.setPartNo(data.getPartNo());
componentEntity.setRoutingType(data.getRoutingType());
componentEntity.setRoutingRevision(data.getRoutingRevision());
componentEntity.setAlternativeNo(data.getAlternativeNo());
routingManagementMapper.saveRoutingComponent(componentEntity);
}
}
// 查询routing子明细列表
RoutingDetailEntity routingDetail = new RoutingDetailEntity();
BeanUtils.copyProperties(data, routingDetail);
List<RoutingComponentVo> list = routingManagementMapper.queryRoutingComponent(routingDetail);
return list;
}
}

2
src/main/java/com/xujie/sys/modules/part/vo/RoutingComponentVo.java

@ -71,4 +71,6 @@ public class RoutingComponentVo extends RoutingComponentEntity {
* 效率
*/
private BigDecimal refEfficiency;
private String flag;
}

4
src/main/java/com/xujie/sys/modules/part/vo/RoutingHeaderVo.java

@ -3,6 +3,8 @@ package com.xujie.sys.modules.part.vo;
import com.xujie.sys.modules.part.entity.RoutingHeaderEntity;
import lombok.Data;
import java.util.List;
@Data
public class RoutingHeaderVo extends RoutingHeaderEntity {
@ -36,4 +38,6 @@ public class RoutingHeaderVo extends RoutingHeaderEntity {
private String userName;
private String alternativeNo;
private List<RoutingComponentVo> operationList;
}
Loading…
Cancel
Save