From 6c8082f57b73967a34396f1eccff2943460e2004 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期四, 15 一月 2026 17:04:32 +0800
Subject: [PATCH] feat(product): 生产出库和入库接口
---
src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java | 4
src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordOutController.java | 7 +
src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordOutMapper.java | 4
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java | 41 +++++++
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java | 6 +
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java | 1
src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml | 166 +++++++++++++++++++-------------
src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java | 8 +
src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java | 2
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java | 7 +
src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java | 2
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 19 +++
src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordOutService.java | 2
src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml | 23 ++++
14 files changed, 215 insertions(+), 77 deletions(-)
diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
index 4a15307..5234b3f 100644
--- a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
+++ b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
@@ -133,6 +133,14 @@
return AjaxResult.success(result);
}
+ @GetMapping("/listPageByProductProduction")
+ @Log(title = "鐢熶骇鍏ュ簱-鍏ュ簱绠$悊-鐢熶骇鍏ュ簱鏌ヨ", businessType = BusinessType.OTHER)
+ @ApiOperation(value = "鍏ュ簱鏌ヨ")
+ public AjaxResult listPageByProductProduction(Page page, ProcurementPageDto procurementDto) {
+ IPage<ProcurementPageDto> result = procurementRecordService.listPageByProductProduction(page, procurementDto);
+ return AjaxResult.success(result);
+ }
+
@GetMapping("/listPageByCustom")
@Log(title = "鑷畾涔夊叆搴�-鍏ュ簱绠$悊-鍏ュ簱鏌ヨ", businessType = BusinessType.OTHER)
@ApiOperation(value = "鍏ュ簱鏌ヨ")
diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordOutController.java b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordOutController.java
index 5245149..1fb594b 100644
--- a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordOutController.java
+++ b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordOutController.java
@@ -52,6 +52,13 @@
return AjaxResult.success(result);
}
+ @GetMapping("/listPageBySemiProduct")
+ @Log(title = "鐢熶骇鍑哄簱-鍑哄簱鍙拌处-鍑哄簱鏌ヨ", businessType = BusinessType.OTHER)
+ public AjaxResult listPageBySemiProduct(Page page, ProcurementRecordOutPageDto procurementDto) {
+ IPage<ProcurementRecordOutPageDto> result = procurementRecordOutService.listPageBySemiProduct(page, procurementDto);
+ return AjaxResult.success(result);
+ }
+
@GetMapping("/listPageByCustom")
@Log(title = "鑷畾涔夊嚭搴�-鍑哄簱鍙拌处-鍑哄簱鏌ヨ", businessType = BusinessType.OTHER)
public AjaxResult listPageByCustom(Page page, ProcurementRecordOutPageDto procurementDto) {
diff --git a/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java
index 19e76e6..b41cf62 100644
--- a/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java
+++ b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java
@@ -44,4 +44,6 @@
IPage<ProcurementPageDtoCopy> listPagePRS(Page page, @Param("req") ProcurementPageDto procurementDto);
BigDecimal getSumQuantity(@Param("productModelId") Long productModelId);
+
+ IPage<ProcurementPageDto> listPageByProductProduction(Page page, @Param("req") ProcurementPageDto procurementDto);
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordOutMapper.java b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordOutMapper.java
index bb24eb5..eebd7cc 100644
--- a/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordOutMapper.java
+++ b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordOutMapper.java
@@ -29,4 +29,8 @@
IPage<ProcurementRecordOutPageDto> listPageByCustom(Page page,@Param("req") ProcurementRecordOutPageDto procurementDto);
BigDecimal getSumQuantity(@Param("productModelId") Long productModelId);
+
+ ProcurementRecordOut selectCode(@Param("format") String format);
+
+ IPage<ProcurementRecordOutPageDto> listPageBySemiProduct(Page page,@Param("req") ProcurementRecordOutPageDto procurementDto);
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordOutService.java b/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordOutService.java
index a8fb7eb..31fc05e 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordOutService.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordOutService.java
@@ -27,4 +27,6 @@
IPage<ProcurementRecordOutPageDto> listPageByProduct(Page page, ProcurementRecordOutPageDto procurementDto);
IPage<ProcurementRecordOutPageDto> listPageByCustom(Page page, ProcurementRecordOutPageDto procurementDto);
+
+ IPage<ProcurementRecordOutPageDto> listPageBySemiProduct(Page page, ProcurementRecordOutPageDto procurementDto);
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java b/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java
index 9813441..4c3ffee 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java
@@ -61,4 +61,6 @@
InventoryInformationDto getReportList();
IPage<ProductModel> listPageProductionStock(Page page);
+
+ IPage<ProcurementPageDto> listPageByProductProduction(Page page, ProcurementPageDto procurementDto);
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java
index b6e215c..1255afd 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java
@@ -69,7 +69,7 @@
Long aLong = procurementRecordOutMapper.selectCount(procurementRecordLambdaQueryWrapper);
ProcurementRecordOut.ProcurementRecordOutBuilder procurementRecordOut = ProcurementRecordOut.builder()
.procurementRecordStorageId(procurementRecordOutAdd.getId())
- .code("LS" + dateFormat.format(now) + String.format("%03d", aLong1 + 1))
+ .code("SC" + dateFormat.format(now) + String.format("%03d", aLong1 + 1))
.salesLedgerProductId(procurementRecordOutAdd.getSalesLedgerProductId())
.inboundBatches(aLong.equals(0L) ? "绗�1鎵规" : "绗�"+ (aLong + 1) + "鎵规")
.inboundNum(new BigDecimal(procurementRecordOutAdd.getQuantity()))
@@ -119,4 +119,9 @@
public IPage<ProcurementRecordOutPageDto> listPageByCustom(Page page, ProcurementRecordOutPageDto procurementDto) {
return procurementRecordOutMapper.listPageByCustom(page, procurementDto);
}
+
+ @Override
+ public IPage<ProcurementRecordOutPageDto> listPageBySemiProduct(Page page, ProcurementRecordOutPageDto procurementDto) {
+ return procurementRecordOutMapper.listPageBySemiProduct(page, procurementDto);
+ }
}
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
index a81c83e..4bfa4b8 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
@@ -889,4 +889,10 @@
return iPage;
}
+ @Override
+ public IPage<ProcurementPageDto> listPageByProductProduction(Page page, ProcurementPageDto procurementDto) {
+ IPage<ProcurementPageDto> procurementPageDtoIPage = procurementRecordMapper.listPageByProductProduction(page, procurementDto);
+ return procurementPageDtoIPage;
+ }
+
}
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 482755b..9722fb3 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -13,6 +13,8 @@
import com.ruoyi.basic.pojo.ProductModel;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
+import com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper;
+import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut;
import com.ruoyi.procurementrecord.utils.StockUtils;
import com.ruoyi.production.controller.ProductWorkOrderController;
import com.ruoyi.production.dto.ProductStructureDto;
@@ -27,6 +29,7 @@
import com.ruoyi.quality.pojo.QualityInspect;
import com.ruoyi.quality.pojo.QualityInspectParam;
import com.ruoyi.quality.pojo.QualityTestStandard;
+import io.swagger.models.auth.In;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -34,6 +37,8 @@
import java.math.BigDecimal;
import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.List;
@@ -43,6 +48,7 @@
@AllArgsConstructor
public class ProductionProductMainServiceImpl extends ServiceImpl<ProductionProductMainMapper, ProductionProductMain> implements ProductionProductMainService {
+ private final ProcurementRecordOutMapper procurementRecordOutMapper;
private ProductionProductMainMapper productionProductMainMapper;
private ProductWorkOrderController productWorkOrderController;
@@ -93,7 +99,6 @@
SysUser user = SecurityUtils.getLoginUser().getUser();
-
// 鏂板閫昏緫
ProductionProductMain productionProductMain = new ProductionProductMain();
ProductProcessRouteItem productProcessRouteItem = productProcessRouteItemMapper.selectById(dto.getProductProcessRouteItemId());
@@ -137,7 +142,6 @@
productionProductMain.setProductProcessRouteItemId(dto.getProductProcessRouteItemId());
productionProductMain.setWorkOrderId(dto.getWorkOrderId());
productionProductMain.setStatus(0);
-
// 娣诲姞鎶ュ伐涓昏〃
int insert = productionProductMainMapper.insert(productionProductMain);
@@ -188,16 +192,40 @@
List<ProductStructureDto> productStructureDtos = productStructureMapper.listByproductModelId(productModel.getId());
for (ProductStructureDto productStructureDto : productStructureDtos) {
ProductModel productModel1 = productModelMapper.selectById(productStructureDto.getProductModelId());
-
+ Product product = productMapper.selectById(productModel1.getProductId());
BigDecimal stockQuantity = stockUtils.getStockQuantity(productModel1.getId()).get("stockQuantity");
if (!(stockQuantity.compareTo(BigDecimal.ZERO) > 0)) {
- throw new RuntimeException("搴撳瓨涓嶈冻");
+ throw new RuntimeException(product.getProductName() + "搴撳瓨涓�0");
+ }
+ if (stockQuantity.compareTo(productStructureDto.getUnitQuantity().multiply(dto.getQuantity())) < 0) {
+ throw new RuntimeException(product.getProductName() + "搴撳瓨涓嶈冻");
}
ProductionProductInput productionProductInput = new ProductionProductInput();
productionProductInput.setProductModelId(productStructureDto.getProductModelId());
productionProductInput.setQuantity(productStructureDto.getUnitQuantity().multiply(dto.getQuantity()));
productionProductInput.setProductMainId(productionProductMain.getId());
productionProductInputMapper.insert(productionProductInput);
+
+
+ DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyyMMdd");
+ LocalDate now = LocalDate.now();
+ ProcurementRecordOut procurementRecordOut1 = procurementRecordOutMapper.selectCode(dateFormat.format(now));
+ Long aLong = procurementRecordOut1 == null ? 1L : Long.valueOf(procurementRecordOut1.getCode().split("LS"+dateFormat.format(now))[1]);
+ //娣诲姞鍑哄簱澶勭悊
+ ProcurementRecordOut.ProcurementRecordOutBuilder procurementRecordOut = ProcurementRecordOut.builder()
+ .procurementRecordStorageId(0)
+ .code("LS" + dateFormat.format(now) + String.format("%03d", aLong + 1))
+ .salesLedgerProductId(0)
+ .inboundBatches(aLong.equals(0L) ? "绗�1鎵规" : "绗�"+ (aLong + 1) + "鎵规")
+ .inboundNum(productionProductInput.getQuantity())
+ .type(4)
+ .createTime(LocalDateTime.now())
+ .createUser(user.getUserId())
+ .createBy(user.getNickName())
+ .updateUser(user.getUserId())
+ .updateTime(LocalDateTime.now())
+ .productModelId(productModel1.getId());
+ procurementRecordOutMapper.insert(procurementRecordOut.build());
}
}
@@ -210,6 +238,11 @@
// 鑾峰彇鐢熶骇璁㈠崟
ProductWorkOrder productWorkOrder = productWorkOrderMapper.selectById(dto.getWorkOrderId());
+ List<ProductionProductMain> productionProductMains = productionProductMainMapper.selectList(new QueryWrapper<ProductionProductMain>().lambda().eq(ProductionProductMain::getWorkOrderId, dto.getWorkOrderId()));
+
+ if (productionProductMains.isEmpty()) {
+ productWorkOrder.setActualStartTime(LocalDate.now());
+ }
ProductOrder productOrder = productOrderMapper.selectById(productWorkOrder.getProductOrderId());
if (productOrder == null) {
throw new RuntimeException("鐢熶骇璁㈠崟涓嶅瓨鍦�");
diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
index dec920d..f39a456 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -146,7 +146,7 @@
procurementRecordOutAdd.setDetails(details);
ProcurementRecordStorage.ProcurementRecordStorageBuilder procurementRecordBuilder = ProcurementRecordStorage.builder()
- .salesLedgerProductId(details1.getId())
+ .salesLedgerProductId(0)
.inboundBatches( "鐢熶骇鍗婃垚鍝佸叆搴�")
.inboundNum(details1.getInboundQuantity())
.type(2)
@@ -173,7 +173,7 @@
List<Details> details = new ArrayList<>();
Details details1 = new Details();
details1.setInboundQuantity(qualityInspect.getQuantity());
- details1.setId(Math.toIntExact(salesLedgerProduct.getProductId()));
+ details1.setId(Math.toIntExact(salesLedgerProduct.getId()));
details1.setUnitPrice(salesLedgerProduct.getTaxInclusiveUnitPrice());
details1.setTotalPrice(salesLedgerProduct.getTaxInclusiveTotalPrice());
details1.setProductModelId(salesLedgerProduct.getProductModelId());
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 503b3c8..1d3ff74 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -229,6 +229,7 @@
ProductWorkOrder productWorkOrder = new ProductWorkOrder();
productWorkOrder.setProductProcessRouteItemId(productProcessRouteItem.getId());
productWorkOrder.setProductOrderId(productOrder.getId());
+ productWorkOrder.setQuantity(salesLedgerProduct.getQuantity());
productWorkOrder.setPlanQuantity(salesLedgerProduct.getQuantity());
productWorkOrder.setWorkOrderNo(workOrderNoStr);
productWorkOrder.setStatus(1);
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
index 66fabe0..223c313 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -12,13 +12,16 @@
import com.ruoyi.account.pojo.AccountIncome;
import com.ruoyi.account.service.AccountIncomeService;
import com.ruoyi.basic.mapper.CustomerMapper;
+import com.ruoyi.basic.mapper.ProductModelMapper;
import com.ruoyi.basic.pojo.Customer;
+import com.ruoyi.basic.pojo.ProductModel;
import com.ruoyi.common.enums.FileNameType;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.other.mapper.TempFileMapper;
import com.ruoyi.other.pojo.TempFile;
+import com.ruoyi.production.dto.ProductStructureDto;
import com.ruoyi.production.mapper.*;
import com.ruoyi.production.pojo.*;
import com.ruoyi.project.system.domain.SysDept;
@@ -122,6 +125,10 @@
private static final long LOCK_EXPIRE_TIME = 30; // 閿佽嚜鍔ㄨ繃鏈熸椂闂达紙绉掞級
private final RedisTemplate<String, String> redisTemplate;
+ @Autowired
+ private ProductModelMapper productModelMapper;
+ @Autowired
+ private ProductStructureMapper productStructureMapper;
@Override
public List<SalesLedger> selectSalesLedgerList(SalesLedgerDto salesLedgerDto) {
@@ -689,6 +696,7 @@
productOrderMapper.insert(productOrder);
ProcessRoute processRoute = processRouteMapper.selectOne(new QueryWrapper<ProcessRoute>().lambda().eq(ProcessRoute::getProductModelId, salesLedgerProduct.getProductModelId()));
+ List<ProductStructureDto> productStructureDtos = productStructureMapper.listByproductModelId(salesLedgerProduct.getProductModelId());
if (processRoute != null) {
List<ProcessRouteItem> processRouteItems = processRouteItemMapper.selectList(new QueryWrapper<ProcessRouteItem>().lambda().eq(ProcessRouteItem::getRouteId, processRoute.getId()));
// 鐢熸垚褰撳墠鏃ユ湡鐨勫墠缂�锛氬勾鏈堟棩
@@ -725,9 +733,18 @@
// 鐢熸垚瀹屾暣鐨勫伐鍗曞彿
String workOrderNoStr = String.format("%s%03d", datePrefix, sequenceNumber);
ProductWorkOrder productWorkOrder = new ProductWorkOrder();
+ productStructureDtos.stream().forEach(productStructureDto -> {
+ if (productStructureDto.getProductModelId().equals(productProcessRouteItem.getProductModelId())){
+ productWorkOrder.setQuantity(productStructureDto.getUnitQuantity().multiply(salesLedgerProduct.getQuantity()));
+ productWorkOrder.setPlanQuantity(productWorkOrder.getQuantity());
+ }
+ });
+ if (Objects.equals(productProcessRouteItem.getProductModelId(), salesLedgerProduct.getProductModelId())) {
+ productWorkOrder.setQuantity(salesLedgerProduct.getQuantity());
+ productWorkOrder.setPlanQuantity(salesLedgerProduct.getQuantity());
+ }
productWorkOrder.setProductProcessRouteItemId(productProcessRouteItem.getId());
productWorkOrder.setProductOrderId(productOrder.getId());
- productWorkOrder.setPlanQuantity(salesLedgerProduct.getQuantity());
productWorkOrder.setWorkOrderNo(workOrderNoStr);
productWorkOrder.setStatus(1);
productWorkOrderMapper.insert(productWorkOrder);
diff --git a/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml b/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
index 6384411..8861c9c 100644
--- a/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
+++ b/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
@@ -261,7 +261,7 @@
left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id and t2.type = 1
left join sales_ledger t3 on t3.id = t2.sales_ledger_id
<where>
- t1.type = 2
+ t1.type = 2 and t1.sales_ledger_product_id != 0
<if test="req.customerName != null and req.customerName != ''">
and t3.customer_name like concat('%',#{req.customerName},'%')
</if>
@@ -358,4 +358,25 @@
from procurement_record_storage
where product_model_id = #{productModelId}
</select>
+ <select id="listPageByProductProduction" resultType="com.ruoyi.procurementrecord.dto.ProcurementPageDto">
+ select
+ t1.*,
+ t2.model as product_category ,
+ t2.unit,
+ t3.product_name
+ from procurement_record_storage t1
+ left join product_model t2 on t1.product_model_id = t2.id
+ left join product t3 on t2.product_id = t3.id
+ <where>
+ t1.type = 2 and t1.sales_ledger_product_id = 0
+ <if test="req.productCategory != null and req.productCategory != ''">
+ and t3.product_name like concat('%',#{req.productCategory},'%')
+ </if>
+
+ <if test="req.timeStr != null and req.timeStr != ''">
+ and t1.create_time like concat('%',#{req.timeStr},'%')
+ </if>
+ </where>
+ order by t1.create_time desc
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml b/src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml
index 0fc12a9..adc64dd 100644
--- a/src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml
+++ b/src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml
@@ -19,85 +19,82 @@
t1.create_by,
t2.warn_num,
t4.unit_price,
- t4.unit_price * t1.inbound_num as totalPrice
- from procurement_record_out t1
+ t4.unit_price * t1.inbound_num as totalPrice
+ from procurement_record_out t1
left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id and t2.type = 2
left join purchase_ledger t3 on t3.id = t2.sales_ledger_id
left join procurement_record_storage t4 on t4.id = t1.procurement_record_storage_id
<where>
and t1.type = 1
<if test="req.supplierName != null and req.supplierName != ''">
- and t3.supplier_name like concat('%',#{req.supplierName},'%')
+ and t3.supplier_name like concat('%',#{req.supplierName},'%')
</if>
<if test="req.productCategory != null and req.productCategory != ''">
- and t2.product_category like concat('%',#{req.productCategory},'%')
+ and t2.product_category like concat('%',#{req.productCategory},'%')
</if>
<if test="req.timeStr != null and req.timeStr != ''">
- and t1.create_time like concat('%',#{req.timeStr},'%')
+ and t1.create_time like concat('%',#{req.timeStr},'%')
</if>
</where>
order by t1.create_time desc
</select>
<select id="list" resultType="com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto">
- select
- t3.supplier_name,
- t2.product_category,
- t1.id,
- t2.specification_model,
- t2.unit,
- t2.tax_rate,
- t2.tax_inclusive_unit_price,
- t2.tax_inclusive_total_price,
- t2.tax_exclusive_total_price,
- t1.inbound_num,
- t1.create_time,
- t1.create_time as time,
- t1.create_by
- from procurement_record_out t1
- left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id
- left join purchase_ledger t3 on t3.id = t2.sales_ledger_id
- where t1.type = 1
+ select t3.supplier_name,
+ t2.product_category,
+ t1.id,
+ t2.specification_model,
+ t2.unit,
+ t2.tax_rate,
+ t2.tax_inclusive_unit_price,
+ t2.tax_inclusive_total_price,
+ t2.tax_exclusive_total_price,
+ t1.inbound_num,
+ t1.create_time,
+ t1.create_time as time,
+ t1.create_by
+ from procurement_record_out t1
+ left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id
+ left join purchase_ledger t3 on t3.id = t2.sales_ledger_id
+ where t1.type = 1
</select>
<select id="listOne" resultType="com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto">
- select
- t3.customer_contract_no,
- t3.sales_contract_no,
- t3.customer_name,
- t2.product_category,
- t1.id,
- t2.specification_model,
- t2.unit,
- t2.tax_rate,
- t2.tax_inclusive_unit_price,
- t2.tax_inclusive_total_price,
- t2.tax_exclusive_total_price,
- t1.inbound_num,
- t1.create_time,
- t1.create_time as time,
- t1.create_by
- from procurement_record_out t1
- left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id
- left join sales_ledger t3 on t3.id = t2.sales_ledger_id
+ select t3.customer_contract_no,
+ t3.sales_contract_no,
+ t3.customer_name,
+ t2.product_category,
+ t1.id,
+ t2.specification_model,
+ t2.unit,
+ t2.tax_rate,
+ t2.tax_inclusive_unit_price,
+ t2.tax_inclusive_total_price,
+ t2.tax_exclusive_total_price,
+ t1.inbound_num,
+ t1.create_time,
+ t1.create_time as time,
+ t1.create_by
+ from procurement_record_out t1
+ left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id
+ left join sales_ledger t3 on t3.id = t2.sales_ledger_id
where t1.type = 2
</select>
<select id="listTwo" resultType="com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto">
- select
- t1.supplier_name,
- t1.product_category,
- t1.id,
- t1.specification_model,
- t1.unit,
- t1.tax_rate,
- t1.tax_inclusive_unit_price,
- t1.tax_inclusive_total_price,
- t1.tax_exclusive_total_price,
- t1.inbound_num,
- t1.create_time,
- t1.create_time as time,
- t1.create_by
- from procurement_record_out t1
+ select t1.supplier_name,
+ t1.product_category,
+ t1.id,
+ t1.specification_model,
+ t1.unit,
+ t1.tax_rate,
+ t1.tax_inclusive_unit_price,
+ t1.tax_inclusive_total_price,
+ t1.tax_exclusive_total_price,
+ t1.inbound_num,
+ t1.create_time,
+ t1.create_time as time,
+ t1.create_by
+ from procurement_record_out t1
where t1.type = 3
</select>
<select id="listPageByProduct" resultType="com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto">
@@ -118,21 +115,21 @@
t1.create_time,
t1.create_by,
t4.unit_price,
- t4.unit_price * t1.inbound_num as totalPrice
- from procurement_record_out t1
+ t4.unit_price * t1.inbound_num as totalPrice
+ from procurement_record_out t1
left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id and t2.type = 1
left join sales_ledger t3 on t3.id = t2.sales_ledger_id
left join procurement_record_storage t4 on t4.id = t1.procurement_record_storage_id
<where>
and t1.type = 2
<if test="req.customerName != null and req.customerName != ''">
- and t3.customer_name like concat('%',#{req.customerName},'%')
+ and t3.customer_name like concat('%',#{req.customerName},'%')
</if>
<if test="req.productCategory != null and req.productCategory != ''">
- and t2.product_category like concat('%',#{req.productCategory},'%')
+ and t2.product_category like concat('%',#{req.productCategory},'%')
</if>
<if test="req.timeStr != null and req.timeStr != ''">
- and t1.create_time like concat('%',#{req.timeStr},'%')
+ and t1.create_time like concat('%',#{req.timeStr},'%')
</if>
</where>
order by t1.create_time desc
@@ -153,18 +150,18 @@
t1.create_by,
t2.item_type,
t2.code
- from procurement_record_out t1
+ from procurement_record_out t1
left join custom_storage t2 on t2.id = t1.procurement_record_storage_id
<where>
t1.type = 3
<if test="req.supplierName != null and req.supplierName != ''">
- and t2.supplier_name like concat('%',#{req.supplierName},'%')
+ and t2.supplier_name like concat('%',#{req.supplierName},'%')
</if>
<if test="req.productCategory != null and req.productCategory != ''">
- and t2.product_category like concat('%',#{req.productCategory},'%')
+ and t2.product_category like concat('%',#{req.productCategory},'%')
</if>
<if test="req.timeStr != null and req.timeStr != ''">
- and t1.create_time like concat('%',#{req.timeStr},'%')
+ and t1.create_time like concat('%',#{req.timeStr},'%')
</if>
</where>
order by t1.create_time desc
@@ -173,7 +170,40 @@
<select id="getSumQuantity" resultType="BigDecimal">
select COALESCE(sum(inbound_num), 0)
from procurement_record_out
- where type = 1
- and product_model_id = #{productModelId}
+ where
+ product_model_id = #{productModelId}
</select>
+ <select id="selectCode" resultType="com.ruoyi.procurementrecord.pojo.ProcurementRecordOut">
+ select *
+ from procurement_record_out
+ where code like concat('%', #{format})
+ order by id desc
+ limit 1
+ </select>
+ <select id="listPageBySemiProduct" resultType="com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto">
+ select
+ t1.id,
+ t1.code,
+ t2.unit,
+ t1.inbound_num,
+ t1.create_time,
+ t1.create_by,
+ t2.model as specification_model,
+ t2.product_code,
+ t3.product_name as product_category
+ from procurement_record_out t1
+ left join product_model t2 on t2.id = t1.product_model_id
+ left join product t3 on t3.id = t2.product_id
+ <where>
+ and t1.type = 4
+ <if test="req.productCategory !=null and req.productCategory !=''">
+ t3.product_name like concat('%',#{req.productCategory},'%')
+ </if>
+ <if test="req.timeStr != null and req.timeStr != ''">
+ and t1.create_time like concat('%',#{req.timeStr},'%')
+ </if>
+ </where>
+ order by t1.create_time desc
+ </select>
+
</mapper>
\ No newline at end of file
--
Gitblit v1.9.3