|
|
|
|
@@ -3,7 +3,9 @@ package com.ruoyi.check.stockcheck.service.impl;
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
import cn.hutool.core.convert.Convert;
|
|
|
|
|
@@ -22,6 +24,8 @@ import com.ruoyi.in.stockindetail.domain.InStockinDetail;
|
|
|
|
|
import com.ruoyi.out.outStockout.domain.OutStockout;
|
|
|
|
|
import com.ruoyi.out.outStockout.domain.OutStockoutVo;
|
|
|
|
|
import com.ruoyi.out.outStockoutDetail.domain.OutStockoutDetail;
|
|
|
|
|
import com.ruoyi.stock.stock.domain.BasStock;
|
|
|
|
|
import com.ruoyi.stock.stock.service.IBasStockService;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.security.core.context.SecurityContextHolder;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
@@ -47,6 +51,8 @@ public class CheckStockinServiceImpl implements ICheckStockinService
|
|
|
|
|
private ICheckStockinDetailService checkStockinDetailService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private IBasProductService productService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private IBasStockService basStockService;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询盘库单据主信息
|
|
|
|
|
@@ -165,6 +171,7 @@ public class CheckStockinServiceImpl implements ICheckStockinService
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public String saveBill(CheckStockVo checkStockVo) {
|
|
|
|
|
CheckStockin checkStockin = checkStockVo.getCheckStockin();
|
|
|
|
|
|
|
|
|
|
List<CheckStockinDetail> detailList = checkStockVo.getDetailList();
|
|
|
|
|
String stockCheckId = basJobIdService.getJobId("PDD");
|
|
|
|
|
checkStockin.setStockCheckId(stockCheckId);
|
|
|
|
|
@@ -175,18 +182,53 @@ public class CheckStockinServiceImpl implements ICheckStockinService
|
|
|
|
|
checkStockin.setStatus("1");
|
|
|
|
|
checkStockin.setStockSource("0");
|
|
|
|
|
checkStockin.setCheckType(checkStockin.getCheckType());
|
|
|
|
|
for (int i = 0; i < detailList.size(); i++) {
|
|
|
|
|
CheckStockinDetail checkStockinDetail = detailList.get(i);
|
|
|
|
|
checkStockinDetail.setStockCheckDetailId(stockCheckId + "-" + (i + 1));
|
|
|
|
|
checkStockinDetail.setStockCheckId(stockCheckId);
|
|
|
|
|
BasProduct basProduct = productService.selectBasProductByProductId(checkStockinDetail.getProductId());
|
|
|
|
|
checkStockinDetail.setProductGuid(basProduct.getProductGuid());
|
|
|
|
|
checkStockinDetail.setStockCheckGuid(checkStockin.getStockGuid());
|
|
|
|
|
checkStockinDetail.setScanNum("0");
|
|
|
|
|
checkStockinDetail.setAssignNum("0");
|
|
|
|
|
checkStockinDetailService.insertCheckStockinDetail(checkStockinDetail);
|
|
|
|
|
if ("1".equals(checkStockin.getCheckType())){
|
|
|
|
|
//物料盘点
|
|
|
|
|
for (int i = 0; i < detailList.size(); i++) {
|
|
|
|
|
CheckStockinDetail checkStockinDetail = detailList.get(i);
|
|
|
|
|
checkStockinDetail.setStockCheckDetailId(stockCheckId + "-" + (i + 1));
|
|
|
|
|
checkStockinDetail.setStockCheckId(stockCheckId);
|
|
|
|
|
BasProduct basProduct = productService.selectBasProductByProductId(checkStockinDetail.getProductId());
|
|
|
|
|
checkStockinDetail.setProductGuid(basProduct.getProductGuid());
|
|
|
|
|
checkStockinDetail.setStockCheckGuid(checkStockin.getStockGuid());
|
|
|
|
|
checkStockinDetail.setScanNum("0");
|
|
|
|
|
checkStockinDetail.setAssignNum("0");
|
|
|
|
|
checkStockinDetailService.insertCheckStockinDetail(checkStockinDetail);
|
|
|
|
|
}
|
|
|
|
|
}else if ("2".equals(checkStockin.getCheckType())){
|
|
|
|
|
//货位盘点
|
|
|
|
|
for (int i = 0; i < detailList.size(); i++) {
|
|
|
|
|
BasStock param = new BasStock();
|
|
|
|
|
param.setCargoSpaceId(detailList.get(i).getSpare1());
|
|
|
|
|
List<BasStock> basStocks = basStockService.selectBasStockList(param);
|
|
|
|
|
Integer quantity = 0;
|
|
|
|
|
for (BasStock basStock : basStocks) {
|
|
|
|
|
quantity += Convert.toInt(basStock.getQuantity());
|
|
|
|
|
}
|
|
|
|
|
CheckStockinDetail checkStockinDetail = detailList.get(i);
|
|
|
|
|
checkStockinDetail.setStockCheckDetailId(stockCheckId + "-" + (i + 1));
|
|
|
|
|
checkStockinDetail.setStockCheckId(stockCheckId);
|
|
|
|
|
checkStockinDetail.setStockCheckGuid(checkStockin.getStockGuid());
|
|
|
|
|
checkStockinDetail.setQuantity(quantity.toString());
|
|
|
|
|
checkStockinDetail.setScanNum("0");
|
|
|
|
|
checkStockinDetail.setAssignNum("0");
|
|
|
|
|
checkStockinDetailService.insertCheckStockinDetail(checkStockinDetail);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
checkStockinMapper.insertCheckStockin(checkStockin);
|
|
|
|
|
return stockCheckId;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public AjaxResult autoAllocation(CheckStockin checkStockin) {
|
|
|
|
|
HashMap<String, String> map = new HashMap<>();
|
|
|
|
|
map.put("v_stock_check_id", checkStockin.getStockCheckId());
|
|
|
|
|
checkStockinMapper.autoAllot(map);
|
|
|
|
|
if ("10".equals(map.get("v_result"))){
|
|
|
|
|
return AjaxResult.success("自动分配成功");
|
|
|
|
|
}else {
|
|
|
|
|
return AjaxResult.warn(map.get("v_resultString"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|