From 3f3a1ed182e96214e66f6456ee692427bf04d454 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期五, 28 十一月 2025 11:10:23 +0800
Subject: [PATCH] yys 1.库存管理导出修改 2.来票登记分页查询修改
---
src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java | 61 ++++++++++++++++++++++++++++++
1 files changed, 60 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java
index bf35f8a..51172a5 100644
--- a/src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java
@@ -4,7 +4,14 @@
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.common.utils.SecurityUtils;
+import com.ruoyi.framework.security.LoginUser;
import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.procurementrecord.dto.Details;
+import com.ruoyi.procurementrecord.dto.ProcurementAddDto;
+import com.ruoyi.procurementrecord.dto.ProcurementRecordOutAdd;
+import com.ruoyi.procurementrecord.service.impl.ProcurementRecordOutServiceImpl;
+import com.ruoyi.procurementrecord.service.impl.ProcurementRecordServiceImpl;
import com.ruoyi.production.dto.ProductionReportDto;
import com.ruoyi.production.dto.SalesLedgerWorkDto;
import com.ruoyi.production.mapper.SalesLedgerProductionAccountingMapper;
@@ -15,14 +22,19 @@
import com.ruoyi.production.service.SalesLedgerWorkService;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
+import com.ruoyi.sales.mapper.LossMapper;
+import com.ruoyi.sales.pojo.Loss;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@@ -39,13 +51,46 @@
private final SysUserMapper sysUserMapper;
+ private final LossMapper lossMapper;
+
private final SalesLedgerProductionAccountingMapper salesLedgerProductionAccountingMapper;
@Override
public IPage<SalesLedgerWorkDto> listPage(Page page, SalesLedgerWorkDto salesLedgerWorkDto) {
IPage<SalesLedgerWorkDto> iPage = salesLedgerWorkMapper.listPage(page, salesLedgerWorkDto);
+ List<Loss> losses = lossMapper.selectList(null);
+ if(!CollectionUtils.isEmpty(losses)){
+ iPage.getRecords().forEach(item -> {
+ String[] split = item.getSpecificationModel().split("\\*");
+ if(split.length == 2 && isNumeric(split[1]) && isNumeric(split[0])){
+ // 璁$畻鎹熻�楋紙100000浠h〃 鎹熻�楃殑 100 鍜� 鍗曚綅杞崲鐨�1000锛�
+ BigDecimal divide = new BigDecimal(split[0])
+ .multiply(new BigDecimal(split[1]))
+ .multiply(item.getFinishedNum())
+ .multiply(losses.get(0).getRate())
+ .divide(new BigDecimal(100000), 2, RoundingMode.HALF_UP);
+ item.setLoss(divide.toString());
+ }
+
+ });
+ }
return iPage;
}
+
+ public static boolean isNumeric(String str) {
+ if (str == null || str.isEmpty()) {
+ return false;
+ }
+ // 閬嶅巻瀛楃涓茬殑姣忎釜瀛楃锛屾鏌ユ槸鍚︿负鏁板瓧
+ for (int i = 0; i < str.length(); i++) {
+ if (!Character.isDigit(str.charAt(i))) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private final ProcurementRecordServiceImpl procurementRecordService;
@Override
public int productionReport(ProductionReportDto productionReportDto) {
@@ -66,7 +111,7 @@
.salesLedgerWorkId(salesLedgerWork.getId())
.salesLedgerSchedulingId(salesLedgerWork.getSalesLedgerSchedulingId())
.salesLedgerId(salesLedgerWork.getSalesLedgerId())
- .salesLedgerProductId(salesLedgerWork.getSalesLedgerProductId())
+ .salesLedgerProductId((long)salesLedgerWork.getSalesLedgerProductId())
.schedulingUserId(sysUser.getUserId())
.schedulingUserName(sysUser.getNickName())
.finishedNum(productionReportDto.getFinishedNum())
@@ -74,6 +119,20 @@
.process(salesLedgerWork.getProcess())
.schedulingDate(LocalDate.parse(productionReportDto.getSchedulingDate(), DateTimeFormatter.ISO_LOCAL_DATE));
salesLedgerProductionAccountingMapper.insert(builder.build());
+ // 鐢熶骇鎶ュ伐鎴愬姛 -> 鍏ュ簱
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ ProcurementAddDto procurementRecordOutAdd = new ProcurementAddDto();
+ procurementRecordOutAdd.setType(2);
+ procurementRecordOutAdd.setTypeName("鐢熶骇鍏ュ簱");
+ procurementRecordOutAdd.setNickName(loginUser.getNickName());
+ List<Details> details = new ArrayList<>();
+ Details details1 = new Details();
+ details1.setInboundQuantity(productionReportDto.getFinishedNum());
+ details1.setId(Integer.parseInt(salesLedgerWork.getSalesLedgerProductId().toString()));
+ details.add(details1);
+ procurementRecordOutAdd.setDetails(details);
+ procurementRecordService.add(procurementRecordOutAdd);
+
return 0;
}
--
Gitblit v1.9.3