diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/PurchaseDetailMapper.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/PurchaseDetailMapper.java
index f6a85a52..6d0b3b83 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/PurchaseDetailMapper.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/PurchaseDetailMapper.java
@@ -54,4 +54,6 @@ public interface PurchaseDetailMapper extends BaseMapper
{
* @return List
*/
List getPurchaseDetailListByProductIds(@Param("productIdList") List productIdList,@Param("id") String id);
+
+ void realDeleteByPurchaseId(@Param("purchaseId") String purchaseId);
}
\ No newline at end of file
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/StockLogMapper.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/StockLogMapper.java
index e91c764a..af52e705 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/StockLogMapper.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/StockLogMapper.java
@@ -45,4 +45,6 @@ public interface StockLogMapper extends BaseMapper {
List getPurchaseDetails(@Param("purchaseIdList") List purchaseIdList);
List getByProductIds(@Param("purchaseId") String purchaseId,@Param("productIdList") List productIdList);
+
+ void realDeleteByPurchaseId(@Param("purchaseId") String purchaseId);
}
\ No newline at end of file
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/PurchaseDetail.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/PurchaseDetail.java
index e974bf6f..5d16139c 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/PurchaseDetail.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/PurchaseDetail.java
@@ -98,6 +98,10 @@ public class PurchaseDetail extends HiverBaseEntity {
@ApiModelProperty(value = "璇嗗埆鍥剧墖id")
private String ocrPicturePath;
+
+ @ApiModelProperty(value = "鎺掑簭")
+ private Integer sort;
+
@Transient
@TableField(exist = false)
@ApiModelProperty(value = "鍏ュ簱鍟嗗搧瑙勬牸鏄庣粏琛")
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/PurchaseOcrVo.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/PurchaseOcrVo.java
index 11b76a67..f130493a 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/PurchaseOcrVo.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/PurchaseOcrVo.java
@@ -21,6 +21,9 @@ public class PurchaseOcrVo {
@ApiModelProperty(value = "鏁伴噺")
private Integer productCount;
+ @ApiModelProperty(value = "鎺掑簭")
+ private Integer sort;
+
@ApiModelProperty(value = "鍗曚綅")
private CopyOnWriteArrayList attributeList;
}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/PurchaseDetailService.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/PurchaseDetailService.java
index 2ed062da..8fcabc44 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/PurchaseDetailService.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/PurchaseDetailService.java
@@ -21,6 +21,8 @@ public interface PurchaseDetailService extends IService {
void deleteByPurchaseId(String purchaseId);
+ void realDeleteByPurchaseId(String purchaseId);
+
List getPurchaseDetails(List purchaseIdList);
/**
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/StockLogService.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/StockLogService.java
index d903a5fb..c6eb9390 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/StockLogService.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/StockLogService.java
@@ -25,4 +25,6 @@ public interface StockLogService extends IService {
* @return List
*/
List getByProductIds(String purchaseId, String productIds);
+
+ void realDeleteByPurchaseId(String purchaseId);
}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/PurchaseDetailServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/PurchaseDetailServiceImpl.java
index bd63197f..ac6cc886 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/PurchaseDetailServiceImpl.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/PurchaseDetailServiceImpl.java
@@ -82,6 +82,11 @@ public class PurchaseDetailServiceImpl extends ServiceImpl getPurchaseDetails(List purchaseIdList) {
return purchaseDetailMapper.getPurchaseDetails(purchaseIdList);
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/PurchaseServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/PurchaseServiceImpl.java
index 1c615b2e..3d98cd95 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/PurchaseServiceImpl.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/PurchaseServiceImpl.java
@@ -436,7 +436,7 @@ public class PurchaseServiceImpl extends ServiceImpl i
stockLogMap.put(mapKey, stockLogs);
}
}
- final Map> purchaseDetailMap = new HashMap<>();
+ final LinkedHashMap> purchaseDetailMap = new LinkedHashMap<>();
for (PurchaseDetail purchaseDetail : purchaseDetails) {
// 杩欓噷瀵筽urchaseDetail鍋氫釜鍚堝苟澶勭悊锛屼紭鍏堟牴鎹晢鍝乮d鍒嗙粍锛屽鏋滃晢鍝乮d涓虹┖锛岄偅灏卞氨鏍规嵁鍟嗗搧璐у彿鍒嗙粍锛屽鏋滃晢鍝佽揣鍙蜂负绌猴紝鍒欐牴鎹晢鍝佸悕绉板垎缁勶紝
// 閲嶅鐨勭洿鎺ヨ鐩栧嵆鍙
@@ -651,7 +651,7 @@ public class PurchaseServiceImpl extends ServiceImpl i
for (PurchaseDetail purchaseDetail : byPurchaseIdList) {
productIdList.add(purchaseDetail.getProductId());
}
- // 鏌ヨ璇ュ晢鍝侀櫎褰撳墠鍏ュ簱鍗曠殑鍏朵粬鐨勫叆搴撹褰
+ // 鏌ヨ璇ュ晢鍝侀櫎褰撳墠鍏ュ簱鍗曠殑鍏朵粬鐨勫叆搴撹褰曪紝鐢ㄤ簬璁$畻骞冲潎閲囪喘浠
final List purductPurchaseList = purchaseDetailService.getPurchaseDetailListByProductIds(productIdList, id);
// 灏佽涓哄晢鍝乮d涓簁ey,List涓簐alue 鐨刴ap
final Map> purductPurchaseMap = new HashMap<>();
@@ -665,59 +665,15 @@ public class PurchaseServiceImpl extends ServiceImpl i
purductPurchaseMap.put(productId, purchaseDetails);
}
}
- // 鏌ヨ璇ュ晢鍝佺殑閿鍞褰
- final List purductSaleList = saleDetailService.getSaleDetailListByProductIds(productIdList);
- // 灏佽涓哄晢鍝乮d涓簁ey,List涓簐alue 鐨刴ap
- final Map> purductSaleMap = new HashMap<>();
- for (SaleDetail saleDetail : purductSaleList) {
- final String productId = saleDetail.getProductId();
- if (purductSaleMap.containsKey(productId)) {
- purductSaleMap.get(productId).add(saleDetail);
- } else {
- final List saleDetails = new ArrayList<>();
- saleDetails.add(saleDetail);
- purductSaleMap.put(productId, saleDetails);
- }
- }
- //
- final StringJoiner needDeleteProductId = new StringJoiner(",");
- final StringJoiner needDeleteStockProductId = new StringJoiner(",");
- final StringJoiner needReduceStockProductId = new StringJoiner(",");
-
- for (PurchaseDetail purchaseDetail : byPurchaseIdList) {
- final String productId = purchaseDetail.getProductId();
- if (!purductPurchaseMap.containsKey(productId) && !purductSaleMap.containsKey(productId)) {
- // 鍙互鍒犻櫎鍟嗗搧鐨勭浉鍏充俊鎭
- needDeleteProductId.add(productId);
- // 搴撳瓨鍒犻櫎
- needDeleteStockProductId.add(productId);
- } else {
- // 鍟嗗搧淇濈暀,搴撳瓨鎵e噺
- needReduceStockProductId.add(productId);
- }
+ final List stockLogList = stockLogService.getByPurchaseId(id);
+ // 鏍规嵁鍏ュ簱璁板綍鍑忔帀搴撳瓨鏁
+ stockService.batchReduceStockByLog(stockLogList);
- }
- // 鎵ц鍒犻櫎鍟嗗搧
- if (StringUtils.isNotEmpty(needDeleteProductId.toString())) {
- productService.batchDeleteProduct(needDeleteProductId.toString());
- }
- // 鎵ц鍒犻櫎搴撳瓨
- if (StringUtils.isNotEmpty(needReduceStockProductId.toString())) {
- stockService.batchDeleteStockByProductIds(needDeleteStockProductId.toString());
- }
- // 鎵ц鎵e噺搴撳瓨
- if (StringUtils.isNotEmpty(needReduceStockProductId.toString())) {
- // 鑾峰彇褰撳墠鍏ュ簱鍗曞悇鍟嗗搧鐨勮鏍煎強鏁伴噺淇℃伅
- final List stockLogList = stockLogService.getByProductIds(id, needReduceStockProductId.toString());
- // 鏍规嵁鍏ュ簱璁板綍鍑忔帀搴撳瓨鏁
- stockService.batchReduceStockByLog(stockLogList);
- }
// 4. 鏍规嵁閲囪喘鍗昳d鍒犻櫎搴撳瓨璁板綍
stockLogService.deleteByPurchaseId(id);
// 5. 璁$畻骞冲潎閲囪喘浠
// 鑾峰彇璇ュ晢鍝佺殑鍘嗘鍏ュ簱璁板綍锛屾帓闄ゆ帀鏈鍏ュ簱璁板綍 鍏ュ簱鐨勪环鏍*鍏ュ簱鏁伴噺/鍏ュ簱鎬绘暟閲
- final Map productPurchasePriceMap = new HashMap<>();
final List productList = new ArrayList<>();
for (Map.Entry> stringListEntry : purductPurchaseMap.entrySet()) {
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/StockLogServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/StockLogServiceImpl.java
index 3ccab6fe..b81fed99 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/StockLogServiceImpl.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/StockLogServiceImpl.java
@@ -57,4 +57,9 @@ public class StockLogServiceImpl extends ServiceImpl i
return stockLogMapper.getByProductIds(purchaseId, productIdList);
}
+ @Override
+ public void realDeleteByPurchaseId(String purchaseId) {
+ stockLogMapper.realDeleteByPurchaseId(purchaseId);
+ }
+
}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/StockServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/StockServiceImpl.java
index 860c67a0..7d2b0e59 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/StockServiceImpl.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/StockServiceImpl.java
@@ -736,9 +736,9 @@ public class StockServiceImpl extends ServiceImpl implements
insertFlag = false;
}
- // 鍏堟牴鎹叆搴撳崟id 鍒犻櫎璇︽儏鍙婂簱瀛樺饱鍘嗚〃淇℃伅
- purchaseDetailService.deleteByPurchaseId(purchaseId);
- stockLogService.deleteByPurchaseId(purchaseId);
+ // 鍏堟牴鎹叆搴撳崟id 鍒犻櫎璇︽儏鍙婂簱瀛樺饱鍘嗚〃淇℃伅(鐪熷垹闄)
+ purchaseDetailService.realDeleteByPurchaseId(purchaseId);
+ stockLogService.realDeleteByPurchaseId(purchaseId);
// 鑾峰彇鍓嶅彴鍏ュ簱鍟嗗搧淇℃伅
final List purchaseDetails = purchaseVo.getPurchaseDetails();
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/utils/AliOcrUtil.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/utils/AliOcrUtil.java
index 68cf0efd..b23b6d2c 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/utils/AliOcrUtil.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/utils/AliOcrUtil.java
@@ -654,6 +654,7 @@ public class AliOcrUtil {
}
purchaseOcrVo.setAttributeList(attributeList);
+ purchaseOcrVo.setSort(i);
purchaseOcrVos.add(purchaseOcrVo);
// 澶勭悊褰撳墠璇嗗埆鐨勮揣鍙峰強鍚嶇О锛岀幇鍦ㄩ渶瑕佺壒娈婂鐞嗙殑 鏄揣鍙凤細鍘绘帀鈥/鈥濓紝鎴栬呮槸鈥/"鍦ㄨ揣鍙锋垨鑰呭悕绉颁腑闂寸殑锛岄渶瑕佸垎闅斾负璐у彿鍙婂悕绉
@@ -809,6 +810,7 @@ public class AliOcrUtil {
}
stockLogList.add(stockLog);
purchaseDetail.setStockLogList1(stockLogList);
+ purchaseDetail.setSort(purchaseOcrVo.getSort());
// 濡傛灉璐у彿涓虹┖锛岄偅涔堝氨鎷垮晢鍝佸悕绉颁綔涓簁ey
purchaseDetailMap.put(StringUtils.isEmpty(productSn) ? productName : productSn, purchaseDetail);
}
diff --git a/hiver-modules/hiver-mall/src/main/resources/mapper/PurchaseDetailMapper.xml b/hiver-modules/hiver-mall/src/main/resources/mapper/PurchaseDetailMapper.xml
index d4119787..3454961b 100644
--- a/hiver-modules/hiver-mall/src/main/resources/mapper/PurchaseDetailMapper.xml
+++ b/hiver-modules/hiver-mall/src/main/resources/mapper/PurchaseDetailMapper.xml
@@ -30,6 +30,7 @@
+
@@ -93,7 +94,7 @@
id, create_by, create_time, del_flag, update_by, update_time, purchase_id, product_id,
product_name, unit, shop_id, category_id, attribute_list, supplier_id,supplier_name, product_sn,
barcode, price, purchase_price, wholesale_price, product_picture, product_video,
- product_intro, sales_week, tail_warn, print_barcode, product_count,ocr_picture_path
+ product_intro, sales_week, tail_warn, print_barcode, product_count,ocr_picture_path,sort