From 47596a855703fbb57e9c4feaf05b601ec07854ef Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期六, 09 五月 2026 11:41:58 +0800
Subject: [PATCH] fix:1.退料审核 2.工序加上工时-生产订单-报工填写 3.核算加上工时计算
---
src/main/java/com/ruoyi/technology/pojo/TechnologyRoutingOperation.java | 3
src/main/java/com/ruoyi/production/bean/dto/ProductionPlanDto.java | 3
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java | 1
src/main/resources/mapper/production/ProductionOrderRoutingOperationMapper.xml | 1
src/main/java/com/ruoyi/production/bean/dto/ProductionProductMainDto.java | 40 +++++-----
src/main/resources/mapper/technology/TechnologyRoutingOperationMapper.xml | 1
src/main/resources/mapper/production/ProductionOperationTaskMapper.xml | 1
src/main/java/com/ruoyi/production/bean/vo/ProductionOrderWorkOrderDetailVo.java | 7 +
src/main/java/com/ruoyi/production/pojo/ProductionProductMain.java | 4 +
src/main/java/com/ruoyi/production/bean/vo/ProductionAccountVo.java | 35 ++++----
src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingServiceImpl.java | 16 ++-
src/main/resources/mapper/production/ProductionProductMainMapper.xml | 12 ++-
src/main/resources/mapper/production/ProductionAccountMapper.xml | 12 ++-
src/main/java/com/ruoyi/production/service/impl/ProductionOrderPickServiceImpl.java | 27 ++++++
src/main/java/com/ruoyi/production/service/impl/ProductionOrderServiceImpl.java | 10 +-
src/main/resources/mapper/production/ProductionPlanMapper.xml | 3
src/main/java/com/ruoyi/production/bean/vo/ProductionOperationTaskVo.java | 3
src/main/java/com/ruoyi/production/bean/dto/ProductionAccountDto.java | 30 +++---
src/main/java/com/ruoyi/production/pojo/ProductionOrderRoutingOperation.java | 3
src/main/java/com/ruoyi/technology/pojo/TechnologyOperation.java | 2
20 files changed, 142 insertions(+), 72 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/bean/dto/ProductionAccountDto.java b/src/main/java/com/ruoyi/production/bean/dto/ProductionAccountDto.java
index 91b97ef..5bd2fd1 100644
--- a/src/main/java/com/ruoyi/production/bean/dto/ProductionAccountDto.java
+++ b/src/main/java/com/ruoyi/production/bean/dto/ProductionAccountDto.java
@@ -9,54 +9,54 @@
import java.time.LocalDate;
@Data
-@Schema(name = "ProductionAccountDto", description = "production account query dto")
+@Schema(name = "ProductionAccountDto", description = "鐢熶骇鏍哥畻鏌ヨ鍙傛暟")
public class ProductionAccountDto extends ProductionAccount {
- @Schema(description = "sales contract no")
+ @Schema(description = "閿�鍞悎鍚屽彿")
private String salesContractNo;
- @Schema(description = "customer contract no")
+ @Schema(description = "瀹㈡埛鍚堝悓鍙�")
private String customerContractNo;
- @Schema(description = "project name")
+ @Schema(description = "椤圭洰鍚嶇О")
private String projectName;
- @Schema(description = "customer name")
+ @Schema(description = "瀹㈡埛鍚嶇О")
private String customerName;
- @Schema(description = "product category")
+ @Schema(description = "浜у搧绫诲埆")
private String productCategory;
- @Schema(description = "specification model")
+ @Schema(description = "瑙勬牸鍨嬪彿")
private String specificationModel;
- @Schema(description = "scheduling user id")
+ @Schema(description = "鎺掍骇浜哄憳ID")
private Long schedulingUserId;
- @Schema(description = "scheduling user name")
+ @Schema(description = "鎺掍骇浜哄憳鍚嶇О")
private String schedulingUserName;
- @Schema(description = "process")
+ @Schema(description = "宸ュ簭")
private String process;
- @Schema(description = "date type(day/month)")
+ @Schema(description = "鏃ユ湡绫诲瀷锛堟寜澶�/鎸夋湀锛�")
private String dateType;
- @Schema(description = "day query date")
+ @Schema(description = "鎸夊ぉ鏌ヨ鏃ユ湡")
@JsonFormat(pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate entryDate;
- @Schema(description = "date range")
+ @Schema(description = "鏃ユ湡鑼冨洿")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate[] dateRange;
- @Schema(description = "start date")
+ @Schema(description = "寮�濮嬫棩鏈�")
@JsonFormat(pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate entryDateStart;
- @Schema(description = "end date")
+ @Schema(description = "缁撴潫鏃ユ湡")
@JsonFormat(pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate entryDateEnd;
diff --git a/src/main/java/com/ruoyi/production/bean/dto/ProductionPlanDto.java b/src/main/java/com/ruoyi/production/bean/dto/ProductionPlanDto.java
index 60ab542..c4363a8 100644
--- a/src/main/java/com/ruoyi/production/bean/dto/ProductionPlanDto.java
+++ b/src/main/java/com/ruoyi/production/bean/dto/ProductionPlanDto.java
@@ -52,4 +52,7 @@
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate requiredDateEnd;
+ @Schema(description = "閿�鍞悎鍚屽彿")
+ private String salesContractNo;
+
}
diff --git a/src/main/java/com/ruoyi/production/bean/dto/ProductionProductMainDto.java b/src/main/java/com/ruoyi/production/bean/dto/ProductionProductMainDto.java
index 9fc8d86..cbac4b5 100644
--- a/src/main/java/com/ruoyi/production/bean/dto/ProductionProductMainDto.java
+++ b/src/main/java/com/ruoyi/production/bean/dto/ProductionProductMainDto.java
@@ -12,63 +12,63 @@
@EqualsAndHashCode(callSuper = true)
@Data
-@Schema(name = "ProductionProductMainDto", description = "production report query dto")
+@Schema(name = "ProductionProductMainDto", description = "鐢熶骇鎶ュ伐鏌ヨ鍙傛暟")
public class ProductionProductMainDto extends ProductionProductMain {
- @Schema(description = "product process route item id")
+ @Schema(description = "浜у搧宸ヨ壓璺嚎宸ュ簭ID")
private Long productProcessRouteItemId;
- @Schema(description = "production report id")
+ @Schema(description = "鎶ュ伐ID")
private Long productMainId;
- @Schema(description = "tenant id")
+ @Schema(description = "绉熸埛ID")
private Long tenantId;
- @Schema(description = "work order no")
+ @Schema(description = "宸ュ崟缂栧彿")
private String workOrderNo;
- @Schema(description = "work order status")
+ @Schema(description = "宸ュ崟鐘舵��")
private String workOrderStatus;
- @Schema(description = "nick name")
+ @Schema(description = "鏄电О")
private String nickName;
- @Schema(description = "quantity")
+ @Schema(description = "鏁伴噺")
private BigDecimal quantity;
- @Schema(description = "scrap quantity")
+ @Schema(description = "鎶ュ簾鏁伴噺")
private BigDecimal scrapQty;
- @Schema(description = "product name")
+ @Schema(description = "浜у搧鍚嶇О")
private String productName;
- @Schema(description = "product model name")
+ @Schema(description = "浜у搧瑙勬牸鍨嬪彿")
private String productModelName;
- @Schema(description = "unit")
+ @Schema(description = "鍗曚綅")
private String unit;
- @Schema(description = "sales contract no")
+ @Schema(description = "閿�鍞悎鍚屽彿")
private String salesContractNo;
- @Schema(description = "scheduling date")
+ @Schema(description = "鎺掍骇鏃ユ湡")
private LocalDate schedulingDate;
- @Schema(description = "scheduling user name")
+ @Schema(description = "鎺掍骇浜哄憳鍚嶇О")
private String schedulingUserName;
- @Schema(description = "customer name")
+ @Schema(description = "瀹㈡埛鍚嶇О")
private String customerName;
- @Schema(description = "process")
+ @Schema(description = "宸ュ簭")
private String process;
- @Schema(description = "salary quota")
+ @Schema(description = "宸ヨ祫瀹氶")
private BigDecimal workHours;
- @Schema(description = "wages")
+ @Schema(description = "宸ヨ祫")
private BigDecimal wages;
- @Schema(description = "operation param list")
+ @Schema(description = "宸ュ簭鍙傛暟鍒楄〃")
private List<ProductionOrderRoutingOperationParam> productionOperationParamList;
}
diff --git a/src/main/java/com/ruoyi/production/bean/vo/ProductionAccountVo.java b/src/main/java/com/ruoyi/production/bean/vo/ProductionAccountVo.java
index 5d86e7c..68bcb23 100644
--- a/src/main/java/com/ruoyi/production/bean/vo/ProductionAccountVo.java
+++ b/src/main/java/com/ruoyi/production/bean/vo/ProductionAccountVo.java
@@ -8,52 +8,55 @@
import java.time.LocalDate;
@Data
-@Schema(name = "ProductionAccountVo", description = "production account page result")
+@Schema(name = "ProductionAccountVo", description = "鐢熶骇鏍哥畻鍒嗛〉缁撴灉")
public class ProductionAccountVo {
- @Schema(description = "customer contract no")
+ @Schema(description = "瀹㈡埛鍚堝悓鍙�")
private String customerContractNo;
- @Schema(description = "project name")
+ @Schema(description = "椤圭洰鍚嶇О")
private String projectName;
- @Schema(description = "customer name")
+ @Schema(description = "瀹㈡埛鍚嶇О")
private String customerName;
- @Schema(description = "product category")
+ @Schema(description = "浜у搧绫诲埆")
private String productCategory;
- @Schema(description = "specification model")
+ @Schema(description = "瑙勬牸鍨嬪彿")
private String specificationModel;
- @Schema(description = "unit")
+ @Schema(description = "鍗曚綅")
private String unit;
- @Schema(description = "scheduling user id")
+ @Schema(description = "鎺掍骇浜哄憳ID")
private Long schedulingUserId;
- @Schema(description = "scheduling user name")
+ @Schema(description = "鎺掍骇浜哄憳鍚嶇О")
private String schedulingUserName;
- @Schema(description = "wages")
+ @Schema(description = "宸ヨ祫")
private BigDecimal wages;
- @Schema(description = "finished quantity")
+ @Schema(description = "瀹屾垚鏁伴噺")
private BigDecimal finishedNum;
- @Schema(description = "salary quota")
+ @Schema(description = "宸ヨ祫瀹氶")
private BigDecimal workHours;
- @Schema(description = "output rate")
+ @Schema(description = "宸ユ椂")
+ private BigDecimal workHour;
+
+ @Schema(description = "浜у嚭鐜�")
private String outputRate;
- @Schema(description = "process")
+ @Schema(description = "宸ュ簭")
private String process;
- @Schema(description = "scheduling date")
+ @Schema(description = "鎺掍骇鏃ユ湡")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate schedulingDate;
- @Schema(description = "scheduling month(yyyy-MM)")
+ @Schema(description = "鎺掍骇鏈堜唤(yyyy-MM)")
private String schedulingMonth;
}
diff --git a/src/main/java/com/ruoyi/production/bean/vo/ProductionOperationTaskVo.java b/src/main/java/com/ruoyi/production/bean/vo/ProductionOperationTaskVo.java
index 6c7c5a7..9929f19 100644
--- a/src/main/java/com/ruoyi/production/bean/vo/ProductionOperationTaskVo.java
+++ b/src/main/java/com/ruoyi/production/bean/vo/ProductionOperationTaskVo.java
@@ -46,4 +46,7 @@
@Schema(description = "鏄惁缁撴潫锛�")
private Boolean endOrder;
+
+ @Schema(description = "绫诲瀷 鍖哄垎璁℃椂鍜岃浠�(0璁℃椂1璁′欢)")
+ private Integer type;
}
diff --git a/src/main/java/com/ruoyi/production/bean/vo/ProductionOrderWorkOrderDetailVo.java b/src/main/java/com/ruoyi/production/bean/vo/ProductionOrderWorkOrderDetailVo.java
index 2a0571d..646d3cb 100644
--- a/src/main/java/com/ruoyi/production/bean/vo/ProductionOrderWorkOrderDetailVo.java
+++ b/src/main/java/com/ruoyi/production/bean/vo/ProductionOrderWorkOrderDetailVo.java
@@ -9,6 +9,7 @@
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
+import java.math.BigDecimal;
import java.util.List;
@Data
@@ -42,6 +43,9 @@
@Schema(description = "鎶ュ伐涓讳俊鎭�")
private ProductionProductMain reportMain;
+ @Schema(description = "宸ユ椂")
+ private BigDecimal workHour;
+
@Schema(description = "鎶ュ伐浜у嚭鏄庣粏")
private List<ProductionProductOutput> reportOutputList;
@@ -62,6 +66,9 @@
@Schema(description = "鎶ュ伐涓讳俊鎭�")
private ProductionProductMain reportMain;
+ @Schema(description = "宸ユ椂")
+ private BigDecimal workHour;
+
@Schema(description = "璐ㄦ涓讳俊鎭�")
private QualityInspect inspect;
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionOrderRoutingOperation.java b/src/main/java/com/ruoyi/production/pojo/ProductionOrderRoutingOperation.java
index fc36725..d784109 100644
--- a/src/main/java/com/ruoyi/production/pojo/ProductionOrderRoutingOperation.java
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionOrderRoutingOperation.java
@@ -67,4 +67,7 @@
@Schema(description = "宸ュ簭琛╥d")
private Long technologyOperationId;
+
+ @Schema(description = "绫诲瀷 鍖哄垎璁℃椂鍜岃浠讹紝0璁℃椂锛�1璁′欢")
+ private Integer type;
}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionProductMain.java b/src/main/java/com/ruoyi/production/pojo/ProductionProductMain.java
index 0fa00eb..9de89fb 100644
--- a/src/main/java/com/ruoyi/production/pojo/ProductionProductMain.java
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionProductMain.java
@@ -7,6 +7,7 @@
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
+import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@@ -56,4 +57,7 @@
@TableField(fill = FieldFill.INSERT)
private Long deptId;
+ @Schema(description = "宸ユ椂")
+ private BigDecimal workHour;
+
}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionOrderPickServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderPickServiceImpl.java
index 598ae6b..554b95e 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionOrderPickServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderPickServiceImpl.java
@@ -430,7 +430,7 @@
BigDecimal totalReturnQty = oldReturnQty.add(currentReturnQty);
if (currentReturnQty.compareTo(BigDecimal.ZERO) > 0) {
String returnBatchNo = resolveInventoryBatchNoFromStored(oldPick.getBatchNo());
- addInventory(oldPick.getId(), oldPick.getProductModelId(), returnBatchNo, currentReturnQty, FEED_RETURN_IN_RECORD_TYPE);
+ addInventoryRecordOnly(oldPick.getId(), oldPick.getProductModelId(), returnBatchNo, currentReturnQty, FEED_RETURN_IN_RECORD_TYPE);
}
BigDecimal actualQty = defaultDecimal(oldPick.getQuantity())
@@ -737,6 +737,31 @@
}
}
+ private void addInventoryRecordOnly(Long recordId,
+ Long productModelId,
+ String batchNo,
+ BigDecimal quantity,
+ String stockInRecordType) {
+ // 浠呰褰曞叆搴撶敵璇凤紝涓嶅仛瀹℃牳閫氳繃銆�
+ BigDecimal addQuantity = defaultDecimal(quantity);
+ if (addQuantity.compareTo(BigDecimal.ZERO) <= 0) {
+ return;
+ }
+ try {
+ StockInventoryDto stockInventoryDto = new StockInventoryDto();
+ stockInventoryDto.setProductModelId(productModelId);
+ stockInventoryDto.setBatchNo(batchNo);
+ stockInventoryDto.setQualitity(addQuantity);
+ stockInventoryDto.setRecordType(stockInRecordType);
+ stockInventoryDto.setRecordId(recordId == null ? 0L : recordId);
+ stockInventoryService.addStockInRecordOnly(stockInventoryDto);
+ } catch (ServiceException ex) {
+ throw ex;
+ } catch (Exception ex) {
+ throw new ServiceException("閫�鏂欏叆搴撹褰曚繚瀛樺け璐ワ細" + ex.getMessage());
+ }
+ }
+
private List<ProductionOrderPickDto> resolvePickItems(ProductionOrderPickDto dto) {
// 瑙f瀽鏂板鍦烘櫙鐨勯鏂欐槑缁嗛泦鍚堛��
if (dto == null) {
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionOrderServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderServiceImpl.java
index 6ef6a44..344800c 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionOrderServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderServiceImpl.java
@@ -188,7 +188,6 @@
ProductionOrder update = new ProductionOrder();
update.setId(productionOrder.getId());
update.setTechnologyRoutingId(targetRoutingId);
- // 鎸佷箙鍖栨垨杈撳嚭澶勭悊缁撴灉
if (!this.updateById(update)) {
throw new ServiceException("缁戝畾宸ヨ壓璺嚎澶辫触");
}
@@ -228,6 +227,7 @@
clearProductionSnapshot(productionOrderId);
ProductionOrderBom orderBom = syncProductionOrderBomSnapshot(productionOrder, technologyRouting);
+ //鐢熶骇璁㈠崟宸ヨ壓璺嚎琛�
ProductionOrderRouting orderRouting = new ProductionOrderRouting();
orderRouting.setProductionOrderId(productionOrder.getId());
orderRouting.setTechnologyRoutingId(technologyRouting.getId());
@@ -236,7 +236,6 @@
orderRouting.setDescription(technologyRouting.getDescription());
orderRouting.setBomId(technologyRouting.getBomId());
orderRouting.setOrderBomId(orderBom == null ? null : orderBom.getId());
- // 鎸佷箙鍖栨垨杈撳嚭澶勭悊缁撴灉
productionOrderRoutingMapper.insert(orderRouting);
int syncedParamCount = 0;
@@ -271,6 +270,7 @@
targetOperation.setIsQuality(sourceOperation.getIsQuality());
targetOperation.setOperationName(operationNameMap.get(sourceOperation.getTechnologyOperationId()));
targetOperation.setTechnologyOperationId(sourceOperation.getTechnologyOperationId());
+ targetOperation.setType(sourceOperation.getType());
productionOrderRoutingOperationMapper.insert(targetOperation);
boolean isLastOperation = lastDragSort != null && Objects.equals(sourceOperation.getDragSort(), lastDragSort);
@@ -745,8 +745,8 @@
: workOrderPage.getRecords().stream()
.filter(Objects::nonNull)
.sorted(Comparator.comparing(ProductionOperationTaskVo::getId, Comparator.nullsLast(Comparator.naturalOrder())))
- .collect(Collectors.toList());
- if (workOrderList == null || workOrderList.isEmpty()) {
+ .toList();
+ if (workOrderList.isEmpty()) {
detailVo.setWorkOrderList(Collections.emptyList());
return detailVo;
}
@@ -868,6 +868,7 @@
ProductionOrderWorkOrderDetailVo.ReportDetail reportDetail = new ProductionOrderWorkOrderDetailVo.ReportDetail();
reportDetail.setReportMain(reportMain);
+ reportDetail.setWorkHour(reportMain.getWorkHour());
reportDetail.setReportOutputList(reportOutputMap.getOrDefault(reportMainId, Collections.emptyList()));
reportDetail.setReportParamList(reportParamMap.getOrDefault(reportMainId, Collections.emptyList()));
reportDetailList.add(reportDetail);
@@ -878,6 +879,7 @@
inspectDetail.setReportId(reportMainId);
inspectDetail.setReportNo(reportMain.getProductNo());
inspectDetail.setReportMain(reportMain);
+ inspectDetail.setWorkHour(reportMain.getWorkHour());
inspectDetail.setInspect(inspect);
inspectDetail.setInspectParamList(inspectParamMap.getOrDefault(inspect.getId(), Collections.emptyList()));
inspectDetail.setInspectFileList(inspectFileMap.getOrDefault(inspect.getId(), Collections.emptyList()));
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
index 175dd30..808e75d 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -275,6 +275,7 @@
productionProductMain.setUserName(user == null ? dto.getUserName() : user.getNickName());
productionProductMain.setProductionOperationTaskId(taskId);
productionProductMain.setStatus(0);
+ productionProductMain.setWorkHour(dto.getWorkHour());
productionProductMainMapper.insert(productionProductMain);
syncOperationParamInputValue(dto, routingOperation.getId(), productionProductMain.getId());
diff --git a/src/main/java/com/ruoyi/technology/pojo/TechnologyOperation.java b/src/main/java/com/ruoyi/technology/pojo/TechnologyOperation.java
index 061169b..1915946 100644
--- a/src/main/java/com/ruoyi/technology/pojo/TechnologyOperation.java
+++ b/src/main/java/com/ruoyi/technology/pojo/TechnologyOperation.java
@@ -49,7 +49,7 @@
@Schema(description = "鏄惁璐ㄦ")
private Boolean isQuality;
- @Schema(description = "绫诲瀷 鍖哄垎璁℃椂鍜岃浠�")
+ @Schema(description = "绫诲瀷 鍖哄垎璁℃椂鍜岃浠讹紝0璁℃椂锛�1璁′欢")
private Integer type;
@Schema(description = "璁惧id")
diff --git a/src/main/java/com/ruoyi/technology/pojo/TechnologyRoutingOperation.java b/src/main/java/com/ruoyi/technology/pojo/TechnologyRoutingOperation.java
index f91f1e1..93ae801 100644
--- a/src/main/java/com/ruoyi/technology/pojo/TechnologyRoutingOperation.java
+++ b/src/main/java/com/ruoyi/technology/pojo/TechnologyRoutingOperation.java
@@ -58,4 +58,7 @@
@Schema(description = "閮ㄩ棬ID")
@TableField(fill = FieldFill.INSERT)
private Long deptId;
+
+ @Schema(description = "绫诲瀷 鍖哄垎璁℃椂鍜岃浠讹紝0璁℃椂锛�1璁′欢")
+ private Integer type;
}
diff --git a/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingServiceImpl.java b/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingServiceImpl.java
index 4079f84..0eff194 100644
--- a/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingServiceImpl.java
+++ b/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingServiceImpl.java
@@ -143,7 +143,10 @@
routingOperation.setProductModelId(resolveOutputProductModelId(bomStructure, structureById, technologyRouting.getProductModelId()));
routingOperation.setTechnologyOperationId(bomStructure.getOperationId());
routingOperation.setDragSort(dragSort++);
- routingOperation.setIsQuality(getOperationQuality(bomStructure.getOperationId()));
+ TechnologyOperation technologyOperation = getOperation(bomStructure.getOperationId());
+ routingOperation.setIsQuality(technologyOperation != null ? technologyOperation.getIsQuality() : null);
+ routingOperation.setIsProduction(technologyOperation != null ? technologyOperation.getIsProduction() : null);
+ routingOperation.setType(technologyOperation != null ? technologyOperation.getType() : null);
technologyRoutingOperationMapper.insert(routingOperation);
syncRoutingOperationParams(routingOperation.getId(), bomStructure.getOperationId());
}
@@ -204,12 +207,11 @@
}
}
- /**
- * 璐ㄦ鏍囪瘑浠ュ伐搴忓熀纭�琛ㄥ畾涔変负鍑嗐��
- */
- private Boolean getOperationQuality(Long operationId) {
- TechnologyOperation technologyOperation = technologyOperationMapper.selectById(operationId);
- return technologyOperation != null ? technologyOperation.getIsQuality() : null;
+ private TechnologyOperation getOperation(Long operationId) {
+ if (operationId == null) {
+ return null;
+ }
+ return technologyOperationMapper.selectById(operationId);
}
private String buildProcessRouteCode(Long id) {
diff --git a/src/main/resources/mapper/production/ProductionAccountMapper.xml b/src/main/resources/mapper/production/ProductionAccountMapper.xml
index 2841854..4be1c23 100644
--- a/src/main/resources/mapper/production/ProductionAccountMapper.xml
+++ b/src/main/resources/mapper/production/ProductionAccountMapper.xml
@@ -29,15 +29,19 @@
pa.scheduling_user_id as schedulingUserId,
pa.scheduling_user_name as schedulingUserName,
cast(sum(
- ifnull(pa.work_hours, 0) * ifnull(pa.finished_num, 0) *
case
- when substring_index(pm.model, '*', -1) regexp '^[0-9]+(\\.[0-9]+)?$'
- then cast(substring_index(pm.model, '*', -1) as decimal(18,4))
- else 1
+ when poro.type = 0 then ifnull(pa.work_hours, 0) * ifnull(ppm.work_hour, 0)
+ else ifnull(pa.work_hours, 0) * ifnull(pa.finished_num, 0) *
+ case
+ when substring_index(pm.model, '*', -1) regexp '^[0-9]+(\\.[0-9]+)?$'
+ then cast(substring_index(pm.model, '*', -1) as decimal(18,4))
+ else 1
+ end
end
) as decimal(18,4)) as wages,
cast(sum(ifnull(pa.finished_num, 0)) as decimal(18,4)) as finishedNum,
cast(sum(ifnull(pa.work_hours, 0)) as decimal(18,4)) as workHours,
+ cast(sum(ifnull(ppm.work_hour, 0)) as decimal(18,4)) as workHour,
case
when sum(ifnull(ppo.quantity, 0) + ifnull(ppo.scrapQty, 0)) = 0 then '0%'
else concat(
diff --git a/src/main/resources/mapper/production/ProductionOperationTaskMapper.xml b/src/main/resources/mapper/production/ProductionOperationTaskMapper.xml
index 577bcfd..6db5455 100644
--- a/src/main/resources/mapper/production/ProductionOperationTaskMapper.xml
+++ b/src/main/resources/mapper/production/ProductionOperationTaskMapper.xml
@@ -29,6 +29,7 @@
pm.model as model,
pm.unit as unit,
poro.operation_name as operationName,
+ poro.type as type,
IFNULL(scrapStat.scrapQty, 0) AS scrapQty,
ROUND(IFNULL(pot.complete_quantity, 0) / NULLIF(pot.plan_quantity, 0) * 100, 2) AS completionStatus,
CASE
diff --git a/src/main/resources/mapper/production/ProductionOrderRoutingOperationMapper.xml b/src/main/resources/mapper/production/ProductionOrderRoutingOperationMapper.xml
index 55739db..4d63797 100644
--- a/src/main/resources/mapper/production/ProductionOrderRoutingOperationMapper.xml
+++ b/src/main/resources/mapper/production/ProductionOrderRoutingOperationMapper.xml
@@ -13,6 +13,7 @@
<result column="update_time" property="updateTime" />
<result column="drag_sort" property="dragSort" />
<result column="is_quality" property="isQuality" />
+ <result column="type" property="type" />
<result column="create_user" property="createUser" />
<result column="dept_id" property="deptId" />
</resultMap>
diff --git a/src/main/resources/mapper/production/ProductionPlanMapper.xml b/src/main/resources/mapper/production/ProductionPlanMapper.xml
index a389d32..69ccd36 100644
--- a/src/main/resources/mapper/production/ProductionPlanMapper.xml
+++ b/src/main/resources/mapper/production/ProductionPlanMapper.xml
@@ -53,6 +53,9 @@
<if test="c.requiredDateStart != null and c.requiredDateEnd != null">
and pp.required_date between #{c.requiredDateStart} and #{c.requiredDateEnd}
</if>
+ <if test="c.salesContractNo != null and c.salesContractNo != ''">
+ and sl.sales_contract_no like concat('%', #{c.salesContractNo}, '%')
+ </if>
</if>
</where>
ORDER BY COALESCE(pp.id) DESC
diff --git a/src/main/resources/mapper/production/ProductionProductMainMapper.xml b/src/main/resources/mapper/production/ProductionProductMainMapper.xml
index 5a78a5b..df585f9 100644
--- a/src/main/resources/mapper/production/ProductionProductMainMapper.xml
+++ b/src/main/resources/mapper/production/ProductionProductMainMapper.xml
@@ -100,13 +100,17 @@
ifnull(ppo.scrap_qty, 0) as scrapQty,
date(pa.scheduling_date) as schedulingDate,
pa.scheduling_user_name as schedulingUserName,
+ cast(ifnull(ppm.work_hour, 0) as decimal(18,4)) as workHour,
cast(ifnull(pa.work_hours, 0) as decimal(18,4)) as workHours,
cast(
- ifnull(pa.work_hours, 0) * ifnull(pa.finished_num, 0) *
case
- when substring_index(pm.model, '*', -1) regexp '^[0-9]+(\\.[0-9]+)?$'
- then cast(substring_index(pm.model, '*', -1) as decimal(18,4))
- else 1
+ when poro.type = 0 then ifnull(pa.work_hours, 0) * ifnull(ppm.work_hour, 0)
+ else ifnull(pa.work_hours, 0) * ifnull(pa.finished_num, 0) *
+ case
+ when substring_index(pm.model, '*', -1) regexp '^[0-9]+(\\.[0-9]+)?$'
+ then cast(substring_index(pm.model, '*', -1) as decimal(18,4))
+ else 1
+ end
end
as decimal(18,4)
) as wages
diff --git a/src/main/resources/mapper/technology/TechnologyRoutingOperationMapper.xml b/src/main/resources/mapper/technology/TechnologyRoutingOperationMapper.xml
index 1bbb25c..26053b8 100644
--- a/src/main/resources/mapper/technology/TechnologyRoutingOperationMapper.xml
+++ b/src/main/resources/mapper/technology/TechnologyRoutingOperationMapper.xml
@@ -12,6 +12,7 @@
<result column="update_time" property="updateTime" />
<result column="drag_sort" property="dragSort" />
<result column="is_quality" property="isQuality" />
+ <result column="type" property="type" />
<result column="create_user" property="createUser" />
<result column="dept_id" property="deptId" />
</resultMap>
--
Gitblit v1.9.3