327 lines
10 KiB
Java
327 lines
10 KiB
Java
package com.ruoyi.pda.controller;
|
||
|
||
import com.ruoyi.api.domain.RequestEnter;
|
||
import com.ruoyi.api.domain.WcsPort;
|
||
import com.ruoyi.common.annotation.Log;
|
||
import com.ruoyi.common.core.controller.BaseController;
|
||
import com.ruoyi.common.core.domain.AjaxResult;
|
||
import com.ruoyi.common.enums.BusinessType;
|
||
import com.ruoyi.common.utils.StringUtils;
|
||
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
|
||
import com.ruoyi.in.stockindetail.service.IInStockinDetailService;
|
||
import com.ruoyi.job.mydojobdetail.domain.MydoJobDetail;
|
||
import com.ruoyi.out.outStockout.domain.OutStockout;
|
||
import com.ruoyi.out.outStockout.service.impl.OutStockoutServiceImpl;
|
||
import com.ruoyi.out.outStockoutDetail.domain.OutStockoutDetail;
|
||
import com.ruoyi.out.outStockoutDetail.service.impl.OutStockoutDetailServiceImpl;
|
||
import com.ruoyi.pda.domain.TrayCodeMakeSure;
|
||
import com.ruoyi.pda.domain.TrayCodeMsg;
|
||
import com.ruoyi.pda.service.PdaService;
|
||
import com.ruoyi.stock.stock.domain.BasStock;
|
||
import lombok.extern.slf4j.Slf4j;
|
||
import org.apache.pdfbox.contentstream.operator.graphics.BeginInlineImage;
|
||
import org.springframework.beans.factory.annotation.Autowired;
|
||
import org.springframework.scheduling.annotation.Async;
|
||
import org.springframework.security.access.prepost.PreAuthorize;
|
||
import org.springframework.stereotype.Controller;
|
||
import org.springframework.transaction.annotation.Transactional;
|
||
import org.springframework.web.bind.annotation.*;
|
||
|
||
import java.util.HashMap;
|
||
import java.util.List;
|
||
|
||
@Controller
|
||
@RequestMapping("/pda")
|
||
@Slf4j
|
||
public class PdaController extends BaseController {
|
||
|
||
@Autowired
|
||
private PdaService pdaService;
|
||
@Autowired
|
||
private IInStockinDetailService iInStockinDetailService;
|
||
@Autowired
|
||
private OutStockoutServiceImpl outStockoutService;
|
||
@Autowired
|
||
private OutStockoutDetailServiceImpl outStockoutDetailService;
|
||
|
||
/**
|
||
* 查询是否有半满托盘
|
||
*/
|
||
@RequestMapping("/selectHasHalfTray")
|
||
@ResponseBody
|
||
public AjaxResult selectHasHalfTray(String inStockinDetailId) {
|
||
List<BasStock> basStocks = pdaService.selectHasHalfTray(inStockinDetailId);
|
||
return AjaxResult.success(basStocks);
|
||
}
|
||
|
||
/**
|
||
* 通过单据码查询物料详情 TODO 修改单据码为barCode 前端需同步修改
|
||
*/
|
||
@RequestMapping("/selectDetailById")
|
||
@ResponseBody
|
||
public AjaxResult selectDetailById(String barCode) {
|
||
List<InStockinDetail> stockinDetails = iInStockinDetailService.selectStockInByDetailByBarCode(barCode);
|
||
stockinDetails.stream().forEach(inStockinDetail -> {
|
||
Integer quantity = StringUtils.hasText(inStockinDetail.getQuantity()) ? Integer.valueOf(inStockinDetail.getQuantity()) : 0;
|
||
Integer scanNum = StringUtils.hasText(inStockinDetail.getScanNum()) ? Integer.valueOf(inStockinDetail.getScanNum()) : 0;
|
||
inStockinDetail.setQuantity(String.valueOf(quantity - scanNum));
|
||
});
|
||
return AjaxResult.success(stockinDetails);
|
||
}
|
||
|
||
/**
|
||
* 半盘出库
|
||
*/
|
||
|
||
@RequestMapping("/halfTrayOut")
|
||
@ResponseBody
|
||
public AjaxResult halfTrayOut(@RequestBody TrayCodeMsg trayCodeMsg) {
|
||
return pdaService.halfTrayOut(trayCodeMsg);
|
||
}
|
||
|
||
|
||
/**
|
||
* 通过托盘码查询作业或trayMsg
|
||
*/
|
||
@RequestMapping("/selectMsgByTray")
|
||
@ResponseBody
|
||
public Object selectMsgByTray(@RequestBody TrayCodeMsg trayCodeMsg) {
|
||
return pdaService.selectMsgByTray(trayCodeMsg);
|
||
}
|
||
|
||
/**
|
||
* 绑盘
|
||
*/
|
||
@RequestMapping("/bindTray")
|
||
@ResponseBody
|
||
public AjaxResult bindTray(@RequestBody TrayCodeMakeSure trayCodeMakeSure) {
|
||
return pdaService.bindTray(trayCodeMakeSure);
|
||
}
|
||
|
||
/**
|
||
* 空托盘入库
|
||
*/
|
||
@RequestMapping("/tpIn")
|
||
@ResponseBody
|
||
public AjaxResult tpIn(@RequestBody TrayCodeMsg trayCodeMsg) {
|
||
return pdaService.tpIn(trayCodeMsg);
|
||
}
|
||
|
||
/**
|
||
* 空托盘出库
|
||
*/
|
||
@RequestMapping("/tpOut")
|
||
@ResponseBody
|
||
public AjaxResult tpOut(@RequestBody TrayCodeMsg trayCodeMsg) {
|
||
return pdaService.tpOut(trayCodeMsg);
|
||
}
|
||
|
||
/**
|
||
* 出库确认查询子作业信息
|
||
*
|
||
* @param trayCodeMsg
|
||
* @return
|
||
*/
|
||
@RequestMapping("/selectJobDetailByTray")
|
||
@ResponseBody
|
||
public AjaxResult selectJobDetailByTray(@RequestBody TrayCodeMsg trayCodeMsg) {
|
||
return pdaService.selectJobDetailByTray(trayCodeMsg);
|
||
}
|
||
|
||
/**
|
||
* 出库确认
|
||
*
|
||
* @param trayCodeMakeSure 托盘信息
|
||
* @return
|
||
*/
|
||
@PreAuthorize("@ss.hasPermi('pda:out:outMakeSure')")
|
||
@PostMapping("/outMakeSure")
|
||
@Log(title = "手持机出库确认", businessType = BusinessType.INSERT)
|
||
@ResponseBody
|
||
public AjaxResult outMakeSure(@RequestBody TrayCodeMakeSure trayCodeMakeSure) {
|
||
return pdaService.outMakeSure(trayCodeMakeSure);
|
||
}
|
||
|
||
|
||
/**
|
||
* 入库扫码生成作业
|
||
*/
|
||
@RequestMapping("/addInJob")
|
||
@ResponseBody
|
||
public AjaxResult addInJob(@RequestBody RequestEnter requestEnter) {
|
||
return pdaService.addInJob(requestEnter);
|
||
}
|
||
|
||
|
||
@RequestMapping("/selectDetailByPDTray")
|
||
@ResponseBody
|
||
public AjaxResult selectDetailByPDTray(@RequestBody TrayCodeMakeSure trayCodeMakeSure) {
|
||
return pdaService.selectDetailByPDTray(trayCodeMakeSure);
|
||
}
|
||
|
||
|
||
/**
|
||
* 盘点出库确认
|
||
*
|
||
* @param trayCodeMakeSure 托盘信息
|
||
* @return
|
||
*/
|
||
@PreAuthorize("@ss.hasPermi('pda:check:checkMakeSure')")
|
||
@PostMapping("/checkMakeSure")
|
||
@Log(title = "手持机盘点出库确认", businessType = BusinessType.INSERT)
|
||
@ResponseBody
|
||
public AjaxResult checkMakeSure(@RequestBody TrayCodeMakeSure trayCodeMakeSure) {
|
||
return pdaService.checkMakeSure(trayCodeMakeSure);
|
||
}
|
||
|
||
@RequestMapping("/selectWcsPort")
|
||
@ResponseBody
|
||
public AjaxResult selectWcsPort() {
|
||
return pdaService.selectWcsPort();
|
||
}
|
||
|
||
@RequestMapping("/updateWcsPort")
|
||
@ResponseBody
|
||
public AjaxResult updateWcsPort(@RequestBody WcsPort wcsPort) {
|
||
return pdaService.updateWcsPort(wcsPort);
|
||
}
|
||
|
||
@RequestMapping("/hcoutMakesure")
|
||
@ResponseBody
|
||
@Log(title = "手持机缓存出库确认", businessType = BusinessType.OTHER)
|
||
public AjaxResult hcoutMakesure(String trayCode) {
|
||
|
||
return pdaService.hcoutMakesure(trayCode);
|
||
}
|
||
|
||
|
||
/**
|
||
* 平库入库
|
||
*/
|
||
@RequestMapping("/inStockPk")
|
||
@ResponseBody
|
||
public AjaxResult inStockPk(@RequestBody TrayCodeMakeSure trayCodeMakeSure) {
|
||
return pdaService.completeInPk(trayCodeMakeSure);
|
||
}
|
||
|
||
/**
|
||
* 库存查询(平库扫码查询托盘入库信息)
|
||
*/
|
||
@RequestMapping("/searchStock")
|
||
@ResponseBody
|
||
public AjaxResult searchStock(@RequestBody TrayCodeMakeSure trayCodeMakeSure) {
|
||
|
||
return AjaxResult.success(pdaService.selectBasStockHc(trayCodeMakeSure.getTrayCode()));
|
||
}
|
||
|
||
/**
|
||
* 立库出库信息校验
|
||
*
|
||
* @param trayCodeMakeSure
|
||
* @return
|
||
*/
|
||
@RequestMapping("/verifyMaterial")
|
||
@ResponseBody
|
||
public AjaxResult verifyMaterial(@RequestBody TrayCodeMakeSure trayCodeMakeSure) {
|
||
String trayCode = trayCodeMakeSure.getTrayCode();
|
||
List<MydoJobDetail> mydoJobDetailList = trayCodeMakeSure.getMydoJobDetailList();
|
||
for (MydoJobDetail m : mydoJobDetailList) {
|
||
Integer count = pdaService.selectByTrayCodeAndProduct(trayCode, m.getProductId());
|
||
if (count == 0) {
|
||
return AjaxResult.error(m.getProductId() + ",物料不是出库物料");
|
||
}
|
||
}
|
||
|
||
return AjaxResult.success();
|
||
}
|
||
|
||
/**
|
||
* 平库出库确认
|
||
*
|
||
* @param trayCodeMakeSure
|
||
* @return
|
||
*/
|
||
@RequestMapping("/completeOutPk")
|
||
@ResponseBody
|
||
@Async
|
||
@Transactional(rollbackFor = Exception.class)
|
||
public AjaxResult completeOutPk(@RequestBody TrayCodeMakeSure trayCodeMakeSure) {
|
||
try {
|
||
String trayCode = trayCodeMakeSure.getTrayCode();
|
||
List<MydoJobDetail> mydoJobDetailList = trayCodeMakeSure.getMydoJobDetailList();
|
||
for (MydoJobDetail m : mydoJobDetailList) {
|
||
HashMap<String, Object> map = new HashMap<>();
|
||
map.put("v_tray_code", trayCode);
|
||
map.put("v_out_stockout_detail_id", m.getStockinDetailId());
|
||
map.put("v_quantity", m.getOutQuantity());
|
||
pdaService.completeOutPk(map);
|
||
if (!map.get("v_result").equals("10")) {
|
||
return AjaxResult.error(map.get("v_result_msg").toString());
|
||
}
|
||
}
|
||
return AjaxResult.success();
|
||
} catch (Exception e) {
|
||
throw new RuntimeException(e.getMessage());
|
||
}
|
||
}
|
||
|
||
|
||
/**
|
||
* 查询平库出库主单 建议参数(erpStockOutId U8单据号作为查询条件传到后台)
|
||
*
|
||
* @param outStockout
|
||
* @return
|
||
*/
|
||
@RequestMapping("/OutFillPk")
|
||
@ResponseBody
|
||
|
||
public List<OutStockout> OutFillPk(@RequestBody OutStockout outStockout) {
|
||
|
||
return outStockoutService.selectOutStockoutList(outStockout);
|
||
}
|
||
|
||
|
||
/**
|
||
* 查出平库出库子单 参数: stockoutId 作为参数传递到后台
|
||
*
|
||
* @param outStockout
|
||
* @return
|
||
*/
|
||
@RequestMapping("/OutFillPkDetail")
|
||
@ResponseBody
|
||
public List<OutStockoutDetail> OutFillPkDetail(@RequestBody OutStockout outStockout) {
|
||
List<OutStockout> outStockouts = outStockoutService.selectOutStockoutList(outStockout);
|
||
|
||
return outStockoutDetailService.selectOutStockoutDetailByStockoutGuid(outStockouts.get(0).getStockoutId());
|
||
}
|
||
|
||
|
||
/**
|
||
* 查询平库出库子单对应信息 在平库中是否存在
|
||
* 参数:trayCode 托盘码
|
||
* 参数:stockinDetailId 子单据号
|
||
*
|
||
* @param trayCodeMsg
|
||
* @return
|
||
*/
|
||
@RequestMapping("/queryBasStockHc")
|
||
@ResponseBody
|
||
public AjaxResult queryBasStockHc(@RequestBody TrayCodeMsg trayCodeMsg) {
|
||
String trayCode = trayCodeMsg.getTrayCode();
|
||
String stockinDetailId = trayCodeMsg.getStockinDetailId();
|
||
OutStockoutDetail outStockoutDetail = outStockoutDetailService.selectOutStockoutDetailByStockoutDetailId(stockinDetailId);
|
||
String productId = outStockoutDetail.getProductId();
|
||
Integer integer = pdaService.selectBasStockHcCount(trayCode, productId);
|
||
if (integer > 0) {
|
||
return AjaxResult.success();
|
||
} else {
|
||
return AjaxResult.error("无该物料");
|
||
}
|
||
|
||
|
||
}
|
||
|
||
|
||
}
|
||
|