Bläddra i källkod

2025年1月7日17:27:38

纪新园 1 år sedan
förälder
incheckning
ceb75020b0

+ 7 - 1
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/serial/entity/PjpfSerial.java

@@ -17,6 +17,7 @@
 package org.springblade.salesPart.serial.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModel;
@@ -69,7 +70,12 @@ public class PjpfSerial implements Serializable {
 	 * 版本
 	 */
 	@ApiModelProperty(value = "版本")
-	private String version;
+	private Integer version;
+	/**
+	 * 版本
+	 */
+	@TableField(exist = false)
+	private Integer versionOld;
 	/**
 	 * 租户id
 	 */

+ 4 - 4
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/PjIntegralDetailMapper.xml

@@ -33,7 +33,7 @@
         FROM
         business_integral_detail
         WHERE
-        id = corp_id
+        pcd.id = corp_id
         AND is_deleted = '0'
         AND tenant_id = '883868'
         AND FIND_IN_SET( type, '购买获取,撤销兑换' )) AS addPoints,
@@ -43,7 +43,7 @@
         FROM
         business_integral_detail
         WHERE
-        id = corp_id
+        pcd.id = corp_id
         AND is_deleted = '0'
         AND tenant_id = '883868'
         AND FIND_IN_SET( type, '积分退回,积分兑换' )) AS subPoints
@@ -69,7 +69,7 @@
         FROM
         business_integral_detail
         WHERE
-        id = corp_id
+        pcd.id = corp_id
         AND is_deleted = '0'
         AND tenant_id = '883868'
         AND FIND_IN_SET( type, '购买获取,撤销兑换' )) AS addPoints,
@@ -79,7 +79,7 @@
         FROM
         business_integral_detail
         WHERE
-        id = corp_id
+        pcd.id = corp_id
         AND is_deleted = '0'
         AND tenant_id = '883868'
         AND FIND_IN_SET( type, '积分退回,积分兑换' )) AS subPoints

+ 15 - 2
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/PjIntegralDetailServiceImpl.java

@@ -30,6 +30,7 @@ import org.springblade.salesPart.order.service.IPjIntegralDetailService;
 import org.springblade.salesPart.vo.PjIntegralDetailVO;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -79,7 +80,13 @@ public class PjIntegralDetailServiceImpl extends ServiceImpl<PjIntegralDetailMap
 			.apply("find_in_set(type,'购买获取,撤销兑换')")
 			.orderByDesc(PjIntegralDetail::getCreateTime);
 		List<PjIntegralDetail> integralDetailListA = baseMapper.selectList(lambdaQueryWrapperA);
-		detail.setIntegralDetailListA(integralDetailListA.isEmpty() ? new ArrayList<>() : integralDetailListA);
+		if (!integralDetailListA.isEmpty()) {
+			detail.setAddPoints(integralDetailListA.stream().map(PjIntegralDetail::getIntegral).reduce(BigDecimal.ZERO, BigDecimal::add));
+			detail.setIntegralDetailListA(integralDetailListA);
+		} else {
+			detail.setAddPoints(new BigDecimal("0.00"));
+			detail.setIntegralDetailListA(new ArrayList<>());
+		}
 		LambdaQueryWrapper<PjIntegralDetail> lambdaQueryWrapperS = new LambdaQueryWrapper<>();
 		lambdaQueryWrapperS.eq(PjIntegralDetail::getIsDeleted, 0)
 			.eq(PjIntegralDetail::getTenantId, AuthUtil.getTenantId())
@@ -87,7 +94,13 @@ public class PjIntegralDetailServiceImpl extends ServiceImpl<PjIntegralDetailMap
 			.apply("find_in_set(type,'积分退回,积分兑换')")
 			.orderByDesc(PjIntegralDetail::getCreateTime);
 		List<PjIntegralDetail> integralDetailListS = baseMapper.selectList(lambdaQueryWrapperS);
