|
@@ -73,6 +73,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
+import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@@ -452,6 +453,44 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase>
|
|
|
@Override
|
|
|
@DSTransactional
|
|
|
public void edit(PurchaseDto purchaseDto) {
|
|
|
+ this.updateById(purchaseDto);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @DSTransactional
|
|
|
+ public void purchaseCorrect(PurchaseDto purchaseDto) {
|
|
|
+ //获取提交上来的json
|
|
|
+ String dtoPurchaseJsonStr = purchaseDto.getVictoriatouristJson();
|
|
|
+ JSONObject dtoPurchaseJson = ObjectUtil.isEmpty(dtoPurchaseJsonStr) ? new JSONObject() : JSONObject.parseObject(dtoPurchaseJsonStr);
|
|
|
+ //获取提交上来的采购明细
|
|
|
+ List<PurchaseDetail> purchaseDetailList1 = purchaseDto.getPurchaseDetailList();
|
|
|
+ Map<Long, PurchaseDetail> dtoPurchaseDetailMap = purchaseDetailList1.stream().collect(Collectors.toMap(PurchaseDetail::getId, Function.identity()));
|
|
|
+
|
|
|
+ //只能修改 采购明细(单价,总金额),其他费用,运费,优惠,采购总金额
|
|
|
+ Purchase oldPurchase = getById(purchaseDto.getId());
|
|
|
+ String purchaseJsonStr = oldPurchase.getVictoriatouristJson();
|
|
|
+ JSONObject victoriatouristJson = ObjectUtil.isEmpty(purchaseJsonStr) ? new JSONObject() : JSONObject.parseObject(purchaseJsonStr);
|
|
|
+ //采购总金额
|
|
|
+ oldPurchase.setAmount(purchaseDto.getAmount());
|
|
|
+ //其他费用
|
|
|
+ victoriatouristJson.put("otherFeeList", dtoPurchaseJson.getJSONArray("otherFeeList"));
|
|
|
+ //运费
|
|
|
+ victoriatouristJson.put("freight", dtoPurchaseJson.getBigDecimal("freight"));
|
|
|
+ //优惠
|
|
|
+ victoriatouristJson.put("preferential", dtoPurchaseJson.getBigDecimal("preferential"));
|
|
|
+ //写入json
|
|
|
+ oldPurchase.setVictoriatouristJson(victoriatouristJson.toJSONString());
|
|
|
+
|
|
|
+ //采购明细(单价,总金额)
|
|
|
+ List<PurchaseDetail> oldPurchaseDetailList = purchaseDetailService.list(q -> q.eq(PurchaseDetail::getPurchaseId, purchaseDto.getId()));
|
|
|
+ for (PurchaseDetail purchaseDetail : oldPurchaseDetailList) {
|
|
|
+ PurchaseDetail newPurchaseDetail = dtoPurchaseDetailMap.get(purchaseDetail.getId());
|
|
|
+ if(ObjectUtil.isNotEmpty(newPurchaseDetail)) {
|
|
|
+ purchaseDetail.setPrice(newPurchaseDetail.getPrice());
|
|
|
+ purchaseDetail.setAmount(newPurchaseDetail.getAmount());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//记录修改数据前
|
|
|
PurchaseVo detail = detail(purchaseDto.getId());
|
|
|
JSONArray arrays = ObjectUtil.isEmpty(detail.getOldDataJson()) ? new JSONArray() : JSONArray.parse(detail.getOldDataJson());
|
|
@@ -461,11 +500,11 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase>
|
|
|
json.put("version", (arrays.size() + 1));
|
|
|
json.put("data", JSONObject.toJSONString(detail));
|
|
|
arrays.add(json);
|
|
|
- purchaseDto.setOldDataJson(arrays.toJSONString());
|
|
|
+ oldPurchase.setOldDataJson(arrays.toJSONString());
|
|
|
|
|
|
- this.updateById(purchaseDto);
|
|
|
- List<PurchaseDetail> purchaseDetailList = purchaseDto.getPurchaseDetailList();
|
|
|
- purchaseDetailService.updateBatchById(purchaseDetailList);
|
|
|
+ //修改数据
|
|
|
+ this.updateById(oldPurchase);
|
|
|
+ purchaseDetailService.updateBatchById(oldPurchaseDetailList);
|
|
|
}
|
|
|
|
|
|
@Override
|