24282 il y a 1 an
Parent
commit
8e8f083a62

+ 2 - 0
sd-business/src/main/java/com/sd/business/controller/purchase/PurchaseController.java

@@ -1,6 +1,7 @@
 package com.sd.business.controller.purchase;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.flow.enums.FlowStatusEnum;
 import com.ruoyi.common.core.domain.BaseSelectDto;
 import com.sd.business.entity.purchase.dto.PurchaseDto;
 import com.sd.business.entity.purchase.dto.PurchaseSelectDto;
@@ -49,6 +50,7 @@ public class PurchaseController {
      */
     @PostMapping("/add")
     public void add(@RequestBody PurchaseDto purchaseDto) {
+        purchaseDto.setPaymentStatus(FlowStatusEnum.READY_START.getKey());
         purchaseService.add(purchaseDto);
     }
 

+ 30 - 25
sd-business/src/main/java/com/sd/business/flow/PurchaseFlow.java

@@ -1,10 +1,12 @@
 package com.sd.business.flow;
 
-import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fjhx.flow.core.FlowDelegate;
 import com.fjhx.flow.enums.FlowStatusEnum;
+import com.ruoyi.common.core.domain.BaseIdPo;
+import com.ruoyi.common.core.domain.BasePo;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.sd.business.entity.apply.po.ApplyBuy;
 import com.sd.business.entity.apply.po.ApplyBuyBom;
 import com.sd.business.entity.purchase.dto.PurchaseDto;
@@ -19,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -51,22 +54,12 @@ public class PurchaseFlow  extends FlowDelegate {
         purchase.setFlowStatus(PurchaseEnums.IN_PROGRESS.getKey());
         purchase.setFlowId(flowId);
 
-        // 获取到采购bom表的数据
-        List<PurchaseBom> purchaseBomList = purchase.getPurchaseBomList();
-
-        // 添加采购bom表的数据
-        purchaseBomList.forEach(purchaseBom -> purchaseBom.setPurchaseId(purchase.getId()));
-
-        // 判断是否存在采购ID,如果存在说明已经暂存
-        if (ObjectUtil.isNotEmpty(purchase.getId())) {
-            purchaseBomService.editLinked(purchaseBomList, PurchaseBom::getPurchaseId, purchase.getId());
+        if (purchase.getId() == null) {
+            purchaseService.add(purchase);
         } else {
-            purchaseBomService.saveBatch(purchaseBomList);
+            purchaseService.edit(purchase);
         }
 
-        // 更新或修改
-        purchaseService.saveOrUpdate(purchase);
-
         return purchase.getId();
     }
 
@@ -100,19 +93,31 @@ public class PurchaseFlow  extends FlowDelegate {
 
     }
 
-    /**
-     * 流程驳回
-     * @param flowId
-     * @param businessId
-     * @param flowStatus
-     */
+    @Override
+    public void returnToOriginator(Long flowId, Long businessId, FlowStatusEnum flowStatus) {
+        purchaseService.update(q -> q
+                .eq(BaseIdPo::getId, businessId)
+                .set(Purchase::getFlowStatus, flowStatus.getKey())
+                .set(BasePo::getUpdateTime, new Date())
+                .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
+        );
+    }
+
+    @Override
+    public void relaunch(Long flowId, Long businessId, FlowStatusEnum flowStatus, JSONObject submitData) {
+        PurchaseDto purchase = submitData.toJavaObject(PurchaseDto.class);
+        purchase.setFlowStatus(FlowStatusEnum.IN_PROGRESS.getKey());
+        purchaseService.edit(purchase);
+    }
+
     @Override
     public void reject(Long flowId, Long businessId, FlowStatusEnum flowStatus) {
-        Purchase purchase = purchaseService.getById(businessId);
-        purchase.setFlowStatus(PurchaseEnums.REJECTED.getKey());
-        purchase.setFlowId(flowId);
-        //修改采购暂存表的数据
-        purchaseService.updateById(purchase);
+        purchaseService.update(q -> q
+                .eq(BaseIdPo::getId, businessId)
+                .set(Purchase::getFlowStatus, flowStatus.getKey())
+                .set(BasePo::getUpdateTime, new Date())
+                .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
+        );
     }
 
 }

+ 36 - 0
sd-business/src/main/java/com/sd/business/service/purchase/impl/PurchaseServiceImpl.java

@@ -3,6 +3,7 @@ package com.sd.business.service.purchase.impl;
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.constant.StatusConstant;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.sd.business.entity.purchase.dto.PurchaseDto;
 import com.sd.business.entity.purchase.dto.PurchaseSelectDto;
@@ -17,7 +18,9 @@ import com.sd.business.service.purchase.PurchaseBomService;
 import com.sd.business.service.purchase.PurchaseService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
@@ -82,22 +85,55 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase> i
     public PurchaseVo detail(Long id) {
         Purchase Purchase = this.getById(id);
         PurchaseVo result = BeanUtil.toBean(Purchase, PurchaseVo.class);
+
+        List<PurchaseBom> list = purchaseBomService.list(q -> q.eq(PurchaseBom::getPurchaseId, id));
+        List<PurchaseBomVo> purchaseBomList = BeanUtil.copyToList(list, PurchaseBomVo.class);
+        bomSpecService.attributeAssign(purchaseBomList, PurchaseBom::getBomSpecId, (item, bomSpec) -> {
+            item.setBomSpecCode(bomSpec.getCode());
+            item.setBomSpecName(bomSpec.getName());
+            item.setBomSpecColour(bomSpec.getColour());
+            item.setBomSpecLength(bomSpec.getLength());
+            item.setBomSpecWidth(bomSpec.getWidth());
+            item.setBomSpecHeight(bomSpec.getHeight());
+        });
+
+        result.setPurchaseBomList(purchaseBomList);
         return result;
     }
 
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public void add(PurchaseDto purchaseDto) {
+        purchaseDto.setReturnAmount(BigDecimal.ZERO);
+        purchaseDto.setClosedAccountAmount(BigDecimal.ZERO);
+        purchaseDto.setDeductibleAmount(BigDecimal.ZERO);
+        purchaseDto.setPaymentStatus(StatusConstant.NO);
         this.save(purchaseDto);
+
+        List<PurchaseBom> purchaseBomList = purchaseDto.getPurchaseBomList();
+        purchaseBomList.forEach(item -> {
+            item.setPurchaseId(purchaseDto.getId());
+            item.setReturnQuantity(BigDecimal.ZERO);
+            item.setPaidAmount(BigDecimal.ZERO);
+        });
+        purchaseBomService.saveBatch(purchaseBomList);
     }
 
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public void edit(PurchaseDto purchaseDto) {
         this.updateById(purchaseDto);
+
+        List<PurchaseBom> purchaseBomList = purchaseDto.getPurchaseBomList();
+        purchaseBomList.forEach(item -> item.setPurchaseId(purchaseDto.getId()));
+        purchaseBomService.editLinked(purchaseBomList, PurchaseBom::getPurchaseId, purchaseDto.getId());
     }
 
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public void delete(Long id) {
         this.removeById(id);
+        purchaseBomService.remove(q -> q.eq(PurchaseBom::getPurchaseId, id));
     }
 
 }