盘点审核流程修改
This commit is contained in:
@@ -5,7 +5,10 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.ruoyi.bas.basJobId.service.IBasJobIdService;
|
import com.ruoyi.bas.basJobId.service.IBasJobIdService;
|
||||||
|
import com.ruoyi.bas.warehouse.domain.BasWarehouse;
|
||||||
|
import com.ruoyi.bas.warehouse.service.IBasWarehouseService;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
@@ -42,6 +45,8 @@ import com.ruoyi.common.core.page.TableDataInfo;
|
|||||||
public class CheckDifferenceRecordController extends BaseController {
|
public class CheckDifferenceRecordController extends BaseController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICheckDifferenceRecordService checkDifferenceRecordService;
|
private ICheckDifferenceRecordService checkDifferenceRecordService;
|
||||||
|
@Autowired
|
||||||
|
private IBasWarehouseService basWarehouseService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询盘点差异列表
|
* 查询盘点差异列表
|
||||||
@@ -111,14 +116,14 @@ public class CheckDifferenceRecordController extends BaseController {
|
|||||||
private ICheckDifferenceRecordFinishService checkDifferenceRecordFinishService;
|
private ICheckDifferenceRecordFinishService checkDifferenceRecordFinishService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBasJobIdService basJobIdService;
|
private IBasJobIdService basJobIdService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 审核盘点差异
|
* 审核盘点差异
|
||||||
*/
|
*/
|
||||||
@PreAuthorize("@ss.hasPermi('check:difference:audit')")
|
@PreAuthorize("@ss.hasPermi('check:difference:audit')")
|
||||||
@Log(title = "盘点差异", businessType = BusinessType.UPDATE)
|
@Log(title = "盘点差异", businessType = BusinessType.UPDATE)
|
||||||
@PutMapping("/audit")
|
@PutMapping("/audit")
|
||||||
public AjaxResult audit(@RequestBody String[] checkGuids)
|
public AjaxResult audit(@RequestBody String[] checkGuids) {
|
||||||
{
|
|
||||||
List<CheckDifferenceRecord> records = new ArrayList<>();
|
List<CheckDifferenceRecord> records = new ArrayList<>();
|
||||||
for (String checkGuid : checkGuids) {
|
for (String checkGuid : checkGuids) {
|
||||||
CheckDifferenceRecord record = checkDifferenceRecordService.selectCheckDifferenceRecordByCheckGuid(checkGuid);
|
CheckDifferenceRecord record = checkDifferenceRecordService.selectCheckDifferenceRecordByCheckGuid(checkGuid);
|
||||||
@@ -132,6 +137,13 @@ public class CheckDifferenceRecordController extends BaseController {
|
|||||||
|
|
||||||
if ("1".equals(recordType)) { // 更新数据
|
if ("1".equals(recordType)) { // 更新数据
|
||||||
// 根据stockId、trayCode、oldQuantity查找库存记录
|
// 根据stockId、trayCode、oldQuantity查找库存记录
|
||||||
|
if (StrUtil.isEmpty(record.getStockId())) {
|
||||||
|
return AjaxResult.error("没有找到该库存ID:" + record.getStockId());
|
||||||
|
}
|
||||||
|
if (StrUtil.isEmpty(record.getTrayCode())) {
|
||||||
|
return AjaxResult.error("没有找到该托盘号:" + record.getTrayCode());
|
||||||
|
}
|
||||||
|
|
||||||
BasStock queryStock = new BasStock();
|
BasStock queryStock = new BasStock();
|
||||||
queryStock.setStockId(record.getStockId());
|
queryStock.setStockId(record.getStockId());
|
||||||
queryStock.setTrayCode(record.getTrayCode());
|
queryStock.setTrayCode(record.getTrayCode());
|
||||||
@@ -147,18 +159,12 @@ public class CheckDifferenceRecordController extends BaseController {
|
|||||||
stock.setQuantity(record.getNewQuantity());
|
stock.setQuantity(record.getNewQuantity());
|
||||||
stock.setProductStatus("1");
|
stock.setProductStatus("1");
|
||||||
basStockService.updateBasStock(stock);
|
basStockService.updateBasStock(stock);
|
||||||
}
|
} else if ("2".equals(recordType)) { // 新增数据
|
||||||
else if ("2".equals(recordType)) { // 新增数据
|
|
||||||
// 检查物料ID是否存在
|
// 检查物料ID是否存在
|
||||||
if (record.getProductId() == null || record.getProductId().trim().isEmpty()) {
|
if (record.getProductId() == null || record.getProductId().trim().isEmpty()) {
|
||||||
return AjaxResult.error("物料ID不能为空");
|
return AjaxResult.error("物料ID不能为空");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查库存是否已存在
|
|
||||||
BasStock queryStock = new BasStock();
|
|
||||||
queryStock.setStockId(record.getStockId());
|
|
||||||
queryStock.setTrayCode(record.getTrayCode());
|
|
||||||
List<BasStock> stocks = basStockService.selectBasStockList(queryStock);
|
|
||||||
// 创建新的库存记录
|
// 创建新的库存记录
|
||||||
BasStock newStock = new BasStock();
|
BasStock newStock = new BasStock();
|
||||||
// 先设置必要字段
|
// 先设置必要字段
|
||||||
@@ -179,8 +185,7 @@ public class CheckDifferenceRecordController extends BaseController {
|
|||||||
// 最后设置库存ID
|
// 最后设置库存ID
|
||||||
newStock.setStockId(basJobIdService.getJobId("KC"));
|
newStock.setStockId(basJobIdService.getJobId("KC"));
|
||||||
basStockService.insertBasStock(newStock);
|
basStockService.insertBasStock(newStock);
|
||||||
}
|
} else if ("3".equals(recordType)) { // 删除数据
|
||||||
else if ("3".equals(recordType)) { // 删除数据
|
|
||||||
// 检查要删除的库存是否存在
|
// 检查要删除的库存是否存在
|
||||||
BasStock queryStock = new BasStock();
|
BasStock queryStock = new BasStock();
|
||||||
queryStock.setStockId(record.getStockId());
|
queryStock.setStockId(record.getStockId());
|
||||||
@@ -191,15 +196,27 @@ public class CheckDifferenceRecordController extends BaseController {
|
|||||||
return AjaxResult.error("没有在库存中找到该条记录:库存ID=" + record.getStockId() + ", 托盘号=" + record.getTrayCode());
|
return AjaxResult.error("没有在库存中找到该条记录:库存ID=" + record.getStockId() + ", 托盘号=" + record.getTrayCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
basStockService.deleteBasStockByStockId(record.getStockId());
|
basStockService.deleteBasStockByStockId(record.getStockId());
|
||||||
|
|
||||||
|
//查询该料箱是否存在库存 如果不存在 则创建空料箱库存
|
||||||
|
BasStock queryStock2 = new BasStock();
|
||||||
|
queryStock2.setTrayCode(record.getTrayCode());
|
||||||
|
List<BasStock> stocks2 = basStockService.selectBasStockList(queryStock2);
|
||||||
|
BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(record.getWarehouseId());
|
||||||
|
if (stocks2.isEmpty() && ("1".equals(basWarehouse.getWarehouseType()) || "2".equals(basWarehouse.getWarehouseType()))) {
|
||||||
|
BasStock basStock = stocks.get(0);
|
||||||
|
basStock.setProductId("KTP000001");
|
||||||
|
basStock.setProductGuid("KTP000001");
|
||||||
|
basStock.setQuantity("1");
|
||||||
|
basStock.setStockStatus("1");
|
||||||
|
basStockService.insertBasStock(basStock);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 设置审核状态为已审核
|
// 设置审核状态为已审核
|
||||||
record.setStatus("1");
|
record.setStatus("1");
|
||||||
|
|
||||||
// 创建历史记录前先检查是否已存在
|
|
||||||
CheckDifferenceRecordFinish queryFinish = checkDifferenceRecordFinishService.selectCheckDifferenceRecordFinishByCheckGuid(record.getCheckGuid());
|
|
||||||
|
|
||||||
// 创建历史记录
|
// 创建历史记录
|
||||||
CheckDifferenceRecordFinish finishRecord = new CheckDifferenceRecordFinish();
|
CheckDifferenceRecordFinish finishRecord = new CheckDifferenceRecordFinish();
|
||||||
BeanUtils.copyProperties(record, finishRecord);
|
BeanUtils.copyProperties(record, finishRecord);
|
||||||
@@ -207,6 +224,8 @@ public class CheckDifferenceRecordController extends BaseController {
|
|||||||
|
|
||||||
// 删除原记录
|
// 删除原记录
|
||||||
checkDifferenceRecordService.deleteCheckDifferenceRecordByCheckGuid(record.getCheckGuid());
|
checkDifferenceRecordService.deleteCheckDifferenceRecordByCheckGuid(record.getCheckGuid());
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
|
|||||||
@@ -334,11 +334,6 @@ public class MydoJobServiceImpl implements IMydoJobService {
|
|||||||
checkDifferenceRecordParam.setWarehouseId(job.getWarehouseId());
|
checkDifferenceRecordParam.setWarehouseId(job.getWarehouseId());
|
||||||
List<CheckDifferenceRecord> checkDifferenceRecords = checkDifferenceRecordService.selectCheckDifferenceRecordList(checkDifferenceRecordParam);
|
List<CheckDifferenceRecord> checkDifferenceRecords = checkDifferenceRecordService.selectCheckDifferenceRecordList(checkDifferenceRecordParam);
|
||||||
for (MydoJobDetail mydoJobDetail : mydoJobDetails) {
|
for (MydoJobDetail mydoJobDetail : mydoJobDetails) {
|
||||||
//修改单据实际数量
|
|
||||||
String inOrOutDId = mydoJobDetail.getInOrOutDId();
|
|
||||||
InStockinDetail inStockinDetail = inStockinDetailService.selectInStockinDetailByStockinDetailId(inOrOutDId);
|
|
||||||
inStockinDetail.setAssignNum(Convert.toStr(Convert.toBigDecimal(inStockinDetail.getAssignNum()).add(Convert.toBigDecimal(mydoJobDetail.getInQuantity()))));
|
|
||||||
inStockinDetailService.updateInStockinDetail(inStockinDetail);
|
|
||||||
//如果存在盘点异常信息 根据托盘条码和物料id 筛选异常信息
|
//如果存在盘点异常信息 根据托盘条码和物料id 筛选异常信息
|
||||||
Optional<CheckDifferenceRecord> first = checkDifferenceRecords.stream().filter(x -> x.getTrayCode().equals(job.getTrayCode()) && x.getProductId().equals(mydoJobDetail.getProductId())).findFirst();
|
Optional<CheckDifferenceRecord> first = checkDifferenceRecords.stream().filter(x -> x.getTrayCode().equals(job.getTrayCode()) && x.getProductId().equals(mydoJobDetail.getProductId())).findFirst();
|
||||||
if (first.isPresent()) {
|
if (first.isPresent()) {
|
||||||
|
|||||||
@@ -23,4 +23,5 @@ public class TrayCodeMakeSure {
|
|||||||
private String exitId;
|
private String exitId;
|
||||||
//拣选列表
|
//拣选列表
|
||||||
private List<MydoJobDetail> mydoJobDetailList;
|
private List<MydoJobDetail> mydoJobDetailList;
|
||||||
|
private List<MydoJobDetail> materials;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -401,7 +401,7 @@ public class PdaServiceImp implements PdaService {
|
|||||||
return AjaxResult.warn("任务不存在");
|
return AjaxResult.warn("任务不存在");
|
||||||
}
|
}
|
||||||
BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(mydoJob.getWarehouseId());
|
BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(mydoJob.getWarehouseId());
|
||||||
List<MydoJobDetail> mydoJobDetailList = trayCodeMakeSure.getMydoJobDetailList();
|
List<MydoJobDetail> mydoJobDetailList = trayCodeMakeSure.getMaterials();
|
||||||
if (CollUtil.isNotEmpty(mydoJobDetailList)) {
|
if (CollUtil.isNotEmpty(mydoJobDetailList)) {
|
||||||
boolean flag = mydoJobDetailList.stream().anyMatch(x -> StrUtil.isEmpty(x.getStockId()) && "0".equals(x.getInQuantity()));
|
boolean flag = mydoJobDetailList.stream().anyMatch(x -> StrUtil.isEmpty(x.getStockId()) && "0".equals(x.getInQuantity()));
|
||||||
if (flag) {
|
if (flag) {
|
||||||
|
|||||||
@@ -227,6 +227,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
</select>
|
</select>
|
||||||
<select id="selectByTrayCode" resultMap="MydoJobResult">
|
<select id="selectByTrayCode" resultMap="MydoJobResult">
|
||||||
<include refid="selectMydoJobVo"/>
|
<include refid="selectMydoJobVo"/>
|
||||||
where tray_code = #{trayCode}
|
where mj.tray_code = #{trayCode}
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
Reference in New Issue
Block a user