verou
2025-03-26 37cb417ce5b060c21241f32f43c00f2ec9e5f893
Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop
11个文件已修改
1个文件已添加
206 ■■■■ 已修改文件
rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrController.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/dto/WarehouseAreasDto.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Warehouse.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreas.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/WarehouseMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/MatnrService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WarehouseService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WarehouseServiceImpl.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/resources/mapper/manager/WarehouseMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/common/utils/FieldsUtils.java
@@ -118,9 +118,7 @@
            String index = fieldsIndex.toString();
            FieldsItemService fieldsItemService = SpringUtils.getBean(FieldsItemService.class);
            for (Fields field : fields) {
                Map<String, String> extendFields = (Map<String, String>) params.get("extendFields");
                if (!Objects.isNull(extendFields)) {
                    if (!Objects.isNull(extendFields.get(field.getFields()))) {
                    if (!Objects.isNull(params.get(field.getFields()))) {
                        FieldsItem indexItem = fieldsItemService.getOne(new LambdaQueryWrapper<FieldsItem>()
                                .eq(FieldsItem::getUuid, index)
                                .eq(FieldsItem::getFieldsId, field.getId()));
@@ -129,22 +127,20 @@
                            FieldsItem item = new FieldsItem();
                            item.setUuid(index)
                                    .setFieldsId(field.getId())
                                    .setValue(extendFields.get(field.getFields()).toString());
                                    .setValue(params.get(field.getFields()).toString());
                            if (!fieldsItemService.save(item)) {
                                throw new CoolException("扩展字段修改失败!!");
                            }
                        } else {
                            indexItem.setValue(extendFields.get(field.getFields()).toString());
                            indexItem.setValue(params.get(field.getFields()).toString());
                            if (!fieldsItemService.updateById(indexItem)) {
                                throw new CoolException("扩展字段修改失败!!");
                            }
                        }
                    }
                }
            }
        } else {
            String uuid16 = CommonUtil.randomUUID16();
            saveFields(params, uuid16);
            saveFields(params, params.get("index").toString());
        }
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrController.java
@@ -7,6 +7,7 @@
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.common.domain.PageResult;
import com.vincent.rsf.server.common.utils.CommonUtil;
import com.vincent.rsf.server.common.utils.ExcelUtil;
import com.vincent.rsf.server.common.annotation.OperationLog;
import com.vincent.rsf.server.common.domain.BaseParam;
@@ -39,9 +40,17 @@
    @PreAuthorize("hasAuthority('manager:matnr:list')")
    @PostMapping("/matnr/page")
    public R page(@RequestBody Map<String, Object> map) {
//        if (!Objects.isNull(map.get("groupId"))) {
//            return R.ok(matnrService.getPages(map));
//        } else {
//            BaseParam baseParam = buildParam(map, BaseParam.class);
//            PageParam<Matnr, BaseParam> pageParam = new PageParam<>(baseParam, Matnr.class);
//            return R.ok().add(matnrService.getMatnrPage(pageParam, map));
//        }
        BaseParam baseParam = buildParam(map, BaseParam.class);
        PageParam<Matnr, BaseParam> pageParam = new PageParam<>(baseParam, Matnr.class);
        return R.ok().add(matnrService.getMatnrPage(pageParam));
        return R.ok().add(matnrService.getMatnrPage(pageParam, map));
    }
    @PreAuthorize("hasAuthority('manager:matnr:list')")
