|
@@ -25,6 +25,8 @@ import com.fjhx.wms.entity.stock.po.StockJournalDetails;
|
|
|
import com.fjhx.wms.service.stock.StockJournalDetailsService;
|
|
|
import com.fjhx.wms.service.stock.StockJournalService;
|
|
|
import com.fjhx.wms.service.stock.StockService;
|
|
|
+import com.google.common.collect.ImmutableTable;
|
|
|
+import com.google.common.collect.Table;
|
|
|
import com.ruoyi.common.utils.SecurityUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -113,12 +115,12 @@ public class JdOrderDetailsServiceImpl extends ServiceImpl<JdOrderDetailsMapper,
|
|
|
switch (vo.getExHandle()){
|
|
|
case RunParamConstant.MULTI_CARGO_REDUCE_STOCK:
|
|
|
//弹窗提示,出库,减少库存
|
|
|
- reduceStock(vo, byId);
|
|
|
+ reduceStock(vo, byId, RunParamConstant.MULTI_CARGO_REDUCE_STOCK);
|
|
|
break;
|
|
|
case RunParamConstant.SHIPPED_DAMAGE:
|
|
|
case RunParamConstant.SHIPPED_CLAIM:
|
|
|
case RunParamConstant.BARCODE_ERROR_DAMAGE:
|
|
|
- fillRemark(vo, byId);
|
|
|
+ fillRemarkAndAmount(vo, byId);
|
|
|
break;
|
|
|
case RunParamConstant.SHIPPED_NOT_REDUCE_STOCK:
|
|
|
case RunParamConstant.BARCODE_ERROR_NOT_RETURN:
|
|
@@ -126,19 +128,19 @@ public class JdOrderDetailsServiceImpl extends ServiceImpl<JdOrderDetailsMapper,
|
|
|
break;
|
|
|
case RunParamConstant.SHORTAGE_RETURN:
|
|
|
//选择仓库,增加库存
|
|
|
- addStock(vo, byId);
|
|
|
+ addStock(vo, byId, RunParamConstant.SHORTAGE_RETURN);
|
|
|
break;
|
|
|
case RunParamConstant.EXCESS_RETURN:
|
|
|
case RunParamConstant.BARCODE_ERROR_RETURN:
|
|
|
- fillExpressNoAndAddStock(vo, byId);
|
|
|
+ fillExpressNoAndAddStock(vo, byId, vo.getExHandle());
|
|
|
break;
|
|
|
case RunParamConstant.EXCESS_NOT_RETURN:
|
|
|
//增减库存
|
|
|
- addAndReduceStock(vo, byId);
|
|
|
+ addAndReduceStock(vo, byId, RunParamConstant.EXCESS_NOT_RETURN);
|
|
|
break;
|
|
|
case RunParamConstant.EXCESS_DAMAGE:
|
|
|
//填备注增减库存
|
|
|
- fillRemarkAndAddReduceStock(vo, byId);
|
|
|
+ fillRemarkAmountAndAddReduceStock(vo, byId, RunParamConstant.EXCESS_DAMAGE);
|
|
|
break;
|
|
|
default:
|
|
|
throw new RuntimeException("异常处理状态异常");
|
|
@@ -165,12 +167,13 @@ public class JdOrderDetailsServiceImpl extends ServiceImpl<JdOrderDetailsMapper,
|
|
|
* @author hj
|
|
|
* @date 2024/1/15 22:41
|
|
|
*/
|
|
|
- private void fillRemark(JdOrderDetailsVo vo, JdOrderDetails jdOrderDetails){
|
|
|
+ private void fillRemarkAndAmount(JdOrderDetailsVo vo, JdOrderDetails jdOrderDetails){
|
|
|
String remark = vo.getRemark();
|
|
|
if(StrUtil.isBlank(remark)){
|
|
|
throw new RuntimeException("备注不能为空");
|
|
|
}
|
|
|
jdOrderDetails.setRemark(remark);
|
|
|
+ jdOrderDetails.setAmount(vo.getAmount());
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -179,13 +182,13 @@ public class JdOrderDetailsServiceImpl extends ServiceImpl<JdOrderDetailsMapper,
|
|
|
* @date 2024/1/15 22:42
|
|
|
*/
|
|
|
@DSTransactional
|
|
|
- public void fillExpressNoAndAddStock(JdOrderDetailsVo vo, JdOrderDetails jdOrderDetails) {
|
|
|
+ public void fillExpressNoAndAddStock(JdOrderDetailsVo vo, JdOrderDetails jdOrderDetails, String handleType) {
|
|
|
String expressNo = vo.getExpressNo();
|
|
|
if (StrUtil.isBlank(expressNo)) {
|
|
|
throw new RuntimeException("快递单号不能为空");
|
|
|
}
|
|
|
jdOrderDetails.setExpressNo(expressNo);
|
|
|
- addStock(vo, jdOrderDetails);
|
|
|
+ addStock(vo, jdOrderDetails, handleType);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -194,9 +197,9 @@ public class JdOrderDetailsServiceImpl extends ServiceImpl<JdOrderDetailsMapper,
|
|
|
* @date 2024/1/15 22:42
|
|
|
*/
|
|
|
@DSTransactional
|
|
|
- public void addAndReduceStock(JdOrderDetailsVo vo, JdOrderDetails jdOrderDetails) {
|
|
|
- addStock(vo, jdOrderDetails);
|
|
|
- reduceStock(vo, jdOrderDetails);
|
|
|
+ public void addAndReduceStock(JdOrderDetailsVo vo, JdOrderDetails jdOrderDetails, String handleType) {
|
|
|
+ addStock(vo, jdOrderDetails, handleType);
|
|
|
+ reduceStock(vo, jdOrderDetails, handleType);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -206,19 +209,19 @@ public class JdOrderDetailsServiceImpl extends ServiceImpl<JdOrderDetailsMapper,
|
|
|
* @date 2024/1/15 22:42
|
|
|
*/
|
|
|
@DSTransactional
|
|
|
- public void fillRemarkAndAddReduceStock(JdOrderDetailsVo vo, JdOrderDetails jdOrderDetails) {
|
|
|
- fillRemark(vo, jdOrderDetails);
|
|
|
- addStock(vo, jdOrderDetails);
|
|
|
- reduceStock(vo, jdOrderDetails);
|
|
|
+ public void fillRemarkAmountAndAddReduceStock(JdOrderDetailsVo vo, JdOrderDetails jdOrderDetails, String handleType) {
|
|
|
+ fillRemarkAndAmount(vo, jdOrderDetails);
|
|
|
+ addStock(vo, jdOrderDetails, handleType);
|
|
|
+ reduceStock(vo, jdOrderDetails, handleType);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 增加库存
|
|
|
* @param vo
|
|
|
*/
|
|
|
- private void addStock(JdOrderDetailsVo vo, JdOrderDetails jdOrderDetails) {
|
|
|
+ private void addStock(JdOrderDetailsVo vo, JdOrderDetails jdOrderDetails, String handleType) {
|
|
|
//操作库存及记录
|
|
|
- operateStock(vo.getAddWarehouseId(), RunParamConstant.INBOUND, vo.getAddQuantity(), vo.getAddProductId(), jdOrderDetails);
|
|
|
+ operateStock(vo.getAddWarehouseId(), RunParamConstant.INBOUND, vo.getAddQuantity(), vo.getAddProductId(), jdOrderDetails, handleType);
|
|
|
jdOrderDetails.setAddProductId(vo.getAddProductId());
|
|
|
jdOrderDetails.setAddQuantity(vo.getAddQuantity());
|
|
|
jdOrderDetails.setAddWarehouseId(vo.getAddWarehouseId());
|
|
@@ -229,15 +232,32 @@ public class JdOrderDetailsServiceImpl extends ServiceImpl<JdOrderDetailsMapper,
|
|
|
* @author hj
|
|
|
* @date 2024/1/15 22:44
|
|
|
*/
|
|
|
- private void reduceStock(JdOrderDetailsVo vo, JdOrderDetails jdOrderDetails) {
|
|
|
+ private void reduceStock(JdOrderDetailsVo vo, JdOrderDetails jdOrderDetails, String handleType) {
|
|
|
//操作库存及记录
|
|
|
- operateStock(vo.getReduceWarehouseId(), RunParamConstant.OUTBOUND, vo.getReduceQuantity(), vo.getReduceProductId(), jdOrderDetails);
|
|
|
+ operateStock(vo.getReduceWarehouseId(), RunParamConstant.OUTBOUND, vo.getReduceQuantity(), vo.getReduceProductId(), jdOrderDetails, handleType);
|
|
|
jdOrderDetails.setReduceProductId(vo.getReduceProductId());
|
|
|
jdOrderDetails.setReduceQuantity(vo.getReduceQuantity());
|
|
|
jdOrderDetails.setReduceWarehouseId(vo.getReduceWarehouseId());
|
|
|
}
|
|
|
|
|
|
|
|
|
+ private static final Table<String, String , JournalType> JOURNAL_TYPE_TABLE = ImmutableTable.<String, String, JournalType>builder()
|
|
|
+ .put("2","101", JournalType.JDYC_DFBDCK)
|
|
|
+
|
|
|
+ .put("1","201", JournalType.JDYC_SFTHRK)
|
|
|
+
|
|
|
+ .put("1","301", JournalType.JDYC_CFTHRK)
|
|
|
+
|
|
|
+ .put("1","302", JournalType.JDYC_CFTHRK)
|
|
|
+ .put("2","302", JournalType.JDYC_CFBDCK)
|
|
|
+
|
|
|
+ .put("1","303", JournalType.JDYC_CFTHRK)
|
|
|
+ .put("2","303", JournalType.JDYC_CFBSCK)
|
|
|
+
|
|
|
+ .put("1","501", JournalType.JDYC_TMCWTHRk)
|
|
|
+ .build();
|
|
|
+
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 操作库存及记录
|
|
@@ -246,7 +266,7 @@ public class JdOrderDetailsServiceImpl extends ServiceImpl<JdOrderDetailsMapper,
|
|
|
* @param quantity 操作数量
|
|
|
*/
|
|
|
@DSTransactional
|
|
|
- public void operateStock(Long warehouseId, int type, BigDecimal quantity, Long productId, JdOrderDetails jdOrderDetails) {
|
|
|
+ public void operateStock(Long warehouseId, int type, BigDecimal quantity, Long productId, JdOrderDetails jdOrderDetails, String handleType) {
|
|
|
if (ObjectUtil.isNull(warehouseId) || quantity.compareTo(BigDecimal.ZERO) <= 0) {
|
|
|
throw new RuntimeException("参数错误");
|
|
|
}
|
|
@@ -264,7 +284,7 @@ public class JdOrderDetailsServiceImpl extends ServiceImpl<JdOrderDetailsMapper,
|
|
|
//创建出入库记录
|
|
|
StockJournal stockJournal = new StockJournal();
|
|
|
stockJournal.setOpType(type);//1入库2出库
|
|
|
- stockJournal.setType(JournalType.JD_BACK_IN.getDetailType());//流水类型 JournalType枚举
|
|
|
+ stockJournal.setType(JOURNAL_TYPE_TABLE.get(StrUtil.toString(type), handleType).getDetailType());//流水类型 JournalType枚举
|
|
|
stockJournal.setCode("流水编号");//流水编号,没规范赋值业务编号也行
|
|
|
stockJournal.setWarehouseId(warehouseId);//仓库id
|
|
|
stockJournal.setBusinessId(jdOrderDetails.getJdOrderId());//业务id
|