手持机部分

This commit is contained in:
张怡蓉
2025-06-17 14:32:57 +08:00
parent ffa580c9a6
commit d19bdf5b10
15 changed files with 111 additions and 45 deletions

View File

@@ -96,15 +96,5 @@ public class BasWarehouseController extends BaseController
{
return toAjax(basWarehouseService.deleteBasWarehouseByWarehouseIds(warehouseIds));
}
/**
* 获取除了CTU以外的库
*/
@RequestMapping("/getWarehouseByType")
@ResponseBody
public AjaxResult getWarehouseByType()
{
List<BasWarehouse> list = basWarehouseService.selectBasWarehouseListByType();
return AjaxResult.success(list);
}
}

View File

@@ -59,6 +59,9 @@ public class BasWarehouse extends BaseEntity
/*仓库数据权限*/
private List<String> dataScope;
private List<String> typeData;

View File

@@ -60,9 +60,6 @@ public interface BasWarehouseMapper
*/
public int deleteBasWarehouseByWarehouseIds(String[] warehouseIds);
/**
*
*/
public List<BasWarehouse> selectBasWarehouseListByType();
}

View File

@@ -60,8 +60,5 @@ public interface IBasWarehouseService
*/
public int deleteBasWarehouseByWarehouseId(String warehouseId);
/**
*
*/
public List<BasWarehouse> selectBasWarehouseListByType();
}

View File

@@ -116,11 +116,5 @@ public class BasWarehouseServiceImpl implements IBasWarehouseService
return basWarehouseMapper.deleteBasWarehouseByWarehouseId(warehouseId);
}
/**
*
*/
@Override
public List<BasWarehouse> selectBasWarehouseListByType() {
return basWarehouseMapper.selectBasWarehouseListByType();
}
}

View File

@@ -138,4 +138,8 @@ public class InStockinDetail extends BaseEntity
private ExtraField extraField;
private String warehouseName;
private String warehouseId;
}

View File

@@ -68,5 +68,5 @@ public interface InStockinDetailMapper
void deleteInStockinDetailByStockinGuid(String stockinGuid);
List<InStockinDetail> selectStockinByDetailById(String stockinDetailId);
InStockinDetail selectStockinByDetailById(String stockinDetailId);
}

View File

@@ -80,5 +80,5 @@ public interface IInStockinDetailService
AjaxResult barcodePrinting(Map<String,Object> stockinDetailId);
public List<InStockinDetail> selectStockinByDetailById(String stockinDetailId);
public InStockinDetail selectStockinByDetailById(String stockinDetailId);
}

View File

