自动分配;
This commit is contained in:
+67
-1
@@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.mhd.common.core.constant.SnowFlakeConstants;
|
||||
import com.mhd.common.core.domain.po.UserPo;
|
||||
import com.mhd.common.core.enums.DictCode;
|
||||
@@ -23,14 +24,19 @@ import com.mhd.system.api.domain.WarehouseFeignPO;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.materialInventory.entity.MaterialInventory;
|
||||
import com.mhd.wms.domain.materialInventory.repository.mapper.MaterialInventoryMapper;
|
||||
import com.mhd.wms.domain.materialInventory.repository.po.MaterialInventoryPO;
|
||||
import com.mhd.wms.domain.materialInventory.service.MaterialInventoryDomainService;
|
||||
import com.mhd.wms.domain.materialMoreDetail.repository.po.MaterialMoreDetailPO;
|
||||
import com.mhd.wms.domain.outMaterialDetail.entity.OutMaterialDetail;
|
||||
import com.mhd.wms.domain.outMaterialDetail.repository.facade.IOutMaterialDetailService;
|
||||
import com.mhd.wms.domain.outMaterialDetail.repository.po.OutMaterialCheckPO;
|
||||
import com.mhd.wms.domain.outMaterialDetail.repository.po.OutMaterialDetailPO;
|
||||
import com.mhd.wms.domain.outMaterialDetail.repository.todo.OutMaterialDetailDO;
|
||||
import com.mhd.wms.domain.outMaterialDetail.service.OutMaterialDetailDomainService;
|
||||
import com.mhd.wms.domain.stockOutOrder.entity.StockOutOrder;
|
||||
import com.mhd.wms.domain.stockOutOrder.repository.facade.IStockOutOrderService;
|
||||
import com.mhd.wms.domain.stockOutOrder.repository.po.StockOutOrderPO;
|
||||
import com.mhd.wms.domain.stockOutOrder.repository.todo.StockOutOrderDO;
|
||||
import com.mhd.wms.domain.stockOutOrder.service.StockOutOrderDomainService;
|
||||
@@ -69,6 +75,10 @@ public class StockOutOrderApplicationService {
|
||||
private SystemServiceFeign systemServiceFeign;
|
||||
@Autowired
|
||||
private IdGenerator idGenerator;
|
||||
@Autowired
|
||||
private IStockOutOrderService stockOutOrderService;
|
||||
@Autowired
|
||||
private IOutMaterialDetailService outMaterialDetailService;
|
||||
|
||||
|
||||
/**
|
||||
@@ -570,10 +580,66 @@ public class StockOutOrderApplicationService {
|
||||
return stockOutOrderDomainService.manualAssign(assembleStockOutOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 手动分配
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/28 13:47
|
||||
* @param stockOutOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean autoAssign(StockOutOrderDO stockOutOrderDO){
|
||||
List<Long> outOrderIds = stockOutOrderDO.getOutOrderIds();
|
||||
if (outOrderIds == null || outOrderIds.isEmpty()){
|
||||
throw new ServiceException("出库单ID不能为空");
|
||||
}
|
||||
Boolean result = true;
|
||||
for (Long outOrderId : outOrderIds){
|
||||
StockOutOrderDO stockOutOrderD = new StockOutOrderDO();
|
||||
StockOutOrder stockOutOrderDb = stockOutOrderService.getById(outOrderId);
|
||||
if (stockOutOrderDb == null){
|
||||
throw new ServiceException("出库单ID不存在");
|
||||
}
|
||||
BeanUtils.copyProperties(stockOutOrderDb, stockOutOrderD);
|
||||
List<OutMaterialDetail> outMaterialDetailList = outMaterialDetailService.list(new QueryWrapper<OutMaterialDetail>().lambda()
|
||||
.eq(OutMaterialDetail::getOutOrderNumber, stockOutOrderDb.getOutOrderNumber()));
|
||||
List<OutMaterialDetailDO> materialDetailList = cn.hutool.core.bean.BeanUtil.copyToList(outMaterialDetailList, OutMaterialDetailDO.class);
|
||||
for (OutMaterialDetailDO detail : materialDetailList) {
|
||||
detail.setAllocationQuantity(detail.getQuantity());
|
||||
String batchRefNo = detail.getBatchRefNo();
|
||||
String sheetRefNo = detail.getSheetRefNo();
|
||||
String boxPalletNo = detail.getBoxPalletNo();
|
||||
Long materialBaseInfoId = detail.getMaterialBaseInfoId();
|
||||
List<MaterialInventory> materialInventories = materialInventoryMapper.selectList(new QueryWrapper<MaterialInventory>().lambda()
|
||||
.eq(MaterialInventory::getBatchRefNo, batchRefNo)
|
||||
.eq(MaterialInventory::getSheetRefNo, sheetRefNo)
|
||||
.eq(MaterialInventory::getBoxPalletNo, boxPalletNo)
|
||||
.eq(MaterialInventory::getMaterialBaseInfoId, materialBaseInfoId));
|
||||
if (materialInventories == null || materialInventories.isEmpty()) {
|
||||
throw new ServiceException("库存不存在:" + batchRefNo + " " + sheetRefNo + " " + boxPalletNo);
|
||||
}
|
||||
MaterialInventory materialInventory = materialInventories.get(0);
|
||||
detail.setMaterialInventoryId(materialInventory.getMaterialInventoryId());
|
||||
detail.setStorageLocationId(materialInventory.getStorageLocationId());
|
||||
detail.setStorageLocationName(materialInventory.getStorageLocationName());
|
||||
detail.setStorageLocationCode(materialInventory.getStorageLocationCode());
|
||||
detail.setStorageSectionId(materialInventory.getStorageSectionId());
|
||||
detail.setStorageName(materialInventory.getStorageName());
|
||||
detail.setStorageCode(materialInventory.getStorageCode());
|
||||
}
|
||||
stockOutOrderD.setMaterialDetailList(materialDetailList);
|
||||
StockOutOrderDO assembleStockOutOrderDO = assembleParamByOutOrder(stockOutOrderDO);
|
||||
Boolean assignResult = stockOutOrderDomainService.autoAssign(assembleStockOutOrderDO);
|
||||
if (!assignResult) {
|
||||
result = false;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/*public Boolean autoAssign(StockOutOrderDO stockOutOrderDO){
|
||||
StockOutOrderDO assembleStockOutOrderDO = assembleParamByOutOrder(stockOutOrderDO);
|
||||
return stockOutOrderDomainService.autoAssign(assembleStockOutOrderDO);
|
||||
}
|
||||
}*/
|
||||
|
||||
/**
|
||||
* @description 取消分配
|
||||
|
||||
+29
-1
@@ -249,7 +249,35 @@ public class StockOutOrderDomainService {
|
||||
return updateStockOutOrderByAllocation(stockOutOrderDb, stockOutOrderPO, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 手动分配
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 16:20
|
||||
* @param stockOutOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean autoAssign(StockOutOrderDO stockOutOrderDO){
|
||||
List<Long> outOrderIds = stockOutOrderDO.getOutOrderIds();
|
||||
if (outOrderIds == null || outOrderIds.isEmpty()){
|
||||
throw new ServiceException("出库单ID不能为空");
|
||||
}
|
||||
StockOutOrder stockOutOrderDb = stockOutOrderService.getById(stockOutOrderDO.getOutOrderId());
|
||||
if (stockOutOrderDb == null){
|
||||
throw new ServiceException("出库单不存在");
|
||||
}
|
||||
if (stockOutOrderDb.getStatus() > 3){
|
||||
throw new ServiceException("收货单已完成分配");
|
||||
}
|
||||
List<OutMaterialDetail> outMaterialDetailList = outMaterialDetailService.list(new QueryWrapper<OutMaterialDetail>().lambda()
|
||||
.eq(OutMaterialDetail::getOutOrderNumber, stockOutOrderDb.getOutOrderNumber()));
|
||||
//修改物料明细信息
|
||||
StockOutOrderPO stockOutOrderPO = outMaterialDetailService.batchAssignUpdate(stockOutOrderDb.getOutOrderNumber(), stockOutOrderDO.getMaterialDetailList());
|
||||
//修改出库单
|
||||
return updateStockOutOrderByAllocation(stockOutOrderDb, stockOutOrderPO, 1);
|
||||
}
|
||||
|
||||
/*@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean autoAssign(StockOutOrderDO stockOutOrderDO){
|
||||
StockOutOrder stockOutOrderDb = stockOutOrderService.getById(stockOutOrderDO.getOutOrderId());
|
||||
if (stockOutOrderDb == null){
|
||||
@@ -273,7 +301,7 @@ public class StockOutOrderDomainService {
|
||||
StockOutOrderPO stockOutOrderPO = outMaterialDetailService.batchAssignUpdate(stockOutOrderDb.getOutOrderNumber(), stockOutOrderDO.getMaterialDetailList());
|
||||
//修改出库单
|
||||
return updateStockOutOrderByAllocation(stockOutOrderDb, stockOutOrderPO, 1);
|
||||
}
|
||||
}*/
|
||||
|
||||
/**
|
||||
* @description 手动取消分配(点击确认后直接取消分配)
|
||||
|
||||
+13
-2
@@ -173,6 +173,17 @@ public class StockOutOrderApi extends BaseController {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 手动分配
|
||||
*/
|
||||
@ApiOperation("自动分配")
|
||||
@PostMapping("/autoAssign")
|
||||
public AjaxResult autoAssign(@RequestBody StockOutOrderDTO stockOutOrderDTO) {
|
||||
StockOutOrderDO stockOutOrderDO = new StockOutOrderDO();
|
||||
BeanUtils.copyProperties(stockOutOrderDTO, stockOutOrderDO);
|
||||
return toAjax(stockOutOrderApplicationService.autoAssign(stockOutOrderDO));
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消分配
|
||||
*/
|
||||
@@ -325,12 +336,12 @@ public class StockOutOrderApi extends BaseController {
|
||||
/**
|
||||
* 自动分配
|
||||
*/
|
||||
@ApiOperation("自动分配")
|
||||
/*@ApiOperation("自动分配")
|
||||
@PostMapping("/autoAssign")
|
||||
public AjaxResult autoAssign(@RequestBody StockOutOrderDTO stockOutOrderDTO) {
|
||||
StockOutOrderDO stockOutOrderDO = JSONUtil.toBean(JSONUtil.toJsonStr(stockOutOrderDTO), StockOutOrderDO.class);
|
||||
return toAjax(stockOutOrderApplicationService.autoAssign(stockOutOrderDO));
|
||||
}
|
||||
}*/
|
||||
|
||||
|
||||
@ApiOperation("关闭出库单")
|
||||
|
||||
Reference in New Issue
Block a user