From 5ddc232b8dffcb3402711874491df35fb1997d1d Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期六, 09 五月 2026 16:08:36 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New_pro' into dev_New_pro
---
src/main/java/com/ruoyi/production/bean/dto/ProductionPlanDto.java | 3
src/main/java/com/ruoyi/purchase/service/impl/PurchaseReturnOrdersServiceImpl.java | 21 ++
src/main/java/com/ruoyi/sales/mapper/ShippingProductDetailMapper.java | 3
src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java | 13 -
src/main/java/com/ruoyi/sales/service/ShippingInfoService.java | 3
src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java | 1
src/main/java/com/ruoyi/production/bean/dto/ProductionProductMainDto.java | 40 ++--
src/main/java/com/ruoyi/sales/dto/ShippingApproveDto.java | 15 ++
src/main/resources/mapper/technology/TechnologyRoutingOperationMapper.xml | 1
src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java | 17 ++
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java | 3
src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java | 13 +
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/sales/ShippingProductDetailMapper.xml | 9 +
src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java | 2
src/main/resources/mapper/production/ProductionAccountMapper.xml | 12 +
src/main/java/com/ruoyi/production/service/impl/ProductionOrderServiceImpl.java | 10
src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java | 8 -
src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java | 9 +
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
src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java | 22 ++
src/main/java/com/ruoyi/technology/pojo/TechnologyRoutingOperation.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/approve/service/impl/ApproveNodeServiceImpl.java | 8
src/main/resources/mapper/production/ProductionOperationTaskMapper.xml | 1
/dev/null | 24 ---
src/main/java/com/ruoyi/production/bean/vo/ProductionOrderWorkOrderDetailVo.java | 7 +
src/main/java/com/ruoyi/production/pojo/ProductionProductMain.java | 4
src/main/resources/mapper/production/ProductionProductMainMapper.xml | 12 +
src/main/java/com/ruoyi/production/service/impl/ProductionOrderPickServiceImpl.java | 27 +++
src/main/resources/mapper/production/ProductionPlanMapper.xml | 3
src/main/java/com/ruoyi/production/bean/vo/ProductionOperationTaskVo.java | 3
36 files changed, 255 insertions(+), 130 deletions(-)
diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
index 3caf7cf..2c5fda3 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
@@ -183,7 +183,7 @@
addQualityInspect(purchaseLedger, salesLedgerProduct);
} else {
//鐩存帴鍏ュ簱
- stockUtils.addStock(salesLedgerProduct.getProductModelId(), salesLedgerProduct.getQuantity(), StockInQualifiedRecordTypeEnum.PURCHASE_STOCK_IN.getCode(), purchaseLedger.getId());
+ stockUtils.addStockWithBatchNo(salesLedgerProduct.getProductModelId(), salesLedgerProduct.getQuantity(), StockInQualifiedRecordTypeEnum.PURCHASE_STOCK_IN.getCode(), purchaseLedger.getId(),purchaseLedger.getPurchaseContractNumber()+"-"+salesLedgerProduct.getId());
}
}
} else if (status.equals(3)) {
@@ -211,11 +211,10 @@
}
salesQuotationMapper.updateById(salesQuote);
}
- // 鍑哄簱瀹℃壒淇敼
+ // 鍑哄簱瀹℃壒淇敼=鍙戣揣瀹℃壒
if (approveProcess.getApproveType().equals(7)) {
- String[] split = approveProcess.getApproveReason().split(":");
ShippingInfo shippingInfo = shippingInfoMapper.selectOne(new LambdaQueryWrapper<ShippingInfo>()
- .eq(ShippingInfo::getShippingNo, split[1])
+ .eq(ShippingInfo::getShippingNo, approveProcess.getApproveReason())
.orderByDesc(ShippingInfo::getCreateTime)
.last("limit 1"));
if (shippingInfo != null) {
@@ -228,6 +227,7 @@
}
shippingInfoMapper.updateById(shippingInfo);
}
+ //搴撳瓨鎵e噺
}
fileUtil.saveStorageAttachment(ApplicationTypeEnum.FILE, RecordTypeEnum.APPROVE_NODE, approveNode.getId(), approveNode.getStorageBlobDTOS());
diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
index c8c6af0..bf2cdb2 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
@@ -1,6 +1,7 @@
package com.ruoyi.approve.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -24,8 +25,10 @@
import com.ruoyi.basic.enums.RecordTypeEnum;
import com.ruoyi.basic.utils.FileUtil;
import com.ruoyi.common.enums.FileNameType;
+import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
import com.ruoyi.common.utils.OrderUtils;
import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.procurementrecord.utils.StockUtils;
import com.ruoyi.project.system.domain.SysDept;
import com.ruoyi.project.system.domain.SysNotice;
import com.ruoyi.project.system.domain.SysUser;
@@ -35,8 +38,10 @@
import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
import com.ruoyi.purchase.pojo.PurchaseLedger;
import com.ruoyi.sales.mapper.CommonFileMapper;
+import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
import com.ruoyi.sales.mapper.ShippingInfoMapper;
import com.ruoyi.sales.pojo.CommonFile;
+import com.ruoyi.sales.pojo.SalesLedgerProduct;
import com.ruoyi.sales.pojo.ShippingInfo;
import com.ruoyi.sales.service.impl.CommonFileServiceImpl;
import lombok.RequiredArgsConstructor;
@@ -65,6 +70,8 @@
private final CommonFileServiceImpl commonFileService;
private final ISysNoticeService sysNoticeService;
private final PurchaseLedgerMapper purchaseLedgerMapper;
+ private final SalesLedgerProductMapper salesLedgerProductMapper;
+ private final StockUtils stockUtils;
private final ShippingInfoMapper shippingInfoMapper;
private final ApproveNodeMapper approveNodeMapper;
private final ApproveProcessConfigNodeService approveProcessConfigNodeService;
@@ -89,11 +96,6 @@
if (CollectionUtils.isEmpty(sysUsers)) throw new RuntimeException("瀹℃牳鐢ㄦ埛涓嶅瓨鍦�");
if (sysDept == null) throw new RuntimeException("閮ㄩ棬涓嶅瓨鍦�");
if (sysUser == null) throw new RuntimeException("鐢宠浜轰笉瀛樺湪");
-// String today = LocalDate.now().format(DATE_FORMAT);
-// Long approveId = dailyRedisCounter.incrementAndGetByDb();
-// String formattedCount = String.format("%03d", approveId);
-// //娴佺▼ ID
-// String approveID = today + formattedCount;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
ApproveProcess approveProcess = new ApproveProcess();
String no = OrderUtils.countTodayByCreateTime(approveProcessMapper, "", "approve_id");
@@ -157,9 +159,19 @@
|| !StringUtils.hasText(approveProcessVO.getApproveReason())) {
throw new RuntimeException("瀹℃牳鐢ㄦ埛涓嶅瓨鍦�");
}
+
purchaseLedgerMapper.update(null, new LambdaUpdateWrapper<PurchaseLedger>()
.eq(PurchaseLedger::getPurchaseContractNumber, approveProcessVO.getApproveReason())
.set(PurchaseLedger::getApprovalStatus, 3));
+ //閲囪喘鍏ュ簱
+ PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectOne(new LambdaQueryWrapper<PurchaseLedger>()
+ .eq(PurchaseLedger::getPurchaseContractNumber, approveProcessVO.getApproveReason())
+ .last("limit 1"));
+ List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper.selectList(new QueryWrapper<SalesLedgerProduct>()
+ .lambda().eq(SalesLedgerProduct::getSalesLedgerId, purchaseLedger.getId()).eq(SalesLedgerProduct::getType, 2));
+ for (SalesLedgerProduct salesLedgerProduct : salesLedgerProducts) {
+ stockUtils.addStockWithBatchNo(salesLedgerProduct.getProductModelId(), salesLedgerProduct.getQuantity(), StockInQualifiedRecordTypeEnum.PURCHASE_STOCK_IN.getCode(), purchaseLedger.getId(),purchaseLedger.getPurchaseContractNumber()+"-"+salesLedgerProduct.getId());
+ }
}
@Override
diff --git a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
index f561b49..5356500 100644
--- a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
+++ b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
@@ -81,6 +81,23 @@
}
/**
+ * 鍚堟牸鍏ュ簱甯︽壒娆″彿
+ * @param productModelId
+ * @param quantity
+ * @param recordType
+ * @param recordId
+ */
+ public void addStockWithBatchNo(Long productModelId, BigDecimal quantity, String recordType, Long recordId, String batchNo) {
+ StockInventoryDto stockInventoryDto = new StockInventoryDto();
+ stockInventoryDto.setRecordId(recordId);
+ stockInventoryDto.setRecordType(String.valueOf(recordType));
+ stockInventoryDto.setQualitity(quantity);
+ stockInventoryDto.setProductModelId(productModelId);
+ stockInventoryDto.setBatchNo(batchNo);
+ stockInventoryService.addStockInRecordOnly(stockInventoryDto);
+ }
+
+ /**
* 鍚堟牸鍑哄簱
*
* @param productModelId
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/purchase/service/impl/PurchaseLedgerServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
index 91fb7b9..cdf80f9 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -173,23 +173,14 @@
}
purchaseLedgerMapper.updateById(purchaseLedger);
}
- // 6.閲囪喘瀹℃牳鏂板锛涘鎵圭鐞嗘湭閰嶇疆閲囪喘瀹℃壒浜烘椂锛屽鎵规湇鍔′細鑷姩缃负瀹℃壒閫氳繃銆�
- addApproveByPurchase(loginUser, purchaseLedger);
// 4. 澶勭悊瀛愯〃鏁版嵁
List<SalesLedgerProduct> productList = purchaseLedgerDto.getProductData();
if (productList != null && !productList.isEmpty()) {
handleSalesLedgerProducts(purchaseLedger.getId(), productList, purchaseLedgerDto.getType());
}
- //鏂板鍘熸潗鏂欐楠� 瀹℃壒涔嬪悗鎵嶇敓鎴愭楠�
-// if (productList != null) {
-// for (SalesLedgerProduct saleProduct : productList) {
-// //鏄惁鎺ㄩ�佽川妫�锛屽鏋渢rue灏辨坊鍔�
-// if (saleProduct.getIsChecked()) {
-// addQualityInspect(purchaseLedger, saleProduct);
-// }
-// }
-// }
+ // 6.閲囪喘瀹℃牳鏂板锛涘鎵圭鐞嗘湭閰嶇疆閲囪喘瀹℃壒浜烘椂锛屽鎵规湇鍔′細鑷姩缃负瀹℃壒閫氳繃銆�
+ addApproveByPurchase(loginUser, purchaseLedger);
// 5. 杩佺Щ涓存椂鏂囦欢鍒版寮忕洰褰�
fileUtil.saveStorageAttachment(ApplicationTypeEnum.FILE, RecordTypeEnum.PURCHASE_LEDGER, purchaseLedger.getId(), purchaseLedgerDto.getStorageBlobDTOS());
return 1;
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseReturnOrdersServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseReturnOrdersServiceImpl.java
index e91f692..b5003ae 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseReturnOrdersServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseReturnOrdersServiceImpl.java
@@ -4,25 +4,33 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.account.pojo.AccountIncome;
import com.ruoyi.account.service.AccountIncomeService;
import com.ruoyi.common.enums.SaleEnum;
+import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.security.LoginUser;
+import com.ruoyi.procurementrecord.utils.StockUtils;
import com.ruoyi.purchase.dto.PurchaseReturnOrderDto;
import com.ruoyi.purchase.dto.PurchaseReturnOrderProductsDto;
+import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
import com.ruoyi.purchase.mapper.PurchaseReturnOrderProductsMapper;
import com.ruoyi.purchase.mapper.PurchaseReturnOrdersMapper;
+import com.ruoyi.purchase.pojo.PurchaseLedger;
import com.ruoyi.purchase.pojo.PurchaseReturnOrderProducts;
import com.ruoyi.purchase.pojo.PurchaseReturnOrders;
import com.ruoyi.purchase.service.PurchaseReturnOrdersService;
import com.ruoyi.purchase.vo.PurchaseReturnDetailsVo;
+import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
import com.ruoyi.purchase.dto.PurchaseReturnOrderHasAllInfoDto;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
import com.ruoyi.sales.service.ISalesLedgerService;
+import com.ruoyi.stock.mapper.StockOutRecordMapper;
+import com.ruoyi.stock.pojo.StockOutRecord;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -48,6 +56,10 @@
private final PurchaseReturnOrderProductsMapper purchaseReturnOrderProductsMapper;
private final ISalesLedgerService salesLedgerService;
private final AccountIncomeService accountIncomeService;
+ private final StockUtils stockUtils;
+ private final SalesLedgerProductMapper salesLedgerProductMapper;
+ private final PurchaseLedgerMapper purchaseLedgerMapper;
+ private final StockOutRecordMapper stockOutRecordMapper;
@Override
public IPage<PurchaseReturnOrderHasAllInfoDto> listPage(Page page, PurchaseReturnOrderDto purchaseReturnOrderDto) {
@@ -67,6 +79,10 @@
// 杩欓噷涓烘柊澧炲洜姝d涓簄ull
purchaseReturnOrderProductsDto.setId(null);
purchaseReturnOrderProductsMapper.insert(purchaseReturnOrderProductsDto);
+ //搴撳瓨闇�瑕佸嚭搴�(閲囪喘閫�璐�)
+ PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectById(purchaseReturnOrderDto.getPurchaseLedgerId());
+ SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(purchaseReturnOrderProductsDto.getSalesLedgerProductId());
+ stockUtils.substractStock(salesLedgerProduct.getProductModelId(), purchaseReturnOrderProductsDto.getReturnQuantity(), StockOutQualifiedRecordTypeEnum.PURCHASE_RETURN_STOCK_OUT.getCode(), purchaseReturnOrderDto.getId(), purchaseLedger.getPurchaseContractNumber()+"-"+salesLedgerProduct.getId());
}
}else {
throw new RuntimeException("璇烽�夋嫨閫�璐у晢鍝�");
@@ -120,7 +136,10 @@
LambdaUpdateWrapper<PurchaseReturnOrderProducts> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(PurchaseReturnOrderProducts::getPurchaseReturnOrderId, id);
purchaseReturnOrderProductsMapper.delete(updateWrapper);
-
+ //(閲囪喘閫�璐х殑鏁版嵁闇�瑕佸垹鎺�)
+ stockOutRecordMapper.delete(Wrappers.<StockOutRecord>lambdaQuery()
+ .eq(StockOutRecord::getRecordType,StockOutQualifiedRecordTypeEnum.PURCHASE_RETURN_STOCK_OUT.getCode())
+ .eq(StockOutRecord::getRecordId, id));
// 璐㈠姟
LambdaUpdateWrapper<AccountIncome> updateWrapperAccountIncome = new LambdaUpdateWrapper<>();
updateWrapperAccountIncome.eq(AccountIncome::getBusinessId, id);
diff --git a/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java b/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java
index 411291c..a4c1106 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java
@@ -71,7 +71,6 @@
if (CollUtil.isEmpty(list)) {
return AjaxResult.success(list);
}
- //
List<Long> productIds = list.stream().map(SalesLedgerProduct::getId).collect(Collectors.toList());
List<SimpleReturnOrderGroupDto> groupListByProductIds = purchaseReturnOrderProductsMapper.getReturnOrderGroupListByProductIds(productIds);
Map<Long, BigDecimal> returnOrderGroupDtoMap = groupListByProductIds.stream().collect(Collectors.toMap(SimpleReturnOrderGroupDto::getSalesLedgerProductId, item -> item.getSumReturnQuantity()));
@@ -83,13 +82,6 @@
if (item.getFutureTicketsAmount().compareTo(BigDecimal.ZERO) == 0) {
item.setFutureTicketsAmount(BigDecimal.ZERO);
}
-// ProcurementPageDto procurementDto = new ProcurementPageDto();
-// procurementDto.setSalesLedgerProductId(item.getId());
-// procurementDto.setProductCategory(item.getProductCategory());
-// IPage<ProcurementPageDtoCopy> result = procurementRecordService.listPageCopyByProduction(new Page<>(1,-1), procurementDto);
-// BigDecimal stockQuantity = stockUtils.getStockQuantity(item.getProductModelId()).get("stockQuantity");
-
-// ProcurementPageDtoCopy procurementDtoCopy = result.getRecords().get(0);
if (item.getApproveStatus() != 2) {
if (item.getHasSufficientStock() == 0) {
item.setApproveStatus(0);
diff --git a/src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java b/src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java
deleted file mode 100644
index 8c95270..0000000
--- a/src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package com.ruoyi.sales.controller;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
-import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.framework.web.controller.BaseController;
-import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.procurementrecord.utils.StockUtils;
-import com.ruoyi.sales.mapper.ShipmentApprovalMapper;
-import com.ruoyi.sales.pojo.SalesLedgerProduct;
-import com.ruoyi.sales.pojo.ShipmentApproval;
-import com.ruoyi.sales.service.ISalesLedgerProductService;
-import com.ruoyi.sales.service.ShipmentApprovalService;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import io.swagger.v3.oas.annotations.Operation;
-import jakarta.servlet.http.HttpServletResponse;
-import lombok.AllArgsConstructor;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-@RestController
-@RequestMapping("/shipmentApproval")
-@Tag(name = "鍙戣揣瀹℃壒绠$悊")
-@AllArgsConstructor
-public class ShipmentApprovalController extends BaseController {
-
- private final ShipmentApprovalService shipmentApprovalService;
- private final ShipmentApprovalMapper shipmentApprovalMapper;
- private final ISalesLedgerProductService salesLedgerProductService;
- private final StockUtils stockUtils;
-
- @GetMapping("/listPage")
- @Operation(summary = "鍙戣揣瀹℃壒鍒楄〃")
- public AjaxResult listPage(Page page, ShipmentApproval req) {
- IPage<ShipmentApproval> listPage = shipmentApprovalService.listPage(page,req);
- return AjaxResult.success(listPage);
- }
-
- @PostMapping("/update")
- @Operation(summary = "鍙戣揣瀹℃壒,鏇存柊鍙戣揣瀹℃壒鐘舵��")
- @Transactional(rollbackFor = Exception.class)
- public AjaxResult update(@RequestBody ShipmentApproval req) {
-
- // 鏌ヨ鍙戣揣瀹℃壒
- ShipmentApproval shipmentApproval = shipmentApprovalMapper.selectById(req.getId());
- if (shipmentApproval == null) {
- return AjaxResult.error("鍙戣揣瀹℃壒涓嶅瓨鍦�");
- }
-
- // 鏇存柊鍙戣揣瀹℃壒鐘舵��
- shipmentApproval.setApproveStatus(req.getApproveStatus());
- boolean update = shipmentApprovalService.updateById(shipmentApproval);
- if (!update) {
- // 浜嬪姟鍥炴粴
- throw new ServiceException("鍙戣揣瀹℃壒鏇存柊澶辫触");
- }
- // 鏌ヨ鍏宠仈鐨勯攢鍞彴璐︿骇鍝�
- SalesLedgerProduct salesLedgerProduct = salesLedgerProductService.getById(shipmentApproval.getSalesLedgerProductId());
- if (salesLedgerProduct == null) {
- // 鎶涘紓甯镐簨鍔″洖婊�
- throw new ServiceException("閿�鍞彴璐︿笉瀛樺湪锛屽鎵瑰洖婊�");
- }
-
- // 鍚屾鏇存柊閿�鍞彴璐︿骇鍝佺殑瀹℃壒鐘舵��
- salesLedgerProduct.setApproveStatus(req.getApproveStatus());
- salesLedgerProductService.updateById(salesLedgerProduct);
-
- // 瀹℃壒閫氳繃
- if (req.getApproveStatus() == 3) {
-// // 鏌ヨ閲囪喘鍏ュ簱璁板綍
-// LambdaQueryWrapper<ProcurementRecordStorage> lambdaQueryWrapper = new LambdaQueryWrapper<ProcurementRecordStorage>()
-// .eq(ProcurementRecordStorage::getSalesLedgerProductId, req.getSalesLedgerProductId());
-// ProcurementRecordStorage procurementRecordStorage = procurementRecordStorageService.getOne(lambdaQueryWrapper);
-//
-// if (procurementRecordStorage == null) {
-// // 淇濊瘉鍓嶉潰鐨勪慨鏀瑰叏閮ㄥ洖婊�
-// throw new ServiceException("閲囪喘璁板綍涓嶅瓨鍦紝瀹℃壒鍥炴粴");
-// }
-
-
- //鍑哄簱
- stockUtils.addStock(salesLedgerProduct.getProductModelId(), salesLedgerProduct.getQuantity(), StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode(), req.getId());
- }
-
- return AjaxResult.success();
- }
-
-
-
- /**
- * 瀵煎嚭鍙戣揣淇℃伅绠$悊
- */
- @PostMapping("/export")
- @Operation(summary = "瀵煎嚭鍙戣揣瀹℃壒")
- public void export(HttpServletResponse response) {
- List<ShipmentApproval> list = shipmentApprovalService.list();
- ExcelUtil<ShipmentApproval> util = new ExcelUtil<ShipmentApproval>(ShipmentApproval.class);
- util.exportExcel(response, list, "鍙戣揣瀹℃壒");
- }
-
-}
diff --git a/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java b/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
index 458be2d..0257f2a 100644
--- a/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
+++ b/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
@@ -61,7 +61,7 @@
ApproveProcessVO approveProcessVO = new ApproveProcessVO();
approveProcessVO.setApproveType(7);
approveProcessVO.setApproveDeptId(loginUser.getCurrentDeptId());
- approveProcessVO.setApproveReason(req.getType() + ":" +sh);
+ approveProcessVO.setApproveReason(sh);//鍙戣揣缂栧彿
approveProcessVO.setApproveUserIds(req.getApproveUserIds());
approveProcessVO.setApproveUser(loginUser.getUserId());
approveProcessVO.setApproveTime(LocalDate.now().toString());
@@ -122,7 +122,14 @@
}
@GetMapping("/getDateil/{id}")
+ @Operation(summary = "閫氳繃id鏌ヨ璇︽儏")
public R getDateil(@PathVariable("id") Long id) {
return R.ok(shippingInfoService.getDetail(id));
}
+
+ @GetMapping("/getDateilByShippingNo")
+ @Operation(summary = "閫氳繃鍙戣揣鍗曞彿鏌ヨ璇︽儏")
+ public R getDateilByShippingNo(String shippingNo) {
+ return R.ok(shippingInfoService.getDateilByShippingNo(shippingNo));
+ }
}
diff --git a/src/main/java/com/ruoyi/sales/dto/ShippingApproveDto.java b/src/main/java/com/ruoyi/sales/dto/ShippingApproveDto.java
new file mode 100644
index 0000000..693016b
--- /dev/null
+++ b/src/main/java/com/ruoyi/sales/dto/ShippingApproveDto.java
@@ -0,0 +1,15 @@
+package com.ruoyi.sales.dto;
+
+import com.ruoyi.sales.pojo.ShippingInfo;
+import lombok.Data;
+
+import java.util.List;
+
+//鍙戣揣瀹℃壒鏌ョ湅璇︽儏
+@Data
+public class ShippingApproveDto {
+
+ private ShippingInfo shippingInfo;
+
+ private List<ShippingProductDetailDto> shippingProductDetailDtoList;
+}
diff --git a/src/main/java/com/ruoyi/sales/mapper/ShipmentApprovalMapper.java b/src/main/java/com/ruoyi/sales/mapper/ShipmentApprovalMapper.java
deleted file mode 100644
index c3bf397..0000000
--- a/src/main/java/com/ruoyi/sales/mapper/ShipmentApprovalMapper.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.ruoyi.sales.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.sales.pojo.ShipmentApproval;
-import com.ruoyi.sales.pojo.ShippingInfo;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-
-public interface ShipmentApprovalMapper extends BaseMapper<ShipmentApproval> {
- IPage<ShipmentApproval> listPage(Page page,@Param("req") ShipmentApproval req);
-
-}
diff --git a/src/main/java/com/ruoyi/sales/mapper/ShippingProductDetailMapper.java b/src/main/java/com/ruoyi/sales/mapper/ShippingProductDetailMapper.java
index f564ba1..a679e0e 100644
--- a/src/main/java/com/ruoyi/sales/mapper/ShippingProductDetailMapper.java
+++ b/src/main/java/com/ruoyi/sales/mapper/ShippingProductDetailMapper.java
@@ -4,6 +4,7 @@
import com.ruoyi.sales.dto.ShippingProductDetailDto;
import com.ruoyi.sales.pojo.ShippingProductDetail;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -19,4 +20,6 @@
public interface ShippingProductDetailMapper extends BaseMapper<ShippingProductDetail> {
List<ShippingProductDetailDto> getDetail(Long id);
+
+ List<ShippingProductDetailDto> getDateilByShippingNo(@Param("shippingNo") String shippingNo);
}
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
index c909871..fa528a9 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -257,5 +257,6 @@
private Boolean isProduction;
@TableField(exist = false)
+ @Schema(description = "寰呭彂璐ф暟閲�")
private BigDecimal noQuantity;
}
diff --git a/src/main/java/com/ruoyi/sales/pojo/ShipmentApproval.java b/src/main/java/com/ruoyi/sales/pojo/ShipmentApproval.java
deleted file mode 100644
index 6399728..0000000
--- a/src/main/java/com/ruoyi/sales/pojo/ShipmentApproval.java
+++ /dev/null
@@ -1,355 +0,0 @@
-package com.ruoyi.sales.pojo;
-
-import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.util.Date;
-import java.util.List;
-
-@Data
-@TableName("shipment_approval")
-public class ShipmentApproval {
- @TableId(type = IdType.AUTO)
- private Long id;
- @Schema(description = "鍙戣揣淇℃伅id")
- private Long shippingInfoId;
- @Schema(description = "閿�鍞彴璐d")
- private Long salesLedgerId;
- @Schema(description = "閿�鍞姤浠蜂骇鍝佽〃id")
- private Long salesLedgerProductId;
- @Schema(description = "鐢宠閮ㄩ棬id")
- private Long approveDeptId;
-
- @Schema(description = "鐢宠閮ㄩ棬鍚嶇О")
- @Excel(name = "鐢宠閮ㄩ棬")
- private String approveDeptName;
- @Schema(description = "瀹℃壒鐢ㄦ埛id")
- private Integer approveUserId;
- @Schema(description = "瀹℃壒鐢ㄦ埛鍚嶇О")
- @Excel(name = "瀹℃壒鐢ㄦ埛")
- private String approveUserNames;
-
- /**
- * 瀹℃壒鐘舵��
- */
- @Schema(description = "瀹℃壒鐘舵�侊細0鏈嚭搴�,1宸插嚭搴�,2寰呭鏍�,3瀹℃牳瀹屾垚,4瀹℃牳澶辫触")
- @Excel(name = "瀹℃壒鐘舵��", readConverterExp = "0=鏈嚭搴�,1=宸插嚭搴�,2=寰呭鏍�,3=瀹℃牳瀹屾垚,4=瀹℃牳澶辫触")
- private Integer approveStatus;
-
- @Schema(description = "鍒涘缓鏃堕棿")
- @TableField(fill = FieldFill.INSERT)
- private LocalDateTime createTime;
-
- @Schema(description = "淇敼鏃堕棿")
- @TableField(fill = FieldFill.INSERT_UPDATE)
- private LocalDateTime updateTime;
-
- @Schema(description = "鍒涘缓鐢ㄦ埛")
- @TableField(fill = FieldFill.INSERT)
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- private Integer createUser;
-
- @Schema(description = "淇敼鐢ㄦ埛")
- @TableField(fill = FieldFill.INSERT_UPDATE)
- private Integer updateUser;
-
- @Schema(description = "绉熸埛ID")
- @TableField(fill = FieldFill.INSERT)
- private Long tenantId;
-
- @JsonFormat(pattern = "yyyy-MM-dd")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- @Excel(name = "鍙戣揣鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
- @TableField(exist = false)
- private Date shippingDate;
-
- @Excel(name = "鍙戣揣杞︾墝鍙�")
- @TableField(exist = false)
- private String shippingCarNumber;
-
- /**
- * 棰勮鏁伴噺
- */
-
- @TableField(exist = false)
- private BigDecimal warnNum;
-
- /**
- * 浜у搧澶х被
- */
- @Excel(name = "浜у搧澶х被")
- @TableField(exist = false)
- private String productCategory;
-
- /**
- * 瑙勬牸鍨嬪彿
- */
- @Excel(name = "瑙勬牸鍨嬪彿")
- @TableField(exist = false)
- private String specificationModel;
-
- /**
- * 鍗曚綅
- */
- @Excel(name = "鍗曚綅")
- @TableField(exist = false)
- private String unit;
-
- /**
- * 鏁伴噺
- */
- @Excel(name = "鏁伴噺")
- @TableField(exist = false)
- private BigDecimal quantity;
- @Excel(name = "鏈�浣庡簱瀛樻暟閲�")
- @TableField(exist = false)
- private BigDecimal minStock;
- /**
- * 绋庣巼
- */
- @Excel(name = "绋庣巼")
- @TableField(exist = false)
- private BigDecimal taxRate;
-
- /**
- * 鍚◣鍗曚环
- */
- @Excel(name = "鍚◣鍗曚环")
- @TableField(exist = false)
- private BigDecimal taxInclusiveUnitPrice;
-
- /**
- * 鍚◣鎬讳环
- */
- @Excel(name = "鍚◣鎬讳环")
- @TableField(exist = false)
- private BigDecimal taxInclusiveTotalPrice;
-
- /**
- * 涓嶅惈绋庢�讳环
- */
- @Excel(name = "涓嶅惈绋庢�讳环")
- @TableField(exist = false)
- private BigDecimal taxExclusiveTotalPrice;
-
- /**
- * 鍙戠エ绫诲瀷
- */
-
- @TableField(exist = false)
- private String invoiceType;
-
- /**
- * 鍙拌处绫诲瀷 1.閿�鍞� 2锛岄噰璐�
- */
- @TableField(exist = false)
- private Integer type;
-
- /**
- * 鏈鏉ョエ鏁�
- */
- @TableField(exist = false)
- private BigDecimal ticketsNum;
-
- /**
- * 鏈鏉ョエ閲戦(鍏�)
- */
- @TableField(exist = false)
- private BigDecimal ticketsAmount;
-
- /**
- * 鏈潵绁ㄦ暟
- */
- @TableField(exist = false)
- private BigDecimal futureTickets;
-
- /**
- * 鏈潵绁ㄩ噾棰�(鍏�)
- */
- @TableField(exist = false)
- private BigDecimal futureTicketsAmount;
-
- @Schema(description = "寮�绁ㄦ暟")
- @TableField(exist = false)
- private BigDecimal invoiceNum;
-
- @Schema(description = "鏈紑绁ㄦ暟")
- @TableField(exist = false)
- private BigDecimal noInvoiceNum;
-
- @Schema(description = "寮�绁ㄩ噾棰�")
- @TableField(exist = false)
- private BigDecimal invoiceAmount;
-
- @Schema(description = "鏈紑绁ㄩ噾棰�")
- @TableField(exist = false)
- private BigDecimal noInvoiceAmount;
-
- @Schema(description = "鏈寮�绁ㄦ暟")
- @TableField(exist = false)
- private BigDecimal currentInvoiceNum;
-
- @TableField(exist = false)
- @Schema(description = "鏈寮�绁ㄩ噾棰�")
- private BigDecimal currentInvoiceAmount;
-
- /**
- * 浜у搧id
- */
- @TableField(exist = false)
- private Long productId;
-
- /**
- * 浜у搧瑙勬牸id
- */
- @TableField(exist = false)
- private Long productModelId;
-
- @Schema(description = "鍒濆鏈紑绁ㄦ暟")
- @TableField(exist = false)
- private BigDecimal originalNoInvoiceNum;
-
- @Schema(description = "涓存椂鏈紑绁ㄦ暟")
- @TableField(exist = false)
- private BigDecimal tempNoInvoiceNum;
-
- @Schema(description = "涓存椂鏈紑绁ㄩ噾棰�")
- @TableField(exist = false)
- private BigDecimal tempnoInvoiceAmount;
-
- @Schema(description = "涓存椂鏈潵绁ㄦ暟")
- @TableField(exist = false)
- private BigDecimal tempFutureTickets;
-
- @Schema(description = "涓存椂鏈潵绁ㄩ噾棰�")
- @TableField(exist = false)
- private BigDecimal tempFutureTicketsAmount;
-
- @Schema(description = "鐧昏浜�")
- @TableField(exist = false)
- private String register;
-
- @Schema(description = "鐧昏鏃ユ湡")
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @Excel(name = "鐧昏鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
- @TableField(exist = false)
- private LocalDateTime registerDate;
- /**
- * 閿�鍞悎鍚屽彿
- */
- @Excel(name = "閿�鍞悎鍚屽彿")
- @TableField(exist = false)
- private String salesContractNo;
-
- /**
- * 瀹㈡埛鍚堝悓鍙�
- */
- @Excel(name = "瀹㈡埛鍚堝悓鍙�")
- @TableField(exist = false)
- private String customerContractNo;
-
-
- /**
- * 椤圭洰鍚嶇О
- */
- @Excel(name = "椤圭洰鍚嶇О")
- @TableField(exist = false)
- private String projectName;
-
- /**
- * 褰曞叆鏃ユ湡
- */
- @JsonFormat(pattern = "yyyy-MM-dd")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- @TableField(exist = false)
- private Date entryDate;
-
- /**
- * 涓氬姟鍛�
- */
- @Excel(name = "涓氬姟鍛�")
- @TableField(exist = false)
- private String salesman;
-
- @TableField(exist = false)
- private Long customerId;
-
- /**
- * 瀹㈡埛鍚嶇О
- */
- @Excel(name = "瀹㈡埛鍚嶇О")
- @TableField(exist = false)
- private String customerName;
-
- /**
- * 褰曞叆浜�
- */
- @TableField(exist = false)
- private String entryPerson;
-
- @TableField(exist = false)
- @Schema(description = "褰曞叆浜�")
- @Excel(name = "褰曞叆浜�")
- private String entryPersonName;
-
- /**
- * 澶囨敞
- */
- @Excel(name = "澶囨敞")
- @TableField(exist = false)
- private String remarks;
-
- /**
- * 闄勪欢鏉愭枡锛屽瓨鍌ㄦ枃浠跺悕绛夌浉鍏充俊鎭�
- */
- @TableField(exist = false)
- private String attachmentMaterials;
-
-
- /**
- * 鍚堝悓閲戦锛堜骇鍝佸惈绋庢�讳环锛�
- */
- @Excel(name = "鍚堝悓閲戦")
- @TableField(exist = false)
- private BigDecimal contractAmount;
-
- @TableField(exist = false)
- @Schema(description = "鏈紑绁ㄩ噾棰�(鍏�)")
- @Excel(name = "鏈紑绁ㄩ噾棰�")
- private BigDecimal noInvoiceAmountTotal = BigDecimal.ZERO;
-
- @Schema(description = "绛捐鏃ユ湡")
- @TableField(exist = false)
- private LocalDate executionDate;
-
- @TableField(exist = false)
- @Schema(description = "宸插紑绁ㄩ噾棰�(鍏�)")
- @Excel(name = "宸插紑绁ㄩ噾棰�")
- private BigDecimal invoiceTotal = BigDecimal.ZERO;
-
- @TableField(exist = false)
- @Schema(description = "鍥炴閲戦")
- private BigDecimal receiptPaymentAmountTotal = BigDecimal.ZERO;
-
- @TableField(exist = false)
- @Schema(description = "寰呭洖娆鹃噾棰�")
- private BigDecimal noReceiptAmount = BigDecimal.ZERO;
-
- @Schema(description = "浠樻鏂瑰紡")
- @TableField(exist = false)
- private String paymentMethod;
-
- @TableField(exist = false)
- @Schema(description = "鐢熶骇鐘舵��")
- private String productionStatus = "鏈紑濮�";
-
- @TableField(fill = FieldFill.INSERT)
- private Long deptId;
-}
diff --git a/src/main/java/com/ruoyi/sales/service/ShipmentApprovalService.java b/src/main/java/com/ruoyi/sales/service/ShipmentApprovalService.java
deleted file mode 100644
index 6af2c00..0000000
--- a/src/main/java/com/ruoyi/sales/service/ShipmentApprovalService.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.ruoyi.sales.service;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.sales.pojo.ShipmentApproval;
-import com.ruoyi.sales.pojo.ShippingInfo;
-
-
-public interface ShipmentApprovalService extends IService<ShipmentApproval>{
- IPage<ShipmentApproval> listPage(Page page, ShipmentApproval req);
-
-}
diff --git a/src/main/java/com/ruoyi/sales/service/ShippingInfoService.java b/src/main/java/com/ruoyi/sales/service/ShippingInfoService.java
index c3e8a0c..69e8245 100644
--- a/src/main/java/com/ruoyi/sales/service/ShippingInfoService.java
+++ b/src/main/java/com/ruoyi/sales/service/ShippingInfoService.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.sales.dto.SalesLedgerProductDto;
+import com.ruoyi.sales.dto.ShippingApproveDto;
import com.ruoyi.sales.dto.ShippingInfoDto;
import com.ruoyi.sales.dto.ShippingProductDetailDto;
import com.ruoyi.sales.pojo.ShippingInfo;
@@ -28,4 +29,6 @@
boolean add(ShippingInfoDto req);
List<ShippingProductDetailDto> getDetail(Long id);
+
+ ShippingApproveDto getDateilByShippingNo(String shippingNo);
}
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
index 37e06bb..8ce023b 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -101,9 +101,6 @@
@Override
public List<SalesLedgerProduct> selectSalesLedgerProductList(SalesLedgerProduct salesLedgerProduct) {
-// LambdaQueryWrapper<SalesLedgerProduct> queryWrapper = new LambdaQueryWrapper<>();
-// queryWrapper.eq(SalesLedgerProduct::getSalesLedgerId, salesLedgerProduct.getSalesLedgerId())
-// .eq(SalesLedgerProduct::getType, salesLedgerProduct.getType());
List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper.selectSalesLedgerProductList(salesLedgerProduct);
if(!CollectionUtils.isEmpty(salesLedgerProducts)){
salesLedgerProducts.forEach(item -> {
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java
index 1ec6a8d..f06cad0 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java
@@ -61,6 +61,8 @@
public boolean add(SalesQuotationDto salesQuotationDto) {
LoginUser loginUser = SecurityUtils.getLoginUser();
SalesQuotation salesQuotation = new SalesQuotation();
+ BeanUtils.copyProperties(salesQuotationDto, salesQuotation);
+ salesQuotation.setId(null);
Customer customer = customerMapper.selectById(Long.valueOf(salesQuotationDto.getCustomerId()));
if (ObjectUtils.isNotEmpty(customer)) {
salesQuotation.setCustomer(customer.getCustomerName());
diff --git a/src/main/java/com/ruoyi/sales/service/impl/ShipmentApprovalServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/ShipmentApprovalServiceImpl.java
deleted file mode 100644
index 9c358e7..0000000
--- a/src/main/java/com/ruoyi/sales/service/impl/ShipmentApprovalServiceImpl.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.ruoyi.sales.service.impl;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.sales.mapper.ShipmentApprovalMapper;
-import com.ruoyi.sales.pojo.ShipmentApproval;
-import com.ruoyi.sales.service.ShipmentApprovalService;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-/**
- * @author :yys
- * @date : 2025/10/22 9:33
- */
-@Service
-@Slf4j
-@RequiredArgsConstructor
-public class ShipmentApprovalServiceImpl extends ServiceImpl<ShipmentApprovalMapper, ShipmentApproval> implements ShipmentApprovalService {
-
- private final ShipmentApprovalMapper shipmentApprovalMapper;
-
- @Override
- public IPage<ShipmentApproval> listPage(Page page, ShipmentApproval req) {
- IPage<ShipmentApproval> listPage = shipmentApprovalMapper.listPage(page, req);
- return listPage;
- }
-}
diff --git a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
index 545ac7d..ba17fe9 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
@@ -13,6 +13,7 @@
import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
import com.ruoyi.procurementrecord.utils.StockUtils;
import com.ruoyi.sales.dto.SalesLedgerProductDto;
+import com.ruoyi.sales.dto.ShippingApproveDto;
import com.ruoyi.sales.dto.ShippingInfoDto;
import com.ruoyi.sales.dto.ShippingProductDetailDto;
import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
@@ -68,7 +69,6 @@
}
//鎵e噺搴撳瓨
if(!"宸插彂璐�".equals(byId.getStatus())){
-// SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(byId.getSalesLedgerProductId());
List<ShippingProductDetail> shippingProductDetails = shippingProductDetailMapper.selectList(new LambdaQueryWrapper<ShippingProductDetail>().eq(ShippingProductDetail::getShippingInfoId, req.getId()));
if (CollectionUtils.isEmpty(shippingProductDetails)) {
throw new RuntimeException("鍙戣揣淇℃伅涓嶅瓨鍦�");
@@ -141,4 +141,15 @@
public List<ShippingProductDetailDto> getDetail(Long id) {
return shippingProductDetailMapper.getDetail(id);
}
+
+ @Override
+ public ShippingApproveDto getDateilByShippingNo(String shippingNo) {
+ ShippingApproveDto shippingApproveDto = new ShippingApproveDto();
+ ShippingInfo shippingInfo = new ShippingInfo();
+ shippingInfo.setShippingNo(shippingNo);
+ shippingApproveDto.setShippingInfo(shippingInfoMapper.listPage(new Page(1, -1),shippingInfo).getRecords().get(0));
+ List<ShippingProductDetailDto> dateilByShippingNo = shippingProductDetailMapper.getDateilByShippingNo(shippingNo);
+ shippingApproveDto.setShippingProductDetailDtoList(dateilByShippingNo);
+ return shippingApproveDto;
+ }
}
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/sales/ShipmentApprovalMapper.xml b/src/main/resources/mapper/sales/ShipmentApprovalMapper.xml
deleted file mode 100644
index 68cd664..0000000
--- a/src/main/resources/mapper/sales/ShipmentApprovalMapper.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.ruoyi.sales.mapper.ShipmentApprovalMapper">
-
- <select id="listPage" resultType="com.ruoyi.sales.pojo.ShipmentApproval">
- SELECT *,
- si.shipping_car_number,
- T2.nick_name AS entry_person_name
- FROM shipment_approval sa
- LEFT JOIN shipping_info si ON sa.shipping_info_id = si.id
- LEFT JOIN sales_ledger sl ON sa.sales_ledger_id = sl.id
- LEFT JOIN sales_ledger_product slp ON sa.sales_ledger_product_id = slp.id and slp.type = 1
- LEFT JOIN sys_user T2 ON sl.entry_person = T2.user_id
- <where>
- 1=1
- <if test="req.approveStatus != null and req.approveStatus != '' ">
- AND sa.approve_status = #{req.approveStatus}
- </if>
- <if test="req.salesContractNo != null and req.salesContractNo != '' ">
- AND sl.sales_contract_no LIKE CONCAT('%',#{req.salesContractNo},'%')
- </if>
- </where>
- </select>
-</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/sales/ShippingProductDetailMapper.xml b/src/main/resources/mapper/sales/ShippingProductDetailMapper.xml
index 464af10..15a6168 100644
--- a/src/main/resources/mapper/sales/ShippingProductDetailMapper.xml
+++ b/src/main/resources/mapper/sales/ShippingProductDetailMapper.xml
@@ -18,5 +18,14 @@
left join product p on p.id = pm.product_id
where spd.shipping_info_id = #{id}
</select>
+ <select id="getDateilByShippingNo" resultType="com.ruoyi.sales.dto.ShippingProductDetailDto">
+ select si.batch_no, pm.model as specification_model, p.product_name, spd.quantity as delivery_quantity
+ from shipping_product_detail spd
+ left join shipping_info sp on sp.id = spd.shipping_info_id
+ left join stock_inventory si on si.id = spd.stock_inventory_id
+ left join product_model pm on pm.id = si.product_model_id
+ left join product p on p.id = pm.product_id
+ where sp.shipping_no = #{shippingNo}
+ </select>
</mapper>
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