@@ -124,7 +124,7 @@ public class InStockinDetailServiceImpl implements IInStockinDetailService
}
@Override
public List<InStockinDetail> selectStockinByDetailById(String stockinDetailId) {
public InStockinDetail selectStockinByDetailById(String stockinDetailId) {
return inStockinDetailMapper.selectStockinByDetailById(stockinDetailId);
}

View File

@@ -127,8 +127,8 @@ public class PdaController extends BaseController {
*/
@RequestMapping("/inorder/detail")
@ResponseBody
public List<InStockinDetail> inoderList(String stockinDetailId) {
List<InStockinDetail> inStockinDetail = inStockinDetailService.selectStockinByDetailById(stockinDetailId);
public InStockinDetail inoderList(String stockinDetailId) {
InStockinDetail inStockinDetail = inStockinDetailService.selectStockinByDetailById(stockinDetailId);
return inStockinDetail;
}
/**
@@ -158,15 +158,13 @@ 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(basWarehouse==null){
// return AjaxResult.error("仓库不存在");
// }
if("1".equals(basWarehouse.getWarehouseType()) && StrUtil.isEmpty(trayCodeMsg.getCargoSpaceId())){
return AjaxResult.error("请选择高架库货位");
}
if("2".equals(basWarehouse.getWarehouseType()) && StrUtil.isEmpty(trayCodeMsg.getEntranceId())){
return AjaxResult.error("请选择入口");
}
return pdaService.addInJob(trayCodeMsg);
}

View File

@@ -1,14 +1,24 @@
package com.ruoyi.pda.service;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace;
import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.in.stockin.service.IInStockinService;
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
import com.ruoyi.in.stockindetail.service.IInStockinDetailService;
import com.ruoyi.pda.domain.TrayCodeMsg;
import com.ruoyi.pda.mapper.PdaMapper;
import com.ruoyi.pda.trayMsg.domain.TrayMsg;
import com.ruoyi.pda.trayMsg.service.ITrayMsgService;
import com.ruoyi.system.service.ISysRoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
@@ -19,6 +29,12 @@ public class PdaServiceImp implements PdaService{
PdaMapper pdaMapper;
@Autowired
IBasCargoSpaceService basCargoSpaceService;
@Autowired
ISysRoleService sysRoleService;
@Autowired
IInStockinDetailService inStockinDetailService;
@Autowired
ITrayMsgService trayMsgService;
/**
* 空托盘入库
@@ -94,6 +110,32 @@ 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("此用户无权限操作该仓库物料");
}
}
}
}
//判断与已绑定物料是否为同一仓库
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())){
return AjaxResult.warn("同一托盘不能绑定不同仓库的物料");
}
}
HashMap<String, Object> map = new HashMap<>();
map.put("v_tray_code", trayCodeMsg.getTrayCode());
map.put("v_stockin_detail_id", trayCodeMsg.getStockinDetailId());
@@ -112,9 +154,8 @@ public class PdaServiceImp implements PdaService{
public AjaxResult addInJob(TrayCodeMsg trayCodeMsg) {
HashMap<String, Object> map = new HashMap<>();
map.put("v_tray_code", trayCodeMsg.getTrayCode());
map.put("v_warehouse_id", trayCodeMsg.getWarehouseId());
// map.put("v_warehouse_id", trayCodeMsg.getWarehouseId());
map.put("v_cargo_space_id", trayCodeMsg.getCargoSpaceId());
map.put("v_entrance_id", trayCodeMsg.getEntranceId());
pdaMapper.addInJob(map);
String result = map.get("v_result").toString();
if("10".equals(result)){

View File

@@ -32,6 +32,36 @@ public class TrayMsg extends BaseEntity
private String productName;
private String warehouseId;
private String warehouseName;
private String warehouseType;
public String getWarehouseType() {
return warehouseType;
}
public void setWarehouseType(String warehouseType) {
this.warehouseType = warehouseType;
}
public String getWarehouseId() {
return warehouseId;
}
public void setWarehouseId(String warehouseId) {
this.warehouseId = warehouseId;
}
public String getWarehouseName() {
return warehouseName;
}
public void setWarehouseName(String warehouseName) {
this.warehouseName = warehouseName;
}
public String getProductName() {
return productName;
}

View File

@@ -38,6 +38,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{item}
</foreach>
</if>
<if test="typeData != null and typeData.size()>0">
and warehouse_type in
<foreach item="item" index="index" collection="typeData" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</where>
</select>
@@ -98,8 +104,5 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach>
</delete>
<select id="selectBasWarehouseListByType" resultMap="BasWarehouseResult">
<include refid="selectBasWarehouseVo"/>
where warehouse_type in (1,3)
</select>
</mapper>

View File

@@ -35,6 +35,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="scanNum" column="scan_num" />
<result property="scanNumX" column="scan_num_x" />
<result property="scanNumJ" column="scan_num_j" />
<result property="warehouseName" column="warehouse_name" />
<result property="warehouseId" column="warehouse_id" />
<association property="extraField" javaType="ExtraField">
<result property="productId" column="product_id" />
<result property="materialDesc" column="product_name" />
@@ -301,10 +303,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
isd.supplier_id, isd.customer_id, isd.unit, isd.spec, isd.spare1, isd.spare2, isd.spare3, isd.spare4,
isd.spare5, isd.spare6, isd.scan_num, isd.scan_num_x, isd.scan_num_j,
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
bp.spare2 as netWeight,bp.spare5 as length,bp.spare6 as width,bp.spare7 as height,bp.spare8 as volume,bw.warehouse_name,ist.warehouse_id
from in_stockin_detail isd
left join bas_product bp on bp.product_id = isd.product_id
left join in_stockin ist on ist.stockin_guid = isd.stockin_guid
left join bas_warehouse bw on bw.warehouse_id = ist.warehouse_id
<where>
<if test="stockinDetailId != null and stockinDetailId != '' ">
isd.stockin_detail_id = #{stockinDetailId}

View File

@@ -10,16 +10,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="stockinDetailId" column="stockin_detail_id" />
<result property="quantity" column="quantity" />
<result property="productName" column="product_name" />
<result property="warehouseId" column="warehouse_id" />
<result property="warehouseName" column="warehouse_name" />
<result property="warehouseType" column="warehouse_type" />
</resultMap>
<sql id="selectTrayMsgVo">
select id, tray_code, stockin_detail_id, quantity from tray_msg
select id, tray_code, stockin_detail_id, quantity,warehouse_id from tray_msg
</sql>
<select id="selectTrayMsgList" parameterType="TrayMsg" resultMap="TrayMsgResult">
select t.id, t.tray_code, t.stockin_detail_id, t.quantity,p.product_name from tray_msg t
select t.id, t.tray_code, t.stockin_detail_id, t.quantity,p.product_name,t.warehouse_id,w.warehouse_name,w.warehouse_type from tray_msg t
left join in_stockin_detail d on t.stockin_detail_id = d.stockin_detail_id
left join bas_product p on d.product_id=p.product_id
left join bas_warehouse w on t.warehouse_id=w.warehouse_id
<where>
<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>
@@ -39,12 +43,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="trayCode != null">tray_code,</if>
<if test="stockinDetailId != null">stockin_detail_id,</if>
<if test="quantity != null">quantity,</if>
<if test="warehouseId != null">warehouse_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="trayCode != null">#{trayCode},</if>
<if test="stockinDetailId != null">#{stockinDetailId},</if>
<if test="quantity != null">#{quantity},</if>
<if test="warehouseId != null">#{warehouseId},</if>
</trim>
</insert>