-		detail.setIntegralDetailListS(integralDetailListS.isEmpty() ? new ArrayList<>() : integralDetailListS);
+		if (!integralDetailListS.isEmpty()) {
+			detail.setSubPoints(integralDetailListS.stream().map(PjIntegralDetail::getIntegral).reduce(BigDecimal.ZERO, BigDecimal::add));
+			detail.setIntegralDetailListS(integralDetailListS);
+		} else {
+			detail.setSubPoints(new BigDecimal("0.00"));
+			detail.setIntegralDetailListS(new ArrayList<>());
+		}
 		return detail;
 	}
 

+ 1 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/serial/mapper/PjpfSerialMapper.java

@@ -62,4 +62,5 @@ public interface PjpfSerialMapper extends BaseMapper<PjpfSerial> {
 	@SqlParser(filter=true)
 	int insertPjpfSerialMessage(PjpfSerial serial);
 
+	int updateSerialById(@Param("serial") PjpfSerial serial);
 }

+ 5 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/serial/mapper/PjpfSerialMapper.xml

@@ -55,6 +55,11 @@
         </trim>
         where id = #{id}
     </update>
+    <update id="updateSerialById">
+        update  basic_serial
+        set serial = #{serial.serial},version = #{serial.version}
+        where id = #{serial.id} and version = #{serial.versionOld}
+    </update>
     <insert id="insertSerialMessage" parameterType="org.springblade.salesPart.serial.entity.PjpfSerial" useGeneratedKeys="true">
         insert into basic_serial
         <trim prefix="(" suffix=")" suffixOverrides=",">

+ 39 - 18
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/serial/service/impl/PjpfSerialServiceImpl.java

