From 37c806789710dc435cb3c0908d29c9d2f21c8d6a Mon Sep 17 00:00:00 2001
From: maxiangong <298222784@qq.com>
Date: Wed, 13 May 2026 09:00:56 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A4=96=E5=8D=8F=E7=BB=93=E7=AE=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../oem/pojo/entity/OemStatementEntity.java | 14 +-
.../oem/pojo/excel/OemStatementExcel.java | 31 ++---
.../desk/oem/pojo/request/StatementQuery.java | 5 +-
.../desk/oem/pojo/vo/StatementVO.java | 3 -
.../controller/OemStatementController.java | 46 ++++---
.../desk/oem/mapper/OemStatementMapper.xml | 39 ++++--
.../oem/service/IOemStatementService.java | 8 ++
.../service/impl/OemStatementServiceImpl.java | 128 ++++++++++++------
8 files changed, 164 insertions(+), 110 deletions(-)
diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/entity/OemStatementEntity.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/entity/OemStatementEntity.java
index 8cc949d7d..dca1b7857 100644
--- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/entity/OemStatementEntity.java
+++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/entity/OemStatementEntity.java
@@ -1,15 +1,13 @@
package org.springblade.desk.oem.pojo.entity;
-import lombok.Data;
-import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableName;
-
-import java.math.BigDecimal;
-
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import java.io.Serial;
+import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@@ -67,7 +65,7 @@ public class OemStatementEntity extends BaseEntity {
static {
rosStatusMap.put(NO_SETTLEMENT, "未结算");
- rosStatusMap.put(IN_SETTLEMENT, "结算中");
+ rosStatusMap.put(IN_SETTLEMENT, "待确认");
rosStatusMap.put(ERR_SETTLEMENT, "结算异常");
rosStatusMap.put(OK_SETTLEMENT, "已结算");
rosStatusMap.put(AWAITING_APPROVAL_SETTLEMENT, "待审核");
@@ -126,7 +124,7 @@ public class OemStatementEntity extends BaseEntity {
@Schema(description = "结算时间")
private Date settleTime;
- @Schema(description = "结算时间")
+ @Schema(description = "审核时间")
private Date approvalTime;
@Schema(description = "推送时间")
@@ -175,7 +173,7 @@ public class OemStatementEntity extends BaseEntity {
private String useDeptCode;
@Schema(description = "镀后入库时间")
- private String putStoreTime;
+ private Date putStoreTime;
@Schema(description = "使用部门")
private String resDept;
diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/excel/OemStatementExcel.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/excel/OemStatementExcel.java
index c54367621..0744d2422 100644
--- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/excel/OemStatementExcel.java
+++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/excel/OemStatementExcel.java
@@ -1,17 +1,14 @@
package org.springblade.desk.oem.pojo.excel;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.math.BigDecimal;
-
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
import java.io.Serializable;
+import java.math.BigDecimal;
/**
@@ -48,7 +45,7 @@ public class OemStatementExcel implements Serializable {
@ColumnWidth(20)
@ExcelProperty("生产标识")
- private String prodIdent;
+ private String productIdent;
@ColumnWidth(20)
@ExcelProperty("工序")
@@ -68,15 +65,15 @@ public class OemStatementExcel implements Serializable {
@ColumnWidth(20)
@ExcelProperty("结算数量")
- private String makeQty;
+ private BigDecimal makeQty;
@ColumnWidth(20)
@ExcelProperty("单件面积(dm²)")
- private String ypArea;
+ private BigDecimal ypArea;
@ColumnWidth(20)
@ExcelProperty("总面积(dm²)")
- private String totalArea;
+ private BigDecimal totalArea;
@ColumnWidth(20)
@ExcelProperty("镀种")
@@ -84,10 +81,10 @@ public class OemStatementExcel implements Serializable {
@ColumnWidth(20)
@ExcelProperty("镀层厚度")
- private String plateThickness;
+ private BigDecimal rosThickness;
@ColumnWidth(20)
- @Schema(description = "工序标准代码")
+ @ExcelProperty("工序标准代码")
private String standardProcessCode;
@ColumnWidth(20)
@@ -103,23 +100,23 @@ public class OemStatementExcel implements Serializable {
private String tjtNum;
@ColumnWidth(20)
- @Schema(description = "计划部门编号")
+ @ExcelProperty("计划部门编号")
private String planDeptcode;
@ColumnWidth(20)
- @Schema(description = "使用部门编号")
+ @ExcelProperty("使用部门编号")
private String useDeptCode;
@ColumnWidth(20)
@ExcelProperty("镀后入库时间")
- private String putStoreTime;
+ private String putStoreDate;
@ColumnWidth(20)
- @Schema(description = "报价单号")
+ @ExcelProperty("报价单号")
private String quotation;
@ColumnWidth(20)
- @Schema(description = "计量单位")
+ @ExcelProperty("计量单位")
private String unit;
@ColumnWidth(20)
@@ -135,7 +132,7 @@ public class OemStatementExcel implements Serializable {
private String memo;
@ColumnWidth(20)
- @Schema(description = "结算时间")
+ @ExcelProperty("结算时间")
private String settleDate;
@ColumnWidth(20)
diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/request/StatementQuery.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/request/StatementQuery.java
index db6abf7b6..192c9d1f1 100644
--- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/request/StatementQuery.java
+++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/request/StatementQuery.java
@@ -45,7 +45,7 @@ public class StatementQuery {
* 生产标识
*/
@Schema(description = "生产标识")
- private String prodIdent;
+ private String productIdent;
/**
* 批次号
*/
@@ -82,4 +82,7 @@ public class StatementQuery {
*/
@Schema(description = "现执行价格")
private BigDecimal price;
+
+ @Schema(description = "工序ID")
+ private Long ppsId;
}
diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/StatementVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/StatementVO.java
index 94a195ce8..a6cc8c323 100644
--- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/StatementVO.java
+++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/StatementVO.java
@@ -49,9 +49,6 @@ public class StatementVO extends OemStatementEntity {
@Schema(description = "工艺能力")
private String caName;
- @Schema(description = "镀后入库时间")
- private String putStoreTime;
-
@Schema(description = "镀种厚度")
private String plateThickness;
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemStatementController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemStatementController.java
index 7ee0f8a58..c4180300e 100644
--- a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemStatementController.java
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemStatementController.java
@@ -1,45 +1,36 @@
package org.springblade.desk.oem.controller;
-import io.swagger.v3.oas.annotations.tags.Tag;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
-import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
-import lombok.AllArgsConstructor;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
-
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.log.annotation.ApiLog;
-import org.springblade.core.secure.BladeUser;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.BladeUser;
import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
-import org.springblade.desk.oem.pojo.excel.OemMeritsExcel;
+import org.springblade.desk.oem.pojo.entity.OemStatementEntity;
import org.springblade.desk.oem.pojo.excel.OemStatementExcel;
import org.springblade.desk.oem.pojo.request.OemSettleAccountsApproval;
-import org.springblade.desk.oem.pojo.request.OemSettleAccountsSave;
import org.springblade.desk.oem.pojo.request.StatementQuery;
-import org.springblade.desk.oem.pojo.vo.OemMeritsVO;
+import org.springblade.desk.oem.pojo.vo.OemStatementVO;
import org.springblade.desk.oem.pojo.vo.StatementVO;
+import org.springblade.desk.oem.service.IOemStatementService;
+import org.springblade.desk.oem.wrapper.OemStatementWrapper;
import org.springframework.beans.BeanUtils;
-import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import org.springblade.desk.oem.pojo.entity.OemStatementEntity;
-import org.springblade.desk.oem.pojo.vo.OemStatementVO;
-import org.springblade.desk.oem.wrapper.OemStatementWrapper;
-import org.springblade.desk.oem.service.IOemStatementService;
-import org.springblade.core.boot.ctrl.BladeController;
-import org.springblade.core.tool.utils.DateUtil;
-import org.springblade.core.excel.util.ExcelUtil;
-import java.time.LocalDate;
import java.util.ArrayList;
-import java.util.Map;
import java.util.List;
-import jakarta.servlet.http.HttpServletResponse;
-
/**
* 外协结算单 控制器
*
@@ -261,4 +252,15 @@ public class OemStatementController extends BladeController {
return mesOemStatementService.updateOrderDataError();
}
+ /**
+ * 补充结算
+ *
+ * @param mesOemStatement
+ * @return
+ */
+ @PostMapping("/oemSupSettlement")
+ @Operation(summary = "补充结算", description = "传入mesOemStatement")
+ public R oemSupSettlement(@RequestBody StatementQuery mesOemStatement) {
+ return mesOemStatementService.supSettlement(mesOemStatement);
+ }
}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStatementMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStatementMapper.xml
index 1cb459a91..517af7f57 100644
--- a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStatementMapper.xml
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStatementMapper.xml
@@ -61,7 +61,6 @@
-
@@ -98,6 +97,8 @@
+
+
@@ -182,14 +191,18 @@
h.ID,
h.YP_CODE,
h.WO_CODE,
+ h.PART_ID,
p.PART_CODE,
p.PART_NAME,
h.BATCH_NO,
- h.PRODUCT_IDENT as PROD_IDENT,
- b.NAME as PS_NAME,
+ h.PRODUCT_IDENT,
+ h.PPS_ID,
+ H.PS_CODE,
+ h.PS_NAME,
i.CA_NAME,
- c.CODE as OC_CODE,
- c.OC_NAME,
+ h.OC_ID,
+ h.OC_CODE,
+ h.OC_NAME,
h.MAKE_QTY,
h.YP_AREA,
h.MAKE_QTY * h.YP_AREA as TOTAL_AREA,
@@ -207,7 +220,7 @@
h.UNIT,
h.UNIT_PRICE,
h.TOTAL_PRICE,
- h.MEMO,
+ CASE WHEN h.ROS_STATUS = 3 THEN h.MEMO ELSE NULL END as MEMO,
to_char(h.SETTLE_TIME, 'yyyy-MM-dd') as SETTLE_DATE,
h.ROS_STATUS,
to_char(h.APPROVAL_TIME, 'yyyy-MM-dd') as APPROVAL_DATE,
@@ -215,9 +228,7 @@
h.STATEMENT_NO
FROM MES_OEM_STATEMENT h
INNER JOIN MES_WORK_PLAN a ON h.WP_ID = a.ID AND a.IS_DELETED = 0
- INNER JOIN BS_PROCESS_SET b ON a.PPS_ID = b.ID AND b.IS_DELETED = 0
- INNER JOIN BS_OEM c ON a.OC_ID = c.ID AND c.IS_DELETED = 0
- INNER JOIN MES_OEM_PROCESS g ON b.ID = g.PROCESS_ID AND g.IS_DELETED = 0
+ INNER JOIN MES_OEM_PROCESS g ON a.PPS_ID = g.PROCESS_ID AND g.IS_DELETED = 0
INNER JOIN BS_CRAFT_ABILITY i ON i.ID = a.CA_ID AND i.IS_DELETED = 0
INNER JOIN DS_PART p ON h.PART_ID = p.ID AND p.IS_DELETED = 0
@@ -235,8 +246,8 @@
AND h.PUT_STORE_TIME < #{query.postPlatingStorageTimeEnd} + 1
-
- AND h.PRODUCT_IDENT = #{query.prodIdent}
+
+ AND h.PRODUCT_IDENT = #{query.productIdent}
AND g.manual = #{query.manual}
@@ -251,7 +262,7 @@
AND h.BATCH_NO LIKE CONCAT('%', CONCAT(#{query.batchNo}, '%'))
- AND c.ID IN
+ AND h.OC_ID IN
#{id}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/IOemStatementService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/IOemStatementService.java
index d6582dc89..0bf42f2d9 100644
--- a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/IOemStatementService.java
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/IOemStatementService.java
@@ -115,4 +115,12 @@ public interface IOemStatementService extends BaseService {
*/
R updateOrderDataError();
+ /**
+ * 补充结算
+ *
+ * @param mesOemStatement
+ * @return
+ */
+ R supSettlement(StatementQuery mesOemStatement);
+
}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java
index db0bd9a9e..bd16d291a 100644
--- a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java
@@ -34,15 +34,12 @@ import org.springblade.desk.oem.service.IOemStatementService;
import org.springblade.desk.oem.service.IOemStatementTaskLogService;
import org.springblade.desk.util.PriceMatcher;
import org.springblade.erpdata.feign.IErpDataOemClient;
-import org.springblade.system.feign.IDictBizClient;
import org.springblade.system.feign.IDictClient;
import org.springblade.system.pojo.entity.Dict;
-import org.springblade.system.pojo.entity.DictBiz;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
-import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.ZoneId;
@@ -81,6 +78,8 @@ public class OemStatementServiceImpl extends BaseServiceImpl selectOemStatementPage(IPage page, StatementQuery mesOemStatement) {
return page.setRecords(baseMapper.selectOemStatementPage(page, mesOemStatement));
@@ -102,7 +101,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl> groupedMap = statementVOS.stream().filter(vo -> vo.getPutStoreTime() != null && !vo.getPutStoreTime().trim().isEmpty()).collect(Collectors.groupingBy(StatementVO::getPutStoreTime));
+ Map> groupedMap = statementVOS.stream().filter(vo -> vo.getPutStoreDate() != null && !vo.getPutStoreDate().trim().isEmpty()).collect(Collectors.groupingBy(StatementVO::getPutStoreDate));
groupedMap.entrySet().forEach(stringListEntry -> {
R result = oemSettleAccounts(stringListEntry.getValue(), price, LocalDate.parse(stringListEntry.getKey()));
@@ -867,8 +866,8 @@ public class OemStatementServiceImpl extends BaseServiceImpl 0) {
statementVO.setRosStatus(StatementVO.IN_SETTLEMENT);
- statementVO.setTotalPrice(totalPrice);
statementVO.setMemo("结算中");
+ statementVO.setTotalPrice(totalPrice);
statementVO.setQuotation(quotation);
return true;
} else {
@@ -1033,10 +1032,10 @@ public class OemStatementServiceImpl extends BaseServiceImpl saves = new ArrayList<>();
// 查询未生成的结算数据
- List statementVOS = selectUnsettled();
+ List statementVOS = selectUnsettled(new StatementQuery());
if (CollectionUtils.isEmpty(statementVOS)) {
return R.fail("没有需要结算的记录");
}
@@ -1216,11 +1215,10 @@ public class OemStatementServiceImpl extends BaseServiceImpl selectUnsettled() {
- StatementQuery query = new StatementQuery();
+ private List selectUnsettled(StatementQuery query) {
Date lastMaxPutStoreTime = oemStatementTaskLogService.getLastMaxPutStoreTime();
if (lastMaxPutStoreTime != null) {
query.setPostPlatingStorageTimeStart(lastMaxPutStoreTime.toInstant()
@@ -1635,7 +1632,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl 0) {
- List tjtPriceSheetList = coatingDescPriceSheetMap.get("涂箭头");
- BigDecimal unitPrice = new BigDecimal(tjtPriceSheetList.get(0).getPrice());
- BigDecimal itemTotalPrice = unitPrice.multiply(BigDecimal.valueOf(tjtNum));
+ StringBuilder quotationSb = new StringBuilder();
+ String prtum = "";
+ if (tsbNum > 0) {
+ List tsbPriceSheetList = coatingDescPriceSheetMap.get("涂色标");
+ BigDecimal unitPrice = new BigDecimal(tsbPriceSheetList.get(0).getPrice());
+ BigDecimal itemTotalPrice = unitPrice.multiply(BigDecimal.valueOf(tsbNum));
totalPrice = totalPrice.add(itemTotalPrice);
- quotation = tjtPriceSheetList.get(0).getSeqid();
+ quotationSb.append(tsbPriceSheetList.get(0).getSeqid()).append("、");
+ prtum = tsbPriceSheetList.get(0).getPrtum();
}
if (tsdNum > 0) {
List tsdPriceSheetList = coatingDescPriceSheetMap.get("涂色带");
BigDecimal unitPrice = new BigDecimal(tsdPriceSheetList.get(0).getPrice());
BigDecimal itemTotalPrice = unitPrice.multiply(BigDecimal.valueOf(tsdNum));
totalPrice = totalPrice.add(itemTotalPrice);
- quotation = tsdPriceSheetList.get(0).getSeqid();
+ quotationSb.append(tsdPriceSheetList.get(0).getSeqid()).append("、");
+ prtum = tsdPriceSheetList.get(0).getPrtum();
}
- if (tsbNum > 0) {
- List tsbPriceSheetList = coatingDescPriceSheetMap.get("涂色标");
- //唯一使用此报价单**结算**
- BigDecimal unitPrice = new BigDecimal(tsbPriceSheetList.get(0).getPrice());
- BigDecimal itemTotalPrice = unitPrice.multiply(BigDecimal.valueOf(tsbNum));
+ if (tjtNum > 0) {
+ List tjtPriceSheetList = coatingDescPriceSheetMap.get("涂箭头");
+ BigDecimal unitPrice = new BigDecimal(tjtPriceSheetList.get(0).getPrice());
+ BigDecimal itemTotalPrice = unitPrice.multiply(BigDecimal.valueOf(tjtNum));
totalPrice = totalPrice.add(itemTotalPrice);
- quotation = tsbPriceSheetList.get(0).getSeqid();
+ quotationSb.append(tjtPriceSheetList.get(0).getSeqid()).append("、");
+ prtum = tjtPriceSheetList.get(0).getPrtum();
}
+ String quotation = quotationSb.length() > 0
+ ? quotationSb.substring(0, quotationSb.length() - 1)
+ : "";
statementVO.setRosStatus(StatementVO.IN_SETTLEMENT);
+ statementVO.setMemo("结算中");
statementVO.setSettleTime(new Date());
+ statementVO.setUnitPrice(totalPrice);
+ statementVO.setUnit(prtum);
statementVO.setTotalPrice(totalPrice);
- statementVO.setMemo("结算中");
statementVO.setQuotation(quotation);
return true;
}
@@ -1972,22 +1977,12 @@ public class OemStatementServiceImpl extends BaseServiceImpl list) {
- SimpleDateFormat SDF = new SimpleDateFormat("yyyy-MM-dd");
if (list == null || list.isEmpty()) {
return null;
}
return list.stream()
.map(StatementVO::getPutStoreTime)
.filter(Objects::nonNull)
- .filter(s -> !s.isBlank())
- .map(s -> {
- try {
- return SDF.parse(s);
- } catch (ParseException e) {
- return null;
- }
- })
- .filter(Objects::nonNull)
.max(Date::compareTo)
.orElse(null);
}
@@ -1997,6 +1992,12 @@ public class OemStatementServiceImpl extends BaseServiceImpl page = new Page<>();
page.setSize(999);
List statementVOS = baseMapper.selectOemStatementPage(page, mesOemStatement);
+ statementVOS = statementVOS.stream().filter(vo -> {
+ String memo = vo.getMemo();
+ return !"无需结算".equals(memo)
+ && !"重复镀后入库".equals(memo);
+ })
+ .collect(Collectors.toList());
List saves = new ArrayList<>();
BigDecimal price = BigDecimal.ZERO;
if (mesOemStatement.getPrice() != null) {
@@ -2032,6 +2033,17 @@ public class OemStatementServiceImpl extends BaseServiceImpl settlementList = settlement(statementVOS, price, true);
+ settlementList.forEach(vo -> {
+ if (vo.getPutStoreTime() != null) {
+ vo.setPutStoreDate(SDF.format(vo.getPutStoreTime()));
+ }
+ if (vo.getSettleTime() != null) {
+ vo.setSettleDate(SDF.format(vo.getSettleTime()));
+ }
+ if(vo.getRosStatus() != 3){
+ vo.setMemo("");
+ }
+ });
return settlementList;
}
@@ -2136,4 +2148,30 @@ public class OemStatementServiceImpl extends BaseServiceImpl saves = new ArrayList<>();
+ // 查询未生成的结算数据
+ List statementVOS = selectUnsettled(new StatementQuery());
+ if (CollectionUtils.isEmpty(statementVOS)) {
+ return R.fail("没有需要结算的记录");
+ }
+ // 处理重复镀后入库
+ statementVOS = duplicatePutStore(statementVOS, saves);
+ // 处理不结算数据
+ statementVOS = noSettlement(statementVOS);
+ if (CollectionUtils.isEmpty(statementVOS)) {
+ return R.fail("没有需要结算的记录");
+ }
+ // 匹配标准工序代码
+ matchStandardProcess(statementVOS);
+ // 结算处理
+ settlementProcess(statementVOS, saves);
+ if (CollectionUtils.isEmpty(saves)) {
+ return R.fail("没有需要结算的记录");
+ }
+ // 记录结算数据
+ return R.status(this.saveOrUpdateBatch(saves));
+ }
+
}