|
@@ -43,13 +43,17 @@ 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.BaseIdPo;
|
|
|
+import com.ruoyi.common.core.domain.BasePo;
|
|
|
import com.ruoyi.common.exception.ServiceException;
|
|
|
+import com.ruoyi.common.utils.SecurityUtils;
|
|
|
import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.function.Function;
|
|
@@ -124,46 +128,48 @@ public class ArrivalServiceImpl extends ServiceImpl<ArrivalMapper, Arrival> impl
|
|
|
@DSTransactional
|
|
|
@Override
|
|
|
public void add(Arrival arrival) {
|
|
|
+
|
|
|
arrival.setCode(codingRuleService.createCode(CodingRuleEnum.ARRIVAL.getKey(), null));
|
|
|
-// arrival.setCode(CodeEnum.ARRIVAL.getCode());
|
|
|
this.save(arrival);
|
|
|
- //修改采购状态
|
|
|
- Purchase purchase = new Purchase();
|
|
|
- purchase.setArrivalStatus(arrival.getArrivalStatus());
|
|
|
- purchase.setId(arrival.getPurchaseId());
|
|
|
- purchaseService.updateById(purchase);
|
|
|
- Purchase purchase1 = purchaseService.getById(arrival.getPurchaseId());
|
|
|
- //取出到货明细
|
|
|
+
|
|
|
+ // 修改采购状态
|
|
|
+ purchaseService.update(q -> q
|
|
|
+ .eq(BaseIdPo::getId, arrival.getPurchaseId())
|
|
|
+ .set(Purchase::getArrivalStatus, arrival.getArrivalStatus())
|
|
|
+ .set(BasePo::getUpdateTime, new Date())
|
|
|
+ .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
|
|
|
+ );
|
|
|
+
|
|
|
+ Purchase purchase = purchaseService.getById(arrival.getPurchaseId());
|
|
|
+
|
|
|
+ // 取出到货明细
|
|
|
List<ArrivalDetail> arrivalDetailList = arrival.getArrivalDetailList();
|
|
|
if (CollectionUtils.isNotEmpty(arrivalDetailList)) {
|
|
|
+
|
|
|
StockWait stockWait = new StockWait();
|
|
|
- stockWait.setBusinessId(purchase1.getId());//采购id
|
|
|
- stockWait.setBusinessCode(purchase1.getCode());//采购编码
|
|
|
- stockWait.setType(1);//入库
|
|
|
- stockWait.setStatus(0);//待入库
|
|
|
- stockWait.setBusinessType(StockWaitType.PURCHASE_ARRIVAL_IN.getDetailType());//采购到货
|
|
|
+ stockWait.setBusinessId(purchase.getId());// 采购id
|
|
|
+ stockWait.setBusinessCode(purchase.getCode());// 采购编码
|
|
|
+ stockWait.setType(1);// 入库
|
|
|
+ stockWait.setStatus(0);// 待入库
|
|
|
+ stockWait.setBusinessType(StockWaitType.PURCHASE_ARRIVAL_IN.getDetailType());// 采购到货
|
|
|
stockWaitService.save(stockWait);
|
|
|
+
|
|
|
List<StockWaitDetails> stockWaitDetailsList = new ArrayList<>();
|
|
|
- for (ArrivalDetail d : arrivalDetailList) {
|
|
|
- Assert.notEmpty(d.getBussinessId(), "产品id不能为空");
|
|
|
- //todo 这一块是做了采购到货状态修改。前端已经完成
|
|
|
- //查询采购明细
|
|
|
-// PurchaseDetail purchaseDetail = purchaseDetailService.getById(d.getPurchaseDetailId());
|
|
|
- //查询当前到货总数--修改对应得申购状态
|
|
|
-// BigDecimal arrivalCount = arrivalDetailService.getSumCount(d.getPurchaseDetailId(),d.getBussinessId());
|
|
|
-// BigDecimal sumArrivalCount = arrivalCount.add(d.getCount());
|
|
|
-// if(sumArrivalCount.compareTo(purchaseDetail.getCount())<0){//判断到货数量是否大于等于采购数量
|
|
|
-//
|
|
|
-//
|
|
|
-// }
|
|
|
- d.setArrivalId(arrival.getId());
|
|
|
+
|
|
|
+ for (ArrivalDetail arrivalDetail : arrivalDetailList) {
|
|
|
+ Assert.notEmpty(arrivalDetail.getBussinessId(), "产品id不能为空");
|
|
|
+ arrivalDetail.setId(IdWorker.getId());
|
|
|
+ arrivalDetail.setArrivalId(arrival.getId());
|
|
|
+
|
|
|
StockWaitDetails stockWaitDetails = new StockWaitDetails();
|
|
|
stockWaitDetails.setStockWaitId(stockWait.getId());
|
|
|
- stockWaitDetails.setProductId(d.getBussinessId());
|
|
|
- stockWaitDetails.setQuantity(d.getCount());
|
|
|
+ stockWaitDetails.setProductId(arrivalDetail.getBussinessId());
|
|
|
+ stockWaitDetails.setQuantity(arrivalDetail.getCount());
|
|
|
+ stockWaitDetails.setBusinessDetailsId(arrivalDetail.getId());
|
|
|
stockWaitDetailsList.add(stockWaitDetails);
|
|
|
}
|
|
|
arrivalDetailService.saveBatch(arrivalDetailList);
|
|
|
+
|
|
|
stockWaitDetailsService.saveBatch(stockWaitDetailsList);
|
|
|
}
|
|
|
}
|