盘点管理 单据确认 单据审核 单据作废 盘点新增
This commit is contained in:
@@ -1,19 +1,23 @@
|
||||
package com.ruoyi.check.stockcheck.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.ruoyi.check.stockcheck.domain.CheckStockVo;
|
||||
import com.ruoyi.check.stockcheck.domain.CheckStockin;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.out.outStockout.domain.OutStockoutVo;
|
||||
|
||||
/**
|
||||
* 盘库单据主信息Service接口
|
||||
*
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-05-29
|
||||
*/
|
||||
public interface ICheckStockinService
|
||||
public interface ICheckStockinService
|
||||
{
|
||||
/**
|
||||
* 查询盘库单据主信息
|
||||
*
|
||||
*
|
||||
* @param stockGuid 盘库单据主信息主键
|
||||
* @return 盘库单据主信息
|
||||
*/
|
||||
@@ -21,7 +25,7 @@ public interface ICheckStockinService
|
||||
|
||||
/**
|
||||
* 查询盘库单据主信息列表
|
||||
*
|
||||
*
|
||||
* @param checkStockin 盘库单据主信息
|
||||
* @return 盘库单据主信息集合
|
||||
*/
|
||||
@@ -29,7 +33,7 @@ public interface ICheckStockinService
|
||||
|
||||
/**
|
||||
* 新增盘库单据主信息
|
||||
*
|
||||
*
|
||||
* @param checkStockin 盘库单据主信息
|
||||
* @return 结果
|
||||
*/
|
||||
@@ -37,15 +41,15 @@ public interface ICheckStockinService
|
||||
|
||||
/**
|
||||
* 修改盘库单据主信息
|
||||
*
|
||||
*
|
||||
* @param checkStockin 盘库单据主信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateCheckStockin(CheckStockin checkStockin);
|
||||
public AjaxResult updateCheckStockin(CheckStockin checkStockin);
|
||||
|
||||
/**
|
||||
* 批量删除盘库单据主信息
|
||||
*
|
||||
*
|
||||
* @param stockGuids 需要删除的盘库单据主信息主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
@@ -53,9 +57,11 @@ public interface ICheckStockinService
|
||||
|
||||
/**
|
||||
* 删除盘库单据主信息信息
|
||||
*
|
||||
*
|
||||
* @param stockGuid 盘库单据主信息主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteCheckStockinByStockGuid(String stockGuid);
|
||||
|
||||
String saveBill(CheckStockVo outStockoutVo);
|
||||
}
|
||||
|
||||
@@ -1,27 +1,54 @@
|
||||
package com.ruoyi.check.stockcheck.service.impl;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import com.ruoyi.bas.BasProduct.domain.BasProduct;
|
||||
import com.ruoyi.bas.BasProduct.service.IBasProductService;
|
||||
import com.ruoyi.bas.basJobId.service.IBasJobIdService;
|
||||
import com.ruoyi.check.stockcheck.domain.CheckStockVo;
|
||||
import com.ruoyi.check.stockcheckdetail.domain.CheckStockinDetail;
|
||||
import com.ruoyi.check.stockcheckdetail.service.ICheckStockinDetailService;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.utils.uuid.UUID;
|
||||
import com.ruoyi.in.stockin.domain.InStockin;
|
||||
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 org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.core.context.SecurityContextHolder;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.check.stockcheck.mapper.CheckStockinMapper;
|
||||
import com.ruoyi.check.stockcheck.domain.CheckStockin;
|
||||
import com.ruoyi.check.stockcheck.service.ICheckStockinService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
* 盘库单据主信息Service业务层处理
|
||||
*
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-05-29
|
||||
*/
|
||||
@Service
|
||||
public class CheckStockinServiceImpl implements ICheckStockinService
|
||||
public class CheckStockinServiceImpl implements ICheckStockinService
|
||||
{
|
||||
@Autowired
|
||||
private CheckStockinMapper checkStockinMapper;
|
||||
@Autowired
|
||||
private IBasJobIdService basJobIdService;
|
||||
@Autowired
|
||||
private ICheckStockinDetailService checkStockinDetailService;
|
||||
@Autowired
|
||||
private IBasProductService productService;
|
||||
|
||||
/**
|
||||
* 查询盘库单据主信息
|
||||
*
|
||||
*
|
||||
* @param stockGuid 盘库单据主信息主键
|
||||
* @return 盘库单据主信息
|
||||
*/
|
||||
@@ -33,7 +60,7 @@ public class CheckStockinServiceImpl implements ICheckStockinService
|
||||
|
||||
/**
|
||||
* 查询盘库单据主信息列表
|
||||
*
|
||||
*
|
||||
* @param checkStockin 盘库单据主信息
|
||||
* @return 盘库单据主信息
|
||||
*/
|
||||
@@ -45,7 +72,7 @@ public class CheckStockinServiceImpl implements ICheckStockinService
|
||||
|
||||
/**
|
||||
* 新增盘库单据主信息
|
||||
*
|
||||
*
|
||||
* @param checkStockin 盘库单据主信息
|
||||
* @return 结果
|
||||
*/
|
||||
@@ -57,19 +84,59 @@ public class CheckStockinServiceImpl implements ICheckStockinService
|
||||
|
||||
/**
|
||||
* 修改盘库单据主信息
|
||||
*
|
||||
*
|
||||
* @param checkStockin 盘库单据主信息
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateCheckStockin(CheckStockin checkStockin)
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public AjaxResult updateCheckStockin(CheckStockin checkStockin)
|
||||
{
|
||||
return checkStockinMapper.updateCheckStockin(checkStockin);
|
||||
CheckStockin old = selectCheckStockinByStockGuid(checkStockin.getStockGuid());
|
||||
checkStockinMapper.updateCheckStockin(checkStockin);
|
||||
if ("5".equals(checkStockin.getStatus())){
|
||||
//作废
|
||||
if (!"1".equals(old.getStatus())){
|
||||
throw new RuntimeException("单据状态非未执行状态!");
|
||||
}
|
||||
//插入历史单据
|
||||
insertCheckStockinHistory(checkStockin);
|
||||
}else if ("2".equals(checkStockin.getStatus())){
|
||||
//审核
|
||||
if (!"1".equals(old.getStatus())){
|
||||
throw new RuntimeException("单据状态非未执行状态!");
|
||||
}
|
||||
}else if ("4".equals(checkStockin.getStatus())){
|
||||
//确认
|
||||
if (!"3".equals(old.getStatus())){
|
||||
throw new RuntimeException("单据状态非正执行状态!");
|
||||
}
|
||||
//对比扫码数量 与实际入库数量是否一致
|
||||
CheckStockinDetail checkStockinParam = new CheckStockinDetail();
|
||||
checkStockinParam.setStockCheckGuid(checkStockin.getStockGuid());
|
||||
List<CheckStockinDetail> list = checkStockinDetailService.selectCheckStockinDetailList(checkStockinParam);
|
||||
if (CollUtil.isNotEmpty(list)){
|
||||
boolean b = list.stream().allMatch(x -> x.getAssignNum().equals(x.getScanNum()));
|
||||
if (!b){
|
||||
throw new RuntimeException("扫码数量与实际入库数量不一致!");
|
||||
}
|
||||
}
|
||||
insertCheckStockinHistory(checkStockin);
|
||||
}
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
private void insertCheckStockinHistory(CheckStockin checkStockin) {
|
||||
//插入历史单据
|
||||
checkStockinMapper.insertCheckStockinHistory(checkStockin);
|
||||
checkStockinDetailService.insertCheckStockinDetailHistory(checkStockin);
|
||||
checkStockinMapper.deleteCheckStockinByStockGuid(checkStockin.getStockGuid());
|
||||
checkStockinDetailService.deleteCheckStockinDetailByStockinGuid(checkStockin.getStockGuid());
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除盘库单据主信息
|
||||
*
|
||||
*
|
||||
* @param stockGuids 需要删除的盘库单据主信息主键
|
||||
* @return 结果
|
||||
*/
|
||||
@@ -81,7 +148,7 @@ public class CheckStockinServiceImpl implements ICheckStockinService
|
||||
|
||||
/**
|
||||
* 删除盘库单据主信息信息
|
||||
*
|
||||
*
|
||||
* @param stockGuid 盘库单据主信息主键
|
||||
* @return 结果
|
||||
*/
|
||||
@@ -90,4 +157,33 @@ public class CheckStockinServiceImpl implements ICheckStockinService
|
||||
{
|
||||
return checkStockinMapper.deleteCheckStockinByStockGuid(stockGuid);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public String saveBill(CheckStockVo checkStockVo) {
|
||||
CheckStockin checkStockin = checkStockVo.getCheckStockin();
|
||||
List<CheckStockinDetail> detailList = checkStockVo.getDetailList();
|
||||
String stockCheckId = basJobIdService.getJobId("CKD");
|
||||
checkStockin.setStockCheckId(stockCheckId);
|
||||
checkStockin.setStockGuid(IdUtil.simpleUUID());
|
||||
checkStockin.setCreateDate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
||||
String username = SecurityContextHolder.getContext().getAuthentication().getName();
|
||||
checkStockin.setCreateManId(username);
|
||||
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);
|
||||
}
|
||||
checkStockinMapper.insertCheckStockin(checkStockin);
|
||||
return stockCheckId;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user