通过生产报工更新生产任务和生产工单的进度;进行物料的消耗;进行产品的产出。
This commit is contained in:
parent
6559979ca8
commit
2d300808a7
@ -154,7 +154,7 @@ create table pro_route_process (
|
||||
default_pre_time int(11) default 0 comment '准备时间',
|
||||
default_suf_time int(11) default 0 comment '等待时间',
|
||||
color_code char(7) default '#00AEF3' comment '甘特图显示颜色',
|
||||
update_flag varchar(64) default 'N' comment '更新工单',
|
||||
key_flag varchar(64) default 'N' comment '关键工序',
|
||||
remark varchar(500) default '' comment '备注',
|
||||
attr1 varchar(64) default null comment '预留字段1',
|
||||
attr2 varchar(255) default null comment '预留字段2',
|
||||
|
Binary file not shown.
@ -4,11 +4,19 @@ import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.ktg.mes.pro.domain.ProFeedback;
|
||||
import com.ktg.mes.pro.domain.ProTask;
|
||||
import com.ktg.common.constant.UserConstants;
|
||||
import com.ktg.common.utils.StringUtils;
|
||||
import com.ktg.mes.pro.domain.*;
|
||||
import com.ktg.mes.pro.service.IProRouteProcessService;
|
||||
import com.ktg.mes.pro.service.IProTaskService;
|
||||
import com.ktg.mes.pro.service.IProWorkorderService;
|
||||
import com.ktg.mes.wm.domain.WmItemConsume;
|
||||
import com.ktg.mes.wm.domain.WmProductProduce;
|
||||
import com.ktg.mes.wm.domain.tx.ItemConsumeTxBean;
|
||||
import com.ktg.mes.wm.domain.tx.ProductProductTxBean;
|
||||
import com.ktg.mes.wm.service.IStorageCoreService;
|
||||
import com.ktg.mes.wm.service.IWmItemConsumeService;
|
||||
import com.ktg.mes.wm.service.IWmProductProduceService;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@ -44,9 +52,18 @@ public class ProFeedbackController extends BaseController
|
||||
@Autowired
|
||||
private IProTaskService proTaskService;
|
||||
|
||||
@Autowired
|
||||
private IProRouteProcessService proRouteProcessService;
|
||||
|
||||
@Autowired
|
||||
private IProWorkorderService proWorkorderService;
|
||||
|
||||
@Autowired
|
||||
private IWmItemConsumeService wmItemConsumeService;
|
||||
|
||||
@Autowired
|
||||
private IWmProductProduceService wmProductProduceService;
|
||||
|
||||
@Autowired
|
||||
private IStorageCoreService storageCoreService;
|
||||
|
||||
@ -133,7 +150,7 @@ public class ProFeedbackController extends BaseController
|
||||
public AjaxResult execute(@PathVariable("recordId") Long recordId){
|
||||
|
||||
ProFeedback feedback= proFeedbackService.selectProFeedbackByRecordId(recordId);
|
||||
|
||||
ProWorkorder workorder = proWorkorderService.selectProWorkorderByWorkorderId(feedback.getWorkorderId());
|
||||
//更新生产任务的生产数量
|
||||
ProTask task = proTaskService.selectProTaskByTaskId(feedback.getTaskId());
|
||||
BigDecimal quantityProduced,quantityQuanlify,quantityUnquanlify;
|
||||
@ -145,10 +162,49 @@ public class ProFeedbackController extends BaseController
|
||||
task.setQuantityUnquanlify(quantityUnquanlify.add(feedback.getQuantityUnquanlified()));
|
||||
proTaskService.updateProTask(task);
|
||||
|
||||
//如果是最后一道工序,则更新当前工单的已生产数量
|
||||
//如果是关键工序,则更新当前工单的已生产数量,进行产品产出动作
|
||||
if(proRouteProcessService.checkKeyProcess(feedback)){
|
||||
//更新生产工单的生产数量
|
||||
workorder.setQuantityProduced(workorder.getQuantityProduced().add(feedback.getQuantityFeedback()));
|
||||
proWorkorderService.updateProWorkorder(workorder);
|
||||
|
||||
//生成产品产出记录单
|
||||
WmProductProduce productRecord = wmProductProduceService.generateProductProduce(feedback);
|
||||
//执行产品产出入线边库
|
||||
executeProductProduce(productRecord);
|
||||
}
|
||||
|
||||
//根据当前工序的物料BOM配置,进行物料消耗
|
||||
//先生成消耗单
|
||||
WmItemConsume itemConsume = wmItemConsumeService.generateItemConsume(feedback);
|
||||
if(StringUtils.isNotNull(itemConsume)){
|
||||
//再执行库存消耗动作
|
||||
executeItemConsume(itemConsume);
|
||||
}
|
||||
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行产品产出入线边库动作
|
||||
* @param record
|
||||
*/
|
||||
private void executeProductProduce(WmProductProduce record){
|
||||
List<ProductProductTxBean> beans = wmProductProduceService.getTxBeans(record.getRecordId());
|
||||
storageCoreService.processProductProduce(beans);
|
||||
record.setStatus(UserConstants.ORDER_STATUS_FINISHED);
|
||||
wmProductProduceService.updateWmProductProduce(record);
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行物料消耗库存动作
|
||||
* @param record
|
||||
*/
|
||||
private void executeItemConsume(WmItemConsume record){
|
||||
List<ItemConsumeTxBean> beans = wmItemConsumeService.getTxBeans(record.getRecordId());
|
||||
storageCoreService.processItemConsume(beans);
|
||||
record.setStatus(UserConstants.ORDER_STATUS_FINISHED);
|
||||
wmItemConsumeService.updateWmItemConsume(record);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -27,6 +27,13 @@ public interface ProRouteMapper
|
||||
*/
|
||||
public List<ProRoute> selectProRouteList(ProRoute proRoute);
|
||||
|
||||
/**
|
||||
* 根据物料查找生效的工艺路线
|
||||
* @param itemId
|
||||
* @return
|
||||
*/
|
||||
public ProRoute getRouteByProductId(Long itemId);
|
||||
|
||||
public ProRoute checkRouteCodeUnique(ProRoute proRoute);
|
||||
|
||||
/**
|
||||
|
@ -1,7 +1,10 @@
|
||||
package com.ktg.mes.pro.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.ktg.mes.pro.domain.ProFeedback;
|
||||
import com.ktg.mes.pro.domain.ProRouteProductBom;
|
||||
import com.ktg.mes.wm.domain.WmItemConsume;
|
||||
|
||||
/**
|
||||
* 产品制程物料BOMService接口
|
||||
@ -80,4 +83,6 @@ public interface IProRouteProductBomService
|
||||
* @return
|
||||
*/
|
||||
public int deleteByRouteIdAndProductId(ProRouteProductBom proRouteProductBom);
|
||||
|
||||
|
||||
}
|
||||
|
@ -27,6 +27,13 @@ public interface IProRouteService
|
||||
*/
|
||||
public List<ProRoute> selectProRouteList(ProRoute proRoute);
|
||||
|
||||
/**
|
||||
* 根据物料查找生效的工艺路线
|
||||
* @param itemId
|
||||
* @return
|
||||
*/
|
||||
public ProRoute getRouteByProductId(Long itemId);
|
||||
|
||||
public String checkRouteCodeUnique(ProRoute proRoute);
|
||||
|
||||
/**
|
||||
|
@ -5,6 +5,8 @@ import java.util.List;
|
||||
import com.ktg.common.constant.UserConstants;
|
||||
import com.ktg.common.utils.DateUtils;
|
||||
import com.ktg.common.utils.StringUtils;
|
||||
import com.ktg.mes.pro.domain.ProFeedback;
|
||||
import com.ktg.mes.wm.domain.WmItemConsume;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ktg.mes.pro.mapper.ProRouteProductBomMapper;
|
||||
|
@ -47,6 +47,12 @@ public class ProRouteServiceImpl implements IProRouteService
|
||||
return proRouteMapper.selectProRouteList(proRoute);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ProRoute getRouteByProductId(Long itemId) {
|
||||
return proRouteMapper.getRouteByProductId(itemId);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String checkRouteCodeUnique(ProRoute proRoute) {
|
||||
ProRoute route = proRouteMapper.checkRouteCodeUnique(proRoute);
|
||||
|
@ -66,6 +66,18 @@ public class ItemConsumeTxBean extends BaseEntity {
|
||||
/** 单据行ID */
|
||||
private Long sourceDocLineId;
|
||||
|
||||
|
||||
/** 事务数量 */
|
||||
private BigDecimal transactionQuantity;
|
||||
|
||||
/** 生产工单ID **/
|
||||
private Long workorderId;
|
||||
|
||||
|
||||
/** 生产工单编号 **/
|
||||
private String workorderCode;
|
||||
|
||||
|
||||
public Long getMaterialStockId() {
|
||||
return materialStockId;
|
||||
}
|
||||
@ -250,12 +262,6 @@ public class ItemConsumeTxBean extends BaseEntity {
|
||||
this.workorderCode = workorderCode;
|
||||
}
|
||||
|
||||
/** 事务数量 */
|
||||
private BigDecimal transactionQuantity;
|
||||
|
||||
/** 生产工单ID **/
|
||||
private Long workorderId;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ItemConsumeTxBean{" +
|
||||
@ -285,9 +291,6 @@ public class ItemConsumeTxBean extends BaseEntity {
|
||||
'}';
|
||||
}
|
||||
|
||||
/** 生产工单编号 **/
|
||||
private String workorderCode;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package com.ktg.mes.wm.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.ktg.mes.wm.domain.WmItemConsume;
|
||||
import com.ktg.mes.wm.domain.tx.ItemConsumeTxBean;
|
||||
|
||||
/**
|
||||
* 物料消耗记录Mapper接口
|
||||
@ -58,4 +59,6 @@ public interface WmItemConsumeMapper
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteWmItemConsumeByRecordIds(Long[] recordIds);
|
||||
|
||||
public List<ItemConsumeTxBean> getTxBeans(Long recordId);
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package com.ktg.mes.wm.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.ktg.mes.wm.domain.WmProductProduce;
|
||||
import com.ktg.mes.wm.domain.tx.ProductProductTxBean;
|
||||
|
||||
/**
|
||||
* 产品产出记录Mapper接口
|
||||
@ -58,4 +59,6 @@ public interface WmProductProduceMapper
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteWmProductProduceByRecordIds(Long[] recordIds);
|
||||
|
||||
public List<ProductProductTxBean> getTxBeans(Long recordId);
|
||||
}
|
||||
|
@ -33,6 +33,18 @@ public interface IStorageCoreService {
|
||||
*/
|
||||
public void processRtIssue(List<RtIssueTxBean> lines);
|
||||
|
||||
/**
|
||||
* 处理生产消耗
|
||||
* @param lines
|
||||
*/
|
||||
public void processItemConsume(List<ItemConsumeTxBean> lines);
|
||||
|
||||
/**
|
||||
* 处理产品产出
|
||||
* @param lines
|
||||
*/
|
||||
public void processProductProduce(List<ProductProductTxBean> lines);
|
||||
|
||||
/**
|
||||
* 处理产品入库
|
||||
* @param lines
|
||||
|
@ -1,7 +1,10 @@
|
||||
package com.ktg.mes.wm.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.ktg.mes.pro.domain.ProFeedback;
|
||||
import com.ktg.mes.wm.domain.WmItemConsume;
|
||||
import com.ktg.mes.wm.domain.tx.ItemConsumeTxBean;
|
||||
|
||||
/**
|
||||
* 物料消耗记录Service接口
|
||||
@ -58,4 +61,13 @@ public interface IWmItemConsumeService
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteWmItemConsumeByRecordId(Long recordId);
|
||||
|
||||
/**
|
||||
* 根据生产报工单生成物料消耗记录
|
||||
* @param feedback
|
||||
* @return
|
||||
*/
|
||||
public WmItemConsume generateItemConsume(ProFeedback feedback);
|
||||
|
||||
public List<ItemConsumeTxBean> getTxBeans(Long recordId);
|
||||
}
|
||||
|
@ -1,7 +1,10 @@
|
||||
package com.ktg.mes.wm.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.ktg.mes.pro.domain.ProFeedback;
|
||||
import com.ktg.mes.wm.domain.WmProductProduce;
|
||||
import com.ktg.mes.wm.domain.tx.ProductProductTxBean;
|
||||
import com.ktg.mes.wm.domain.tx.ProductRecptTxBean;
|
||||
|
||||
/**
|
||||
@ -60,6 +63,12 @@ public interface IWmProductProduceService
|
||||
*/
|
||||
public int deleteWmProductProduceByRecordId(Long recordId);
|
||||
|
||||
/**
|
||||
* 根据报工记录生成对应的产品产出记录
|
||||
* @param feedback
|
||||
*/
|
||||
public WmProductProduce generateProductProduce(ProFeedback feedback);
|
||||
|
||||
public List<ProductProductTxBean> getTxBeans(Long recordId);
|
||||
|
||||
}
|
||||
|
@ -1,7 +1,18 @@
|
||||
package com.ktg.mes.wm.service.impl;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.ktg.common.constant.UserConstants;
|
||||
import com.ktg.common.utils.DateUtils;
|
||||
import com.ktg.mes.md.domain.MdWorkstation;
|
||||
import com.ktg.mes.md.mapper.MdWorkstationMapper;
|
||||
import com.ktg.mes.pro.domain.*;
|
||||
import com.ktg.mes.pro.mapper.*;
|
||||
import com.ktg.mes.wm.domain.WmItemConsumeLine;
|
||||
import com.ktg.mes.wm.domain.tx.ItemConsumeTxBean;
|
||||
import com.ktg.mes.wm.mapper.WmItemConsumeLineMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ktg.mes.wm.mapper.WmItemConsumeMapper;
|
||||
@ -20,6 +31,27 @@ public class WmItemConsumeServiceImpl implements IWmItemConsumeService
|
||||
@Autowired
|
||||
private WmItemConsumeMapper wmItemConsumeMapper;
|
||||
|
||||
@Autowired
|
||||
private WmItemConsumeLineMapper wmItemConsumeLineMapper;
|
||||
|
||||
@Autowired
|
||||
private ProWorkorderMapper proWorkorderMapper;
|
||||
|
||||
@Autowired
|
||||
private ProTaskMapper proTaskMapper;
|
||||
|
||||
@Autowired
|
||||
private MdWorkstationMapper mdWorkstationMapper;
|
||||
|
||||
@Autowired
|
||||
private ProProcessMapper proProcessMapper;
|
||||
|
||||
@Autowired
|
||||
private ProRouteMapper proRouteMapper;
|
||||
|
||||
@Autowired
|
||||
private ProRouteProductBomMapper proRouteProductBomMapper;
|
||||
|
||||
/**
|
||||
* 查询物料消耗记录
|
||||
*
|
||||
@ -93,4 +125,67 @@ public class WmItemConsumeServiceImpl implements IWmItemConsumeService
|
||||
{
|
||||
return wmItemConsumeMapper.deleteWmItemConsumeByRecordId(recordId);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public WmItemConsume generateItemConsume(ProFeedback feedback) {
|
||||
ProWorkorder workorder = proWorkorderMapper.selectProWorkorderByWorkorderId(feedback.getWorkorderId());
|
||||
MdWorkstation workstation = mdWorkstationMapper.selectMdWorkstationByWorkstationId(feedback.getWorkstationId());
|
||||
ProProcess process = proProcessMapper.selectProProcessByProcessId(workstation.getProcessId());
|
||||
ProTask task = proTaskMapper.selectProTaskByTaskId(feedback.getTaskId());
|
||||
ProRoute route = proRouteMapper.getRouteByProductId(feedback.getItemId());
|
||||
|
||||
//生成消耗单头信息
|
||||
WmItemConsume itemConsume = new WmItemConsume();
|
||||
itemConsume.setWorkorderId(feedback.getWorkorderId());
|
||||
itemConsume.setWorkorderCode(workorder.getWorkorderCode());
|
||||
itemConsume.setWorkorderName(workorder.getWorkorderName());
|
||||
|
||||
itemConsume.setWorkstationId(feedback.getWorkstationId());
|
||||
itemConsume.setWorkstationCode(workstation.getWorkstationCode());
|
||||
itemConsume.setWorkstationName(workstation.getWorkstationName());
|
||||
|
||||
itemConsume.setTaskId(feedback.getTaskId());
|
||||
itemConsume.setTaskCode(task.getTaskCode());
|
||||
itemConsume.setTaskName(task.getTaskName());
|
||||
|
||||
itemConsume.setProcessId(process.getProcessId());
|
||||
itemConsume.setProcessCode(process.getProcessCode());
|
||||
itemConsume.setProcessName(process.getProcessName());
|
||||
|
||||
itemConsume.setConsumeDate(new Date());
|
||||
itemConsume.setStatus(UserConstants.ORDER_STATUS_PREPARE);
|
||||
wmItemConsumeMapper.insertWmItemConsume(itemConsume);
|
||||
|
||||
//生成行信息
|
||||
//先获取当前生产的产品在此道工序中配置的物料BOM
|
||||
ProRouteProductBom param = new ProRouteProductBom();
|
||||
param.setProductId(feedback.getItemId());
|
||||
param.setRouteId(route.getRouteId());
|
||||
List<ProRouteProductBom> boms = proRouteProductBomMapper.selectProRouteProductBomList(param);
|
||||
if(CollectionUtil.isNotEmpty(boms)){
|
||||
for (ProRouteProductBom bom: boms
|
||||
) {
|
||||
WmItemConsumeLine line = new WmItemConsumeLine();
|
||||
line.setRecordId(itemConsume.getRecordId());
|
||||
line.setItemId(bom.getItemId());
|
||||
line.setItemCode(bom.getItemCode());
|
||||
line.setItemName(bom.getItemName());
|
||||
line.setSpecification(bom.getSpecification());
|
||||
line.setUnitOfMeasure(bom.getUnitOfMeasure());
|
||||
line.setQuantityConsume(bom.getQuantity().multiply(feedback.getQuantity()));
|
||||
line.setBatchCode(workorder.getBatchCode());
|
||||
wmItemConsumeLineMapper.insertWmItemConsumeLine(line);
|
||||
}
|
||||
}else {
|
||||
return null; //如果本道工序没有配置BOM物料,则直接返回空
|
||||
}
|
||||
|
||||
return itemConsume;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ItemConsumeTxBean> getTxBeans(Long recordId) {
|
||||
return wmItemConsumeMapper.getTxBeans(recordId);
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,22 @@
|
||||
package com.ktg.mes.wm.service.impl;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.ktg.common.constant.UserConstants;
|
||||
import com.ktg.common.utils.DateUtils;
|
||||
import com.ktg.mes.md.domain.MdWorkstation;
|
||||
import com.ktg.mes.md.mapper.MdWorkstationMapper;
|
||||
import com.ktg.mes.pro.domain.ProFeedback;
|
||||
import com.ktg.mes.pro.domain.ProProcess;
|
||||
import com.ktg.mes.pro.domain.ProTask;
|
||||
import com.ktg.mes.pro.domain.ProWorkorder;
|
||||
import com.ktg.mes.pro.mapper.ProProcessMapper;
|
||||
import com.ktg.mes.pro.mapper.ProTaskMapper;
|
||||
import com.ktg.mes.pro.mapper.ProWorkorderMapper;
|
||||
import com.ktg.mes.wm.domain.WmProductProduceLine;
|
||||
import com.ktg.mes.wm.domain.tx.ProductProductTxBean;
|
||||
import com.ktg.mes.wm.mapper.WmProductProduceLineMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ktg.mes.wm.mapper.WmProductProduceMapper;
|
||||
@ -20,6 +35,21 @@ public class WmProductProduceServiceImpl implements IWmProductProduceService
|
||||
@Autowired
|
||||
private WmProductProduceMapper wmProductProduceMapper;
|
||||
|
||||
@Autowired
|
||||
private WmProductProduceLineMapper wmProductProduceLineMapper;
|
||||
|
||||
@Autowired
|
||||
private ProWorkorderMapper proWorkorderMapper;
|
||||
|
||||
@Autowired
|
||||
private ProTaskMapper proTaskMapper;
|
||||
|
||||
@Autowired
|
||||
private MdWorkstationMapper mdWorkstationMapper;
|
||||
|
||||
@Autowired
|
||||
private ProProcessMapper proProcessMapper;
|
||||
|
||||
/**
|
||||
* 查询产品产出记录
|
||||
*
|
||||
@ -93,4 +123,53 @@ public class WmProductProduceServiceImpl implements IWmProductProduceService
|
||||
{
|
||||
return wmProductProduceMapper.deleteWmProductProduceByRecordId(recordId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public WmProductProduce generateProductProduce(ProFeedback feedback) {
|
||||
ProWorkorder workorder = proWorkorderMapper.selectProWorkorderByWorkorderId(feedback.getWorkorderId());
|
||||
MdWorkstation workstation = mdWorkstationMapper.selectMdWorkstationByWorkstationId(feedback.getWorkstationId());
|
||||
ProProcess process = proProcessMapper.selectProProcessByProcessId(workstation.getProcessId());
|
||||
ProTask task = proTaskMapper.selectProTaskByTaskId(feedback.getTaskId());
|
||||
//生成单据头信息
|
||||
WmProductProduce productProduce = new WmProductProduce();
|
||||
productProduce.setWorkorderId(feedback.getWorkorderId());
|
||||
productProduce.setWorkorderCode(feedback.getWorkorderCode());
|
||||
productProduce.setWorkorderName(feedback.getWorkorderName());
|
||||
|
||||
productProduce.setTaskId(feedback.getTaskId());
|
||||
productProduce.setTaskCode(task.getTaskCode());
|
||||
productProduce.setTaskName(task.getTaskName());
|
||||
|
||||
productProduce.setWorkstationId(feedback.getWorkstationId());
|
||||
productProduce.setWorkstationCode(workstation.getWorkstationCode());
|
||||
productProduce.setWorkstationName(workstation.getWorkstationName());
|
||||
|
||||
productProduce.setProcessId(process.getProcessId());
|
||||
productProduce.setProcessCode(process.getProcessCode());
|
||||
productProduce.setProcessName(process.getProcessName());
|
||||
|
||||
productProduce.setProduceDate(new Date());
|
||||
productProduce.setStatus(UserConstants.ORDER_STATUS_PREPARE);
|
||||
wmProductProduceMapper.insertWmProductProduce(productProduce);
|
||||
|
||||
//生成单据行信息; 以后如果是在生产过程中产生多种副产品可以在这里添加更多的行信息进行支持
|
||||
WmProductProduceLine line = new WmProductProduceLine();
|
||||
line.setRecordId(productProduce.getRecordId());
|
||||
line.setItemId(feedback.getItemId());
|
||||
line.setItemCode(feedback.getItemCode());
|
||||
line.setItemName(feedback.getItemName());
|
||||
line.setSpecification(feedback.getSpecification());
|
||||
line.setUnitOfMeasure(feedback.getUnitOfMeasure());
|
||||
line.setQuantityProduce(feedback.getQuantity());
|
||||
line.setBatchCode(workorder.getBatchCode());
|
||||
wmProductProduceLineMapper.insertWmProductProduceLine(line);
|
||||
return productProduce;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ProductProductTxBean> getTxBeans(Long recordId) {
|
||||
return wmProductProduceMapper.getTxBeans(recordId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -40,6 +40,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
where route_id = #{routeId}
|
||||
</select>
|
||||
|
||||
<select id="getRouteByProductId" parameterType="Long" resultMap="ProRouteResult">
|
||||
select r.*
|
||||
from pro_route r
|
||||
left join pro_route_product p
|
||||
on p.route_id = r.route_id
|
||||
where r.enable_flag = 'Y'
|
||||
and p.item_id = #{itemId}
|
||||
</select>
|
||||
|
||||
<select id="checkRouteCodeUnique" parameterType="ProRoute" resultMap="ProRouteResult">
|
||||
<include refid="selectProRouteVo"/>
|
||||
where route_code = #{routeCode} limit 1
|
||||
|
@ -31,6 +31,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="updateTime" column="update_time" />
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="ItemConsumeTxBeanResult" type="ItemConsumeTxBean">
|
||||
<result property="materialStockId" column="material_stock_id"></result>
|
||||
<result property="itemId" column="item_id"></result>
|
||||
<result property="itemCode" column="item_code"></result>
|
||||
<result property="itemName" column="item_name"></result>
|
||||
<result property="specification" column="specification"></result>
|
||||
<result property="unitOfMeasure" column="unit_of_measure"></result>
|
||||
<result property="batchCode" column="batch_code"></result>
|
||||
<result property="warehouseId" column="warehouse_id"></result>
|
||||
<result property="warehouseCode" column="warehouse_code"></result>
|
||||
<result property="warehouseName" column="warehouse_name"></result>
|
||||
<result property="locationId" column="location_id"></result>
|
||||
<result property="locationCode" column="location_code"></result>
|
||||
<result property="locationName" column="location_name"></result>
|
||||
<result property="areaId" column="area_id"></result>
|
||||
<result property="areaCode" column="area_code"></result>
|
||||
<result property="areaName" column="area_name"></result>
|
||||
<result property="sourceDocType" column="source_doc_type"></result>
|
||||
<result property="sourceDocId" column="source_doc_id"></result>
|
||||
<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" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
</resultMap>
|
||||
<sql id="selectWmItemConsumeVo">
|
||||
select record_id, workorder_id, workorder_code, workorder_name, task_id, task_code, task_name, workstation_id, workstation_code, workstation_name, process_id, process_code, process_name, consume_date, status, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from wm_item_consume
|
||||
</sql>
|
||||
@ -59,7 +88,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<include refid="selectWmItemConsumeVo"/>
|
||||
where record_id = #{recordId}
|
||||
</select>
|
||||
|
||||
|
||||
<select id="getTxBeans" parameterType="Long" resultMap="ItemConsumeTxBeanResult">
|
||||
SELECT 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`,
|
||||
'ITEM_CONSUME' AS source_doc_type,ir.`record_id` AS source_doc_id,"" AS source_doc_code,irl.`line_id` AS source_doc_line_id,
|
||||
irl.`quantity_consume` AS transaction_quantity,ir.workorder_id,ir.workorder_code,
|
||||
ir.`create_by`,ir.`create_time`,ir.`update_by`,ir.`update_time`
|
||||
FROM wm_item_consume ir
|
||||
LEFT JOIN wm_item_consume_line irl
|
||||
ON ir.record_id = irl.`record_id`
|
||||
WHERE ir.`record_id` = #{recordId}
|
||||
</select>
|
||||
|
||||
<insert id="insertWmItemConsume" parameterType="WmItemConsume" useGeneratedKeys="true" keyProperty="recordId">
|
||||
insert into wm_item_consume
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
|
@ -31,6 +31,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="updateTime" column="update_time" />
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="ProductProductTxBeanResult" type="ProductProductTxBean">
|
||||
<result property="itemId" column="item_id"></result>
|
||||
<result property="itemCode" column="item_code"></result>
|
||||
<result property="itemName" column="item_name"></result>
|
||||
<result property="specification" column="specification"></result>
|
||||
<result property="unitOfMeasure" column="unit_of_measure"></result>
|
||||
<result property="batchCode" column="batch_code"></result>
|
||||
<result property="warehouseId" column="warehouse_id"></result>
|
||||
<result property="warehouseCode" column="warehouse_code"></result>
|
||||
<result property="warehouseName" column="warehouse_name"></result>
|
||||
<result property="locationId" column="location_id"></result>
|
||||
<result property="locationCode" column="location_code"></result>
|
||||
<result property="locationName" column="location_name"></result>
|
||||
<result property="areaId" column="area_id"></result>
|
||||
<result property="areaCode" column="area_code"></result>
|
||||
<result property="areaName" column="area_name"></result>
|
||||
<result property="sourceDocType" column="source_doc_type"></result>
|
||||
<result property="sourceDocId" column="source_doc_id"></result>
|
||||
<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" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectWmProductProduceVo">
|
||||
select record_id, workorder_id, workorder_code, workorder_name, task_id, task_code, task_name, workstation_id, workstation_code, workstation_name, process_id, process_code, process_name, produce_date, status, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from wm_product_produce
|
||||
</sql>
|
||||
@ -59,7 +88,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<include refid="selectWmProductProduceVo"/>
|
||||
where record_id = #{recordId}
|
||||
</select>
|
||||
|
||||
|
||||
<select id="getTxBeans" parameterType="Long" resultMap="ProductProductTxBeanResult">
|
||||
SELECT 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`,
|
||||
'PRODUCT_PRODUCT' AS source_doc_type,ir.`record_id` AS source_doc_id,"" AS source_doc_code,irl.`line_id` AS source_doc_line_id,
|
||||
irl.`quantity_produce` AS transaction_quantity,ir.workorder_id,ir.workorder_code,
|
||||
ir.`create_by`,ir.`create_time`,ir.`update_by`,ir.`update_time`
|
||||
FROM wm_product_produce ir
|
||||
LEFT JOIN wm_product_produce_line irl
|
||||
ON ir.record_id = irl.`record_id`
|
||||
WHERE ir.`record_id` = #{recordId}
|
||||
</select>
|
||||
|
||||
<insert id="insertWmProductProduce" parameterType="WmProductProduce" useGeneratedKeys="true" keyProperty="recordId">
|
||||
insert into wm_product_produce
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
|
Loading…
Reference in New Issue
Block a user