移动端生产领料和生产退料接口

This commit is contained in:
yinjinlu-pc\尹金路 2023-08-17 20:24:01 +08:00
parent e158ef5dd4
commit 7f6547d999
4 changed files with 660 additions and 0 deletions

View File

@ -0,0 +1,132 @@
package com.ktg.mes.wm.controller.mobile;
import com.ktg.common.annotation.Log;
import com.ktg.common.core.controller.BaseController;
import com.ktg.common.core.domain.AjaxResult;
import com.ktg.common.core.page.TableDataInfo;
import com.ktg.common.enums.BusinessType;
import com.ktg.common.utils.StringUtils;
import com.ktg.mes.wm.domain.WmIssueLine;
import com.ktg.mes.wm.domain.WmMaterialStock;
import com.ktg.mes.wm.service.IWmIssueLineService;
import com.ktg.mes.wm.service.IWmMaterialStockService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api("生产领料明细")
@RestController
@RequestMapping("/mobile/wm/issueline")
public class WmIssueLineMobController extends BaseController {
@Autowired
private IWmIssueLineService wmIssueLineService;
@Autowired
private IWmMaterialStockService wmMaterialStockService;
/**
* 查询生产领料单行列表
*/
@ApiOperation("查询生产领导单行信息接口")
@PreAuthorize("@ss.hasPermi('mes:wm:issueline:list')")
@GetMapping("/list")
public TableDataInfo list(WmIssueLine wmIssueLine)
{
startPage();
List<WmIssueLine> list = wmIssueLineService.selectWmIssueLineList(wmIssueLine);
return getDataTable(list);
}
/**
* 获取生产领料单行详细信息
*/
@ApiOperation("获取生产领料单行明细信息接口")
@PreAuthorize("@ss.hasPermi('mes:wm:issueline:query')")
@GetMapping(value = "/{lineId}")
public AjaxResult getInfo(@PathVariable("lineId") Long lineId)
{
return AjaxResult.success(wmIssueLineService.selectWmIssueLineByLineId(lineId));
}
/**
* 新增生产领料单行
*/
@ApiOperation("新增生产领料单行信息接口")
@PreAuthorize("@ss.hasPermi('mes:wm:issueline:add')")
@Log(title = "生产领料单行", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody WmIssueLine wmIssueLine)
{
if(StringUtils.isNotNull(wmIssueLine.getMaterialStockId())){
WmMaterialStock stock = wmMaterialStockService.selectWmMaterialStockByMaterialStockId(wmIssueLine.getMaterialStockId());
wmIssueLine.setItemId(stock.getItemId());
wmIssueLine.setItemCode(stock.getItemCode());
wmIssueLine.setItemName(stock.getItemName());
wmIssueLine.setUnitOfMeasure(stock.getUnitOfMeasure());
wmIssueLine.setSpecification(stock.getSpecification());
wmIssueLine.setBatchCode(stock.getBatchCode());
wmIssueLine.setWarehouseId(stock.getWarehouseId());
wmIssueLine.setWarehouseCode(stock.getWarehouseCode());
wmIssueLine.setWarehouseName(stock.getWarehouseName());
wmIssueLine.setLocationId(stock.getLocationId());
wmIssueLine.setLocationCode(stock.getLocationCode());
wmIssueLine.setLocationName(stock.getLocationName());
wmIssueLine.setAreaId(stock.getAreaId());
wmIssueLine.setAreaCode(stock.getAreaCode());
wmIssueLine.setAreaName(stock.getAreaName());
}
wmIssueLine.setCreateBy(getUsername());
wmIssueLineService.insertWmIssueLine(wmIssueLine);
return AjaxResult.success(wmIssueLine);
}
/**
* 修改生产领料单行
*/
@ApiOperation("更新生产领料单行信息接口")
@PreAuthorize("@ss.hasPermi('mes:wm:issueline:edit')")
@Log(title = "生产领料单行", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody WmIssueLine wmIssueLine)
{
if(StringUtils.isNotNull(wmIssueLine.getMaterialStockId())){
WmMaterialStock stock = wmMaterialStockService.selectWmMaterialStockByMaterialStockId(wmIssueLine.getMaterialStockId());
wmIssueLine.setItemId(stock.getItemId());
wmIssueLine.setItemCode(stock.getItemCode());
wmIssueLine.setItemName(stock.getItemName());
wmIssueLine.setUnitOfMeasure(stock.getUnitOfMeasure());
wmIssueLine.setSpecification(stock.getSpecification());
wmIssueLine.setBatchCode(stock.getBatchCode());
wmIssueLine.setWarehouseId(stock.getWarehouseId());
wmIssueLine.setWarehouseCode(stock.getWarehouseCode());
wmIssueLine.setWarehouseName(stock.getWarehouseName());
wmIssueLine.setLocationId(stock.getLocationId());
wmIssueLine.setLocationCode(stock.getLocationCode());
wmIssueLine.setLocationName(stock.getLocationName());
wmIssueLine.setAreaId(stock.getAreaId());
wmIssueLine.setAreaCode(stock.getAreaCode());
wmIssueLine.setAreaName(stock.getAreaName());
}
return toAjax(wmIssueLineService.updateWmIssueLine(wmIssueLine));
}
/**
* 删除生产领料单行
*/
@ApiOperation("删除生产领料单行信息接口")
@PreAuthorize("@ss.hasPermi('mes:wm:issueline:remove')")
@Log(title = "生产领料单行", businessType = BusinessType.DELETE)
@DeleteMapping("/{lineIds}")
public AjaxResult remove(@PathVariable Long[] lineIds)
{
return toAjax(wmIssueLineService.deleteWmIssueLineByLineIds(lineIds));
}
}