@@ -85,17 +85,24 @@ public class PjpfSerialServiceImpl extends ServiceImpl<PjpfSerialMapper, PjpfSer
 			yyyyMM = DateFormatUtils.format(date, "yyMMdd");
 			if (serial != null) {
 				serial.setSerial(serial.getSerial() + 1);
-				baseMapper.updateById(serial);
-				if (serial.getSerial() <= 9) {
-					billNo = "00" + serial.getSerial() + "-" + yyyyMM;
-				} else if (serial.getSerial() <= 99) {
-					billNo = "0" + serial.getSerial() + "-" + yyyyMM;
+				serial.setVersionOld(serial.getVersion());
+				serial.setVersion(serial.getVersion() + 1);
+				int count = baseMapper.updateSerialById(serial);
+				if (count != 0) {
+					if (serial.getSerial() <= 9) {
+						billNo = "00" + serial.getSerial() + "-" + yyyyMM;
+					} else if (serial.getSerial() <= 99) {
+						billNo = "0" + serial.getSerial() + "-" + yyyyMM;
+					} else {
+						billNo = "" + serial.getSerial() + "-" + yyyyMM;
+					}
 				} else {
-					billNo = "" + serial.getSerial() + "-" + yyyyMM;
+					throw new RuntimeException("生成单号失败,请稍后再试");
 				}
 			} else {
 				billNo = "001-" + yyyyMM;
 				billNoSerial.setSerial(1);
+				billNoSerial.setVersion(0);
 				baseMapper.insert(billNoSerial);
 			}
 		} else if (tradeType.equals("YPJ")) {
@@ -106,33 +113,47 @@ public class PjpfSerialServiceImpl extends ServiceImpl<PjpfSerialMapper, PjpfSer
 			}
 			if (serial != null) {
 				serial.setSerial(serial.getSerial() + 1);
-				baseMapper.updateById(serial);
-				if (serial.getSerial() <= 9) {
-					billNo = yyyyMM + "00" + serial.getSerial();
-				} else if (serial.getSerial() <= 99) {
-					billNo = yyyyMM + "0" + serial.getSerial();
+				serial.setVersionOld(serial.getVersion());
+				serial.setVersion(serial.getVersion() + 1);
+				int count = baseMapper.updateSerialById(serial);
+				if (count != 0) {
+					if (serial.getSerial() <= 9) {
+						billNo = yyyyMM + "00" + serial.getSerial();
+					} else if (serial.getSerial() <= 99) {
+						billNo = yyyyMM + "0" + serial.getSerial();
+					} else {
+						billNo = yyyyMM + "" + serial.getSerial();
+					}
 				} else {
-					billNo = yyyyMM + "" + serial.getSerial();
+					throw new RuntimeException("生成单号失败,请稍后再试");
 				}
 			} else {
 				billNo = yyyyMM + "001";
 				billNoSerial.setSerial(1);
+				billNoSerial.setVersion(0);
 				baseMapper.insert(billNoSerial);
 			}
 		} else {
 			if (serial != null) {
 				serial.setSerial(serial.getSerial() + 1);
-				baseMapper.updateById(serial);
-				if (serial.getSerial() <= 9) {
-					billNo = yyyyMM + "00" + serial.getSerial();
-				} else if (serial.getSerial() <= 99) {
-					billNo = yyyyMM + "0" + serial.getSerial();
+				serial.setVersionOld(serial.getVersion());
+				serial.setVersion(serial.getVersion() + 1);
+				int count = baseMapper.updateSerialById(serial);
+				if (count != 0) {
+					if (serial.getSerial() <= 9) {
+						billNo = yyyyMM + "00" + serial.getSerial();
+					} else if (serial.getSerial() <= 99) {
+						billNo = yyyyMM + "0" + serial.getSerial();
+					} else {
+						billNo = yyyyMM + "" + serial.getSerial();
+					}
 				} else {
-					billNo = yyyyMM + "" + serial.getSerial();
+					throw new RuntimeException("生成单号失败,请稍后再试");
 				}
 			} else {
 				billNo = yyyyMM + "001";
 				billNoSerial.setSerial(1);
+				billNoSerial.setVersion(0);
 				baseMapper.insert(billNoSerial);
 			}
 		}

+ 3 - 3
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/statistics/service/impl/StatisticsServiceImpl.java

@@ -617,7 +617,7 @@ public class StatisticsServiceImpl implements IStatisticsService {
 							items.setFreight(new BigDecimal("0.00"));
 							items.setCostprie(new BigDecimal("0.00"));
 						} else {
-							if ("TKXS".equals(item.getBsType())) {
+							if ("TKXS".equals(item.getBsType()) || "TKCG".equals(item.getBsType())) {
 								if (amount.compareTo(items.getSubTotalMoney().abs()) >= 0) {
 									items.setBalanceAmount(new BigDecimal("0.00"));
 									amount = amount.subtract(items.getSubTotalMoney().abs());
@@ -705,7 +705,7 @@ public class StatisticsServiceImpl implements IStatisticsService {
 						if ("已取消".equals(items.getStatus())) {
 							items.setBalanceAmount(new BigDecimal("0.00"));
 						} else {
-							if ("TKXS".equals(item.getBsType())) {
+							if ("TKXS".equals(item.getBsType()) || "TKCG".equals(item.getBsType())) {
 								items.setGoodsNum(new BigDecimal("0.00").subtract(items.getReturnsNumber()));
 								items.setSubTotalMoney(new BigDecimal("0.00").subtract(items.getReturnsAmount()));
 //								items.setFreight(new BigDecimal("0.00").subtract(items.getFreight()));
@@ -933,7 +933,7 @@ public class StatisticsServiceImpl implements IStatisticsService {
 							items.setFreight(new BigDecimal("0.00"));
 							items.setCostprie(new BigDecimal("0.00"));
 						} else {
-							if ("TKXS".equals(item.getBsType())) {
+							if ("TKXS".equals(item.getBsType()) || "TKCG".equals(item.getBsType())) {
 								if (amount.compareTo(items.getSubTotalMoney().abs()) >= 0) {
 									items.setBalanceAmount(new BigDecimal("0.00"));
 									amount = amount.subtract(items.getSubTotalMoney().abs());