From cd2aafde048f46bd7123ec6cc773d7200172ee04 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 03 二月 2026 11:52:28 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New' into dev_New
---
src/main/java/com/ruoyi/production/pojo/ProductionProductInput.java | 1
src/main/java/com/ruoyi/production/pojo/ProductionProductOutput.java | 3
src/main/java/com/ruoyi/production/pojo/SalesLedgerProductionAccounting.java | 20 -
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java | 13
src/main/resources/mapper/production/SalesLedgerProductionAccountingMapper.xml | 2
src/main/java/com/ruoyi/production/mapper/ProductionProductMainMapper.java | 3
src/main/java/com/ruoyi/production/service/impl/ProductProcessRouteItemServiceImpl.java | 8
src/main/java/com/ruoyi/production/service/ProductionProductMainService.java | 5
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java | 9
src/main/java/com/ruoyi/production/controller/SalesLedgerWorkController.java | 185 +++++++-------
src/main/resources/mapper/production/ProductOrderMapper.xml | 3
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 35 +-
src/main/resources/mapper/production/ProductionProductMainMapper.xml | 16 +
src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java | 367 +++++++++++++++---------------
14 files changed, 338 insertions(+), 332 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/controller/SalesLedgerWorkController.java b/src/main/java/com/ruoyi/production/controller/SalesLedgerWorkController.java
index d4265bf..bd3610c 100644
--- a/src/main/java/com/ruoyi/production/controller/SalesLedgerWorkController.java
+++ b/src/main/java/com/ruoyi/production/controller/SalesLedgerWorkController.java
@@ -1,93 +1,92 @@
-package com.ruoyi.production.controller;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.framework.aspectj.lang.annotation.Log;
-import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
-import com.ruoyi.framework.web.controller.BaseController;
-import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.production.dto.ProcessSchedulingDto;
-import com.ruoyi.production.dto.ProductionReportDto;
-import com.ruoyi.production.dto.SalesLedgerSchedulingProcessDto;
-import com.ruoyi.production.dto.SalesLedgerWorkDto;
-import com.ruoyi.production.pojo.SalesLedgerWork;
-import com.ruoyi.production.service.SalesLedgerWorkService;
-import com.ruoyi.production.service.impl.SalesLedgerWorkServiceImpl;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletResponse;
-import java.util.List;
-
-/**
- * @author :yys
- * @date : 2025/7/21 14:43
- */
-@RestController
-@Api(tags = "鐢熶骇鎶ュ伐(鎺掍骇璁板綍)")
-@RequestMapping("/salesLedger/work")
-@Deprecated // 鏍囪璇ョ被宸插純鐢�
-public class SalesLedgerWorkController extends BaseController {
-
-
- @Autowired
- private SalesLedgerWorkServiceImpl salesLedgerWorkService;
-
- @GetMapping("/listPage")
- @Log(title = "鐢熶骇鎶ュ伐-鍒嗛〉鏌ヨ", businessType = BusinessType.OTHER)
- @ApiOperation("鐢熶骇鎶ュ伐-鍒嗛〉鏌ヨ")
- public AjaxResult listPage(Page page, SalesLedgerWorkDto salesLedgerWorkDto) {
- IPage<SalesLedgerWorkDto> listPage = salesLedgerWorkService.listPage(page, salesLedgerWorkDto);
- return AjaxResult.success(listPage);
- }
-
- /**
- * 瀵煎嚭
- * @param response
- */
- @PostMapping("/export")
- @ApiOperation("鐢熶骇绠$悊-鐢熶骇鎶ュ伐-瀵煎嚭")
- public void export(HttpServletResponse response) {
- Page page = new Page(-1,-1);
- SalesLedgerWorkDto salesLedgerSchedulingDto = new SalesLedgerWorkDto();
- IPage<SalesLedgerWorkDto> result = salesLedgerWorkService.listPage(page,salesLedgerSchedulingDto);
- result.getRecords().forEach(item -> {
- item.setDaiNum(item.getFinishedNum().subtract(item.getSchedulingNum()));
- item.setStatusName(item.getStatus().toString());
- });
- ExcelUtil<SalesLedgerWorkDto> util = new ExcelUtil<>(SalesLedgerWorkDto.class);
- util.exportExcel(response, result.getRecords(), "宸ュ簭鎺掍骇");
- }
-
- @GetMapping("/list")
- @Log(title = "鐢熶骇鎶ュ伐-鏌ヨ", businessType = BusinessType.OTHER)
- @ApiOperation("鐢熶骇鎶ュ伐-鏌ヨ")
- public AjaxResult list(@RequestParam("id") Long id) {
- List<ProductionReportDto> list = salesLedgerWorkService.getList(id);
- return AjaxResult.success(list);
- }
-
- @PostMapping("/productionReport")
- @Log(title = "鐢熶骇绠$悊-鐢熶骇鎶ュ伐", businessType = BusinessType.INSERT)
- @ApiOperation("鐢熶骇绠$悊-鐢熶骇鎶ュ伐")
- @Transactional(rollbackFor = Exception.class)
- public AjaxResult productionReport(@RequestBody ProductionReportDto productionReportDto) {
- int result = salesLedgerWorkService.productionReport(productionReportDto);
- return AjaxResult.success(result);
- }
-
-
- @PostMapping("/productionReportUpdate")
- @Log(title = "鐢熶骇绠$悊-鐢熶骇鎶ュ伐-淇敼", businessType = BusinessType.UPDATE)
- @ApiOperation("鐢熶骇绠$悊-鐢熶骇鎶ュ伐-淇敼")
- @Transactional(rollbackFor = Exception.class)
- public AjaxResult productionReportUpdate(@RequestBody ProductionReportDto productionReportDto) {
- int result = salesLedgerWorkService.productionReportUpdate(productionReportDto);
- return AjaxResult.success(result);
- }
-
-}
+//package com.ruoyi.production.controller;
+//
+//import com.baomidou.mybatisplus.core.metadata.IPage;
+//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+//import com.ruoyi.common.utils.poi.ExcelUtil;
+//import com.ruoyi.framework.aspectj.lang.annotation.Log;
+//import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+//import com.ruoyi.framework.web.controller.BaseController;
+//import com.ruoyi.framework.web.domain.AjaxResult;
+//import com.ruoyi.production.dto.ProcessSchedulingDto;
+//import com.ruoyi.production.dto.ProductionReportDto;
+//import com.ruoyi.production.dto.SalesLedgerSchedulingProcessDto;
+//import com.ruoyi.production.dto.SalesLedgerWorkDto;
+//import com.ruoyi.production.pojo.SalesLedgerWork;
+//import com.ruoyi.production.service.SalesLedgerWorkService;
+//import io.swagger.annotations.Api;
+//import io.swagger.annotations.ApiOperation;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.transaction.annotation.Transactional;
+//import org.springframework.web.bind.annotation.*;
+//
+//import javax.servlet.http.HttpServletResponse;
+//import java.util.List;
+//
+///**
+// * @author :yys
+// * @date : 2025/7/21 14:43
+// */
+//@RestController
+//@Api(tags = "鐢熶骇鎶ュ伐(鎺掍骇璁板綍)")
+//@RequestMapping("/salesLedger/work")
+//@Deprecated // 鏍囪璇ョ被宸插純鐢�
+//public class SalesLedgerWorkController extends BaseController {
+//
+//
+// @Autowired
+// private SalesLedgerWorkServiceImpl salesLedgerWorkService;
+//
+// @GetMapping("/listPage")
+// @Log(title = "鐢熶骇鎶ュ伐-鍒嗛〉鏌ヨ", businessType = BusinessType.OTHER)
+// @ApiOperation("鐢熶骇鎶ュ伐-鍒嗛〉鏌ヨ")
+// public AjaxResult listPage(Page page, SalesLedgerWorkDto salesLedgerWorkDto) {
+// IPage<SalesLedgerWorkDto> listPage = salesLedgerWorkService.listPage(page, salesLedgerWorkDto);
+// return AjaxResult.success(listPage);
+// }
+//
+// /**
+// * 瀵煎嚭
+// * @param response
+// */
+// @PostMapping("/export")
+// @ApiOperation("鐢熶骇绠$悊-鐢熶骇鎶ュ伐-瀵煎嚭")
+// public void export(HttpServletResponse response) {
+// Page page = new Page(-1,-1);
+// SalesLedgerWorkDto salesLedgerSchedulingDto = new SalesLedgerWorkDto();
+// IPage<SalesLedgerWorkDto> result = salesLedgerWorkService.listPage(page,salesLedgerSchedulingDto);
+// result.getRecords().forEach(item -> {
+// item.setDaiNum(item.getFinishedNum().subtract(item.getSchedulingNum()));
+// item.setStatusName(item.getStatus().toString());
+// });
+// ExcelUtil<SalesLedgerWorkDto> util = new ExcelUtil<>(SalesLedgerWorkDto.class);
+// util.exportExcel(response, result.getRecords(), "宸ュ簭鎺掍骇");
+// }
+//
+// @GetMapping("/list")
+// @Log(title = "鐢熶骇鎶ュ伐-鏌ヨ", businessType = BusinessType.OTHER)
+// @ApiOperation("鐢熶骇鎶ュ伐-鏌ヨ")
+// public AjaxResult list(@RequestParam("id") Long id) {
+// List<ProductionReportDto> list = salesLedgerWorkService.getList(id);
+// return AjaxResult.success(list);
+// }
+//
+// @PostMapping("/productionReport")
+// @Log(title = "鐢熶骇绠$悊-鐢熶骇鎶ュ伐", businessType = BusinessType.INSERT)
+// @ApiOperation("鐢熶骇绠$悊-鐢熶骇鎶ュ伐")
+// @Transactional(rollbackFor = Exception.class)
+// public AjaxResult productionReport(@RequestBody ProductionReportDto productionReportDto) {
+// int result = salesLedgerWorkService.productionReport(productionReportDto);
+// return AjaxResult.success(result);
+// }
+//
+//
+// @PostMapping("/productionReportUpdate")
+// @Log(title = "鐢熶骇绠$悊-鐢熶骇鎶ュ伐-淇敼", businessType = BusinessType.UPDATE)
+// @ApiOperation("鐢熶骇绠$悊-鐢熶骇鎶ュ伐-淇敼")
+// @Transactional(rollbackFor = Exception.class)
+// public AjaxResult productionReportUpdate(@RequestBody ProductionReportDto productionReportDto) {
+// int result = salesLedgerWorkService.productionReportUpdate(productionReportDto);
+// return AjaxResult.success(result);
+// }
+//
+//}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductionProductMainMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductionProductMainMapper.java
index 818b6f1..e63e032 100644
--- a/src/main/java/com/ruoyi/production/mapper/ProductionProductMainMapper.java
+++ b/src/main/java/com/ruoyi/production/mapper/ProductionProductMainMapper.java
@@ -10,6 +10,7 @@
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import java.util.ArrayList;
import java.util.List;
@Mapper
@@ -30,4 +31,6 @@
ProductOrder getOrderByMainId(@Param("productMainId") Long productMainId);
IPage<ProductionProductMainDto> listProductionDetails(@Param("ew") SalesLedgerProductionAccountingDto salesLedgerProductionAccountingDto, Page page);
+
+ ArrayList<Long> listMain(List<Long> idList);
}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionProductInput.java b/src/main/java/com/ruoyi/production/pojo/ProductionProductInput.java
index c938170..82bece9 100644
--- a/src/main/java/com/ruoyi/production/pojo/ProductionProductInput.java
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionProductInput.java
@@ -24,6 +24,7 @@
private BigDecimal quantity;
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
@ApiModelProperty(value = "绉熸埛ID")
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionProductOutput.java b/src/main/java/com/ruoyi/production/pojo/ProductionProductOutput.java
index 2889bdd..f78df35 100644
--- a/src/main/java/com/ruoyi/production/pojo/ProductionProductOutput.java
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionProductOutput.java
@@ -20,10 +20,11 @@
@ApiModelProperty(value = "浜у搧id")
private Long productModelId;
- @ApiModelProperty(value = "鎶ュ伐鏁伴噺")
+ @ApiModelProperty(value = "鎶ュ伐鏁伴噺(鎬绘暟閲�)")
private BigDecimal quantity;
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
@ApiModelProperty(value = "绉熸埛ID")
diff --git a/src/main/java/com/ruoyi/production/pojo/SalesLedgerProductionAccounting.java b/src/main/java/com/ruoyi/production/pojo/SalesLedgerProductionAccounting.java
index b410df7..cb56f29 100644
--- a/src/main/java/com/ruoyi/production/pojo/SalesLedgerProductionAccounting.java
+++ b/src/main/java/com/ruoyi/production/pojo/SalesLedgerProductionAccounting.java
@@ -23,24 +23,9 @@
private Long id;
/**
- * 閿�鍞帓浜�-鎶ュ伐琛╥d
+ * 鎶ュ伐琛╥d
*/
- private Long salesLedgerWorkId;
-
- /**
- * 閿�鍞帓浜ц〃id
- */
- private Long salesLedgerSchedulingId;
-
- /**
- * 閿�鍞彴璐d
- */
- private Long salesLedgerId;
-
- /**
- * 閿�鍞骇鍝乮d
- */
- private Long salesLedgerProductId;
+ private Long productMainId;
/**
* 鐢熶骇浜篿d
@@ -101,6 +86,5 @@
@TableField(fill = FieldFill.INSERT)
private Long tenantId;
- private Long ProductMainId;
}
diff --git a/src/main/java/com/ruoyi/production/service/ProductionProductMainService.java b/src/main/java/com/ruoyi/production/service/ProductionProductMainService.java
index af6e414..72d868c 100644
--- a/src/main/java/com/ruoyi/production/service/ProductionProductMainService.java
+++ b/src/main/java/com/ruoyi/production/service/ProductionProductMainService.java
@@ -6,10 +6,15 @@
import com.ruoyi.production.dto.ProductionProductMainDto;
import com.ruoyi.production.pojo.ProductionProductMain;
+import java.util.ArrayList;
+import java.util.List;
+
public interface ProductionProductMainService extends IService<ProductionProductMain> {
IPage<ProductionProductMainDto> listPageProductionProductMainDto(Page page, ProductionProductMainDto productionProductMainDto);
Boolean addProductMain(ProductionProductMainDto productionProductMainDto);
Boolean removeProductMain(Long id);
+
+ ArrayList<Long> listMain(List<Long> idList);
}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductProcessRouteItemServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductProcessRouteItemServiceImpl.java
index 7f73d6b..bbc4b79 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductProcessRouteItemServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductProcessRouteItemServiceImpl.java
@@ -101,14 +101,12 @@
// // 鍒犻櫎璐ㄦ
// qualityInspectMapper.delete(new LambdaQueryWrapper<QualityInspect>()
// .eq(QualityInspect::getProductMainId, mainId));
+ salesLedgerProductionAccountingMapper.delete(new LambdaQueryWrapper<SalesLedgerProductionAccounting>()
+ .eq(SalesLedgerProductionAccounting::getProductMainId, main.getId()));
}
}
// 鏌ヨ璁㈠崟 + 鍒犻櫎鏍哥畻
- ProductOrder productOrder = productOrderMapper.selectById(productOrderId);
- if (productOrder != null && productOrder.getSalesLedgerId() != null) {
- salesLedgerProductionAccountingMapper.delete(new LambdaQueryWrapper<SalesLedgerProductionAccounting>()
- .eq(SalesLedgerProductionAccounting::getSalesLedgerId, productOrder.getSalesLedgerId()));
- }
+
// 鍒犻櫎鍏宠仈宸ュ崟
productWorkOrderMapper.delete(new LambdaQueryWrapper<ProductWorkOrder>()
.eq(ProductWorkOrder::getProductProcessRouteItemId, routeItemId));
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 8ac0c7e..71c8690 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -33,6 +33,7 @@
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -229,10 +230,7 @@
productOrderMapper.updateById(productOrder);
/*娣诲姞鐢熶骇鏍哥畻*/
SalesLedgerProductionAccounting salesLedgerProductionAccounting = SalesLedgerProductionAccounting.builder()
- .salesLedgerWorkId(productionProductMain.getId())
- .salesLedgerSchedulingId(0L)
- .salesLedgerId(productOrder.getSalesLedgerId())
- .salesLedgerProductId(productOrder.getSaleLedgerProductId())
+ .productMainId(productionProductMain.getId())
.schedulingUserId(user.getUserId())
.schedulingUserName(user.getNickName())
.finishedNum(productQty)
@@ -261,7 +259,7 @@
/*鍒犻櫎鏍哥畻*/
salesLedgerProductionAccountingMapper.delete(
new LambdaQueryWrapper<SalesLedgerProductionAccounting>()
- .eq(SalesLedgerProductionAccounting::getSalesLedgerWorkId, productionProductMain.getId())
+ .eq(SalesLedgerProductionAccounting::getProductMainId, productionProductMain.getId())
);
/*鏇存柊宸ュ崟鍜岀敓浜ц鍗�*/
ProductWorkOrder productWorkOrder = productWorkOrderMapper.selectById(productionProductMain.getWorkOrderId());
@@ -302,4 +300,9 @@
productionProductMainMapper.deleteById(productionProductMain.getId());
return true;
}
+
+ @Override
+ public ArrayList<Long> listMain(List<Long> idList) {
+ return productionProductMainMapper.listMain(idList);
+ }
}
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 2135a8b..6573b73 100644
--- a/src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/SalesLedgerWorkServiceImpl.java
@@ -1,185 +1,182 @@
-package com.ruoyi.production.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-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;
-import com.ruoyi.production.mapper.SalesLedgerWorkMapper;
-import com.ruoyi.production.pojo.SalesLedgerProductionAccounting;
-import com.ruoyi.production.pojo.SalesLedgerWork;
-import com.ruoyi.production.service.SalesLedgerProductionAccountingService;
-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;
-
-/**
- * @author :yys
- * @date : 2025/7/21 14:40
- */
-@Service
-@RequiredArgsConstructor
-@Slf4j
-public class SalesLedgerWorkServiceImpl extends ServiceImpl<SalesLedgerWorkMapper, SalesLedgerWork> implements SalesLedgerWorkService {
-
- private final SalesLedgerWorkMapper salesLedgerWorkMapper;
-
- 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) {
- SalesLedgerWork salesLedgerWork = salesLedgerWorkMapper.selectById(productionReportDto.getId());
- SysUser sysUser = sysUserMapper.selectUserById(productionReportDto.getSchedulingUserId());
- if (salesLedgerWork == null) throw new RuntimeException("鎶ュ伐鏁版嵁涓嶅瓨鍦�");
- if (salesLedgerWork.getStatus() == 3) throw new RuntimeException("鎶ュ伐宸插畬鎴�");
- if (sysUser == null) throw new RuntimeException("鐢熶骇浜轰笉瀛樺湪");
- salesLedgerWork.setFinishedNum(salesLedgerWork.getFinishedNum().add(productionReportDto.getFinishedNum()));
- if(salesLedgerWork.getSchedulingNum().compareTo(salesLedgerWork.getFinishedNum()) <= 0){
- salesLedgerWork.setStatus(3);
- }else{
- salesLedgerWork.setStatus(2);
- }
- salesLedgerWorkMapper.updateById(salesLedgerWork);
- // 鏂板鎶ュ伐鏁版嵁
- SalesLedgerProductionAccounting.SalesLedgerProductionAccountingBuilder builder = SalesLedgerProductionAccounting.builder()
- .salesLedgerWorkId(salesLedgerWork.getId())
- .salesLedgerSchedulingId(salesLedgerWork.getSalesLedgerSchedulingId())
- .salesLedgerId(salesLedgerWork.getSalesLedgerId())
- .salesLedgerProductId((long)salesLedgerWork.getSalesLedgerProductId())
- .schedulingUserId(sysUser.getUserId())
- .schedulingUserName(sysUser.getNickName())
- .finishedNum(productionReportDto.getFinishedNum())
- .workHours(salesLedgerWork.getWorkHours())
- .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()));
- details1.setUnitPrice(productionReportDto.getUnitPrice());
- details1.setTotalPrice(productionReportDto.getTotalPrice());
- details.add(details1);
- procurementRecordOutAdd.setDetails(details);
- procurementRecordService.add(procurementRecordOutAdd);
-
- return 0;
- }
-
- @Override
- public int productionReportUpdate(ProductionReportDto productionReportDto) {
- SalesLedgerProductionAccounting salesLedgerProductionAccounting = salesLedgerProductionAccountingMapper.selectById(productionReportDto.getId());
- if(salesLedgerProductionAccounting == null) throw new RuntimeException("鎶ュ伐鏁版嵁涓嶅瓨鍦�");
- SysUser sysUser = sysUserMapper.selectUserById(productionReportDto.getSchedulingUserId());
- if(sysUser == null) throw new RuntimeException("鐢熶骇浜轰笉瀛樺湪");
- salesLedgerProductionAccounting.setFinishedNum(productionReportDto.getFinishedNum());
- salesLedgerProductionAccounting.setSchedulingUserId(sysUser.getUserId());
- salesLedgerProductionAccounting.setSchedulingUserName(sysUser.getNickName());
- salesLedgerProductionAccounting.setSchedulingDate(LocalDate.parse(productionReportDto.getSchedulingDate(), DateTimeFormatter.ISO_LOCAL_DATE));
- salesLedgerProductionAccountingMapper.updateById(salesLedgerProductionAccounting);
-
- // 鏇存柊鎶ュ伐鏁版嵁
- SalesLedgerWork salesLedgerWork = salesLedgerWorkMapper.selectById(salesLedgerProductionAccounting.getSalesLedgerWorkId());
- if(salesLedgerWork == null) throw new RuntimeException("鎶ュ伐鏁版嵁涓嶅瓨鍦�");
- salesLedgerWork.setFinishedNum(productionReportDto.getFinishedNum());
- if(salesLedgerWork.getSchedulingNum().compareTo(salesLedgerWork.getFinishedNum()) <= 0){
- salesLedgerWork.setStatus(3);
- }else{
- salesLedgerWork.setStatus(2);
- }
- salesLedgerWork.setSchedulingUserId(sysUser.getUserId());
- salesLedgerWork.setSchedulingUserName(sysUser.getNickName());
- salesLedgerWork.setSchedulingDate(LocalDate.parse(productionReportDto.getSchedulingDate(), DateTimeFormatter.ISO_LOCAL_DATE));
- salesLedgerWorkMapper.updateById(salesLedgerWork);
- return 0;
- }
-
- @Override
- public List<ProductionReportDto> getList(Long id) {
- SalesLedgerWork salesLedgerWork = salesLedgerWorkMapper.selectById(id);
- if(salesLedgerWork == null) throw new RuntimeException("鎶ュ伐鏁版嵁涓嶅瓨鍦�");
- LambdaQueryWrapper<SalesLedgerProductionAccounting> salesLedgerProductionAccountingLambdaQueryWrapper = new LambdaQueryWrapper<>();
- salesLedgerProductionAccountingLambdaQueryWrapper.eq(SalesLedgerProductionAccounting::getSalesLedgerWorkId, id);
- List<SalesLedgerProductionAccounting> salesLedgerProductionAccountingList = salesLedgerProductionAccountingMapper.selectList(salesLedgerProductionAccountingLambdaQueryWrapper);
- if(CollectionUtils.isEmpty(salesLedgerProductionAccountingList)) throw new RuntimeException("娌℃湁鐢熶骇璁板綍鏁版嵁");
- return salesLedgerProductionAccountingList.stream().map(salesLedgerProductionAccounting -> {
- ProductionReportDto productionReportDto = new ProductionReportDto();
- BeanUtils.copyProperties(salesLedgerProductionAccounting, productionReportDto);
- productionReportDto.setSchedulingDate(salesLedgerProductionAccounting.getSchedulingDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
- productionReportDto.setSchedulingNum(salesLedgerWork.getSchedulingNum());
- return productionReportDto;
- }).collect(Collectors.toList());
- }
-}
+//package com.ruoyi.production.service.impl;
+//
+//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+//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;
+//import com.ruoyi.production.mapper.SalesLedgerWorkMapper;
+//import com.ruoyi.production.pojo.SalesLedgerProductionAccounting;
+//import com.ruoyi.production.pojo.SalesLedgerWork;
+//import com.ruoyi.production.service.SalesLedgerProductionAccountingService;
+//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;
+//
+///**
+// * @author :yys
+// * @date : 2025/7/21 14:40
+// */
+//@Service
+//@RequiredArgsConstructor
+//@Slf4j
+//public class SalesLedgerWorkServiceImpl extends ServiceImpl<SalesLedgerWorkMapper, SalesLedgerWork> implements SalesLedgerWorkService {
+//
+// private final SalesLedgerWorkMapper salesLedgerWorkMapper;
+//
+// 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) {
+// SalesLedgerWork salesLedgerWork = salesLedgerWorkMapper.selectById(productionReportDto.getId());
+// SysUser sysUser = sysUserMapper.selectUserById(productionReportDto.getSchedulingUserId());
+// if (salesLedgerWork == null) throw new RuntimeException("鎶ュ伐鏁版嵁涓嶅瓨鍦�");
+// if (salesLedgerWork.getStatus() == 3) throw new RuntimeException("鎶ュ伐宸插畬鎴�");
+// if (sysUser == null) throw new RuntimeException("鐢熶骇浜轰笉瀛樺湪");
+// salesLedgerWork.setFinishedNum(salesLedgerWork.getFinishedNum().add(productionReportDto.getFinishedNum()));
+// if(salesLedgerWork.getSchedulingNum().compareTo(salesLedgerWork.getFinishedNum()) <= 0){
+// salesLedgerWork.setStatus(3);
+// }else{
+// salesLedgerWork.setStatus(2);
+// }
+// salesLedgerWorkMapper.updateById(salesLedgerWork);
+// // 鏂板鎶ュ伐鏁版嵁
+// SalesLedgerProductionAccounting.SalesLedgerProductionAccountingBuilder builder = SalesLedgerProductionAccounting.builder()
+// .productMainId(null)
+// .schedulingUserId(sysUser.getUserId())
+// .schedulingUserName(sysUser.getNickName())
+// .finishedNum(productionReportDto.getFinishedNum())
+// .workHours(salesLedgerWork.getWorkHours())
+// .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()));
+// details1.setUnitPrice(productionReportDto.getUnitPrice());
+// details1.setTotalPrice(productionReportDto.getTotalPrice());
+// details.add(details1);
+// procurementRecordOutAdd.setDetails(details);
+// procurementRecordService.add(procurementRecordOutAdd);
+//
+// return 0;
+// }
+//
+// @Override
+// public int productionReportUpdate(ProductionReportDto productionReportDto) {
+// SalesLedgerProductionAccounting salesLedgerProductionAccounting = salesLedgerProductionAccountingMapper.selectById(productionReportDto.getId());
+// if(salesLedgerProductionAccounting == null) throw new RuntimeException("鎶ュ伐鏁版嵁涓嶅瓨鍦�");
+// SysUser sysUser = sysUserMapper.selectUserById(productionReportDto.getSchedulingUserId());
+// if(sysUser == null) throw new RuntimeException("鐢熶骇浜轰笉瀛樺湪");
+// salesLedgerProductionAccounting.setFinishedNum(productionReportDto.getFinishedNum());
+// salesLedgerProductionAccounting.setSchedulingUserId(sysUser.getUserId());
+// salesLedgerProductionAccounting.setSchedulingUserName(sysUser.getNickName());
+// salesLedgerProductionAccounting.setSchedulingDate(LocalDate.parse(productionReportDto.getSchedulingDate(), DateTimeFormatter.ISO_LOCAL_DATE));
+// salesLedgerProductionAccountingMapper.updateById(salesLedgerProductionAccounting);
+//
+// // 鏇存柊鎶ュ伐鏁版嵁
+// SalesLedgerWork salesLedgerWork = salesLedgerWorkMapper.selectById(salesLedgerProductionAccounting.getSalesLedgerWorkId());
+// if(salesLedgerWork == null) throw new RuntimeException("鎶ュ伐鏁版嵁涓嶅瓨鍦�");
+// salesLedgerWork.setFinishedNum(productionReportDto.getFinishedNum());
+// if(salesLedgerWork.getSchedulingNum().compareTo(salesLedgerWork.getFinishedNum()) <= 0){
+// salesLedgerWork.setStatus(3);
+// }else{
+// salesLedgerWork.setStatus(2);
+// }
+// salesLedgerWork.setSchedulingUserId(sysUser.getUserId());
+// salesLedgerWork.setSchedulingUserName(sysUser.getNickName());
+// salesLedgerWork.setSchedulingDate(LocalDate.parse(productionReportDto.getSchedulingDate(), DateTimeFormatter.ISO_LOCAL_DATE));
+// salesLedgerWorkMapper.updateById(salesLedgerWork);
+// return 0;
+// }
+//
+// @Override
+// public List<ProductionReportDto> getList(Long id) {
+// SalesLedgerWork salesLedgerWork = salesLedgerWorkMapper.selectById(id);
+// if(salesLedgerWork == null) throw new RuntimeException("鎶ュ伐鏁版嵁涓嶅瓨鍦�");
+// LambdaQueryWrapper<SalesLedgerProductionAccounting> salesLedgerProductionAccountingLambdaQueryWrapper = new LambdaQueryWrapper<>();
+// salesLedgerProductionAccountingLambdaQueryWrapper.eq(SalesLedgerProductionAccounting::getSalesLedgerWorkId, id);
+// List<SalesLedgerProductionAccounting> salesLedgerProductionAccountingList = salesLedgerProductionAccountingMapper.selectList(salesLedgerProductionAccountingLambdaQueryWrapper);
+// if(CollectionUtils.isEmpty(salesLedgerProductionAccountingList)) throw new RuntimeException("娌℃湁鐢熶骇璁板綍鏁版嵁");
+// return salesLedgerProductionAccountingList.stream().map(salesLedgerProductionAccounting -> {
+// ProductionReportDto productionReportDto = new ProductionReportDto();
+// BeanUtils.copyProperties(salesLedgerProductionAccounting, productionReportDto);
+// productionReportDto.setSchedulingDate(salesLedgerProductionAccounting.getSchedulingDate().format(DateTimeFormatter.ISO_LOCAL_DATE));
+// productionReportDto.setSchedulingNum(salesLedgerWork.getSchedulingNum());
+// return productionReportDto;
+// }).collect(Collectors.toList());
+// }
+//}
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 f596e88..f6d6b27 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -15,6 +15,7 @@
import com.ruoyi.production.dto.ProductStructureDto;
import com.ruoyi.production.mapper.*;
import com.ruoyi.production.pojo.*;
+import com.ruoyi.production.service.impl.SalesLedgerProductionAccountingServiceImpl;
import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
import com.ruoyi.purchase.pojo.PurchaseLedger;
import com.ruoyi.quality.mapper.QualityInspectMapper;
@@ -92,6 +93,8 @@
private ProductStructureMapper productStructureMapper;
@Autowired
private StockInventoryMapper stockInventoryMapper;
+ @Autowired
+ private SalesLedgerProductionAccountingServiceImpl salesLedgerProductionAccountingServiceImpl;
@Override
public SalesLedgerProduct selectSalesLedgerProductById(Long id) {
@@ -228,9 +231,7 @@
/*鍒犻櫎瀵瑰簲鐨勭敓浜ф暟鎹苟閲嶆柊鏂板*/
deleteProductionData(Arrays.asList(salesLedgerProduct.getId()));
// 鍒犻櫎鐢熶骇鏍哥畻鏁版嵁
- LambdaQueryWrapper<SalesLedgerProductionAccounting> reportWrapper = new LambdaQueryWrapper<>();
- reportWrapper.in(SalesLedgerProductionAccounting::getSalesLedgerId, salesLedgerId);
- salesLedgerProductionAccountingMapper.delete(reportWrapper);
+
addProductionData(salesLedgerProduct);
}
@@ -407,6 +408,8 @@
}
});
qualityInspectMapper.deleteByProductMainIds(productMainIds);
+ salesLedgerProductionAccountingMapper.delete(new LambdaQueryWrapper<SalesLedgerProductionAccounting>()
+ .in(SalesLedgerProductionAccounting::getProductMainId, productMainIds));
}
// 鍒犻櫎鐢熶骇涓昏〃鏁版嵁
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 c80ea78..3a42fc7 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -25,6 +25,8 @@
import com.ruoyi.other.pojo.TempFile;
import com.ruoyi.production.mapper.*;
import com.ruoyi.production.pojo.*;
+import com.ruoyi.production.service.ProductionProductMainService;
+import com.ruoyi.production.service.impl.ProductionProductMainServiceImpl;
import com.ruoyi.project.system.domain.SysDept;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysDeptMapper;
@@ -146,7 +148,9 @@
private ProductMapper productMapper;
@Autowired
private ProductStructureMapper productStructureMapper;
-;
+ @Autowired
+ private ProductionProductMainService productionProductMainService;
+ ;
@Override
public List<SalesLedger> selectSalesLedgerList(SalesLedgerDto salesLedgerDto) {
@@ -178,7 +182,7 @@
.eq(ShippingInfo::getSalesLedgerProductId, product.getId())
.orderByDesc(ShippingInfo::getCreateTime)
.last("limit 1"));
- if(shippingInfo != null){
+ if (shippingInfo != null) {
product.setShippingStatus(shippingInfo.getStatus());
}
}
@@ -350,7 +354,7 @@
// // 浜у搧澶х被鏁版嵁
// List<Product> productList = productMapper.selectList(new LambdaQueryWrapper<Product>().in(Product::getProductName,
// salesLedgerProductImportDtoList.stream().map(SalesLedgerImportDto::getProductCategory).collect(Collectors.toList())));
- List<Map<String,Object>> list = productModelMapper.getProductAndModelList();
+ List<Map<String, Object>> list = productModelMapper.getProductAndModelList();
// 褰曞叆浜烘暟鎹�
List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>().in(SysUser::getNickName,
salesLedgerImportDtoList.stream().map(SalesLedgerImportDto::getEntryPerson).collect(Collectors.toList())));
@@ -358,7 +362,7 @@
SalesLedger salesLedger1 = salesLedgerMapper.selectOne(new LambdaQueryWrapper<SalesLedger>()
.eq(SalesLedger::getSalesContractNo, salesLedgerImportDto.getSalesContractNo())
.last("LIMIT 1"));
- if(salesLedger1 != null){
+ if (salesLedger1 != null) {
continue;
}
SalesLedger salesLedger = new SalesLedger();
@@ -391,7 +395,7 @@
throw new RuntimeException("閿�鍞崟鍙�:" + salesLedgerImportDto.getSalesContractNo() + ",鏃犲搴斾骇鍝佹暟鎹紒");
salesLedger.setContractAmount(salesLedgerProductImportDtos.stream()
.map(SalesLedgerProductImportDto::getTaxInclusiveTotalPrice)
- .reduce(BigDecimal.ZERO,BigDecimal::add));
+ .reduce(BigDecimal.ZERO, BigDecimal::add));
salesLedgerMapper.insert(salesLedger);
@@ -553,25 +557,20 @@
// 鍒犻櫎鍙戣揣鍙拌处璁板綍
List<ShippingInfo> shippingInfos = shippingInfoMapper.selectList(new LambdaQueryWrapper<ShippingInfo>()
.in(ShippingInfo::getSalesLedgerId, idList));
- if(CollectionUtils.isNotEmpty(shippingInfos)){
+ if (CollectionUtils.isNotEmpty(shippingInfos)) {
shippingInfoServiceImpl.delete(shippingInfos.stream().map(ShippingInfo::getId).collect(Collectors.toList()));
}
// 鍒犻櫎闄勪欢琛�
commonFileService.deleteByBusinessIds(idList, FileNameType.SALE.getValue());
// 鍒犻櫎鐢熶骇绠℃帶鏁版嵁
- // 鍒犻櫎鐢熶骇璁㈠崟鏁版嵁
- LambdaQueryWrapper<SalesLedgerScheduling> in = new LambdaQueryWrapper<SalesLedgerScheduling>()
- .in(SalesLedgerScheduling::getSalesLedgerId, idList);
- salesLedgerSchedulingMapper.delete(in);
- // 鍒犻櫎鐢熶骇娲惧伐鏁版嵁
- LambdaQueryWrapper<SalesLedgerWork> workOrderWrapper = new LambdaQueryWrapper<>();
- workOrderWrapper.in(SalesLedgerWork::getSalesLedgerId, idList);
- salesLedgerWorkMapper.delete(workOrderWrapper);
- // 鍒犻櫎鐢熶骇鏍哥畻鏁版嵁
- LambdaQueryWrapper<SalesLedgerProductionAccounting> reportWrapper = new LambdaQueryWrapper<>();
- reportWrapper.in(SalesLedgerProductionAccounting::getSalesLedgerId, idList);
- salesLedgerProductionAccountingMapper.delete(reportWrapper);
+ //鏌ヨ鐢熶骇鎶ュ伐id
+ ArrayList<Long> mainIdList = productionProductMainService.listMain(idList);
+ if (CollectionUtils.isNotEmpty(mainIdList)) {
+ mainIdList.stream().forEach(mainId -> {
+ productionProductMainService.removeProductMain(mainId);
+ });
+ }
// 2. 鍐嶅垹闄や富琛ㄦ暟鎹�
return salesLedgerMapper.deleteBatchIds(idList);
}
diff --git a/src/main/resources/mapper/production/ProductOrderMapper.xml b/src/main/resources/mapper/production/ProductOrderMapper.xml
index 2581105..ff4b68f 100644
--- a/src/main/resources/mapper/production/ProductOrderMapper.xml
+++ b/src/main/resources/mapper/production/ProductOrderMapper.xml
@@ -66,8 +66,7 @@
select pr.*
from process_route pr
left join product_model pm on pr.product_model_id = pm.id
- left join sales_ledger_product slp on pm.id = slp.product_model_id
- where slp.id = #{productModelId}
+ where pm.id = #{productModelId}
</select>
<select id="listProcessBom" resultType="com.ruoyi.production.dto.ProductStructureDto">
select ps.id,
diff --git a/src/main/resources/mapper/production/ProductionProductMainMapper.xml b/src/main/resources/mapper/production/ProductionProductMainMapper.xml
index 1cfc0d8..9c3bf3d 100644
--- a/src/main/resources/mapper/production/ProductionProductMainMapper.xml
+++ b/src/main/resources/mapper/production/ProductionProductMainMapper.xml
@@ -71,7 +71,7 @@
slpa.work_hours * slpa.finished_num AS wages
FROM
production_product_main ppm
- LEFT JOIN sales_ledger_production_accounting slpa ON slpa.sales_ledger_work_id = ppm.id
+ LEFT JOIN sales_ledger_production_accounting slpa ON slpa.product_main_id = ppm.id
LEFT JOIN production_product_output ppo ON ppm.id = ppo.product_main_id
LEFT JOIN product_work_order pwo ON pwo.id = ppm.work_order_id
LEFT JOIN product_order po ON po.id = pwo.product_order_id
@@ -93,6 +93,20 @@
</if>
</where>
</select>
+ <select id="listMain" resultType="java.lang.Long">
+ SELECT ppm.id FROM production_product_main ppm
+ left join product_work_order pwo on pwo.id = ppm.work_order_id
+ left join product_order po on po.id = pwo.product_order_id
+ left join sales_ledger sl on sl.id = po.sales_ledger_id
+ <where>
+ <if test="idList != null and idList.size() > 0">
+ and sl.id in
+ <foreach item="id" collection="idList" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </if>
+ </where>
+ </select>
<delete id="deleteByWorkOrderIds" parameterType="java.util.List">
DELETE FROM production_product_main
diff --git a/src/main/resources/mapper/production/SalesLedgerProductionAccountingMapper.xml b/src/main/resources/mapper/production/SalesLedgerProductionAccountingMapper.xml
index 3535b77..fdbe7cc 100644
--- a/src/main/resources/mapper/production/SalesLedgerProductionAccountingMapper.xml
+++ b/src/main/resources/mapper/production/SalesLedgerProductionAccountingMapper.xml
@@ -68,7 +68,7 @@
'%'
) as output_rate
FROM sales_ledger_production_accounting slpa
- LEFT JOIN production_product_main ppm ON slpa.sales_ledger_work_id = ppm.id
+ LEFT JOIN production_product_main ppm ON slpa.product_main_id = ppm.id
LEFT JOIN production_product_output ppout ON ppm.id = ppout.product_main_id
<where>
<if test="ew.schedulingUserName != null and ew.schedulingUserName !=''">
--
Gitblit v1.9.3