View File

@ -0,0 +1,194 @@
package com.ktg.mes.wm.controller.mobile;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
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.core.page.TableDataInfo;
import com.ktg.common.enums.BusinessType;
import com.ktg.common.utils.StringUtils;
import com.ktg.mes.pro.domain.ProWorkorder;
import com.ktg.mes.pro.service.IProWorkorderService;
import com.ktg.mes.wm.domain.*;
import com.ktg.mes.wm.domain.tx.IssueTxBean;
import com.ktg.mes.wm.service.*;
import com.ktg.system.strategy.AutoCodeUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api("生产领料")
@RestController
@RequestMapping("/mobile/wm/issueheader")
public class WmIssueMobController extends BaseController {
@Autowired
private IWmIssueHeaderService wmIssueHeaderService;
@Autowired
private IWmIssueLineService wmIssueLineService;
@Autowired
private IStorageCoreService storageCoreService;
@Autowired
private IProWorkorderService proWorkorderService;
@Autowired
private AutoCodeUtil autoCodeUtil;
/**
* 查询生产领料单头列表
*/
@ApiOperation("查询生产领料单清单接口")
@PreAuthorize("@ss.hasPermi('mes:wm:issueheader:list')")
@GetMapping("/list")
public TableDataInfo list(WmIssueHeader wmIssueHeader)
{
startPage();
List<WmIssueHeader> list = wmIssueHeaderService.selectWmIssueHeaderList(wmIssueHeader);
return getDataTable(list);
}
/**
* 获取生产领料单头详细信息
*/
@ApiOperation("获取生产领料单详情信息接口")
@PreAuthorize("@ss.hasPermi('mes:wm:issueheader:query')")
@GetMapping(value = "/{issueId}")
public AjaxResult getInfo(@PathVariable("issueId") Long issueId)
{
return AjaxResult.success(wmIssueHeaderService.selectWmIssueHeaderByIssueId(issueId));
}
/**
* 新增生产领料单头
*/
@ApiOperation("新增生产领料单基本信息接口")
@PreAuthorize("@ss.hasPermi('mes:wm:issueheader:add')")
@Log(title = "生产领料单头", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody WmIssueHeader wmIssueHeader)
{
if(UserConstants.NOT_UNIQUE.equals(wmIssueHeaderService.checkIssueCodeUnique(wmIssueHeader))){
return AjaxResult.error("领料单编号已存在");
}
if(StringUtils.isNotNull(wmIssueHeader.getIssueCode())){
if(UserConstants.NOT_UNIQUE.equals(wmIssueHeaderService.checkIssueCodeUnique(wmIssueHeader))){
return AjaxResult.error("单据编号已存在!");
}
}else {
wmIssueHeader.setIssueCode(autoCodeUtil.genSerialCode(UserConstants.ISSUE_CODE,""));
}
//根据领料单上的生产工单初始化客户信息
if(StringUtils.isNotNull(wmIssueHeader.getWorkorderId())){
ProWorkorder workorder = proWorkorderService.selectProWorkorderByWorkorderId(wmIssueHeader.getWorkorderId());
wmIssueHeader.setClientId(workorder.getClientId());
wmIssueHeader.setClientCode(workorder.getClientCode());
wmIssueHeader.setClientName(workorder.getClientName());
}
wmIssueHeader.setCreateBy(getUsername());
wmIssueHeaderService.insertWmIssueHeader(wmIssueHeader);
return AjaxResult.success(wmIssueHeader);
}
/**
* 修改生产领料单头
*/
@ApiOperation("修改生产领料单基本信息接口")
@PreAuthorize("@ss.hasPermi('mes:wm:issueheader:edit')")
@Log(title = "生产领料单头", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody WmIssueHeader wmIssueHeader)
{
if(UserConstants.NOT_UNIQUE.equals(wmIssueHeaderService.checkIssueCodeUnique(wmIssueHeader))){
return AjaxResult.error("领料单编号已存在");
}
//根据领料单上的生产工单初始化客户信息
if(StringUtils.isNotNull(wmIssueHeader.getWorkorderId())){
ProWorkorder workorder = proWorkorderService.selectProWorkorderByWorkorderId(wmIssueHeader.getWorkorderId());
wmIssueHeader.setClientId(workorder.getClientId());
wmIssueHeader.setClientCode(workorder.getClientCode());
wmIssueHeader.setClientName(workorder.getClientName());
}
return toAjax(wmIssueHeaderService.updateWmIssueHeader(wmIssueHeader));
}
/**
* 删除生产领料单头
*/
@ApiOperation("删除生产领料单信息接口")
@PreAuthorize("@ss.hasPermi('mes:wm:issueheader:remove')")
@Log(title = "生产领料单头", businessType = BusinessType.DELETE)
@Transactional
@DeleteMapping("/{issueIds}")
public AjaxResult remove(@PathVariable Long[] issueIds)
{
for (long issueId:issueIds
) {
WmIssueHeader header = wmIssueHeaderService.selectWmIssueHeaderByIssueId(issueId);
if(!UserConstants.ORDER_STATUS_PREPARE.equals(header.getStatus())){
return AjaxResult.error("只能删除草稿状态的单据!");
}
wmIssueLineService.deleteByIssueHeaderId(issueId);
}
return toAjax(wmIssueHeaderService.deleteWmIssueHeaderByIssueIds(issueIds));
}
/**
* 执行出库
* @return
*/
@ApiOperation("执行生产领出接口")
@PreAuthorize("@ss.hasPermi('mes:wm:issueheader:edit')")
@Log(title = "生产领料单头", businessType = BusinessType.UPDATE)
@Transactional
@PutMapping("/{issueId}")
public AjaxResult execute(@PathVariable Long issueId){
WmIssueHeader header = wmIssueHeaderService.selectWmIssueHeaderByIssueId(issueId);
//单据有效性
if(!StringUtils.isNotNull(header)){
return AjaxResult.error("无效单据");
}
//先检查单据状态
if(UserConstants.ORDER_STATUS_FINISHED.equals(header.getStatus())){
return AjaxResult.error("当前单据已提交!");
}
//检查行数量
WmIssueLine param = new WmIssueLine();
param.setIssueId(issueId);
List<WmIssueLine> lines = wmIssueLineService.selectWmIssueLineList(param);
if(CollUtil.isEmpty(lines)){
return AjaxResult.error("请指定领出的物资");
}
List<IssueTxBean> beans = wmIssueHeaderService.getTxBeans(issueId);
//调用库存核心
storageCoreService.processIssue(beans);
//更新单据状态
header.setStatus(UserConstants.ORDER_STATUS_FINISHED);
wmIssueHeaderService.updateWmIssueHeader(header);
return AjaxResult.success();
}
}

