diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/PriceSheetVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/PriceSheetVO.java
index b95e0232f..67ed282e9 100644
--- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/PriceSheetVO.java
+++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/PriceSheetVO.java
@@ -138,7 +138,7 @@ public class PriceSheetVO {
* 镀种描述
*/
@Schema(description = "镀种描述")
- private String coating_desc;
+ private String coatingDesc;
/**
* 阶梯价计量单位
*/
@@ -146,6 +146,9 @@ public class PriceSheetVO {
private String stairunit;
@Schema(description = "金银价格")
- private String au_ag_price;
+ private String auAgPrice;
+
+ @Schema(description = "标准工艺代码")
+ private String standardProcessCode;
}
diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/PriceMatcher.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/PriceMatcher.java
index aaa6c1348..38b1109ee 100644
--- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/PriceMatcher.java
+++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/PriceMatcher.java
@@ -89,6 +89,53 @@ public class PriceMatcher {
return false;
}
+
+ /**
+ * 判断备注是否包含目标价格
+ */
+ private static boolean containsPriceNew(String remark, BigDecimal targetPrice) {
+ if(StringUtils.isEmpty(remark)){
+ return false;
+ }
+ // 正则表达式匹配价格范围或单价
+ // 匹配如:350.01-360、467.5、100.5-200.8
+ String regex = "(\\d+(?:\\.\\d+)?)(?:,(\\d+(?:\\.\\d+)?))?";
+ Pattern pattern = Pattern.compile(regex);
+ Matcher matcher = pattern.matcher(remark);
+
+ while (matcher.find()) {
+ String startPriceStr = matcher.group(1);
+ String endPriceStr = matcher.group(2);
+
+ try {
+ if (endPriceStr != null) {
+ // 价格范围,如 "350.01-360"
+ BigDecimal startPrice = new BigDecimal(startPriceStr);
+ BigDecimal endPrice = new BigDecimal(endPriceStr);
+
+ // 检查目标价格是否在范围内
+ if (targetPrice.compareTo(startPrice) >= 0 &&
+ targetPrice.compareTo(endPrice) <= 0) {
+ return true;
+ }
+ } else {
+ // 单一价格,如 "467.5"
+ BigDecimal singlePrice = new BigDecimal(startPriceStr);
+
+ // 检查目标价格是否等于这个价格
+ if (targetPrice.compareTo(singlePrice) == 0) {
+ return true;
+ }
+ }
+ } catch (NumberFormatException e) {
+ // 解析失败,跳过这个匹配
+ continue;
+ }
+ }
+
+ return false;
+ }
+
/**
* 使用Stream API的版本
*/
@@ -111,6 +158,6 @@ public class PriceMatcher {
* @return
*/
public static boolean isContainsPrice(String remark, BigDecimal targetPrice) {
- return containsPrice(remark, targetPrice);
+ return containsPriceNew(remark, targetPrice);
}
}
diff --git a/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StRealtimeStock.java b/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StRealtimeStock.java
index 5b93c38af..9c9bc195f 100644
--- a/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StRealtimeStock.java
+++ b/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StRealtimeStock.java
@@ -69,8 +69,8 @@ public class StRealtimeStock extends TenantEntity {
/**
* 过期/报废日期
*/
- @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(description = "过期/报废日期")
private Date scrapCycle;
/**
@@ -194,6 +194,12 @@ public class StRealtimeStock extends TenantEntity {
@Schema(description = "出库数量")
private Double outQuantity;
+ /**
+ * 是否量具保养 0否 1是
+ */
+ @Schema(description = "是否量具保养 0否 1是")
+ private Integer isMeasureMaintenance;
+
@TableField(exist = false)
private Long outRecordId;
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/MeasuringUpkeepMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/MeasuringUpkeepMapper.xml
index b2523fad2..db601271a 100644
--- a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/MeasuringUpkeepMapper.xml
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/MeasuringUpkeepMapper.xml
@@ -93,6 +93,7 @@
+
@@ -104,14 +105,12 @@
st.sl_id,
st.pi_no,
st.quantity,
- st.quantity_level,
st.balance_money,
st.sum_num,
+ st.stay_maintain_num,
g.goods_name,
- g.goods_code,
g.specifications,
sh.sh_name,
- sl.location,
CASE
WHEN mmu.status = 0 THEN '新建'
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 4806fd8d2..5908c55c4 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
@@ -827,9 +827,9 @@ public class OemStatementServiceImpl extends BaseServiceImpl> coatingDescPriceSheetMap = priceSheetList.stream().filter(priceSheet -> {
- String coatingDesc = priceSheet.getCoating_desc();
+ String coatingDesc = priceSheet.getCoatingDesc();
return coatingDesc != null && !coatingDesc.trim().isEmpty() && ("涂色标".equals(coatingDesc) || "涂色带".equals(coatingDesc) || "涂箭头".equals(coatingDesc));
- }).collect(Collectors.groupingBy(PriceSheetVO::getCoating_desc, Collectors.toList()));
+ }).collect(Collectors.groupingBy(PriceSheetVO::getCoatingDesc, Collectors.toList()));
// 如果没有任何报价记录
if (coatingDescPriceSheetMap.isEmpty()) {
//结算异常:无报价记录结算结果
@@ -1759,7 +1759,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl colorPriceSheetVOS = new ArrayList<>();
for (PriceSheetVO sheet : priceSheetList) {
- boolean match = StringUtils.equals(sheet.getSplycode(), ocCode)
- // TODO 报价单标准工艺代码没加
- && StringUtils.equals(sheet.getWono(), standardProcessCode);
+ boolean match = StringUtils.equals(sheet.getSplycode(), ocCode) && StringUtils.equals(sheet.getStandardProcessCode(), standardProcessCode);
if (match && price != null && price.compareTo(BigDecimal.ZERO) != 0) {
- match = PriceMatcher.isContainsPrice(sheet.getAu_ag_price(), price);
+ match = PriceMatcher.isContainsPrice(sheet.getAuAgPrice(), price);
}
if (match) {
if (hasColorCount(statementVO)) {
@@ -2003,9 +1997,9 @@ public class OemStatementServiceImpl extends BaseServiceImpl> coatingDescPriceSheetMap = priceSheetList.stream().filter(priceSheet -> {
- String coatingDesc = priceSheet.getCoating_desc();
+ String coatingDesc = priceSheet.getCoatingDesc();
return coatingDesc != null && !coatingDesc.trim().isEmpty() && ("涂色标".equals(coatingDesc) || "涂色带".equals(coatingDesc) || "涂箭头".equals(coatingDesc));
- }).collect(Collectors.groupingBy(PriceSheetVO::getCoating_desc, Collectors.toList()));
+ }).collect(Collectors.groupingBy(PriceSheetVO::getCoatingDesc, Collectors.toList()));
// 如果没有任何报价记录
if (coatingDescPriceSheetMap.isEmpty()) {
return false;
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/mapper/ProjectMilestoneMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/mapper/ProjectMilestoneMapper.xml
index e184ae67b..60fc6fe5d 100644
--- a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/mapper/ProjectMilestoneMapper.xml
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/mapper/ProjectMilestoneMapper.xml
@@ -75,6 +75,7 @@
AND a.milestone_node to_date(concat(#{fmProjectMilestone.milestoneNodeEnd},' 23:59:59'),'YYYY-MM-DD HH24:MI:SS')
+ and b.APPROVAL_STATUS not in ('0','1','2')
order by a.update_time desc
diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataOemMapper.xml b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataOemMapper.xml
index 0b2a183c0..37d35a0ba 100644
--- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataOemMapper.xml
+++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataOemMapper.xml
@@ -5,7 +5,10 @@