移动端生产领料和生产退料接口
This commit is contained in:
parent
e158ef5dd4
commit
7f6547d999
@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
@ -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));
|
||||
}
|
||||
}
|
||||
@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user