View File

@ -0,0 +1,147 @@
package com.ktg.mes.wm.controller.mobile;
import com.ktg.common.annotation.Log;
import com.ktg.common.core.controller.BaseController;
import com.ktg.common.core.domain.AjaxResult;
import com.ktg.common.core.page.TableDataInfo;
import com.ktg.common.enums.BusinessType;
import com.ktg.common.utils.StringUtils;
import com.ktg.common.utils.poi.ExcelUtil;
import com.ktg.mes.wm.domain.*;
import com.ktg.mes.wm.service.*;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
@Api("生产退料")
@RestController
@RequestMapping("/mobile/wm/rtissueline")
public class WmRtIssueLineMobController extends BaseController {
@Autowired
private IWmRtIssueLineService wmRtIssueLineService;
@Autowired
private IWmWarehouseService wmWarehouseService;
@Autowired
private IWmStorageLocationService wmStorageLocationService;
@Autowired
private IWmStorageAreaService wmStorageAreaService;
@Autowired
private IWmMaterialStockService wmMaterialStockService;
/**
* 查询生产退料单行列表
*/
@PreAuthorize("@ss.hasPermi('mes:wm:rtissue:list')")
@GetMapping("/list")
public TableDataInfo list(WmRtIssueLine wmRtIssueLine)
{
startPage();
List<WmRtIssueLine> list = wmRtIssueLineService.selectWmRtIssueLineList(wmRtIssueLine);
return getDataTable(list);
}
/**
* 获取生产退料单行详细信息
*/
@PreAuthorize("@ss.hasPermi('mes:wm:rtissue:query')")
@GetMapping(value = "/{lineId}")
public AjaxResult getInfo(@PathVariable("lineId") Long lineId)
{
return AjaxResult.success(wmRtIssueLineService.selectWmRtIssueLineByLineId(lineId));
}
/**
* 新增生产退料单行
*/
@PreAuthorize("@ss.hasPermi('mes:wm:rtissue:add')")
@Log(title = "生产退料单行", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody WmRtIssueLine wmRtIssueLine)
{
if(StringUtils.isNotNull(wmRtIssueLine.getMaterialStockId())){
WmMaterialStock stock = wmMaterialStockService.selectWmMaterialStockByMaterialStockId(wmRtIssueLine.getMaterialStockId());
wmRtIssueLine.setItemId(stock.getItemId());
wmRtIssueLine.setItemCode(stock.getItemCode());
wmRtIssueLine.setItemName(stock.getItemName());
wmRtIssueLine.setSpecification(stock.getSpecification());
wmRtIssueLine.setUnitOfMeasure(stock.getUnitOfMeasure());
wmRtIssueLine.setBatchCode(stock.getBatchCode());
}
if(StringUtils.isNotNull(wmRtIssueLine.getWarehouseId())){
WmWarehouse warehouse = wmWarehouseService.selectWmWarehouseByWarehouseId(wmRtIssueLine.getWarehouseId());
wmRtIssueLine.setWarehouseCode(warehouse.getWarehouseCode());
wmRtIssueLine.setWarehouseName(warehouse.getWarehouseName());
}
if(StringUtils.isNotNull(wmRtIssueLine.getLocationId())){
WmStorageLocation location = wmStorageLocationService.selectWmStorageLocationByLocationId(wmRtIssueLine.getLocationId());
wmRtIssueLine.setLocationCode(location.getLocationCode());
wmRtIssueLine.setLocationName(location.getLocationName());
}
if(StringUtils.isNotNull(wmRtIssueLine.getAreaId())){
WmStorageArea area = wmStorageAreaService.selectWmStorageAreaByAreaId(wmRtIssueLine.getAreaId());
wmRtIssueLine.setAreaCode(area.getAreaCode());
wmRtIssueLine.setAreaName(area.getAreaName());
}
wmRtIssueLine.setCreateBy(getUsername());
wmRtIssueLineService.insertWmRtIssueLine(wmRtIssueLine);
return AjaxResult.success(wmRtIssueLine);
}
/**
* 修改生产退料单行
*/
@PreAuthorize("@ss.hasPermi('mes:wm:rtissue:edit')")
@Log(title = "生产退料单行", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody WmRtIssueLine wmRtIssueLine)
{
if(StringUtils.isNotNull(wmRtIssueLine.getMaterialStockId())){
WmMaterialStock stock = wmMaterialStockService.selectWmMaterialStockByMaterialStockId(wmRtIssueLine.getMaterialStockId());
wmRtIssueLine.setItemId(stock.getItemId());
wmRtIssueLine.setItemCode(stock.getItemCode());
wmRtIssueLine.setItemName(stock.getItemName());
wmRtIssueLine.setSpecification(stock.getSpecification());
wmRtIssueLine.setUnitOfMeasure(stock.getUnitOfMeasure());
wmRtIssueLine.setBatchCode(stock.getBatchCode());
}
if(StringUtils.isNotNull(wmRtIssueLine.getWarehouseId())){
WmWarehouse warehouse = wmWarehouseService.selectWmWarehouseByWarehouseId(wmRtIssueLine.getWarehouseId());
wmRtIssueLine.setWarehouseCode(warehouse.getWarehouseCode());
wmRtIssueLine.setWarehouseName(warehouse.getWarehouseName());
}
if(StringUtils.isNotNull(wmRtIssueLine.getLocationId())){
WmStorageLocation location = wmStorageLocationService.selectWmStorageLocationByLocationId(wmRtIssueLine.getLocationId());
wmRtIssueLine.setLocationCode(location.getLocationCode());
wmRtIssueLine.setLocationName(location.getLocationName());
}
if(StringUtils.isNotNull(wmRtIssueLine.getAreaId())){
WmStorageArea area = wmStorageAreaService.selectWmStorageAreaByAreaId(wmRtIssueLine.getAreaId());
wmRtIssueLine.setAreaCode(area.getAreaCode());
wmRtIssueLine.setAreaName(area.getAreaName());
}
return toAjax(wmRtIssueLineService.updateWmRtIssueLine(wmRtIssueLine));
}
/**
* 删除生产退料单行
*/
@PreAuthorize("@ss.hasPermi('mes:wm:rtissue:remove')")
@Log(title = "生产退料单行", businessType = BusinessType.DELETE)
@DeleteMapping("/{lineIds}")
public AjaxResult remove(@PathVariable Long[] lineIds)
{
return toAjax(wmRtIssueLineService.deleteWmRtIssueLineByLineIds(lineIds));
}
}

