将领料出库的业务逻辑从“物料出库”改为"物料转移"。
This commit is contained in:
parent
66705d1948
commit
8bfb79a6de
@ -122,7 +122,9 @@ public class UserConstants
|
||||
*/
|
||||
public static final String TRANSACTION_TYPE_ITEM_RECPT = "ITEM_RECPT"; //原材料接收入库
|
||||
public static final String TRANSACTION_TYPE_ITEM_RTV = "ITEM_RTV"; //原材料退回供应商
|
||||
public static final String TRANSACTION_TYPE_ITEM_ISSUE = "ITEM_ISSUE"; //生产领用
|
||||
public static final String TRANSACTION_TYPE_ITEM_ISSUE_OUT = "ITEM_ISSUE_OUT"; //生产领用
|
||||
public static final String TRANSACTION_TYPE_ITEM_ISSUE_IN = "ITEM_ISSUE_IN";
|
||||
|
||||
public static final String TRANSACTION_TYPE_ITEM_RS = "ITEM_RS"; //生产退库
|
||||
public static final String TRANSACTION_TYPE_WAREHOUSE_TRANS_OUT = "TRANS_OUT"; //移库,移出
|
||||
public static final String TRANSACTION_TYPE_WAREHOUSE_TRANS_IN = "TRANS_IN"; //移库,移入
|
||||
|
@ -4,12 +4,13 @@ import cn.hutool.core.collection.CollUtil;
|
||||
import com.ktg.common.constant.UserConstants;
|
||||
import com.ktg.common.exception.BussinessException;
|
||||
import com.ktg.common.utils.bean.BeanUtils;
|
||||
import com.ktg.mes.wm.domain.WmStorageLocation;
|
||||
import com.ktg.mes.wm.domain.WmTransaction;
|
||||
import com.ktg.mes.wm.domain.WmWarehouse;
|
||||
import com.ktg.mes.wm.domain.tx.IssueTxBean;
|
||||
import com.ktg.mes.wm.domain.tx.ItemRecptTxBean;
|
||||
import com.ktg.mes.wm.domain.tx.RtVendorTxBean;
|
||||
import com.ktg.mes.wm.service.IStorageCoreService;
|
||||
import com.ktg.mes.wm.service.IWmTransactionService;
|
||||
import com.ktg.mes.wm.service.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@ -23,6 +24,15 @@ public class StorageCoreServiceImpl implements IStorageCoreService {
|
||||
@Autowired
|
||||
private IWmTransactionService wmTransactionService;
|
||||
|
||||
@Autowired
|
||||
private IWmWarehouseService wmWarehouseService;
|
||||
|
||||
@Autowired
|
||||
private IWmStorageLocationService wmStorageLocationService;
|
||||
|
||||
@Autowired
|
||||
private IWmStorageAreaService wmStorageAreaService;
|
||||
|
||||
/**
|
||||
* 处理入库单行
|
||||
* @param lines
|
||||
@ -67,19 +77,43 @@ public class StorageCoreServiceImpl implements IStorageCoreService {
|
||||
|
||||
@Override
|
||||
public void processIssue(List<IssueTxBean> lines) {
|
||||
String transactionType = UserConstants.TRANSACTION_TYPE_ITEM_ISSUE;
|
||||
if(CollUtil.isEmpty(lines)){
|
||||
throw new BussinessException("没有需要处理的领料单行");
|
||||
}
|
||||
|
||||
String transactionType_out = UserConstants.TRANSACTION_TYPE_ITEM_ISSUE_OUT;
|
||||
String transactionType_in = UserConstants.TRANSACTION_TYPE_ITEM_ISSUE_IN;
|
||||
for(int i=0;i<lines.size();i++){
|
||||
IssueTxBean line = lines.get(i);
|
||||
WmTransaction transaction = new WmTransaction();
|
||||
transaction.setTransactionType(transactionType);
|
||||
BeanUtils.copyBeanProp(transaction,line);
|
||||
transaction.setTransactionFlag(-1);//库存减少
|
||||
transaction.setTransactionDate(new Date());
|
||||
wmTransactionService.processTransaction(transaction);
|
||||
//这里先构造一条原库存减少的事务
|
||||
WmTransaction transaction_out = new WmTransaction();
|
||||
transaction_out.setTransactionType(transactionType_out);
|
||||
BeanUtils.copyBeanProp(transaction_out,line);
|
||||
transaction_out.setTransactionFlag(-1);//库存减少
|
||||
transaction_out.setTransactionDate(new Date());
|
||||
wmTransactionService.processTransaction(transaction_out);
|
||||
|
||||
//再构造一条目的库存增加的事务
|
||||
WmTransaction transaction_in = new WmTransaction();
|
||||
transaction_in.setTransactionType(transactionType_in);
|
||||
BeanUtils.copyBeanProp(transaction_in,line);
|
||||
transaction_in.setTransactionFlag(1);//库存增加
|
||||
|
||||
//由于是新增的库存记录所以需要将查询出来的库存记录ID置为空
|
||||
transaction_in.setMaterialStockId(null);
|
||||
|
||||
//这里使用系统默认生成的线边库初始化对应的入库仓库、库区、库位
|
||||
WmWarehouse warehouse = wmWarehouseService.selectWmWarehouseByWarehouseCode(UserConstants.VIRTUAL_WH);
|
||||
transaction_in.setWarehouseId(warehouse.getWarehouseId());
|
||||
transaction_in.setWarehouseCode(warehouse.getWarehouseCode());
|
||||
transaction_in.setWarehouseName(warehouse.getWarehouseName());
|
||||
WmStorageLocation location = wmStorageLocationService.selectWmStorageLocationByLocationCode(UserConstants.VIRTUAL_WS);
|
||||
transaction_in.setLocationId(location.getLocationId());
|
||||
transaction_in.setLocationCode(location.getLocationCode());
|
||||
transaction_in.setLocationName(location.getLocationName());
|
||||
//设置入库相关联的出库事务ID
|
||||
transaction_in.setRelatedTransactionId(transaction_out.getTransactionId());
|
||||
wmTransactionService.processTransaction(transaction_in);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -63,6 +63,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="sourceDocCode" column="source_doc_code"></result>
|
||||
<result property="sourceDocLineId" column="source_doc_line_id"></result>
|
||||
<result property="transactionQuantity" column="transaction_quantity"></result>
|
||||
<result property="workorderId" column="workorder_id"></result>
|
||||
<result property="workorderCode" column="workorder_code"></result>
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
@ -113,7 +115,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
SELECT irl.material_stock_id, irl.`item_id`,irl.`item_code`,irl.`item_name`,irl.`specification`,irl.`unit_of_measure`,irl.`batch_code`,
|
||||
irl.`warehouse_id`,irl.`warehouse_code`,irl.`warehouse_name`,irl.`location_id`,irl.`location_code`,irl.`location_name`,irl.`area_id`,irl.`area_code`,irl.`area_name`,
|
||||
'ISSUE' AS source_doc_type,ir.`issue_id` AS source_doc_id,ir.`issue_code` AS source_doc_code,irl.`line_id` AS source_doc_line_id,
|
||||
irl.`quantity_issued` AS transaction_quantity,
|
||||
irl.`quantity_issued` AS transaction_quantity,ir.workorder_id,ir.workorder_code,
|
||||
ir.`create_by`,ir.`create_time`,ir.`update_by`,ir.`update_time`
|
||||
FROM wm_issue_header ir
|
||||
LEFT JOIN wm_issue_line irl
|
||||
|
Loading…
Reference in New Issue
Block a user