出库流程;
This commit is contained in:
+1
@@ -408,6 +408,7 @@ public class StockOutOrderApplicationService {
|
|||||||
throw new ServiceException("获取货主信息失败");
|
throw new ServiceException("获取货主信息失败");
|
||||||
}
|
}
|
||||||
UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
|
UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
|
||||||
|
stockOutOrderDO.setShipperId(userPo.getUserId());
|
||||||
stockOutOrderDO.setShipperCode(userPo.getUserMemberCode());
|
stockOutOrderDO.setShipperCode(userPo.getUserMemberCode());
|
||||||
stockOutOrderDO.setShipperName(userPo.getUserName());
|
stockOutOrderDO.setShipperName(userPo.getUserName());
|
||||||
}
|
}
|
||||||
|
|||||||
+36
@@ -1,16 +1,23 @@
|
|||||||
package com.mhd.wms.domain.handoverTaskOrder.service;
|
package com.mhd.wms.domain.handoverTaskOrder.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
|
import com.mhd.common.core.utils.bean.BeanUtils;
|
||||||
import com.mhd.common.security.utils.SecurityUtils;
|
import com.mhd.common.security.utils.SecurityUtils;
|
||||||
import com.mhd.system.api.model.LoginUser;
|
import com.mhd.system.api.model.LoginUser;
|
||||||
import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder;
|
import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder;
|
||||||
import com.mhd.wms.domain.handoverTaskOrder.repository.facade.IHandoverTaskOrderService;
|
import com.mhd.wms.domain.handoverTaskOrder.repository.facade.IHandoverTaskOrderService;
|
||||||
import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderPO;
|
import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderPO;
|
||||||
import com.mhd.wms.domain.handoverTaskOrder.repository.todo.HandoverTaskOrderDO;
|
import com.mhd.wms.domain.handoverTaskOrder.repository.todo.HandoverTaskOrderDO;
|
||||||
|
import com.mhd.wms.domain.materialInventory.entity.MaterialInventory;
|
||||||
|
import com.mhd.wms.domain.materialInventory.repository.mapper.MaterialInventoryMapper;
|
||||||
|
import com.mhd.wms.domain.outMaterialDetail.entity.OutMaterialDetail;
|
||||||
|
import com.mhd.wms.domain.outMaterialDetail.repository.mapper.OutMaterialDetailMapper;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -26,6 +33,10 @@ public class HandoverTaskOrderDomainService {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IHandoverTaskOrderService handoverTaskOrderService;
|
private IHandoverTaskOrderService handoverTaskOrderService;
|
||||||
|
@Autowired
|
||||||
|
private MaterialInventoryMapper materialInventoryMapper;
|
||||||
|
@Autowired
|
||||||
|
private OutMaterialDetailMapper outMaterialDetailMapper;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -118,6 +129,31 @@ public class HandoverTaskOrderDomainService {
|
|||||||
* @return Boolean
|
* @return Boolean
|
||||||
*/
|
*/
|
||||||
public Boolean completeHandover(HandoverTaskOrderDO handoverTaskOrderDO){
|
public Boolean completeHandover(HandoverTaskOrderDO handoverTaskOrderDO){
|
||||||
|
//交接完成节点修改库存
|
||||||
|
String orderNumber = handoverTaskOrderDO.getOrderNumber();
|
||||||
|
List<OutMaterialDetail> outMaterialDetailList = outMaterialDetailMapper.selectList(new QueryWrapper<OutMaterialDetail>().lambda()
|
||||||
|
.eq(OutMaterialDetail::getOutOrderNumber, orderNumber));
|
||||||
|
for (OutMaterialDetail outMaterialDetail : outMaterialDetailList) {
|
||||||
|
Long materialInventoryId = outMaterialDetail.getMaterialInventoryId();
|
||||||
|
BigDecimal checkQuantity = outMaterialDetail.getCheckQuantity();
|
||||||
|
MaterialInventory materialInventoryPO = materialInventoryMapper.selectById(materialInventoryId);
|
||||||
|
if (materialInventoryPO != null) {
|
||||||
|
//更新库存数量
|
||||||
|
//库存数量
|
||||||
|
BigDecimal oldInventoryQuantity = materialInventoryPO.getInventoryQuantity();
|
||||||
|
//冻结数量
|
||||||
|
BigDecimal oldFreezeQuantity = materialInventoryPO.getFreezeQuantity();
|
||||||
|
//分配后库存数量
|
||||||
|
BigDecimal newInventoryQuantity = oldInventoryQuantity.subtract(checkQuantity);
|
||||||
|
//分配后冻结数量
|
||||||
|
BigDecimal newFreezeQuantity = oldFreezeQuantity.subtract(checkQuantity);
|
||||||
|
materialInventoryPO.setInventoryQuantity(newInventoryQuantity);
|
||||||
|
materialInventoryPO.setFreezeQuantity(newFreezeQuantity);
|
||||||
|
MaterialInventory materialInventory = new MaterialInventory();
|
||||||
|
BeanUtils.copyProperties(materialInventoryPO, materialInventory);
|
||||||
|
materialInventoryMapper.updateById(materialInventory);
|
||||||
|
}
|
||||||
|
}
|
||||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||||
return handoverTaskOrderService.update(null, new UpdateWrapper<HandoverTaskOrder>().lambda()
|
return handoverTaskOrderService.update(null, new UpdateWrapper<HandoverTaskOrder>().lambda()
|
||||||
.set(HandoverTaskOrder::getStatus, 2)
|
.set(HandoverTaskOrder::getStatus, 2)
|
||||||
|
|||||||
+27
-7
@@ -278,14 +278,11 @@ public class OutMaterialDetailImpl extends ServiceImpl<OutMaterialDetailMapper,
|
|||||||
stockOutOrderPO.setAllocationQuantity(totalAllocationQuantity);
|
stockOutOrderPO.setAllocationQuantity(totalAllocationQuantity);
|
||||||
//保存物料明细信息
|
//保存物料明细信息
|
||||||
saveOrUpdateBatch(outMaterialDetailList);
|
saveOrUpdateBatch(outMaterialDetailList);
|
||||||
|
//分配
|
||||||
synchronized (this) {
|
|
||||||
for (OutMaterialDetail outMaterialDetail : outMaterialDetailList) {
|
for (OutMaterialDetail outMaterialDetail : outMaterialDetailList) {
|
||||||
Long materialBaseInfoId = outMaterialDetail.getMaterialBaseInfoId();
|
Long materialInventoryId = outMaterialDetail.getMaterialInventoryId();
|
||||||
BigDecimal allocationQuantity = outMaterialDetail.getAllocationQuantity();
|
BigDecimal allocationQuantity = outMaterialDetail.getAllocationQuantity();
|
||||||
MaterialInventoryDO materialInventoryDO = new MaterialInventoryDO();
|
MaterialInventory materialInventoryPO = materialInventoryMapper.selectById(materialInventoryId);
|
||||||
materialInventoryDO.setMaterialBaseInfoId(materialBaseInfoId);
|
|
||||||
MaterialInventoryPO materialInventoryPO = materialInventoryMapper.selectOneByWhere(materialInventoryDO);
|
|
||||||
if (materialInventoryPO != null) {
|
if (materialInventoryPO != null) {
|
||||||
//更新库存数量
|
//更新库存数量
|
||||||
//可用数量
|
//可用数量
|
||||||
@@ -303,7 +300,7 @@ public class OutMaterialDetailImpl extends ServiceImpl<OutMaterialDetailMapper,
|
|||||||
materialInventoryMapper.updateById(materialInventory);
|
materialInventoryMapper.updateById(materialInventory);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return stockOutOrderPO;
|
return stockOutOrderPO;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -397,6 +394,29 @@ public class OutMaterialDetailImpl extends ServiceImpl<OutMaterialDetailMapper,
|
|||||||
}
|
}
|
||||||
//保存物料明细信息
|
//保存物料明细信息
|
||||||
updateBatchById(outMaterialDetailList);
|
updateBatchById(outMaterialDetailList);
|
||||||
|
|
||||||
|
//取消分配
|
||||||
|
for (OutMaterialDetail outMaterialDetail : outMaterialDetailList) {
|
||||||
|
Long materialInventoryId = outMaterialDetail.getMaterialInventoryId();
|
||||||
|
BigDecimal allocationQuantity = outMaterialDetail.getAllocationQuantity();
|
||||||
|
MaterialInventory materialInventoryPO = materialInventoryMapper.selectById(materialInventoryId);
|
||||||
|
if (materialInventoryPO != null) {
|
||||||
|
//更新库存数量
|
||||||
|
//可用数量
|
||||||
|
BigDecimal oldAllocationQuantity = materialInventoryPO.getAllocationQuantity();
|
||||||
|
//冻结数量
|
||||||
|
BigDecimal oldFreezeQuantity = materialInventoryPO.getFreezeQuantity();
|
||||||
|
//分配后可用数量
|
||||||
|
BigDecimal newAllocationQuantity = oldAllocationQuantity.add(allocationQuantity);
|
||||||
|
//分配后冻结数量
|
||||||
|
BigDecimal newFreezeQuantity = oldFreezeQuantity.subtract(allocationQuantity);
|
||||||
|
materialInventoryPO.setAllocationQuantity(newAllocationQuantity);
|
||||||
|
materialInventoryPO.setFreezeQuantity(newFreezeQuantity);
|
||||||
|
MaterialInventory materialInventory = new MaterialInventory();
|
||||||
|
BeanUtils.copyProperties(materialInventoryPO, materialInventory);
|
||||||
|
materialInventoryMapper.updateById(materialInventory);
|
||||||
|
}
|
||||||
|
}
|
||||||
return stockOutOrderPO;
|
return stockOutOrderPO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -376,7 +376,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
sum( c.picking_quantity )
|
sum( c.picking_quantity )
|
||||||
FROM
|
FROM
|
||||||
picking_material_detail c
|
picking_material_detail c
|
||||||
LEFT JOIN picking_order d ON c.picking_order_number = d.order_number
|
LEFT JOIN picking_order d ON c.picking_order_number = d.PICKING_ORDER_NUMBER
|
||||||
WHERE
|
WHERE
|
||||||
c.del_flag = 1
|
c.del_flag = 1
|
||||||
AND d.warehouse_id = a.warehouse_id
|
AND d.warehouse_id = a.warehouse_id
|
||||||
|
|||||||
Reference in New Issue
Block a user