盘点审核流程修改
This commit is contained in:
@@ -5,7 +5,10 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
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.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
@@ -42,6 +45,8 @@ import com.ruoyi.common.core.page.TableDataInfo;
|
||||
public class CheckDifferenceRecordController extends BaseController {
|
||||
@Autowired
|
||||
private ICheckDifferenceRecordService checkDifferenceRecordService;
|
||||
@Autowired
|
||||
private IBasWarehouseService basWarehouseService;
|
||||
|
||||
/**
|
||||
* 查询盘点差异列表
|
||||
@@ -111,14 +116,14 @@ public class CheckDifferenceRecordController extends BaseController {
|
||||
private ICheckDifferenceRecordFinishService checkDifferenceRecordFinishService;
|
||||
@Autowired
|
||||
private IBasJobIdService basJobIdService;
|
||||
|
||||
/**
|
||||
* 审核盘点差异
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('check:difference:audit')")
|
||||
@Log(title = "盘点差异", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/audit")
|
||||
public AjaxResult audit(@RequestBody String[] checkGuids)
|
||||
{
|
||||
public AjaxResult audit(@RequestBody String[] checkGuids) {
|
||||
List<CheckDifferenceRecord> records = new ArrayList<>();
|
||||
for (String checkGuid : checkGuids) {
|
||||
CheckDifferenceRecord record = checkDifferenceRecordService.selectCheckDifferenceRecordByCheckGuid(checkGuid);
|
||||
@@ -126,39 +131,40 @@ public class CheckDifferenceRecordController extends BaseController {
|
||||
records.add(record);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for (CheckDifferenceRecord record : records) {
|
||||
String recordType = String.valueOf(record.getRecordType());
|
||||
|
||||
|
||||
if ("1".equals(recordType)) { // 更新数据
|
||||
// 根据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();
|
||||
queryStock.setStockId(record.getStockId());
|
||||
queryStock.setTrayCode(record.getTrayCode());
|
||||
queryStock.setQuantity(record.getOldQuantity());
|
||||
List<BasStock> stocks = basStockService.selectBasStockList(queryStock);
|
||||
|
||||
|
||||
if (stocks.isEmpty()) {
|
||||
return AjaxResult.error("没有在库存中找到该条记录:库存ID=" + record.getStockId() + ", 托盘号=" + record.getTrayCode());
|
||||
}
|
||||
|
||||
|
||||
// 更新库存数量和状态
|
||||
BasStock stock = stocks.get(0);
|
||||
stock.setQuantity(record.getNewQuantity());
|
||||
stock.setProductStatus("1");
|
||||
basStockService.updateBasStock(stock);
|
||||
}
|
||||
else if ("2".equals(recordType)) { // 新增数据
|
||||
} else if ("2".equals(recordType)) { // 新增数据
|
||||
// 检查物料ID是否存在
|
||||
if (record.getProductId() == null || record.getProductId().trim().isEmpty()) {
|
||||
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();
|
||||
// 先设置必要字段
|
||||
@@ -175,40 +181,53 @@ public class CheckDifferenceRecordController extends BaseController {
|
||||
extraField.setProductId(record.getProductId());
|
||||
// 物料名称和其他信息会通过关联查询自动填充
|
||||
newStock.setExtraField(extraField);
|
||||
|
||||
|
||||
// 最后设置库存ID
|
||||
newStock.setStockId(basJobIdService.getJobId("KC"));
|
||||
basStockService.insertBasStock(newStock);
|
||||
}
|
||||
else if ("3".equals(recordType)) { // 删除数据
|
||||
} else if ("3".equals(recordType)) { // 删除数据
|
||||
// 检查要删除的库存是否存在
|
||||
BasStock queryStock = new BasStock();
|
||||
queryStock.setStockId(record.getStockId());
|
||||
queryStock.setTrayCode(record.getTrayCode());
|
||||
List<BasStock> stocks = basStockService.selectBasStockList(queryStock);
|
||||
|
||||
|
||||
if (stocks.isEmpty()) {
|
||||
return AjaxResult.error("没有在库存中找到该条记录:库存ID=" + record.getStockId() + ", 托盘号=" + record.getTrayCode());
|
||||
}
|
||||
|
||||
|
||||
|
||||
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");
|
||||
|
||||
// 创建历史记录前先检查是否已存在
|
||||
CheckDifferenceRecordFinish queryFinish = checkDifferenceRecordFinishService.selectCheckDifferenceRecordFinishByCheckGuid(record.getCheckGuid());
|
||||
|
||||
// 创建历史记录
|
||||
CheckDifferenceRecordFinish finishRecord = new CheckDifferenceRecordFinish();
|
||||
BeanUtils.copyProperties(record, finishRecord);
|
||||
checkDifferenceRecordFinishService.insertCheckDifferenceRecordFinish(finishRecord);
|
||||
|
||||
|
||||
// 删除原记录
|
||||
checkDifferenceRecordService.deleteCheckDifferenceRecordByCheckGuid(record.getCheckGuid());
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
return AjaxResult.success();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user