手持机部分

This commit is contained in:
张怡蓉
2025-07-08 14:04:31 +08:00
parent bbc4f1c708
commit 0baf2119e4
14 changed files with 238 additions and 20 deletions

View File

@@ -1,5 +1,6 @@
package com.ruoyi.bas.container.domain;
import com.ruoyi.bas.containerDetails.domain.BasContainerDetails;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -8,6 +9,8 @@ import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import java.util.List;
/**
* 容器管理对象 bas_container
*
@@ -54,4 +57,6 @@ public class BasContainer extends BaseEntity
/** 备用 */
private String spare3;
private List<BasContainerDetails> details;
}

View File

@@ -35,7 +35,15 @@ public class BasProductPort extends BaseEntity
/** 创建人 */
@Excel(name = "创建人")
private String createMan;
private String warehouseId;
public String getWarehouseId() {
return warehouseId;
}
public void setWarehouseId(String warehouseId) {
this.warehouseId = warehouseId;
}
private List<String> productIdList;

View File

@@ -66,6 +66,7 @@ public class CheckDifferenceRecordServiceImpl implements ICheckDifferenceRecordS
@Override
public AjaxResult insertCheckDifferenceRecord(CheckDifferenceRecord checkDifferenceRecord)
{
//1更新3删除2新增
if (checkDifferenceRecord.getRecordType()==1){
String stockId = checkDifferenceRecord.getStockId();
BasStock basStock = basStockService.selectBasStockByStockId(stockId);

View File

@@ -5,6 +5,8 @@ import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import java.util.List;
/**
* 入库单据对象 in_stockin
*
@@ -101,6 +103,16 @@ public class InStockin extends BaseEntity
private String lotNo;
private String materialDesc;
private List<String> typeData;
public List<String> getTypeData() {
return typeData;
}
public void setTypeData(List<String> typeData) {
this.typeData = typeData;
}
public String getLotNo() {
return lotNo;
}

View File

@@ -5,6 +5,8 @@ import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import java.util.List;
/**
* 出库主单对象 out_stockout
*
@@ -89,6 +91,16 @@ public class OutStockout extends BaseEntity
private String productName;
private List<String> typeData;
public List<String> getTypeData() {
return typeData;
}
public void setTypeData(List<String> typeData) {
this.typeData = typeData;
}
public String getProductId() {
return productId;
}

View File

@@ -7,6 +7,7 @@ import java.util.HashMap;
import java.util.List;
import com.ruoyi.bas.basJobId.service.IBasJobIdService;
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.uuid.UUID;
import com.ruoyi.out.outStockout.domain.OutStockoutVo;
@@ -59,6 +60,7 @@ public class OutStockoutServiceImpl implements IOutStockoutService
* @return 出库主单
*/
@Override
@DataScope(warehouseAlias = "bw")
public List<OutStockout> selectOutStockoutList(OutStockout outStockout)
{
return outStockoutMapper.selectOutStockoutList(outStockout);

View File

@@ -3,11 +3,14 @@ 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.container.domain.BasContainer;
import com.ruoyi.bas.warehouse.domain.BasWarehouse;
import com.ruoyi.bas.warehouse.service.IBasWarehouseService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockin.service.IInStockinService;
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
@@ -16,6 +19,8 @@ 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.out.outStockout.domain.OutStockout;
import com.ruoyi.out.outStockout.service.IOutStockoutService;
import com.ruoyi.pda.domain.TrayCodeMakeSure;
import com.ruoyi.pda.domain.TrayCodeMsg;
import com.ruoyi.pda.service.PdaService;
@@ -29,6 +34,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
@@ -54,6 +60,10 @@ public class PdaController extends BaseController {
private IMydoJobService mydoJobService;
@Autowired
private IMydoJobDetailService mydoJobDetailService;
@Autowired
private IInStockinService inStockinService;
@Autowired
private IOutStockoutService outStockoutService;
/**
* 空托盘入库
@@ -63,6 +73,7 @@ public class PdaController extends BaseController {
*/
@RequestMapping("/emptyTrayIn")
@ResponseBody
@Log(title = "空托盘入库", businessType = BusinessType.INSERT)
public AjaxResult emptyTrayIn(@RequestBody TrayCodeMsg trayCodeMsg) {
BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(trayCodeMsg.getWarehouseId());
if (basWarehouse == null) {
@@ -127,6 +138,7 @@ public class PdaController extends BaseController {
*/
@RequestMapping("/emptyTrayOut")
@ResponseBody
@Log(title = "空托盘出库", businessType = BusinessType.INSERT)
public AjaxResult emptyTrayOut(@RequestBody TrayCodeMsg trayCodeMsg) {
BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(trayCodeMsg.getWarehouseId());
if (basWarehouse == null) {
@@ -163,6 +175,18 @@ public class PdaController extends BaseController {
// public AjaxResult emptyBoxOut(@RequestBody TrayCodeMsg trayCodeMsg) {
// return pdaService.emptyBoxOut(trayCodeMsg);
// }
/**
* 查询平库入库单
*/
@PreAuthorize("@ss.hasPermi('pda:inoderList:list')")
@RequestMapping("/inorder/list")
@ResponseBody
public List<InStockin> inoderList(@RequestBody InStockin inStockin) {
inStockin.setTypeData(Arrays.asList("3"));
List<InStockin> inStockins = inStockinService.selectInStockinList(inStockin);
return inStockins;
}
/**
* 绑盘查询入库单详情
@@ -185,6 +209,7 @@ public class PdaController extends BaseController {
*/
@PreAuthorize("@ss.hasPermi('pda:bindTrayMsg:submit')")
@RequestMapping("/bindTrayMsg")
@Log(title = "手持机绑定物料", businessType = BusinessType.INSERT)
@ResponseBody
public AjaxResult bindTrayMsg(@RequestBody TrayCodeMsg trayCodeMsg) {
return pdaService.bindTrayMsg(trayCodeMsg);
@@ -207,6 +232,7 @@ public class PdaController extends BaseController {
* 确认入库
*/
@RequestMapping("/addInJob")
@Log(title = "手持机确认入库", businessType = BusinessType.INSERT)
@ResponseBody
public AjaxResult addInJob(@RequestBody TrayCodeMsg trayCodeMsg) {
BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(trayCodeMsg.getWarehouseId());
@@ -239,6 +265,7 @@ public class PdaController extends BaseController {
*/
@PreAuthorize("@ss.hasPermi('pda:out:outMakeSure')")
@PostMapping("/outMakeSure")
@Log(title = "手持机出库确认", businessType = BusinessType.INSERT)
@ResponseBody
public AjaxResult outMakeSure(@RequestBody TrayCodeMakeSure trayCodeMakeSure) {
return pdaService.outMakeSure(trayCodeMakeSure);
@@ -264,6 +291,7 @@ public class PdaController extends BaseController {
*/
@PreAuthorize("@ss.hasPermi('pda:check:checkMakeSure')")
@PostMapping("/checkMakeSure")
@Log(title = "手持机盘点出库确认", businessType = BusinessType.INSERT)
@ResponseBody
public AjaxResult checkMakeSure(@RequestBody TrayCodeMakeSure trayCodeMakeSure) {
return pdaService.checkMakeSure(trayCodeMakeSure);
@@ -288,7 +316,13 @@ public class PdaController extends BaseController {
mydoJob.setWarehouseId(basWarehouse.getWarehouseId());
mydoJob.setCargoSpaceId(trayCodeMsg.getTrayCode());
mydoJob.setInOut(trayCodeMsg.getInOut());
mydoJob.setStatus("1");
if("1".equals(trayCodeMsg.getInOut())){
mydoJob.setStatus("1");
}else{
mydoJob.setStatus("3");
}
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobList(mydoJob);
//将mydoJob添加进mydoJobArrayList
mydoJobArrayList.addAll(mydoJobs);
@@ -331,5 +365,47 @@ public class PdaController extends BaseController {
return AjaxResult.success(mydoJobDetails);
}
/**
* 平库入库
*/
@RequestMapping("/pkIn")
@ResponseBody
public AjaxResult pkIn(@RequestBody TrayCodeMsg trayCodeMsg) {
return pdaService.pkIn(trayCodeMsg);
}
/**
* 查询平库出库单
*/
@PreAuthorize("@ss.hasPermi('pda:outoderList:list')")
@RequestMapping("/outorder/list")
@ResponseBody
public List<OutStockout> outoderList(@RequestBody OutStockout outStockout) {
outStockout.setTypeData(Arrays.asList("3"));
List<OutStockout> outStockouts = outStockoutService.selectOutStockoutList(outStockout);
return outStockouts;
}
/**
* 平库出库
*/
@RequestMapping("/pkout")
@ResponseBody
public AjaxResult pkout(@RequestBody TrayCodeMsg trayCodeMsg) {
return pdaService.pkout(trayCodeMsg);
}
/**
* 调用wcs接口调用agv
*/
@RequestMapping("/agvRequest")
@ResponseBody
public AjaxResult agvRequest(@RequestBody BasContainer basContainer) {
if(basContainer.getDetails().size()==0){
return AjaxResult.error("该料架无物料信息");
}
return pdaService.agvRequest(basContainer);
}
}

View File

@@ -20,5 +20,9 @@ public interface PdaMapper {
void checkMakeSure(HashMap<String, Object> map);
void pkIn(HashMap<String, Object> map);
void pkOut(HashMap<String, Object> map);
void outMakeSureException(HashMap<String, Object> map);
}

View File

@@ -1,5 +1,6 @@
package com.ruoyi.pda.service;
import com.ruoyi.bas.container.domain.BasContainer;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.pda.domain.TrayCodeMakeSure;
import com.ruoyi.pda.domain.TrayCodeMsg;
@@ -27,5 +28,11 @@ public interface PdaService {
AjaxResult checkMakeSure(TrayCodeMakeSure trayCodeMakeSure);
AjaxResult pkIn(TrayCodeMsg trayCodeMsg);
AjaxResult pkout(TrayCodeMsg trayCodeMsg);
AjaxResult outException(TrayCodeMakeSure trayCodeMakeSure);
AjaxResult agvRequest(BasContainer basContainer);
}

View File

@@ -5,8 +5,11 @@ import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil;
import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace;
import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService;
import com.ruoyi.bas.container.domain.BasContainer;
import com.ruoyi.bas.containerDetails.domain.BasContainerDetails;
import com.ruoyi.bas.containerDetails.service.IBasContainerDetailsService;
import com.ruoyi.bas.port.domain.BasProductPort;
import com.ruoyi.bas.port.mapper.BasProductPortMapper;
import com.ruoyi.check.commit.domain.CheckCommitRecord;
import com.ruoyi.check.commit.service.ICheckCommitRecordService;
import com.ruoyi.common.core.domain.AjaxResult;
@@ -70,6 +73,8 @@ public class PdaServiceImp implements PdaService {
@Autowired
private IOutStockoutDetailService outStockoutDetailService;
@Autowired
private BasProductPortMapper basProductPortMapper;
@Autowired
private IBasStockService basStockService;
/**
@@ -420,4 +425,64 @@ public class PdaServiceImp implements PdaService {
throw new RuntimeException(map.get("v_resultmsg").toString());
}
}
@Override
public AjaxResult pkIn(TrayCodeMsg trayCodeMsg) {
HashMap<String, Object> map = new HashMap<>();
map.put("v_stockin_detail_id", trayCodeMsg.getStockinDetailId());
map.put("v_in_quantity", Integer.parseInt(trayCodeMsg.getInQuantity()));
pdaMapper.pkIn(map);
String result = map.get("v_result").toString();
if ("10".equals(result)) {
return AjaxResult.success(map.get("v_resultmsg").toString());
} else {
return AjaxResult.warn(map.get("v_resultmsg").toString());
}
}
@Override
public AjaxResult pkout(TrayCodeMsg trayCodeMsg) {
HashMap<String, Object> map = new HashMap<>();
map.put("v_stockout_detail_id", trayCodeMsg.getStockinDetailId());
pdaMapper.pkOut(map);
String result = map.get("v_result").toString();
if ("10".equals(result)) {
return AjaxResult.success(map.get("v_resultmsg").toString());
} else {
return AjaxResult.warn(map.get("v_resultmsg").toString());
}
}
@Override
public AjaxResult agvRequest(BasContainer basContainer) {
//缓存站点
String endPoint = "456";
//判断details中的数量是否都为0
if (CollUtil.isNotEmpty(basContainer.getDetails())) {
for (BasContainerDetails detail : basContainer.getDetails()) {
//如果存在数量不为0的
if (detail.getQuantity() != 0) {
if(StrUtil.isEmpty(basContainer.getSpare1())){
return AjaxResult.warn("请选择退料仓库");
}
//去ctu库站点
BasProductPort basProductPort = new BasProductPort();
basProductPort.setWarehouseId(basContainer.getSpare1());
List<BasProductPort> basProductPorts = basProductPortMapper.selectBasProductPortList(basProductPort);
endPoint=basProductPorts.get(0).getId();
}
}
}
//todo 调用agv搬运接口
return null;
}
}

View File

@@ -98,6 +98,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="params.warehouseDataScope != null and params.warehouseDataScope !=''">
${params.warehouseDataScope}
</if>
<if test="typeData != null and typeData.size()>0">
and bw.warehouse_type in
<foreach item="item" index="index" collection="typeData" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</where>
</select>

View File

@@ -57,6 +57,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="productId != null and productId != ''"> and d.product_id = #{productId}</if>
<if test="productName != null and productName != ''"> and bp.product_name like concat('%', #{productName}, '%')</if>
<if test="customerName != null and customerName != ''"> and bc.customer_name like concat('%', #{customerName}, '%')</if>
<if test="params.warehouseDataScope != null and params.warehouseDataScope !=''">
${params.warehouseDataScope}
</if>
<if test="typeData != null and typeData.size()>0">
and bw.warehouse_type in
<foreach item="item" index="index" collection="typeData" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</where>
</select>

View File

@@ -83,4 +83,21 @@
#{v_resultmsg,mode=OUT,jdbcType=VARCHAR}
)}
</select>
<select id="pkIn" parameterType="java.util.Map" statementType="CALLABLE">
{call proc_pk_in(
#{v_stockin_detail_id,mode=IN,jdbcType=VARCHAR},
#{v_in_quantity,mode=IN,jdbcType=INTEGER},
#{v_result,mode=OUT,jdbcType=INTEGER},
#{v_resultmsg,mode=OUT,jdbcType=VARCHAR}
)}
</select>
<select id="pkOut" parameterType="java.util.Map" statementType="CALLABLE">
{call proc_pk_out(
#{v_stockout_detail_id,mode=IN,jdbcType=VARCHAR},
#{v_result,mode=OUT,jdbcType=INTEGER},
#{v_resultmsg,mode=OUT,jdbcType=VARCHAR}
)}
</select>
</mapper>