skyouc
2025-03-19 b07a6193d605fdf3154bf81faed0244030679b60
#修改
1.添加库位类型绑定
2.物料添加动态字段
12个文件已修改
12个文件已添加
587 ■■■■■ 已修改文件
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/common/CodeBuilder.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocController.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocTypeController.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocTypeRelaController.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Loc.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocType.java 194 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocTypeRela.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Matnr.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/LocTypeMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/LocTypeRelaMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/LocService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/LocTypeRelaService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/LocTypeService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/MatnrService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocServiceImpl.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocTypeRelaServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocTypeServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/system/controller/FieldsController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/FieldsServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/resources/mapper/manager/LocTypeMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/resources/mapper/manager/LocTypeRelaMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java
@@ -31,8 +31,6 @@
    @Autowired
    private MobileService mobileService;
    /**
     * PDA用户登录
     * @param param
rsf-server/src/main/java/com/vincent/rsf/server/common/CodeBuilder.java
@@ -22,9 +22,9 @@
//        generator.username="sa";
//        generator.password="Zoneyung@zy56$";
        generator.table="man_loc";
        generator.tableDesc="质检信息";
        generator.packagePath="com.vincent.rsf.server.test";
        generator.table="man_loc_type_rela";
        generator.tableDesc="loc type rela";
        generator.packagePath="com.vincent.rsf.server.manager";
        generator.build();
    }
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocController.java
@@ -1,5 +1,6 @@
package com.vincent.rsf.server.manager.controller;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.vincent.rsf.framework.common.Cools;
@@ -18,6 +19,7 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
@@ -65,11 +67,28 @@
    @OperationLog("Create 库位信息表")
    @PostMapping("/loc/save")
    public R save(@RequestBody Loc loc) {
        if (Objects.isNull(loc.getWarehouseId())) {
            throw new CoolException("仓库ID不能为空!!");
        }
        if (Objects.isNull(loc.getAreaId())) {
            throw new CoolException("仓库ID不能为空!!");
        }
        if (Objects.isNull(loc.getTypeIds())) {
            throw new CoolException("库位类型不能为空!!");
        }
        List<Long> lists = JSONArray.parseArray(loc.getTypeIds(), Long.class);
        String join = StringUtils.join(lists, ",");
        loc.setType(join);
        loc.setCreateBy(getLoginUserId());
        loc.setUpdateBy(getLoginUserId());
        if (!locService.save(loc)) {
            return R.error("Save Fail");
        }
        if (!locService.saveType(loc)) {
            throw new CoolException("库位类型保存失败!!");
        }
        return R.ok("Save Success").add(loc);
    }
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocTypeController.java
New file
@@ -0,0 +1,110 @@
package com.vincent.rsf.server.manager.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.vincent.rsf.framework.common.Cools;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.server.common.utils.ExcelUtil;
import com.vincent.rsf.server.common.annotation.OperationLog;
import com.vincent.rsf.server.common.domain.BaseParam;
import com.vincent.rsf.server.common.domain.KeyValVo;
import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.server.manager.entity.LocType;
import com.vincent.rsf.server.manager.service.LocTypeService;
import com.vincent.rsf.server.system.controller.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
@RestController
public class LocTypeController extends BaseController {
    @Autowired
    private LocTypeService locTypeService;
    @PreAuthorize("hasAuthority('manager:locType:list')")
    @PostMapping("/locType/page")
    public R page(@RequestBody Map<String, Object> map) {
        BaseParam baseParam = buildParam(map, BaseParam.class);
        PageParam<LocType, BaseParam> pageParam = new PageParam<>(baseParam, LocType.class);
        return R.ok().add(locTypeService.page(pageParam, pageParam.buildWrapper(true)));
    }
    @PreAuthorize("hasAuthority('manager:locType:list')")
    @PostMapping("/locType/list")
    public R list(@RequestBody Map<String, Object> map) {
        return R.ok().add(locTypeService.list());
    }
    @PreAuthorize("hasAuthority('manager:locType:list')")
    @PostMapping({"/locType/many/{ids}", "/locTypes/many/{ids}"})
    public R many(@PathVariable Long[] ids) {
        return R.ok().add(locTypeService.listByIds(Arrays.asList(ids)));
    }
    @PreAuthorize("hasAuthority('manager:locType:list')")
    @GetMapping("/locType/{id}")
    public R get(@PathVariable("id") Long id) {
        return R.ok().add(locTypeService.getById(id));
    }
    @PreAuthorize("hasAuthority('manager:locType:save')")
    @OperationLog("Create loc type")
    @PostMapping("/locType/save")
    public R save(@RequestBody LocType locType) {
        locType.setCreateBy(getLoginUserId());
        locType.setCreateTime(new Date());
        locType.setUpdateBy(getLoginUserId());
        locType.setUpdateTime(new Date());
        if (!locTypeService.save(locType)) {
            return R.error("Save Fail");
        }
        return R.ok("Save Success").add(locType);
    }
    @PreAuthorize("hasAuthority('manager:locType:update')")
    @OperationLog("Update loc type")
    @PostMapping("/locType/update")
    public R update(@RequestBody LocType locType) {
        locType.setUpdateBy(getLoginUserId());
        locType.setUpdateTime(new Date());
        if (!locTypeService.updateById(locType)) {
            return R.error("Update Fail");
        }
        return R.ok("Update Success").add(locType);
    }
    @PreAuthorize("hasAuthority('manager:locType:remove')")
    @OperationLog("Delete loc type")
    @PostMapping("/locType/remove/{ids}")
    public R remove(@PathVariable Long[] ids) {
        if (!locTypeService.removeByIds(Arrays.asList(ids))) {
            return R.error("Delete Fail");
        }
        return R.ok("Delete Success").add(ids);
    }
    @PreAuthorize("hasAuthority('manager:locType:list')")
    @PostMapping("/locType/query")
    public R query(@RequestParam(required = false) String condition) {
        List<KeyValVo> vos = new ArrayList<>();
        LambdaQueryWrapper<LocType> wrapper = new LambdaQueryWrapper<>();
        if (!Cools.isEmpty(condition)) {
            wrapper.like(LocType::getName, condition);
        }
        locTypeService.page(new Page<>(1, 30), wrapper).getRecords().forEach(
                item -> vos.add(new KeyValVo(item.getId(), item.getName()))
        );
        return R.ok().add(vos);
    }
    @PreAuthorize("hasAuthority('manager:locType:list')")
    @PostMapping("/locType/export")
    public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
        ExcelUtil.build(ExcelUtil.create(locTypeService.list(), LocType.class), response);
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocTypeRelaController.java
New file
@@ -0,0 +1,25 @@
package com.vincent.rsf.server.manager.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.vincent.rsf.framework.common.Cools;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.server.common.utils.ExcelUtil;
import com.vincent.rsf.server.common.annotation.OperationLog;
import com.vincent.rsf.server.common.domain.BaseParam;
import com.vincent.rsf.server.common.domain.KeyValVo;
import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.server.manager.entity.LocTypeRela;
import com.vincent.rsf.server.manager.service.LocTypeRelaService;
import com.vincent.rsf.server.system.controller.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
@RestController
public class LocTypeRelaController extends BaseController {
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrController.java
@@ -41,7 +41,7 @@
    public R page(@RequestBody Map<String, Object> map) {
        BaseParam baseParam = buildParam(map, BaseParam.class);
        PageParam<Matnr, BaseParam> pageParam = new PageParam<>(baseParam, Matnr.class);
        return R.ok().add(matnrService.page(pageParam, pageParam.buildWrapper(true)));
        return R.ok().add( matnrService.getMatnrPage(pageParam));
    }
    @PreAuthorize("hasAuthority('manager:matnr:list')")
@@ -56,6 +56,7 @@
        return R.ok().add(matnrService.listByIds(Arrays.asList(ids)));
    }
    @PreAuthorize("hasAuthority('manager:matnr:list')")
    @GetMapping("/matnr/{id}")
    public R get(@PathVariable("id") Long id) {
@@ -67,9 +68,7 @@
    @PostMapping("/matnr/save")
    public R save(@RequestBody Matnr matnr) {
        matnr.setCreateBy(getLoginUserId());
        matnr.setCreateTime(new Date());
        matnr.setUpdateBy(getLoginUserId());
        matnr.setUpdateTime(new Date());
        if (!matnrService.save(matnr)) {
            return R.error("Save Fail");
        }
@@ -140,7 +139,7 @@
        } else {
            matnrs = matnrService.list(new LambdaQueryWrapper<Matnr>().last("limit 1"));
        }
        ExcelUtil.build(ExcelUtil.create(matnrs, Matnr.class, true), response);
        ExcelUtil.build(ExcelUtil.create(null, MatnrsTemplate.class, true), response);
    }
    @PreAuthorize("hasAuthority('manager:matnr:list')")
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Loc.java
@@ -1,8 +1,10 @@
package com.vincent.rsf.server.manager.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.vincent.rsf.framework.common.Cools;
import com.vincent.rsf.framework.common.SpringUtils;
import com.vincent.rsf.server.manager.service.LocTypeService;
import com.vincent.rsf.server.manager.service.WarehouseAreasService;
import com.vincent.rsf.server.manager.service.WarehouseService;
import com.vincent.rsf.server.system.entity.User;
@@ -10,11 +12,15 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.apache.commons.lang3.StringUtils;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@Data
@Accessors(chain = true)
@@ -54,6 +60,10 @@
    @ApiModelProperty(value= "库位类型(*) H:  高库位   M:  中库位   L:  低库位  ")
    @TableField("`type`")
    private String type;
    @ApiModelProperty("库位类型(*)[man_loc_type]")
    @TableField(exist = false)
    private String typeIds;
    /**
     * 虚拟库位
@@ -272,16 +282,17 @@
    public String getType$(){
        if (null == this.type){ return null; }
        switch (this.type){
            case  "H":
                return " 高库位";
            case  "M":
                return " 中库位";
            case  "L":
                return " 低库位";
            default:
                return String.valueOf(this.type);
        List<String> asList = Arrays.asList(this.type);
        if (asList.isEmpty()) {
            return null;
        }
        LocTypeService locTypeService = SpringUtils.getBean(LocTypeService.class);
        List<LocType> locTypes = locTypeService.list(new LambdaQueryWrapper<LocType>().in(LocType::getId, asList));
        if (locTypes.isEmpty()) {
            return null;
        }
        List<String> strings = locTypes.stream().map(LocType::getName).collect(Collectors.toList());
        return StringUtils.join(strings, ",");
    }
    public String getUseStatus$(){
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocType.java
New file
@@ -0,0 +1,194 @@
package com.vincent.rsf.server.manager.entity;
import com.baomidou.mybatisplus.annotation.TableLogic;
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;
import com.vincent.rsf.framework.common.Cools;
import com.vincent.rsf.framework.common.SpringUtils;
import com.vincent.rsf.server.system.service.UserService;
import com.vincent.rsf.server.system.entity.User;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName("man_loc_type")
public class LocType implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * ID
     */
    @ApiModelProperty(value= "ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 标识
     */
    @ApiModelProperty(value= "标识")
    private String uuid;
    /**
     * 名称
     */
    @ApiModelProperty(value= "名称")
    private String name;
    /**
     * 条码规则
     */
    @ApiModelProperty(value= "条码规则")
    private String regex;
    /**
     * 状态 1: 正常  0: 冻结
     */
    @ApiModelProperty(value= "状态 1: 正常  0: 冻结  ")
    private Integer status;
    /**
     * 是否删除 1: 是  0: 否
     */
    @ApiModelProperty(value= "是否删除 1: 是  0: 否  ")
    @TableLogic
    private Integer deleted;
    /**
     * 租户
     */
    @ApiModelProperty(value= "租户")
    private Integer tenantId;
    /**
     * 添加人员
     */
    @ApiModelProperty(value= "添加人员")
    private Long createBy;
    /**
     * 添加时间
     */
    @ApiModelProperty(value= "添加时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * 修改人员
     */
    @ApiModelProperty(value= "修改人员")
    private Long updateBy;
    /**
     * 修改时间
     */
    @ApiModelProperty(value= "修改时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
     * 备注
     */
    @ApiModelProperty(value= "备注")
    private String memo;
    public LocType() {}
    public LocType(String uuid,String name,String regex,Integer status,Integer deleted,Integer tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
        this.uuid = uuid;
        this.name = name;
        this.regex = regex;
        this.status = status;
        this.deleted = deleted;
        this.tenantId = tenantId;
        this.createBy = createBy;
        this.createTime = createTime;
        this.updateBy = updateBy;
        this.updateTime = updateTime;
        this.memo = memo;
    }
//    LocType locType = new LocType(
//            null,    // 标识
//            null,    // 名称
//            null,    // 条码规则
//            null,    // 状态[非空]
//            null,    // 是否删除[非空]
//            null,    // 租户
//            null,    // 添加人员
//            null,    // 添加时间[非空]
//            null,    // 修改人员
//            null,    // 修改时间
//            null    // 备注
//    );
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
            case 1:
                return "正常";
            case 0:
                return "冻结";
            default:
                return String.valueOf(this.status);
        }
    }
    public String getCreateBy$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.getById(this.createBy);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getNickname());
        }
        return null;
    }
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
    }
    public String getUpdateBy$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.getById(this.updateBy);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getNickname());
        }
        return null;
    }
    public String getUpdateTime$(){
        if (Cools.isEmpty(this.updateTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
    }
    public Boolean getStatusBool(){
        if (null == this.status){ return null; }
        switch (this.status){
            case 1:
                return true;
            case 0:
                return false;
            default:
                return null;
        }
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocTypeRela.java
New file
@@ -0,0 +1,53 @@
package com.vincent.rsf.server.manager.entity;
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;
import com.vincent.rsf.framework.common.Cools;
import com.vincent.rsf.framework.common.SpringUtils;
import com.vincent.rsf.server.system.service.UserService;
import com.vincent.rsf.server.system.entity.User;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
@Data
@Accessors(chain = true)
@TableName("man_loc_type_rela")
public class LocTypeRela implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * ID
     */
    @ApiModelProperty(value= "ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 库位
     */
    @ApiModelProperty(value= "库位")
    private Long locId;
    /**
     * 库位类型
     */
    @ApiModelProperty(value= "库位类型")
    private Long typeId;
    public LocTypeRela() {}
    public LocTypeRela(Long locId,Long typeId) {
        this.locId = locId;
        this.typeId = typeId;
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Matnr.java
@@ -3,7 +3,7 @@
import com.baomidou.mybatisplus.annotation.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.*;
import com.vincent.rsf.server.manager.service.BatchRegularService;
import com.vincent.rsf.server.manager.service.CompanysService;
@@ -24,7 +24,6 @@
import com.vincent.rsf.server.system.entity.User;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Data
@TableName("man_matnr")
@@ -225,6 +224,10 @@
    @TableLogic
    private Integer deleted;
    @ApiModelProperty("动态扩展字段")
    @TableField(exist = false)
    private Map<String, String> extendFields;
    /**
     * 租户
     */
rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/LocTypeMapper.java
New file
@@ -0,0 +1,12 @@
package com.vincent.rsf.server.manager.mapper;
import com.vincent.rsf.server.manager.entity.LocType;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface LocTypeMapper extends BaseMapper<LocType> {
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/LocTypeRelaMapper.java
New file
@@ -0,0 +1,12 @@
package com.vincent.rsf.server.manager.mapper;
import com.vincent.rsf.server.manager.entity.LocTypeRela;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface LocTypeRelaMapper extends BaseMapper<LocTypeRela> {
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/LocService.java
@@ -13,4 +13,6 @@
    R modifyLocs(LocModifyParams locs);
    R initLocs(LocMastInitParam param);
    boolean saveType(Loc typeIds);
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/LocTypeRelaService.java
New file
@@ -0,0 +1,8 @@
package com.vincent.rsf.server.manager.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vincent.rsf.server.manager.entity.LocTypeRela;
public interface LocTypeRelaService extends IService<LocTypeRela> {
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/LocTypeService.java
New file
@@ -0,0 +1,8 @@
package com.vincent.rsf.server.manager.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vincent.rsf.server.manager.entity.LocType;
public interface LocTypeService extends IService<LocType> {
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/MatnrService.java
@@ -2,10 +2,14 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.server.common.domain.BaseParam;
import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.server.manager.entity.Matnr;
import org.springframework.web.multipart.MultipartFile;
public interface MatnrService extends IService<Matnr> {
    R importExcels(MultipartFile file) throws Exception;
    PageParam<Matnr, BaseParam> getMatnrPage(PageParam<Matnr, BaseParam> pageParam);
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocServiceImpl.java
@@ -1,15 +1,20 @@
package com.vincent.rsf.server.manager.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.manager.controller.params.LocMastInitParam;
import com.vincent.rsf.server.manager.controller.params.LocModifyParams;
import com.vincent.rsf.server.manager.entity.LocType;
import com.vincent.rsf.server.manager.entity.LocTypeRela;
import com.vincent.rsf.server.manager.entity.WarehouseAreas;
import com.vincent.rsf.server.manager.mapper.LocMapper;
import com.vincent.rsf.server.manager.entity.Loc;
import com.vincent.rsf.server.manager.service.LocService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.vincent.rsf.server.manager.service.LocTypeRelaService;
import com.vincent.rsf.server.manager.service.LocTypeService;
import com.vincent.rsf.server.manager.service.WarehouseAreasService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -26,6 +31,9 @@
    @Autowired
    private WarehouseAreasService warehouseAreasService;
    @Autowired
    private LocTypeRelaService locTypeRelaService;
    @Override
    public R modifyLocs(LocModifyParams locs) {
@@ -92,4 +100,21 @@
        }
        return R.ok("初始化成功!!");
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean saveType(Loc loc) {
        List<LocTypeRela> relas =  new ArrayList<>();
        List<Long> lists = JSONArray.parseArray(loc.getTypeIds(), Long.class);
        lists.forEach(id -> {
            LocTypeRela typeRela = new LocTypeRela();
            typeRela.setTypeId(id)
                    .setLocId(loc.getId());
            relas.add(typeRela);
        });
        if (!locTypeRelaService.saveBatch(relas)) {
            throw new CoolException("库位关联关系保存成功!!");
        }
        return true;
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocTypeRelaServiceImpl.java
New file
@@ -0,0 +1,12 @@
package com.vincent.rsf.server.manager.service.impl;
import com.vincent.rsf.server.manager.mapper.LocTypeRelaMapper;
import com.vincent.rsf.server.manager.entity.LocTypeRela;
import com.vincent.rsf.server.manager.service.LocTypeRelaService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service("locTypeRelaService")
public class LocTypeRelaServiceImpl extends ServiceImpl<LocTypeRelaMapper, LocTypeRela> implements LocTypeRelaService {
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocTypeServiceImpl.java
New file
@@ -0,0 +1,12 @@
package com.vincent.rsf.server.manager.service.impl;
import com.vincent.rsf.server.manager.mapper.LocTypeMapper;
import com.vincent.rsf.server.manager.entity.LocType;
import com.vincent.rsf.server.manager.service.LocTypeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service("locTypeService")
public class LocTypeServiceImpl extends ServiceImpl<LocTypeMapper, LocType> implements LocTypeService {
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java
@@ -6,6 +6,8 @@
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.framework.common.SpringUtils;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.common.domain.BaseParam;
import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.server.common.utils.CommonUtil;
import com.vincent.rsf.server.common.utils.ExcelUtil;
import com.vincent.rsf.server.common.utils.FieldsUtils;
@@ -92,4 +94,17 @@
        }
        return R.ok("导入成功!!");
    }
    @Override
    public PageParam<Matnr, BaseParam> getMatnrPage(PageParam<Matnr, BaseParam> pageParam) {
        PageParam<Matnr, BaseParam> page = this.page(pageParam, pageParam.buildWrapper(true));
        List<Matnr> records = page.getRecords();
        for (Matnr record : records) {
            if (!Objects.isNull(record.getFieldsIndex())) {
                Map<String, String> fields = FieldsUtils.getFields(record.getFieldsIndex());
                record.setExtendFields(fields);
            }
        }
        return null;
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/system/controller/FieldsController.java
@@ -12,6 +12,8 @@
import com.vincent.rsf.server.system.entity.Fields;
import com.vincent.rsf.server.system.service.FieldsService;
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.*;
@@ -19,6 +21,7 @@
import javax.servlet.http.HttpServletResponse;
import java.util.*;
@Api(tags = "动态扩展字段")
@RestController
public class FieldsController extends BaseController {
@@ -40,6 +43,13 @@
    }
    @PreAuthorize("hasAuthority('system:fields:list')")
    @GetMapping("/fields/enable/list")
    @ApiOperation("获取已开启扩展字段")
    public R getEnableList() {
        return R.ok(fieldsService.list(new LambdaQueryWrapper<Fields>().eq(Fields::getFlagEnable, 1).eq(Fields::getStatus, 1)));
    }
    @PreAuthorize("hasAuthority('system:fields:list')")
    @PostMapping({"/fields/many/{ids}", "/fieldss/many/{ids}"})
    public R many(@PathVariable Long[] ids) {
        return R.ok().add(fieldsService.listByIds(Arrays.asList(ids)));
rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/FieldsServiceImpl.java
@@ -1,11 +1,16 @@
package com.vincent.rsf.server.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.vincent.rsf.server.common.domain.BaseParam;
import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.server.system.mapper.FieldsMapper;
import com.vincent.rsf.server.system.entity.Fields;
import com.vincent.rsf.server.system.service.FieldsService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.Map;
@Service("fieldsService")
public class FieldsServiceImpl extends ServiceImpl<FieldsMapper, Fields> implements FieldsService {
rsf-server/src/main/resources/mapper/manager/LocTypeMapper.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-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.LocTypeMapper">
</mapper>
rsf-server/src/main/resources/mapper/manager/LocTypeRelaMapper.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-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.LocTypeRelaMapper">
</mapper>