View File

@ -0,0 +1,187 @@
package com.ktg.mes.wm.controller.mobile;
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.core.page.TableDataInfo;
import com.ktg.common.enums.BusinessType;
import com.ktg.common.utils.StringUtils;
import com.ktg.common.utils.poi.ExcelUtil;
import com.ktg.mes.pro.domain.ProWorkorder;
import com.ktg.mes.pro.service.IProWorkorderService;
import com.ktg.mes.wm.domain.*;
import com.ktg.mes.wm.domain.tx.RtIssueTxBean;
import com.ktg.mes.wm.service.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
@Api("生产退料")
@RestController
@RequestMapping("/mobile/wm/rtissue")
public class WmRtIssueMobController extends BaseController {
@Autowired
private IWmRtIssueService wmRtIssueService;
@Autowired
private IWmRtIssueLineService wmRtIssueLineService;
@Autowired
private IWmWarehouseService wmWarehouseService;
@Autowired
private IWmStorageLocationService wmStorageLocationService;
@Autowired
private IWmStorageAreaService wmStorageAreaService;
@Autowired
private IStorageCoreService storageCoreService;
@Autowired
private IProWorkorderService proWorkorderService;
/**
* 查询生产退料单头列表
*/
@ApiOperation("查询生产退料单清单接口")
@PreAuthorize("@ss.hasPermi('mes:wm:rtissue:list')")
@GetMapping("/list")
public TableDataInfo list(WmRtIssue wmRtIssue)
{
startPage();
List<WmRtIssue> list = wmRtIssueService.selectWmRtIssueList(wmRtIssue);
return getDataTable(list);
}
/**
* 获取生产退料单头详细信息
*/
@ApiOperation("获取生产退料单详情接口")
@PreAuthorize("@ss.hasPermi('mes:wm:rtissue:query')")
@GetMapping(value = "/{rtId}")
public AjaxResult getInfo(@PathVariable("rtId") Long rtId)
{
return AjaxResult.success(wmRtIssueService.selectWmRtIssueByRtId(rtId));
}
/**
* 新增生产退料单头
*/
@ApiOperation("新增生产退料单基本信息接口")
@PreAuthorize("@ss.hasPermi('mes:wm:rtissue:add')")
@Log(title = "生产退料单头", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody WmRtIssue wmRtIssue)
{
if(UserConstants.NOT_UNIQUE.equals(wmRtIssueService.checkUnique(wmRtIssue))){
return AjaxResult.error("退料单编号已存在");
}
if(StringUtils.isNotNull(wmRtIssue.getWorkorderId())){
ProWorkorder workorder = proWorkorderService.selectProWorkorderByWorkorderId(wmRtIssue.getWorkorderId());
wmRtIssue.setWorkorderCode(workorder.getWorkorderCode());
}
wmRtIssue.setCreateBy(getUsername());
wmRtIssueService.insertWmRtIssue(wmRtIssue);
return AjaxResult.success(wmRtIssue);
}
/**
* 修改生产退料单头
*/
@ApiOperation("修改生产退料单基本信息接口")
@PreAuthorize("@ss.hasPermi('mes:wm:rtissue:edit')")
@Log(title = "生产退料单头", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody WmRtIssue wmRtIssue)
{
if(UserConstants.NOT_UNIQUE.equals(wmRtIssueService.checkUnique(wmRtIssue))){
return AjaxResult.error("退料单编号已存在");
}
if(StringUtils.isNotNull(wmRtIssue.getWorkorderId())){
ProWorkorder workorder = proWorkorderService.selectProWorkorderByWorkorderId(wmRtIssue.getWorkorderId());
wmRtIssue.setWorkorderCode(workorder.getWorkorderCode());
}
return toAjax(wmRtIssueService.updateWmRtIssue(wmRtIssue));
}
/**
* 删除生产退料单头
*/
@ApiOperation("删除生产退料单接口")
@PreAuthorize("@ss.hasPermi('mes:wm:rtissue:remove')")
@Log(title = "生产退料单头", businessType = BusinessType.DELETE)
@Transactional
@DeleteMapping("/{rtIds}")
public AjaxResult remove(@PathVariable Long[] rtIds)
{
for (Long rtId: rtIds
) {
WmRtIssue header = wmRtIssueService.selectWmRtIssueByRtId(rtId);
if(!UserConstants.ORDER_STATUS_PREPARE.equals(header.getStatus())){
return AjaxResult.error("只能删除草稿状态的单据!");
}
wmRtIssueLineService.deleteByRtId(rtId);
}
return toAjax(wmRtIssueService.deleteWmRtIssueByRtIds(rtIds));
}
/**
* 执行退料
* @param rtId
* @return
*/
@ApiOperation("执行生产退料接口")
@PreAuthorize("@ss.hasPermi('mes:wm:rtissue:edit')")
@Log(title = "生产退料单头", businessType = BusinessType.UPDATE)
@Transactional
@PutMapping("/{rtId}")
public AjaxResult execute(@PathVariable Long rtId){
WmRtIssue rtIssue = wmRtIssueService.selectWmRtIssueByRtId(rtId);
//单据有效性
if(!StringUtils.isNotNull(rtIssue)){
return AjaxResult.error("无效单据");
}
//先检查单据状态
if(UserConstants.ORDER_STATUS_FINISHED.equals(rtIssue.getStatus())){
return AjaxResult.error("当前单据已提交!");
}
//检查行信息
WmRtIssueLine param = new WmRtIssueLine();
param.setRtId(rtId);
List<WmRtIssueLine> lines = wmRtIssueLineService.selectWmRtIssueLineList(param);
if(CollUtil.isEmpty(lines)){
return AjaxResult.error("请选择要退料的物资");
}
List<RtIssueTxBean> beans = wmRtIssueService.getTxBeans(rtId);
//执行生产退料
storageCoreService.processRtIssue(beans);
rtIssue.setStatus(UserConstants.ORDER_STATUS_FINISHED);
wmRtIssueService.updateWmRtIssue(rtIssue);
return AjaxResult.success();
}
}