|
@@ -8,7 +8,9 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.fjhx.common.constant.SourceConstant;
|
|
|
import com.fjhx.common.enums.CodingRuleEnum;
|
|
|
+import com.fjhx.common.enums.FlowStatusEnum1;
|
|
|
import com.fjhx.common.service.coding.CodingRuleService;
|
|
|
+import com.fjhx.common.utils.Assert;
|
|
|
import com.fjhx.flow.core.FlowDelegate;
|
|
|
import com.fjhx.flow.enums.FlowStatusEnum;
|
|
|
import com.fjhx.purchase.entity.sales.enums.SalesReturnDetailStatusEnum;
|
|
@@ -22,7 +24,9 @@ import com.fjhx.wms.entity.stock.po.StockWait;
|
|
|
import com.fjhx.wms.entity.stock.po.StockWaitDetails;
|
|
|
import com.fjhx.wms.service.stock.StockWaitDetailsService;
|
|
|
import com.fjhx.wms.service.stock.StockWaitService;
|
|
|
+import com.ruoyi.common.core.domain.BasePo;
|
|
|
import com.ruoyi.common.exception.ServiceException;
|
|
|
+import com.ruoyi.common.utils.SecurityUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
@@ -46,6 +50,11 @@ public class SalesReturnFlow extends FlowDelegate {
|
|
|
@Autowired
|
|
|
private CodingRuleService codingRuleService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SalesReturnService salesReturnService;
|
|
|
+ @Autowired
|
|
|
+ private SalesReturnDetailService salesReturnDetailService;
|
|
|
+
|
|
|
@Override
|
|
|
public String getFlowKey() {
|
|
|
return "sales_return_flow";
|
|
@@ -61,20 +70,36 @@ public class SalesReturnFlow extends FlowDelegate {
|
|
|
*/
|
|
|
@Override
|
|
|
public Long start(Long flowId, JSONObject submitData) {
|
|
|
- SalesReturnService salesReturnService = SpringUtil.getBean(SalesReturnService.class);
|
|
|
- SalesReturnDetailService salesReturnDetailService = SpringUtil.getBean(SalesReturnDetailService.class);
|
|
|
+
|
|
|
SalesReturn salesReturn = submitData.toJavaObject(SalesReturn.class);
|
|
|
-// salesReturn.setCode(CodeEnum.SALES_RETURN.getCode());
|
|
|
- salesReturn.setCode(codingRuleService.createCode(CodingRuleEnum.SALES_RETURN.getKey(),null));
|
|
|
- salesReturnService.save(salesReturn);
|
|
|
+ salesReturn.setCode(codingRuleService.createCode(CodingRuleEnum.SALES_RETURN.getKey(), null));
|
|
|
+ salesReturn = commStart(salesReturn, 0);
|
|
|
+
|
|
|
+ return salesReturn.getId();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 开始公共代码抽取
|
|
|
+ *
|
|
|
+ * @param opType 操作类型 0直接发起 1重新发起
|
|
|
+ */
|
|
|
+ private SalesReturn commStart(SalesReturn salesReturn, Integer opType) {
|
|
|
+ if (opType == 1) {
|
|
|
+ Assert.notEmpty(salesReturn.getId(), "采购付款id不能为空");
|
|
|
+ }
|
|
|
+ salesReturnService.saveOrUpdate(salesReturn);
|
|
|
List<SalesReturnDetail> salesReturnDetailList = salesReturn.getSalesReturnDetailList();
|
|
|
if (CollectionUtils.isNotEmpty(salesReturnDetailList)) {
|
|
|
+ if (opType == 1) {
|
|
|
+ //先删除被删除的产品
|
|
|
+ salesReturnDetailService.editLinked(salesReturnDetailList, SalesReturnDetail::getSalesReturnId, salesReturn.getId());
|
|
|
+ }
|
|
|
for (SalesReturnDetail s : salesReturnDetailList) {
|
|
|
s.setSalesReturnId(salesReturn.getId());
|
|
|
}
|
|
|
- salesReturnDetailService.saveBatch(salesReturnDetailList);
|
|
|
+ salesReturnDetailService.saveOrUpdateBatch(salesReturnDetailList);
|
|
|
}
|
|
|
- return salesReturn.getId();
|
|
|
+ return salesReturn;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -126,7 +151,20 @@ public class SalesReturnFlow extends FlowDelegate {
|
|
|
|
|
|
@Override
|
|
|
public void defaultMethod(Long flowId, Long businessId, FlowStatusEnum flowStatusEnum, JSONObject submitData) {
|
|
|
-
|
|
|
+ //重新发起
|
|
|
+ if (FlowStatusEnum.READY_START.equals(flowStatusEnum)) {
|
|
|
+ SalesReturn salesReturn = submitData.toJavaObject(SalesReturn.class);
|
|
|
+ commStart(salesReturn, 1);
|
|
|
+ }
|
|
|
+ //驳回
|
|
|
+ if (FlowStatusEnum.REJECT.equals(flowStatusEnum)) {
|
|
|
+ salesReturnService.update(q -> q
|
|
|
+ .eq(SalesReturn::getId, businessId)
|
|
|
+ .set(SalesReturn::getStatus, FlowStatusEnum1.REJECT.getKey())
|
|
|
+ .set(BasePo::getUpdateTime, new Date())
|
|
|
+ .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
|
|
|
+ );
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
}
|