@@ -94,15 +103,22 @@
            throw new CoolException("名称不能为空!!");
        }
        matnr.setUpdateBy(getLoginUserId());
        if (!matnrService.updateById(matnr)) {
            return R.error("Update Fail");
        }
        if (!FieldsUtils.getFieldsSta().isEmpty()) {
            Matnr matnr1 = matnrService.getById(matnr.getId());
            params.put("fieldsIndex", matnr1.getFieldsIndex());
            if (!Objects.isNull(matnr1.getFieldsIndex())) {
                params.put("fieldsIndex", matnr1.getFieldsIndex());
            } else {
                String uuid16 = CommonUtil.randomUUID16();
                params.put("index", uuid16);
                matnr.setFieldsIndex(uuid16);
            }
            FieldsUtils.updateFieldsValue(params);
        }
        if (!matnrService.updateById(matnr)) {
            return R.error("Update Fail");
        }
        return R.ok("Update Success").add(matnr);
    }
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseController.java
@@ -17,6 +17,7 @@
import com.vincent.rsf.server.manager.service.WarehouseService;
import com.vincent.rsf.server.system.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
@@ -166,4 +167,11 @@
        ExcelUtil.build(ExcelUtil.create(list, Warehouse.class), response);
    }
    @ApiOperation("获取仓库树状图")
    @PreAuthorize("hasAuthority('manager:warehouse:list')")
    @PostMapping("/warehouse/areas")
    public R getAreasForWarehouse(@RequestBody Map<String, Object> param) {
        return R.ok(warehouseService.getAllWarehouseAreas(param));
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/dto/WarehouseAreasDto.java
New file
@@ -0,0 +1,18 @@
package com.vincent.rsf.server.manager.controller.dto;
import lombok.Data;
import lombok.experimental.Accessors;
/**
 * @author Ryan
 * @version 1.0
 * @title WarehouseAreasDto
 * @description
 * @create 2025/3/26 13:16
 */
@Data
@Accessors(chain = true)
public class WarehouseAreasDto {
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Warehouse.java
@@ -1,16 +1,14 @@
package com.vincent.rsf.server.manager.entity;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -20,6 +18,7 @@
import com.vincent.rsf.server.system.entity.User;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Data
@TableName("man_warehouse")
@@ -140,6 +139,18 @@
    @ApiModelProperty(value= "备注")
    private String memo;
    /**
     * 库区
     */
    @TableField(exist = false)
    @ApiModelProperty("库区")
    private List<WarehouseAreas> children;
    @TableField(exist = false)
    private Integer flagWare;
    public Warehouse() {}
    public Warehouse(String name,String code,String factory,String address,String longitude,String latgitude,Double length,Double width,Double height,Integer status,Integer deleted,Integer tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreas.java
@@ -1,6 +1,7 @@
package com.vincent.rsf.server.manager.entity;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.*;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -12,10 +13,7 @@
import java.text.SimpleDateFormat;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -141,6 +139,10 @@
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    @TableField(exist = false)
    @ApiModelProperty("是否仓库")
    private Integer flagWare;
    /**
     * 备注
     */
rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/WarehouseMapper.java
@@ -3,10 +3,14 @@
import com.vincent.rsf.server.manager.entity.Warehouse;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface WarehouseMapper extends BaseMapper<Warehouse> {
    List<Warehouse> selectByName(@Param("name") String name);
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/MatnrService.java
@@ -1,6 +1,5 @@
package com.vincent.rsf.server.manager.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.server.common.domain.BaseParam;
@@ -17,11 +16,13 @@
    R saveMatnrs(Map<String, Object> matnr);
    PageParam<Matnr, BaseParam> getMatnrPage(PageParam<Matnr, BaseParam> pageParam);
    PageParam<Matnr, BaseParam> getMatnrPage(PageParam<Matnr, BaseParam> pageParam, Map<String, Object> map);
    Matnr selectMatnrById(Long id);
    boolean bindMatnrs(MatnrToGroupParams params);
    boolean batchUpdate(MatnrToGroupParams params);
    PageParam<Matnr, BaseParam>  getPages(Map<String, Object> map);
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WarehouseService.java
@@ -3,6 +3,10 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.vincent.rsf.server.manager.entity.Warehouse;
import java.util.List;
import java.util.Map;
public interface WarehouseService extends IService<Warehouse> {
    List<Warehouse> getAllWarehouseAreas(Map<String, Object> param);
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java
@@ -4,6 +4,7 @@
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.vincent.rsf.framework.common.R;
@@ -32,6 +33,7 @@
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
@Service("matnrService")
public class MatnrServiceImpl extends ServiceImpl<MatnrMapper, Matnr> implements MatnrService {
@@ -103,19 +105,31 @@
    }
    @Override
    public PageParam<Matnr, BaseParam> getMatnrPage(PageParam<Matnr, BaseParam> pageParam) {
        IPage<Map<String, Object>> reulst = this.baseMapper.selectMatnrs(pageParam, pageParam.buildWrapper(true));
        /**获取物料分页信息 */
        List<Map<String, Object>> mapList = reulst.getRecords();
        if (!mapList.isEmpty()) {
            mapList.forEach(map -> {
                if (!Objects.isNull(map.get("fieldsIndex"))) {
                   FieldsUtils.mergeFields(map, map.get("fieldsIndex").toString());
    public PageParam<Matnr, BaseParam> getMatnrPage(PageParam<Matnr, BaseParam> pageParam, Map<String, Object> params) {
        QueryWrapper<Matnr> queryWrapper = pageParam.buildWrapper(true);
        if (params.containsKey("groupId")) {
            Object groupId = params.get("groupId");
            if (!Objects.isNull(groupId)) {
                List<MatnrGroup> matnrGroups = matnrGroupService.list(new LambdaQueryWrapper<MatnrGroup>().eq(MatnrGroup::getParentId, Long.parseLong(groupId.toString())).select(MatnrGroup::getId));
                if (!matnrGroups.isEmpty()) {
                    List<Long> longs = matnrGroups.stream().map(MatnrGroup::getId).collect(Collectors.toList());
                    queryWrapper.or().in("group_id", longs);
                }
            });
            }
        }
//        IPage<Map<String, Object>> reulst = this.baseMapper.selectMatnrs(pageParam, queryWrapper);
//        /**获取物料分页信息 */
//        List<Map<String, Object>> mapList = reulst.getRecords();
//        if (!mapList.isEmpty()) {
//            mapList.forEach(map -> {
//                if (!Objects.isNull(map.get("fieldsIndex"))) {
//                   FieldsUtils.mergeFields(map, map.get("fieldsIndex").toString());
//                }
//            });
//        }
        PageParam<Matnr, BaseParam> page = this.page(pageParam, pageParam.buildWrapper(true));
        /**拼接扩展字段*/
        PageParam<Matnr, BaseParam> page = this.page(pageParam, queryWrapper);
        List<Matnr> records = page.getRecords();
        for (Matnr record : records) {
            if (!Objects.isNull(record.getFieldsIndex())) {
@@ -198,6 +212,13 @@
        return true;
    }
    @Override
    public PageParam<Matnr, BaseParam> getPages(Map<String, Object> map) {
        return null;
    }
    /**
     * @desc 更新扩展物料扩展字段值
     * @param matnr
@@ -216,9 +237,9 @@
         */
        String uuid16 = CommonUtil.randomUUID16();
        if (!FieldsUtils.getFieldsSta().isEmpty()) {
            Map<String, ?> extendFields = (Map<String, ?>) matnr.get("extendFields");
//            Map<String, ?> extendFields = (Map<String, ?>) matnr.get("extendFields");
            try {
                FieldsUtils.saveFields(extendFields, uuid16);
                FieldsUtils.saveFields(matnr, uuid16);
                matnr1.setFieldsIndex(uuid16);
            } catch (Exception ex) {
                log.error(ex.toString());
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WarehouseServiceImpl.java
@@ -1,12 +1,63 @@
package com.vincent.rsf.server.manager.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.manager.entity.Loc;
import com.vincent.rsf.server.manager.entity.WarehouseAreas;
import com.vincent.rsf.server.manager.mapper.WarehouseMapper;
import com.vincent.rsf.server.manager.entity.Warehouse;
import com.vincent.rsf.server.manager.service.WarehouseAreasService;
import com.vincent.rsf.server.manager.service.WarehouseService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
@Service("warehouseService")
public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper, Warehouse> implements WarehouseService {
    @Autowired
    private WarehouseAreasService warehouseAreasService;
    @Override
    public List<Warehouse> getAllWarehouseAreas(Map<String, Object> param) {
        List<Warehouse> filters = new ArrayList<>();
        List<Long> wareIds = new ArrayList<>();
        Object name = param.get("name");
        boolean isEmpty = !Objects.isNull(name) && !StringUtils.isBlank(name.toString());
        if (isEmpty) {
            filters = this.baseMapper.selectByName(name.toString());
            wareIds =  filters.stream().map(Warehouse::getId).collect(Collectors.toList());
        }
        List<Warehouse> warehouses  = this.list(new LambdaQueryWrapper<Warehouse>().in(!wareIds.isEmpty(), Warehouse::getId, wareIds));
        if (warehouses.isEmpty()) {
            throw new CoolException("仓库为空,请添加仓库后再操作!!");
        }
        List<Long> list = warehouses.stream().map(Warehouse::getId).collect(Collectors.toList());
        List<WarehouseAreas> warehouseAreas = warehouseAreasService.list(new LambdaQueryWrapper<WarehouseAreas>()
                .like(isEmpty, WarehouseAreas::getName, !Objects.isNull(name) ? name.toString() : "")
                .in(!warehouses.isEmpty(), WarehouseAreas::getWarehouseId, list)
        );
        if (warehouseAreas.isEmpty()) {
            return warehouses;
        }
        warehouses.forEach(warehouse -> {
            warehouse.setFlagWare(1);
            List<WarehouseAreas> areas = new ArrayList<>();
            warehouseAreas.forEach(warehouseAreas1 -> {
                if (warehouse.getId().equals(warehouseAreas1.getWarehouseId())) {
                    warehouseAreas1.setFlagWare(0);
                    areas.add(warehouseAreas1);
                }
            });
            warehouse.setChildren(areas);
        });
        return warehouses;
    }
}
rsf-server/src/main/resources/mapper/manager/WarehouseMapper.xml
@@ -2,4 +2,8 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.vincent.rsf.server.manager.mapper.WarehouseMapper">
    <select id="selectByName" resultType="com.vincent.rsf.server.manager.entity.Warehouse">
        SELECT wh.id AS id FROM man_warehouse wh LEFT JOIN man_warehouse_areas wa on wh.id = wa.warehouse_id
        WHERE wh.`name` LIKE CONCAT('%',#{name},'%') OR wa.`name` LIKE CONCAT('%',#{name},'%')
    </select>
</mapper>