触控屏查询投料清单接口
This commit is contained in:
parent
b0eaafc215
commit
afe77e394e
@ -152,5 +152,10 @@ public class UserConstants
|
|||||||
public static final String CAL_QUERY_BY_TEAM="TEAM";
|
public static final String CAL_QUERY_BY_TEAM="TEAM";
|
||||||
public static final String CAL_QUERY_BY_USER="USER";
|
public static final String CAL_QUERY_BY_USER="USER";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生产投料单据的类型
|
||||||
|
*/
|
||||||
|
public static final String TASK_ISSUE_DOC_TYPE_ISSUE="ISSUE"; //领料单
|
||||||
|
public static final String TASK_ISSUE_DOC_TYPE_TRANS="TRANS"; //流转单
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,145 @@
|
|||||||
|
package com.ktg.mes.pro.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import com.ktg.common.annotation.Log;
|
||||||
|
import com.ktg.common.constant.UserConstants;
|
||||||
|
import com.ktg.common.core.controller.BaseController;
|
||||||
|
import com.ktg.common.core.domain.AjaxResult;
|
||||||
|
import com.ktg.common.enums.BusinessType;
|
||||||
|
import com.ktg.common.utils.StringUtils;
|
||||||
|
import com.ktg.mes.pro.domain.ProTaskIssue;
|
||||||
|
import com.ktg.mes.pro.service.IProTaskIssueService;
|
||||||
|
import com.ktg.mes.wm.domain.WmIssueHeader;
|
||||||
|
import com.ktg.mes.wm.domain.WmIssueLine;
|
||||||
|
import com.ktg.mes.wm.service.IWmIssueHeaderService;
|
||||||
|
import com.ktg.mes.wm.service.IWmIssueLineService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/mobile/pro/taskissue")
|
||||||
|
public class ProTaskIssueMobController extends BaseController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IProTaskIssueService proTaskIssueService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IWmIssueHeaderService wmIssueHeaderService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IWmIssueLineService wmIssueLineService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询当前工作站、当前任务的投料清单
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('mes:pro:taskissue:list')")
|
||||||
|
@GetMapping("/getIssueList")
|
||||||
|
public AjaxResult getIssueList(ProTaskIssue proTaskIssue) {
|
||||||
|
List<ProTaskIssue> list = proTaskIssueService.selectProTaskIssueList(proTaskIssue);
|
||||||
|
return AjaxResult.success(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询当前工作站、当前任务可用的的领料清单
|
||||||
|
* 如果某个领料单是领出到当前工作站或者当前任务的,则可以查询到
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('mes:pro:taskissue:list')")
|
||||||
|
@GetMapping("/getIssueList")
|
||||||
|
public AjaxResult getReserveIssueList(ProTaskIssue proTaskIssue){
|
||||||
|
WmIssueHeader param = new WmIssueHeader();
|
||||||
|
//领料单上指定了工作站
|
||||||
|
if(StringUtils.isNotNull(proTaskIssue.getWorkstationId())){
|
||||||
|
param.setWorkstationId(proTaskIssue.getWorkstationId());
|
||||||
|
}
|
||||||
|
|
||||||
|
//领料单上指定了生产工单
|
||||||
|
if(StringUtils.isNotNull(proTaskIssue.getWorkorderId())){
|
||||||
|
param.setWorkorderId(proTaskIssue.getWorkorderId());
|
||||||
|
}
|
||||||
|
|
||||||
|
//领料单上指定了生产任务
|
||||||
|
if(StringUtils.isNotNull(proTaskIssue.getTaskId())){
|
||||||
|
param.setTaskId(proTaskIssue.getTaskId());
|
||||||
|
}
|
||||||
|
|
||||||
|
List<WmIssueHeader> issueList = wmIssueHeaderService.selectWmIssueHeaderList(param);
|
||||||
|
|
||||||
|
return AjaxResult.success(issueList);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过新增或者扫码的方式添加某个流转单或者领料单到当前工作站、当前任务的投料清单中
|
||||||
|
* 此接口只支持一次性添加一行物料。如果要添加整个领料单,则可在领料单上指定工作站和任务;或者使用addIssue接口
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('mes:pro:taskissue:add')")
|
||||||
|
@Log(title = "生产任务投料", businessType = BusinessType.INSERT)
|
||||||
|
@PostMapping("/add")
|
||||||
|
public AjaxResult add(@RequestBody ProTaskIssue proTaskIssue)
|
||||||
|
{
|
||||||
|
//不能重复添加
|
||||||
|
if(UserConstants.NOT_UNIQUE.equals(proTaskIssueService.checkUnique(proTaskIssue))){
|
||||||
|
return AjaxResult.error("物料已添加过");
|
||||||
|
}
|
||||||
|
return toAjax(proTaskIssueService.insertProTaskIssue(proTaskIssue));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过新增或者扫码的方式添加某个流转单或者领料单到当前工作站、当前任务的投料清单中
|
||||||
|
* 此接口专门用于一次性添加整个领料单的场景,传递的proTaskIssue参数需要source_doc_id为对应的领料单头ID
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('mes:pro:taskissue:add')")
|
||||||
|
@Log(title = "生产任务投料", businessType = BusinessType.INSERT)
|
||||||
|
@PostMapping("/addIssue")
|
||||||
|
public AjaxResult addIssue(@RequestBody ProTaskIssue proTaskIssue)
|
||||||
|
{
|
||||||
|
if(!UserConstants.TASK_ISSUE_DOC_TYPE_ISSUE.equals(proTaskIssue.getSourceDocType())){
|
||||||
|
return AjaxResult.error("请选择或扫描生产领料单!");//这里只支持添加整个领料单
|
||||||
|
}
|
||||||
|
Long issueId = proTaskIssue.getSourceDocId();
|
||||||
|
|
||||||
|
WmIssueLine param = new WmIssueLine();
|
||||||
|
param.setIssueId(issueId);
|
||||||
|
List<WmIssueLine> issueLines = wmIssueLineService.selectWmIssueLineList(param);
|
||||||
|
|
||||||
|
if(CollUtil.isEmpty(issueLines)){
|
||||||
|
return AjaxResult.error("领料单行为空");
|
||||||
|
}
|
||||||
|
|
||||||
|
for (WmIssueLine line: issueLines
|
||||||
|
) {
|
||||||
|
ProTaskIssue taskIssue = new ProTaskIssue();
|
||||||
|
taskIssue.setTaskId(proTaskIssue.getTaskId());
|
||||||
|
taskIssue.setWorkstationId(proTaskIssue.getWorkstationId());
|
||||||
|
taskIssue.setWorkorderId(proTaskIssue.getWorkorderId());
|
||||||
|
taskIssue.setSourceDocType(UserConstants.TASK_ISSUE_DOC_TYPE_ISSUE);
|
||||||
|
taskIssue.setSourceDocId(issueId);
|
||||||
|
//taskIssue.setSourceDocCode(); //领料单编号先不设置,需要的时候关联查询即可
|
||||||
|
taskIssue.setBatchCode(line.getBatchCode());
|
||||||
|
taskIssue.setSourceLineId(line.getLineId());
|
||||||
|
taskIssue.setItemId(line.getItemId());
|
||||||
|
taskIssue.setItemCode(line.getItemCode());
|
||||||
|
taskIssue.setItemName(line.getItemName());
|
||||||
|
taskIssue.setSpecification(line.getSpecification());
|
||||||
|
taskIssue.setUnitOfMeasure(line.getUnitOfMeasure());
|
||||||
|
taskIssue.setQuantityIssued(line.getQuantityIssued());
|
||||||
|
//taskIssue.setQuantityAvailable(); //可用数量,如果需要则要实时计算
|
||||||
|
taskIssue.setQuantityUsed(new BigDecimal(0)); //新添加的都默认为0;添加后删除再次添加也是0;实际使用量应该根据流转单计算
|
||||||
|
|
||||||
|
//不能重复添加
|
||||||
|
if(UserConstants.NOT_UNIQUE.equals(proTaskIssueService.checkUnique(taskIssue))){
|
||||||
|
return AjaxResult.error("物料已添加过");
|
||||||
|
}
|
||||||
|
proTaskIssueService.insertProTaskIssue(taskIssue);
|
||||||
|
}
|
||||||
|
|
||||||
|
return AjaxResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -27,6 +27,8 @@ public interface ProTaskIssueMapper
|
|||||||
*/
|
*/
|
||||||
public List<ProTaskIssue> selectProTaskIssueList(ProTaskIssue proTaskIssue);
|
public List<ProTaskIssue> selectProTaskIssueList(ProTaskIssue proTaskIssue);
|
||||||
|
|
||||||
|
public ProTaskIssue checkUnique(ProTaskIssue proTaskIssue);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增生产任务投料
|
* 新增生产任务投料
|
||||||
*
|
*
|
||||||
|
@ -27,6 +27,8 @@ public interface IProTaskIssueService
|
|||||||
*/
|
*/
|
||||||
public List<ProTaskIssue> selectProTaskIssueList(ProTaskIssue proTaskIssue);
|
public List<ProTaskIssue> selectProTaskIssueList(ProTaskIssue proTaskIssue);
|
||||||
|
|
||||||
|
public String checkUnique(ProTaskIssue proTaskIssue);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增生产任务投料
|
* 新增生产任务投料
|
||||||
*
|
*
|
||||||
|
@ -1,7 +1,11 @@
|
|||||||
package com.ktg.mes.pro.service.impl;
|
package com.ktg.mes.pro.service.impl;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.ktg.common.constant.UserConstants;
|
||||||
import com.ktg.common.utils.DateUtils;
|
import com.ktg.common.utils.DateUtils;
|
||||||
|
import com.ktg.common.utils.StringUtils;
|
||||||
|
import org.apache.catalina.User;
|
||||||
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 com.ktg.mes.pro.mapper.ProTaskIssueMapper;
|
import com.ktg.mes.pro.mapper.ProTaskIssueMapper;
|
||||||
@ -44,6 +48,15 @@ public class ProTaskIssueServiceImpl implements IProTaskIssueService
|
|||||||
return proTaskIssueMapper.selectProTaskIssueList(proTaskIssue);
|
return proTaskIssueMapper.selectProTaskIssueList(proTaskIssue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String checkUnique(ProTaskIssue proTaskIssue) {
|
||||||
|
ProTaskIssue taskIssue = proTaskIssueMapper.checkUnique(proTaskIssue);
|
||||||
|
if(StringUtils.isNotNull(taskIssue)){
|
||||||
|
return UserConstants.NOT_UNIQUE;
|
||||||
|
}
|
||||||
|
return UserConstants.UNIQUE;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增生产任务投料
|
* 新增生产任务投料
|
||||||
*
|
*
|
||||||
|
@ -63,7 +63,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<include refid="selectProTaskIssueVo"/>
|
<include refid="selectProTaskIssueVo"/>
|
||||||
where record_id = #{recordId}
|
where record_id = #{recordId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="checkUnique" parameterType="ProTaskIssue" resultMap="ProTaskIssueResult">
|
||||||
|
<include refid="selectProTaskIssueVo"/>
|
||||||
|
where workstation_id = #{workstationId}
|
||||||
|
and task_id = #{taskId}
|
||||||
|
and source_doc_type = #{sourceDocType}
|
||||||
|
and source_line_id = #{sourceLineId}
|
||||||
|
limit 1
|
||||||
|
</select>
|
||||||
|
|
||||||
<insert id="insertProTaskIssue" parameterType="ProTaskIssue" useGeneratedKeys="true" keyProperty="recordId">
|
<insert id="insertProTaskIssue" parameterType="ProTaskIssue" useGeneratedKeys="true" keyProperty="recordId">
|
||||||
insert into pro_task_issue
|
insert into pro_task_issue
|
||||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
Loading…
Reference in New Issue
Block a user