Files
FT546MWS/ruoyi-admin/src/main/java/com/ruoyi/pda/controller/PdaController.java
1009473166@qq.com 49ddd8fd21 20206.5.26 早8;52
修改扫描二维码获取单据数据
修后台将二维码传到后台字段变更为barCode
2026-05-26 08:53:09 +08:00

327 lines
10 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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("无该物料");
}
}
}