手持机部分
This commit is contained in:
@@ -68,5 +68,5 @@ public interface InStockinDetailMapper
|
||||
|
||||
void deleteInStockinDetailByStockinGuid(String stockinGuid);
|
||||
|
||||
InStockinDetail selectStockinByDetailById(String stockinDetailId);
|
||||
InStockinDetail selectStockinByDetailById(InStockinDetail inStockinDetail);
|
||||
}
|
||||
|
||||
@@ -80,5 +80,5 @@ public interface IInStockinDetailService
|
||||
AjaxResult barcodePrinting(Map<String,Object> stockinDetailId);
|
||||
|
||||
|
||||
public InStockinDetail selectStockinByDetailById(String stockinDetailId);
|
||||
public InStockinDetail selectStockinByDetailById(InStockinDetail inStockinDetail);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.ruoyi.common.annotation.DataScope;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.domain.ExtraField;
|
||||
import com.ruoyi.in.stockin.domain.InStockin;
|
||||
@@ -124,8 +125,10 @@ public class InStockinDetailServiceImpl implements IInStockinDetailService
|
||||
}
|
||||
|
||||
@Override
|
||||
public InStockinDetail selectStockinByDetailById(String stockinDetailId) {
|
||||
return inStockinDetailMapper.selectStockinByDetailById(stockinDetailId);
|
||||
@DataScope(warehouseAlias = "ist")
|
||||
public InStockinDetail selectStockinByDetailById(InStockinDetail inStockinDetail) {
|
||||
|
||||
return inStockinDetailMapper.selectStockinByDetailById(inStockinDetail);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ import com.ruoyi.common.core.domain.BaseEntity;
|
||||
* @author ruoyi
|
||||
* @date 2025-05-23
|
||||
*/
|
||||
public class MydoJob
|
||||
public class MydoJob extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@@ -93,9 +93,7 @@ public class MydoJob
|
||||
@Excel(name = "任务类型",dictType = "in_or_out_type")
|
||||
private String inOrOut;
|
||||
|
||||
/** 开始时间 */
|
||||
@Excel(name = "创建时间")
|
||||
private String createTime;
|
||||
|
||||
|
||||
/** 开始时间 */
|
||||
@Excel(name = "开始时间")
|
||||
@@ -146,13 +144,9 @@ public class MydoJob
|
||||
this.warehouseName = warehouseName;
|
||||
}
|
||||
|
||||
public String getCreateTime() {
|
||||
return createTime;
|
||||
}
|
||||
|
||||
public void setCreateTime(String createTime) {
|
||||
this.createTime = createTime;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public String getInOut() {
|
||||
return inOut;
|
||||
|
||||
@@ -12,6 +12,7 @@ import com.ruoyi.bas.basJobId.service.IBasJobIdService;
|
||||
import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace;
|
||||
import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService;
|
||||
import com.ruoyi.bas.taskNo.service.IBasTaskNoService;
|
||||
import com.ruoyi.common.annotation.DataScope;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
|
||||
@@ -74,6 +75,7 @@ public class MydoJobServiceImpl implements IMydoJobService {
|
||||
* @return 任务表
|
||||
*/
|
||||
@Override
|
||||
@DataScope(warehouseAlias = "bw")
|
||||
public List<MydoJob> selectMydoJobList(MydoJob mydoJob) {
|
||||
return mydoJobMapper.selectMydoJobList(mydoJob);
|
||||
}
|
||||
@@ -86,7 +88,7 @@ public class MydoJobServiceImpl implements IMydoJobService {
|
||||
*/
|
||||
@Override
|
||||
public int insertMydoJob(MydoJob mydoJob) {
|
||||
mydoJob.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
||||
mydoJob.setCreateTime(new Date());
|
||||
mydoJob.setJobId(basJobIdService.getJobId("RK"));
|
||||
mydoJob.setTaskNo(Convert.toStr(basTaskNoService.getTaskNo("1")));
|
||||
return mydoJobMapper.insertMydoJob(mydoJob);
|
||||
@@ -246,6 +248,15 @@ public class MydoJobServiceImpl implements IMydoJobService {
|
||||
mydoJobDetail.setJobId(jobId);
|
||||
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetail);
|
||||
for (MydoJobDetail detail : mydoJobDetails) {
|
||||
//修改库存的出库数量
|
||||
BasStock basStock = basStockService.selectBasStockByStockId(detail.getStockId());
|
||||
if (basStock != null) {
|
||||
BigDecimal outQuantity = Convert.toBigDecimal(basStock.getOutQuantity());
|
||||
BigDecimal substract = outQuantity.subtract(Convert.toBigDecimal(detail.getOutQuantity()));
|
||||
basStock.setOutQuantity(String.valueOf(substract));
|
||||
basStockService.updateBasStock(basStock);
|
||||
}
|
||||
//修改单据数量
|
||||
OutStockoutDetail outStockoutDetail = outStockoutDetailService.selectOutStockoutDetailByStockoutDetailId(detail.getInOrOutDId());
|
||||
if (outStockoutDetail != null) {
|
||||
BigDecimal allotQuantity = outStockoutDetail.getAllotQuantity();
|
||||
@@ -254,6 +265,12 @@ public class MydoJobServiceImpl implements IMydoJobService {
|
||||
outStockoutDetailService.updateOutStockoutDetail(outStockoutDetail);
|
||||
}
|
||||
}
|
||||
//修改货位状态
|
||||
BasCargoSpace cargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(job.getCargoSpaceId());
|
||||
if (cargoSpace != null) {
|
||||
cargoSpace.setStatus("1");
|
||||
basCargoSpaceService.updateBasCargoSpace(cargoSpace);
|
||||
}
|
||||
job.setStatus("5");
|
||||
insertHistory(jobId);
|
||||
}
|
||||
|
||||
@@ -125,6 +125,15 @@ public class MydoJobDetail extends BaseEntity
|
||||
private String pickQuantity;
|
||||
//额外字段
|
||||
private ExtraField extraField;
|
||||
private String pickQuantityReal;
|
||||
|
||||
public String getPickQuantityReal() {
|
||||
return pickQuantityReal;
|
||||
}
|
||||
|
||||
public void setPickQuantityReal(String pickQuantityReal) {
|
||||
this.pickQuantityReal = pickQuantityReal;
|
||||
}
|
||||
|
||||
public String getPickQuantity() {
|
||||
return pickQuantity;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.ruoyi.pda.controller;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace;
|
||||
import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService;
|
||||
import com.ruoyi.bas.warehouse.domain.BasWarehouse;
|
||||
import com.ruoyi.bas.warehouse.service.IBasWarehouseService;
|
||||
@@ -11,6 +12,10 @@ import com.ruoyi.in.stockin.domain.InStockin;
|
||||
import com.ruoyi.in.stockin.service.IInStockinService;
|
||||
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
|
||||
import com.ruoyi.in.stockindetail.service.IInStockinDetailService;
|
||||
import com.ruoyi.job.mydojob.domain.MydoJob;
|
||||
import com.ruoyi.job.mydojob.service.IMydoJobService;
|
||||
import com.ruoyi.job.mydojobdetail.domain.MydoJobDetail;
|
||||
import com.ruoyi.job.mydojobdetail.service.IMydoJobDetailService;
|
||||
import com.ruoyi.pda.domain.TrayCodeMakeSure;
|
||||
import com.ruoyi.pda.domain.TrayCodeMsg;
|
||||
import com.ruoyi.pda.service.PdaService;
|
||||
@@ -23,6 +28,7 @@ import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@@ -42,9 +48,16 @@ public class PdaController extends BaseController {
|
||||
private IBasWarehouseService basWarehouseService;
|
||||
@Autowired
|
||||
private ITrayMsgService trayMsgService;
|
||||
@Autowired
|
||||
private IBasCargoSpaceService basCargoSpaceService;
|
||||
@Autowired
|
||||
private IMydoJobService mydoJobService;
|
||||
@Autowired
|
||||
private IMydoJobDetailService mydoJobDetailService;
|
||||
|
||||
/**
|
||||
* 空托盘入库
|
||||
*
|
||||
* @param trayCodeMsg
|
||||
* @return
|
||||
*/
|
||||
@@ -52,87 +65,121 @@ public class PdaController extends BaseController {
|
||||
@ResponseBody
|
||||
public AjaxResult emptyTrayIn(@RequestBody TrayCodeMsg trayCodeMsg) {
|
||||
BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(trayCodeMsg.getWarehouseId());
|
||||
if(basWarehouse==null){
|
||||
if (basWarehouse == null) {
|
||||
return AjaxResult.error("仓库不存在");
|
||||
}else{
|
||||
if("1".equals(basWarehouse.getWarehouseType()) && StrUtil.isEmpty(trayCodeMsg.getCargoSpaceId())){
|
||||
return AjaxResult.error("请选择高架库货位");
|
||||
}
|
||||
|
||||
}
|
||||
if ("1".equals(basWarehouse.getWarehouseType()) && StrUtil.isEmpty(trayCodeMsg.getCargoSpaceId())) {
|
||||
return AjaxResult.error("请选择高架库货位");
|
||||
}
|
||||
if ("2".equals(basWarehouse.getWarehouseType())) {
|
||||
BasCargoSpace basCargoSpace = new BasCargoSpace();
|
||||
basCargoSpace.setWarehouseId(trayCodeMsg.getWarehouseId());
|
||||
basCargoSpace.setStatus("1");
|
||||
List<BasCargoSpace> basCargoSpaces = basCargoSpaceService.selectBasCargoSpaceList(basCargoSpace);
|
||||
if (basCargoSpaces.size() == 0) {
|
||||
return AjaxResult.error("此仓库没有空余货位");
|
||||
} else {
|
||||
trayCodeMsg.setCargoSpaceId(basCargoSpaces.get(0).getCargoSpaceId());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return pdaService.emptyTrayIn(trayCodeMsg);
|
||||
}
|
||||
|
||||
/**
|
||||
* 空料箱入库
|
||||
*/
|
||||
@RequestMapping("/emptyBoxIn")
|
||||
@ResponseBody
|
||||
public AjaxResult emptyBoxIn(@RequestBody TrayCodeMsg trayCodeMsg) {
|
||||
AjaxResult ajaxResult = pdaService.emptyBoxIn(trayCodeMsg);
|
||||
return ajaxResult;
|
||||
}
|
||||
// /**
|
||||
// * 空料箱入库
|
||||
// */
|
||||
// @RequestMapping("/emptyBoxIn")
|
||||
// @ResponseBody
|
||||
// public AjaxResult emptyBoxIn(@RequestBody TrayCodeMsg trayCodeMsg) {
|
||||
// AjaxResult ajaxResult = pdaService.emptyBoxIn(trayCodeMsg);
|
||||
// return ajaxResult;
|
||||
// }
|
||||
|
||||
/**
|
||||
* 空托盘库存查询
|
||||
*
|
||||
* @param warehouseId
|
||||
* @return
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('pda:selectKTPStcok:list')")
|
||||
@RequestMapping("/selectKTPStcok")
|
||||
@ResponseBody
|
||||
public AjaxResult selectKTPStcok(String warehouseId) {
|
||||
|
||||
List<BasStock> basStockList = basStockService.selectKtpStock(warehouseId);
|
||||
BasStock basStock = new BasStock();
|
||||
basStock.setWarehouseId(warehouseId);
|
||||
List<BasStock> basStockList = basStockService.selectKtpStock(basStock);
|
||||
|
||||
if (basStockList.size() != 0) {
|
||||
return AjaxResult.success(basStockList);
|
||||
}else{
|
||||
return AjaxResult.error("此区域没有空托盘库存");
|
||||
return AjaxResult.success(basStockList);
|
||||
} else {
|
||||
return AjaxResult.error("此区域没有空托盘库存");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 空托盘出库
|
||||
*
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping("/emptyTrayOut")
|
||||
@ResponseBody
|
||||
public AjaxResult emptyTrayOut(@RequestBody TrayCodeMsg trayCodeMsg ) {
|
||||
public AjaxResult emptyTrayOut(@RequestBody TrayCodeMsg trayCodeMsg) {
|
||||
BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(trayCodeMsg.getWarehouseId());
|
||||
if (basWarehouse == null){
|
||||
if (basWarehouse == null) {
|
||||
return AjaxResult.error("仓库不存在");
|
||||
}else{
|
||||
if("1".equals(basWarehouse.getWarehouseType()) && StrUtil.isEmpty(trayCodeMsg.getCargoSpaceId())){
|
||||
return AjaxResult.error("请选择高架库货位");
|
||||
}
|
||||
if ("1".equals(basWarehouse.getWarehouseType()) && StrUtil.isEmpty(trayCodeMsg.getCargoSpaceId())) {
|
||||
return AjaxResult.error("请选择高架库货位");
|
||||
}
|
||||
if ("2".equals(basWarehouse.getWarehouseType()) && StrUtil.isEmpty(trayCodeMsg.getExitId())) {
|
||||
return AjaxResult.error("请选择出口");
|
||||
}
|
||||
if("2".equals(basWarehouse.getWarehouseType())){
|
||||
BasStock basStock = new BasStock();
|
||||
basStock.setWarehouseId(trayCodeMsg.getWarehouseId());
|
||||
List<BasStock> basStockList = basStockService.selectKtpStock(basStock);
|
||||
if(basStockList.size() == 0){
|
||||
return AjaxResult.error("此区域没有空托盘库存或此用户没有该区域权限");
|
||||
}else{
|
||||
trayCodeMsg.setCargoSpaceId(basStockList.get(0).getCargoSpaceId());
|
||||
}
|
||||
}
|
||||
|
||||
return pdaService.emptyTrayOut(trayCodeMsg);
|
||||
}
|
||||
|
||||
/**
|
||||
* 空料箱出库
|
||||
* @param trayCodeMsg
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping("/emptyBoxOut")
|
||||
@ResponseBody
|
||||
public AjaxResult emptyBoxOut(@RequestBody TrayCodeMsg trayCodeMsg) {
|
||||
return pdaService.emptyBoxOut(trayCodeMsg);
|
||||
}
|
||||
// /**
|
||||
// * 空料箱出库
|
||||
// *
|
||||
// * @param trayCodeMsg
|
||||
// * @return
|
||||
// */
|
||||
// @RequestMapping("/emptyBoxOut")
|
||||
// @ResponseBody
|
||||
// public AjaxResult emptyBoxOut(@RequestBody TrayCodeMsg trayCodeMsg) {
|
||||
// return pdaService.emptyBoxOut(trayCodeMsg);
|
||||
// }
|
||||
|
||||
/**
|
||||
* 绑盘查询入库单详情
|
||||
*
|
||||
* @param stockinDetailId
|
||||
* @return
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('pda:inoderList:list')")
|
||||
@RequestMapping("/inorder/detail")
|
||||
@ResponseBody
|
||||
public InStockinDetail inoderList(String stockinDetailId) {
|
||||
InStockinDetail inStockinDetail = inStockinDetailService.selectStockinByDetailById(stockinDetailId);
|
||||
InStockinDetail inStockinDetail1 = new InStockinDetail();
|
||||
inStockinDetail1.setStockinDetailId(stockinDetailId);
|
||||
InStockinDetail inStockinDetail = inStockinDetailService.selectStockinByDetailById(inStockinDetail1);
|
||||
return inStockinDetail;
|
||||
}
|
||||
|
||||
/**
|
||||
* 绑定托盘物料
|
||||
*/
|
||||
@@ -155,6 +202,7 @@ public class PdaController extends BaseController {
|
||||
List<TrayMsg> trayMsgs = trayMsgService.selectTrayMsgList(trayMsg);
|
||||
return AjaxResult.success(trayMsgs);
|
||||
}
|
||||
|
||||
/**
|
||||
* 确认入库
|
||||
*/
|
||||
@@ -162,18 +210,30 @@ public class PdaController extends BaseController {
|
||||
@ResponseBody
|
||||
public AjaxResult addInJob(@RequestBody TrayCodeMsg trayCodeMsg) {
|
||||
BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(trayCodeMsg.getWarehouseId());
|
||||
// if(basWarehouse==null){
|
||||
// return AjaxResult.error("仓库不存在");
|
||||
// }
|
||||
if("1".equals(basWarehouse.getWarehouseType()) && StrUtil.isEmpty(trayCodeMsg.getCargoSpaceId())){
|
||||
if (basWarehouse == null) {
|
||||
return AjaxResult.error("仓库不存在");
|
||||
}
|
||||
if ("1".equals(basWarehouse.getWarehouseType()) && StrUtil.isEmpty(trayCodeMsg.getCargoSpaceId())) {
|
||||
return AjaxResult.error("请选择高架库货位");
|
||||
}
|
||||
if ("2".equals(basWarehouse.getWarehouseType())) {
|
||||
BasCargoSpace basCargoSpace = new BasCargoSpace();
|
||||
basCargoSpace.setWarehouseId(trayCodeMsg.getWarehouseId());
|
||||
basCargoSpace.setStatus("1");
|
||||
List<BasCargoSpace> basCargoSpaces = basCargoSpaceService.selectBasCargoSpaceList(basCargoSpace);
|
||||
if (basCargoSpaces.size() == 0) {
|
||||
return AjaxResult.error("此仓库没有空余货位");
|
||||
} else {
|
||||
trayCodeMsg.setCargoSpaceId(basCargoSpaces.get(0).getCargoSpaceId());
|
||||
}
|
||||
}
|
||||
|
||||
return pdaService.addInJob(trayCodeMsg);
|
||||
}
|
||||
|
||||
/**
|
||||
* 出库确认
|
||||
*
|
||||
* @param trayCodeMakeSure 托盘信息
|
||||
* @return
|
||||
*/
|
||||
@@ -193,5 +253,68 @@ public class PdaController extends BaseController {
|
||||
public AjaxResult checkMakeSure(@RequestBody TrayCodeMakeSure trayCodeMakeSure) {
|
||||
return pdaService.checkMakeSure(trayCodeMakeSure);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询所有待处理任务
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('pda:taskList:list')")
|
||||
@RequestMapping("/taskList")
|
||||
@ResponseBody
|
||||
public AjaxResult taskList(@RequestBody TrayCodeMsg trayCodeMsg) {
|
||||
List<BasWarehouse> basWarehouses = basWarehouseService.selectBasWarehouseList(new BasWarehouse());
|
||||
List<MydoJob> mydoJobArrayList = new ArrayList<>();
|
||||
if(basWarehouses.size() != 0){
|
||||
|
||||
for(BasWarehouse basWarehouse : basWarehouses){
|
||||
|
||||
//高架库
|
||||
if("1".equals(basWarehouse.getWarehouseType())){
|
||||
MydoJob mydoJob = new MydoJob();
|
||||
mydoJob.setWarehouseId(basWarehouse.getWarehouseId());
|
||||
mydoJob.setCargoSpaceId(trayCodeMsg.getTrayCode());
|
||||
mydoJob.setInOut(trayCodeMsg.getInOut());
|
||||
mydoJob.setStatus("1");
|
||||
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobList(mydoJob);
|
||||
//将mydoJob添加进mydoJobArrayList
|
||||
mydoJobArrayList.addAll(mydoJobs);
|
||||
|
||||
}
|
||||
//ctu库
|
||||
if("2".equals(basWarehouse.getWarehouseType()) && !"1".equals(trayCodeMsg.getInOut())){
|
||||
MydoJob mydoJob = new MydoJob();
|
||||
mydoJob.setInOut("2");
|
||||
mydoJob.setWarehouseId(basWarehouse.getWarehouseId());
|
||||
mydoJob.setCargoSpaceId(trayCodeMsg.getTrayCode());
|
||||
mydoJob.setStatus("3");
|
||||
List<MydoJob> mydoJobs2 = mydoJobService.selectMydoJobList(mydoJob);
|
||||
mydoJobArrayList.addAll(mydoJobs2);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
return AjaxResult.success(mydoJobArrayList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 用托盘条码查询子作业数据
|
||||
*/
|
||||
@RequestMapping("/selectDetailByTray")
|
||||
@ResponseBody
|
||||
public AjaxResult selectDetailByTray(@RequestBody TrayCodeMsg trayCodeMsg) {
|
||||
MydoJob mydoJob = new MydoJob();
|
||||
mydoJob.setTrayCode(trayCodeMsg.getTrayCode());
|
||||
mydoJob.setStatus(trayCodeMsg.getStatus());
|
||||
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobList(mydoJob);
|
||||
if(mydoJobs.size() == 0){
|
||||
return AjaxResult.error("此托盘没有作业");
|
||||
}
|
||||
MydoJobDetail mydoJobDetail = new MydoJobDetail();
|
||||
mydoJobDetail.setJobId(mydoJobs.get(0).getJobId());
|
||||
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetail);
|
||||
|
||||
return AjaxResult.success(mydoJobDetails);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,25 @@ private String exitId;
|
||||
|
||||
private String stockinDetailId;
|
||||
|
||||
private String inOut;
|
||||
private String status;
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getInOut() {
|
||||
return inOut;
|
||||
}
|
||||
|
||||
public void setInOut(String inOut) {
|
||||
this.inOut = inOut;
|
||||
}
|
||||
|
||||
public String getStockinDetailId() {
|
||||
return stockinDetailId;
|
||||
}
|
||||
|
||||
@@ -36,16 +36,18 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class PdaServiceImp implements PdaService{
|
||||
public class PdaServiceImp implements PdaService {
|
||||
@Autowired
|
||||
private PdaMapper pdaMapper;
|
||||
@Autowired
|
||||
private IBasCargoSpaceService basCargoSpaceService;
|
||||
@Autowired
|
||||
private IMydoJobDetailService mydoJobDetailService;;
|
||||
private IMydoJobDetailService mydoJobDetailService;
|
||||
;
|
||||
|
||||
@Autowired
|
||||
private IMydoJobService mydoJobService;;
|
||||
private IMydoJobService mydoJobService;
|
||||
;
|
||||
@Autowired
|
||||
ISysRoleService sysRoleService;
|
||||
@Autowired
|
||||
@@ -59,6 +61,7 @@ public class PdaServiceImp implements PdaService{
|
||||
|
||||
/**
|
||||
* 空托盘入库
|
||||
*
|
||||
* @param trayCodeMsg
|
||||
* @return
|
||||
*/
|
||||
@@ -71,9 +74,9 @@ public class PdaServiceImp implements PdaService{
|
||||
map.put("v_cargo_space_id", trayCodeMsg.getCargoSpaceId());
|
||||
pdaMapper.emptyTrayIn(map);
|
||||
String result = map.get("v_result").toString();
|
||||
if("10".equals(result)){
|
||||
if ("10".equals(result)) {
|
||||
return AjaxResult.success(map.get("v_resultmsg").toString());
|
||||
}else{
|
||||
} else {
|
||||
return AjaxResult.error(map.get("v_resultmsg").toString());
|
||||
}
|
||||
|
||||
@@ -81,6 +84,7 @@ public class PdaServiceImp implements PdaService{
|
||||
|
||||
/**
|
||||
* 空料箱入库
|
||||
*
|
||||
* @param trayCodeMsg
|
||||
* @return
|
||||
*/
|
||||
@@ -92,9 +96,9 @@ public class PdaServiceImp implements PdaService{
|
||||
map.put("v_entrance_id", trayCodeMsg.getEntranceId());
|
||||
pdaMapper.emptyBoxIn(map);
|
||||
String result = map.get("v_result").toString();
|
||||
if("10".equals(result)){
|
||||
if ("10".equals(result)) {
|
||||
return AjaxResult.success(map.get("v_resultmsg").toString());
|
||||
}else{
|
||||
} else {
|
||||
return AjaxResult.error(map.get("v_resultmsg").toString());
|
||||
}
|
||||
|
||||
@@ -105,11 +109,12 @@ public class PdaServiceImp implements PdaService{
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("v_warehouse_id", trayCodeMsg.getWarehouseId());
|
||||
map.put("v_cargo_space_id", trayCodeMsg.getCargoSpaceId());
|
||||
map.put("v_exit_id", trayCodeMsg.getExitId());
|
||||
pdaMapper.emptyTrayOut(map);
|
||||
String result = map.get("v_result").toString();
|
||||
if("10".equals(result)){
|
||||
if ("10".equals(result)) {
|
||||
return AjaxResult.success(map.get("v_resultmsg").toString());
|
||||
}else{
|
||||
} else {
|
||||
return AjaxResult.warn(map.get("v_resultmsg").toString());
|
||||
}
|
||||
}
|
||||
@@ -122,9 +127,9 @@ public class PdaServiceImp implements PdaService{
|
||||
map.put("v_exit_id", trayCodeMsg.getExitId());
|
||||
pdaMapper.emptyBoxOut(map);
|
||||
String result = map.get("v_result").toString();
|
||||
if("10".equals(result)){
|
||||
if ("10".equals(result)) {
|
||||
return AjaxResult.success(map.get("v_resultmsg").toString());
|
||||
}else{
|
||||
} else {
|
||||
return AjaxResult.warn(map.get("v_resultmsg").toString());
|
||||
}
|
||||
}
|
||||
@@ -132,26 +137,19 @@ public class PdaServiceImp implements PdaService{
|
||||
@Override
|
||||
public AjaxResult bindTrayMsg(TrayCodeMsg trayCodeMsg) {
|
||||
//判断用户的仓库权限
|
||||
List<SysRole> roles = sysRoleService.selectRolesByUserId(SecurityUtils.getUserId());
|
||||
if (!roles.stream().anyMatch(SysRole::isAdmin)){
|
||||
|
||||
for (SysRole role : roles) {
|
||||
if (CollUtil.isNotEmpty(role.getWarehouseDataScope())){
|
||||
InStockinDetail inStockinDetail = inStockinDetailService.selectStockinByDetailById(trayCodeMsg.getStockinDetailId());
|
||||
if(!role.getWarehouseDataScope().stream().anyMatch(warehouseId -> warehouseId.equals(inStockinDetail.getWarehouseId()))){
|
||||
return AjaxResult.warn("此用户无权限操作该仓库物料");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
InStockinDetail inStockinDetail1 = new InStockinDetail();
|
||||
inStockinDetail1.setStockinDetailId(trayCodeMsg.getStockinDetailId());
|
||||
InStockinDetail inStockinDetail = inStockinDetailService.selectStockinByDetailById(inStockinDetail1);
|
||||
if (inStockinDetail == null) {
|
||||
return AjaxResult.warn("此用户无权限操作该仓库物料,或物料不存在");
|
||||
}
|
||||
//判断与已绑定物料是否为同一仓库
|
||||
TrayMsg trayMsg = new TrayMsg();
|
||||
trayMsg.setTrayCode(trayCodeMsg.getTrayCode());
|
||||
List<TrayMsg> trayMsgs = trayMsgService.selectTrayMsgList(trayMsg);
|
||||
if(trayMsgs.size()>0){
|
||||
InStockinDetail inStockinDetail = inStockinDetailService.selectStockinByDetailById(trayCodeMsg.getStockinDetailId());
|
||||
if(!trayMsgs.get(0).getWarehouseId().equals(inStockinDetail.getWarehouseId())){
|
||||
if (trayMsgs.size() > 0) {
|
||||
// InStockinDetail inStockinDetail = inStockinDetailService.selectStockinByDetailById(trayCodeMsg.getStockinDetailId());
|
||||
if (!trayMsgs.get(0).getWarehouseId().equals(inStockinDetail.getWarehouseId())) {
|
||||
return AjaxResult.warn("同一托盘不能绑定不同仓库的物料");
|
||||
}
|
||||
}
|
||||
@@ -160,12 +158,12 @@ public class PdaServiceImp implements PdaService{
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("v_tray_code", trayCodeMsg.getTrayCode());
|
||||
map.put("v_stockin_detail_id", trayCodeMsg.getStockinDetailId());
|
||||
map.put("v_quantity", Integer.parseInt(trayCodeMsg.getInQuantity()));
|
||||
map.put("v_quantity", Integer.parseInt(trayCodeMsg.getInQuantity()));
|
||||
pdaMapper.bindTrayMsg(map);
|
||||
String result = map.get("v_result").toString();
|
||||
if("10".equals(result)){
|
||||
if ("10".equals(result)) {
|
||||
return AjaxResult.success(map.get("v_resultmsg").toString());
|
||||
}else{
|
||||
} else {
|
||||
return AjaxResult.warn(map.get("v_resultmsg").toString());
|
||||
}
|
||||
}
|
||||
@@ -179,9 +177,9 @@ public class PdaServiceImp implements PdaService{
|
||||
map.put("v_cargo_space_id", trayCodeMsg.getCargoSpaceId());
|
||||
pdaMapper.addInJob(map);
|
||||
String result = map.get("v_result").toString();
|
||||
if("10".equals(result)){
|
||||
if ("10".equals(result)) {
|
||||
return AjaxResult.success(map.get("v_resultmsg").toString());
|
||||
}else{
|
||||
} else {
|
||||
return AjaxResult.warn(map.get("v_resultmsg").toString());
|
||||
}
|
||||
|
||||
@@ -222,29 +220,29 @@ public class PdaServiceImp implements PdaService{
|
||||
MydoJob mydoJobParam = new MydoJob();
|
||||
mydoJobParam.setTrayCode(trayCodeMakeSure.getTrayCode());
|
||||
List<MydoJob> mydoJobList = mydoJobService.selectMydoJobList(mydoJobParam);
|
||||
if (CollUtil.isEmpty(mydoJobList)){
|
||||
if (CollUtil.isEmpty(mydoJobList)) {
|
||||
return AjaxResult.warn("任务不存在");
|
||||
}
|
||||
|
||||
MydoJobDetail mydoJobDetailParam = new MydoJobDetail();
|
||||
mydoJobDetailParam.setJobId(mydoJobList.get(0).getJobId());
|
||||
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetailParam);
|
||||
if (CollUtil.isEmpty(mydoJobDetails)){
|
||||
if (CollUtil.isEmpty(mydoJobDetails)) {
|
||||
return AjaxResult.warn("子任务不存在");
|
||||
}
|
||||
|
||||
boolean flag = mydoJobDetails.stream().allMatch(mydoJobDetail -> mydoJobDetail.getPickQuantity().equals(mydoJobDetail.getOutQuantity()));
|
||||
if (flag){
|
||||
if (flag) {
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("v_tray_code", trayCodeMakeSure.getTrayCode());
|
||||
pdaMapper.outMakeSure(map);
|
||||
String result = map.get("v_result").toString();
|
||||
if("10".equals(result)){
|
||||
if ("10".equals(result)) {
|
||||
return AjaxResult.success(map.get("v_resultmsg").toString());
|
||||
}else{
|
||||
} else {
|
||||
return AjaxResult.warn(map.get("v_resultmsg").toString());
|
||||
}
|
||||
}else {
|
||||
} else {
|
||||
return AjaxResult.warn("拣选完成");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,16 +2,12 @@ package com.ruoyi.pda.trayMsg.controller;
|
||||
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
|
||||
import com.ruoyi.in.stockindetail.service.IInStockinDetailService;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
@@ -33,6 +29,8 @@ public class TrayMsgController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private ITrayMsgService trayMsgService;
|
||||
@Autowired
|
||||
private IInStockinDetailService inStockinDetailService;
|
||||
|
||||
/**
|
||||
* 查询trayMsg列表
|
||||
@@ -101,4 +99,24 @@ public class TrayMsgController extends BaseController
|
||||
{
|
||||
return toAjax(trayMsgService.deleteTrayMsgByIds(ids));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('pda:trayMsg:remove')")
|
||||
@RequestMapping("/remove")
|
||||
@Log(title = "trayMsg", businessType = BusinessType.DELETE)
|
||||
public AjaxResult remove(@RequestBody TrayMsg trayMsg)
|
||||
{
|
||||
List<TrayMsg> list = trayMsgService.selectTrayMsgList(trayMsg);
|
||||
int i = trayMsgService.deleteTrayMsgById(list.get(0).getId());
|
||||
if(i>0){
|
||||
// InStockinDetail inStockinDetail = new InStockinDetail();
|
||||
// inStockinDetail.setStockinDetailId(trayMsg.getStockinDetailId());
|
||||
InStockinDetail inStockinDetail1 = inStockinDetailService.selectInStockinDetailByStockinDetailId(trayMsg.getStockinDetailId());
|
||||
Integer num=Integer.parseInt(inStockinDetail1.getScanNum())-Integer.parseInt(list.get(0).getQuantity());
|
||||
inStockinDetail1.setScanNum(String.valueOf(num));
|
||||
inStockinDetailService.updateInStockinDetail(inStockinDetail1);
|
||||
}
|
||||
|
||||
return toAjax(i);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.ruoyi.pda.trayMsg.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.ruoyi.common.annotation.DataScope;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.pda.trayMsg.mapper.TrayMsgMapper;
|
||||
@@ -38,6 +40,7 @@ public class TrayMsgServiceImpl implements ITrayMsgService
|
||||
* @return trayMsg
|
||||
*/
|
||||
@Override
|
||||
@DataScope(warehouseAlias = "w")
|
||||
public List<TrayMsg> selectTrayMsgList(TrayMsg trayMsg)
|
||||
{
|
||||
return trayMsgMapper.selectTrayMsgList(trayMsg);
|
||||
@@ -45,7 +48,6 @@ public class TrayMsgServiceImpl implements ITrayMsgService
|
||||
|
||||
/**
|
||||
* 新增trayMsg
|
||||
*
|
||||
* @param trayMsg trayMsg
|
||||
* @return 结果
|
||||
*/
|
||||
|
||||
@@ -61,5 +61,5 @@ public interface BasStockMapper
|
||||
|
||||
void insertBasStockList(List<BasStock> list);
|
||||
|
||||
List<BasStock> selectKtpStock(String warehouseId);
|
||||
List<BasStock> selectKtpStock(BasStock basStock);
|
||||
}
|
||||
|
||||
@@ -63,5 +63,5 @@ public interface IBasStockService
|
||||
|
||||
void insertBasStockList(List<BasStock> list);
|
||||
|
||||
List<BasStock> selectKtpStock(String warehouseId);
|
||||
List<BasStock> selectKtpStock(BasStock basStock);
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService;
|
||||
import com.ruoyi.bas.cargoSpace.service.impl.BasCargoSpaceServiceImpl;
|
||||
import com.ruoyi.bas.warehouse.domain.BasWarehouse;
|
||||
import com.ruoyi.bas.warehouse.service.IBasWarehouseService;
|
||||
import com.ruoyi.common.annotation.DataScope;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.stock.freeze.domain.BasStockFreezeRecord;
|
||||
@@ -174,9 +175,9 @@ public class BasStockServiceImpl implements IBasStockService
|
||||
public void insertBasStockList(List<BasStock> list) {
|
||||
basStockMapper.insertBasStockList(list);
|
||||
}
|
||||
|
||||
@DataScope(warehouseAlias = "s")
|
||||
@Override
|
||||
public List<BasStock> selectKtpStock(String warehouseId) {
|
||||
return basStockMapper.selectKtpStock(warehouseId);
|
||||
public List<BasStock> selectKtpStock(BasStock basStock) {
|
||||
return basStockMapper.selectKtpStock(basStock);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,6 +76,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="cargoSpaceLogo != null and cargoSpaceLogo != ''"> and bcs.cargo_space_logo = #{cargoSpaceLogo}</if>
|
||||
<if test="thisCargoArea != null and thisCargoArea != ''"> and bcs.this_cargo_area = #{thisCargoArea}</if>
|
||||
</where>
|
||||
order by the_platoon,the_floor,the_column
|
||||
</select>
|
||||
|
||||
<select id="selectBasCargoSpaceByCargoSpaceId" parameterType="String" resultMap="BasCargoSpaceResult">
|
||||
|
||||
@@ -295,7 +295,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<delete id="deleteInStockinDetailByStockinGuid">
|
||||
delete from in_stockin_detail where stockin_guid = #{stockinGuid}
|
||||
</delete>
|
||||
<select id="selectStockinByDetailById" parameterType="string" resultMap="InStockinDetailResult">
|
||||
<select id="selectStockinByDetailById" parameterType="InstockinDetail" resultMap="InStockinDetailResult">
|
||||
select
|
||||
isd.stockin_detail_id, isd.stockin_guid, isd.stockin_id, isd.lot_no, isd.product_guid,
|
||||
isd.product_id, isd.quantity-isd.scan_num as quantity, isd.quantity_x, isd.quantity_j, isd.price, isd.cargo_no, isd.remark,
|
||||
@@ -312,6 +312,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="stockinDetailId != null and stockinDetailId != '' ">
|
||||
isd.stockin_detail_id = #{stockinDetailId}
|
||||
</if>
|
||||
<if test="params.warehouseDataScope != null and params.warehouseDataScope !=''">
|
||||
${params.warehouseDataScope}
|
||||
</if>
|
||||
</where>
|
||||
order by ist.create_date desc
|
||||
</select>
|
||||
|
||||
@@ -32,6 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="spare3" column="spare3" />
|
||||
<result property="spare4" column="spare4" />
|
||||
<result property="pickQuantity" column="pick_quantity" />
|
||||
<result property="pickQuantityReal" column="pick_quantity_real" />
|
||||
<association property="extraField" javaType="ExtraField">
|
||||
<result property="productId" column="product_id" />
|
||||
<result property="materialDesc" column="product_name" />
|
||||
@@ -72,6 +73,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
mjd.spare3,
|
||||
mjd.spare4,
|
||||
mjd.pick_quantity,
|
||||
mjd.out_quantity-mjd.pick_quantity as pick_quantity_real,
|
||||
bp.product_name, bp.spare1 as englishDesc,
|
||||
bp.spare2 as netWeight,bp.spare5 as length,bp.spare6 as width,bp.spare7 as height,bp.spare8 as volume
|
||||
|
||||
|
||||
@@ -88,6 +88,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="inOut != null and inOut != '' and inOut =='1'.toString "> and mj.in_or_out < 20</if>
|
||||
<if test="inOut != null and inOut != '' and inOut =='3'.toString "> and mj.in_or_out in (5,6)</if>
|
||||
<if test="inOut != null and inOut != '' and inOut =='4'.toString "> and mj.in_or_out in (25,26)</if>
|
||||
<if test="params.warehouseDataScope != null and params.warehouseDataScope !=''">
|
||||
${params.warehouseDataScope}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
{call proc_tray_out(
|
||||
#{v_warehouse_id,mode=IN,jdbcType=VARCHAR},
|
||||
#{v_cargo_space_id,mode=IN,jdbcType=VARCHAR},
|
||||
#{v_exit_id,mode=IN,jdbcType=VARCHAR},
|
||||
#{v_result,mode=OUT,jdbcType=INTEGER},
|
||||
#{v_resultmsg,mode=OUT,jdbcType=VARCHAR}
|
||||
)}
|
||||
@@ -61,9 +62,7 @@
|
||||
<select id="addInJob" parameterType="java.util.Map" statementType="CALLABLE">
|
||||
{call proc_add_in_job(
|
||||
#{v_tray_code,mode=IN,jdbcType=VARCHAR},
|
||||
#{v_warehouse_id,mode=IN,jdbcType=VARCHAR},
|
||||
#{v_cargo_space_id,mode=IN,jdbcType=VARCHAR},
|
||||
#{v_entrance_id,mode=IN,jdbcType=VARCHAR},
|
||||
#{v_result,mode=OUT,jdbcType=INTEGER},
|
||||
#{v_resultmsg,mode=OUT,jdbcType=VARCHAR}
|
||||
)}
|
||||
|
||||
@@ -28,6 +28,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="trayCode != null and trayCode != ''"> and t.tray_code = #{trayCode}</if>
|
||||
<if test="stockinDetailId != null and stockinDetailId != ''"> and t.stockin_detail_id = #{stockinDetailId}</if>
|
||||
<if test="quantity != null and quantity != ''"> and t.quantity = #{quantity}</if>
|
||||
<if test="params.warehouseDataScope != null and params.warehouseDataScope !=''">
|
||||
${params.warehouseDataScope}
|
||||
</if>
|
||||
|
||||
</where>
|
||||
</select>
|
||||
|
||||
|
||||
@@ -252,9 +252,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<select id="selectKtpStock" parameterType="string" resultMap="BasStockResult">
|
||||
select b.cargo_space_name, b.cargo_space_id from bas_stock s,bas_cargo_space b where s.warehouse_id=#{warehouseId}
|
||||
<select id="selectKtpStock" parameterType="BasStock" resultMap="BasStockResult">
|
||||
select b.cargo_space_name, b.cargo_space_id from bas_stock s,bas_cargo_space b
|
||||
<where>
|
||||
s.warehouse_id=#{warehouseId}
|
||||
and s.cargo_space_id=b.cargo_space_id and b.warehouse_id= s.warehouse_id and b.status='2' and s.product_id='KTP0001'
|
||||
<if test="params.warehouseDataScope != null and params.warehouseDataScope !=''">
|
||||
${params.warehouseDataScope}
|
||||
</if>
|
||||
</where>
|
||||
order by b.the_platoon,b.the_floor,b.the_column asc
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user