lsh#0:新增、更新、解禁(只要调用了更新,就代表非禁用了)  1:禁用
10个文件已修改
143 ■■■■ 已修改文件
rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/phyz/ERPController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Customer.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Material.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Supplier.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Warehouse.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/phyz/impl/ErpReportServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/BaseMatParms.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/CompaniesParam.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/WarehouseParams.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java 112 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/phyz/ERPController.java
@@ -123,7 +123,7 @@
        if ("200".equals(resultMsg)){
            return  CommonResponse.ok(resultMsg);
        }
        return CommonResponse.ok();
        return CommonResponse.error(resultMsg);
    }
    @ApiOperation("入/出库任务通知单")
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Customer.java
@@ -34,7 +34,7 @@
    private String email;
    // 地址
    private String address;
    // 操作类型,1 新增;2 修改;3禁用;4 反禁用;
    // 操作类型,0:新增、更新、解禁(只要调用了更新,就代表非禁用了)  1:禁用
    @JsonProperty("operateType")
    private Integer operateType;
}
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Material.java
@@ -1,5 +1,6 @@
package com.vincent.rsf.openApi.entity.phyz;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
@@ -49,7 +50,8 @@
    private String useOrgName;
    // 物料属性,外购等
    private String erpClsID;
    // 操作类型,1 新增;2 修改;3禁用;4 反禁用;
    // 操作类型,0:新增、更新、解禁(只要调用了更新,就代表非禁用了)  1:禁用
    @JSONField(name = "OperateType", alternateNames = {"operateType"})
    @JsonProperty("operateType")
    private Integer operateType;
}
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Supplier.java
@@ -1,5 +1,6 @@
package com.vincent.rsf.openApi.entity.phyz;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
@@ -34,7 +35,8 @@
    private String email;
    // 地址
    private String address;
    // 操作类型,1 新增;2 修改;3禁用;4 反禁用;
    // 操作类型,0:新增、更新、解禁(只要调用了更新,就代表非禁用了)  1:禁用
    @JSONField(name = "OperateType", alternateNames = {"operateType"})
    @JsonProperty("operateType")
    private Integer operateType;
}
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/Warehouse.java
@@ -1,5 +1,6 @@
package com.vincent.rsf.openApi.entity.phyz;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
@@ -27,7 +28,8 @@
    private String useOrgId;
    // 使用组织名称
    private String useOrgName;
    // 操作类型,1 新增;2 修改;3禁用;4 反禁用;
    // 操作类型,0:新增、更新、解禁(只要调用了更新,就代表非禁用了)  1:禁用
    @JSONField(name = "OperateType", alternateNames = {"operateType"})
    @JsonProperty("operateType")
    private Integer operateType;
}
rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/phyz/impl/ErpReportServiceImpl.java
@@ -126,6 +126,7 @@
            map.put("spec", material.getSpec());
            map.put("describle", material.getDescribe());
            map.put("unit", material.getUnit());
            map.put("operateType", material.getOperateType());
            mappedList.add(map);
        }
        return mappedList;
@@ -250,6 +251,7 @@
            map.put("type", null);
            map.put("longitude", null);
            map.put("latitude", null);
            map.put("operateType", warehouse.getOperateType());
            mappedList.add(map);
        }
        return mappedList;
@@ -277,7 +279,7 @@
            map.put("nameEn", null);
            map.put("breifCode", customer.getCustomerNickName());
            // server 端类型转换使用中文描述
            map.put("type", customer.getType());
            map.put("type", "客户");
            map.put("contact", customer.getContact());
            map.put("tel", customer.getTelephone());
            map.put("email", customer.getEmail());
@@ -286,6 +288,7 @@
            map.put("province", null);
            map.put("address", customer.getAddress());
            map.put("code", customer.getCustomerId());
            map.put("operateType", customer.getOperateType());
            mappedList.add(map);
        }
        return mappedList;
@@ -314,6 +317,7 @@
            map.put("province", null);
            map.put("address", supplier.getAddress());
            map.put("code", supplier.getSupplierId());
            map.put("operateType", supplier.getOperateType());
            mappedList.add(map);
        }
        return mappedList;
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/BaseMatParms.java
@@ -51,6 +51,9 @@
    @ApiModelProperty("条形码")
    private String barcode;
    @ApiModelProperty("操作类型,0新增/更新/解禁(启用);1禁用")
    private Integer operateType;
}
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/CompaniesParam.java
@@ -50,5 +50,8 @@
    @ApiModelProperty("企业编码")
    private String code;
    @ApiModelProperty("操作类型,0新增/更新/解禁(启用);1禁用")
    private Integer operateType;
}
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/WarehouseParams.java
@@ -33,5 +33,8 @@
    @ApiModelProperty("纬度")
    private String latitude;
    @ApiModelProperty("操作类型,0新增/更新/解禁(启用);1禁用")
    private Integer operateType;
}
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
@@ -207,7 +207,6 @@
    @Override
    @Transactional(timeout = 60, rollbackFor = Exception.class)
    public void syncMatnrs(List<BaseMatParms> matnrs) {
        List<Matnr> syncMatnrs = new ArrayList<>();
        if (!matnrs.isEmpty()) {
            matnrs.forEach(matnr -> {
                Matnr mat = new Matnr();
@@ -222,12 +221,23 @@
                        mat.setGroupCode(matnrGroup.getCode()).setGroupId(matnrGroup.getId());
                    }
                }
                syncMatnrs.add(mat);
            });
                Matnr exist = matnrService.getOne(new LambdaQueryWrapper<Matnr>()
                        .eq(Matnr::getCode, matnr.getMatnr())
                        .last("limit 1"));
            if (!matnrService.saveOrUpdateBatch(syncMatnrs)) {
                throw new CoolException("物料信息保存成功!!");
                mat.setStatus(Objects.isNull(matnr.getOperateType()) ? 1 : (matnr.getOperateType() == 1 ? 0 : 1));
                if (!Objects.isNull(exist)) {
                    mat.setId(exist.getId());
                    if (!matnrService.saveOrUpdate(mat)) {
                        throw new CoolException("物料信息更新失败!!");
            }
                } else {
                    mat.setId(null);
                    if (!matnrService.save(mat)) {
                        throw new CoolException("物料信息保存失败!!");
                    }
                }
            });
        }
    }
@@ -307,7 +317,8 @@
    @Override
    @Transactional(timeout = 60, rollbackFor = Exception.class)
    public R syncMatGroups(List<SyncMatGroupsParams> matGroupsParams) {
        List<MatnrGroup> syncMatGroups = new ArrayList<>();
        final int[] insertCount = {0};
        final int[] updateCount = {0};
        matGroupsParams.forEach(matGroupsParam -> {
            MatnrGroup matnrGroup = new MatnrGroup();
            BeanUtils.copyProperties(matGroupsParam, matnrGroup);
@@ -320,12 +331,36 @@
            if (Objects.isNull(matGroupsParam.getParCode())) {
                throw new CoolException("上级物料分组编码不能为空!!");
            }
            syncMatGroups.add(matnrGroup);
        });
        if (!matnrGroupService.saveBatch(syncMatGroups)) {
            // 幂等同步:优先按编码匹配,找不到再按名称匹配
            MatnrGroup one = matnrGroupService.getOne(new LambdaQueryWrapper<MatnrGroup>()
                    .eq(MatnrGroup::getCode, matGroupsParam.getCode())
                    .last("limit 1"));
            if (Objects.isNull(one)) {
                one = matnrGroupService.getOne(new LambdaQueryWrapper<MatnrGroup>()
                        .eq(MatnrGroup::getName, matGroupsParam.getName())
                        .last("limit 1"));
            }
            if (!Objects.isNull(one)) {
                matnrGroup.setId(one.getId());
                if (!matnrGroupService.saveOrUpdate(matnrGroup)) {
                    throw new CoolException("物料分组更新失败!!");
                }
                updateCount[0]++;
            } else {
                matnrGroup.setId(null);
                if (!matnrGroupService.save(matnrGroup)) {
            throw new CoolException("物料分组保存失败!!");
        }
        return R.ok();
                insertCount[0]++;
            }
        });
        Map<String, Object> result = new HashMap<>();
        result.put("total", matGroupsParams.size());
        result.put("insertCount", insertCount[0]);
        result.put("updateCount", updateCount[0]);
        return R.ok(result);
    }
    /**
@@ -337,23 +372,45 @@
    @Override
    @Transactional(timeout = 60, rollbackFor = Exception.class)
    public R syncWarehouseAreas(List<LocAreasParams> areasParams) {
        final int[] insertCount = {0};
        final int[] updateCount = {0};
        areasParams.forEach(param -> {
            WarehouseAreas locArea = new WarehouseAreas();
            BeanUtils.copyProperties(param, locArea);
            WarehouseAreas warehouseAreas = warehouseAreasService
                    .getOne(new LambdaQueryWrapper<WarehouseAreas>()
                            .eq(WarehouseAreas::getName, param.getName()));
            // 幂等同步:优先按编码匹配,找不到再按名称匹配
            WarehouseAreas warehouseAreas = warehouseAreasService.getOne(new LambdaQueryWrapper<WarehouseAreas>()
                    .eq(WarehouseAreas::getCode, param.getCode())
                    .last("limit 1"));
            if (Objects.isNull(warehouseAreas)) {
                warehouseAreas = warehouseAreasService.getOne(new LambdaQueryWrapper<WarehouseAreas>()
                        .eq(WarehouseAreas::getName, param.getName())
                        .last("limit 1"));
            }
            if (!Objects.isNull(warehouseAreas)) {
                locArea.setWarehouseId(warehouseAreas.getId());
            }
            locArea.setName(param.getName())
                    .setCode(param.getCode())
                    .setId(null);
                    .setCode(param.getCode());
            if (!Objects.isNull(warehouseAreas)) {
                locArea.setId(warehouseAreas.getId());
                if (!warehouseAreasService.saveOrUpdate(locArea)) {
                    throw new CoolException("库区更新失败!!");
                }
                updateCount[0]++;
            } else {
                locArea.setId(null);
            if (!warehouseAreasService.save(locArea)) {
                throw new CoolException("库区保存失败!!");
            }
                insertCount[0]++;
            }
        });
        return R.ok();
        Map<String, Object> result = new HashMap<>();
        result.put("total", areasParams.size());
        result.put("insertCount", insertCount[0]);
        result.put("updateCount", updateCount[0]);
        return R.ok(result);
    }
    /**
@@ -365,15 +422,35 @@
    @Override
    @Transactional(timeout = 60, rollbackFor = Exception.class)
    public R syncWarehouse(List<WarehouseParams> warehouses) {
        final int[] insertCount = {0};
        final int[] updateCount = {0};
        warehouses.forEach(warehouse -> {
            Warehouse ware = new Warehouse();
            BeanUtils.copyProperties(warehouse, ware);
            // 幂等同步:按仓库名称匹配
            Warehouse one = warehouseService.getOne(new LambdaQueryWrapper<Warehouse>()
                    .eq(Warehouse::getName, warehouse.getName())
                    .last("limit 1"));
            ware.setStatus(Objects.isNull(warehouse.getOperateType()) ? 1 : (warehouse.getOperateType() == 1 ? 0 : 1));
            if (!Objects.isNull(one)) {
                ware.setId(one.getId());
                if (!warehouseService.saveOrUpdate(ware)) {
                    throw new CoolException("仓库同步更新失败!!");
                }
                updateCount[0]++;
            } else {
            ware.setId(null);
            if (!warehouseService.save(ware)) {
                throw new CoolException("仓库同步保存失败!!");
            }
                insertCount[0]++;
            }
        });
        return R.ok();
        Map<String, Object> result = new HashMap<>();
        result.put("total", warehouses.size());
        result.put("insertCount", insertCount[0]);
        result.put("updateCount", updateCount[0]);
        return R.ok(result);
    }
    /**
@@ -406,6 +483,7 @@
            }
            companys.setType(CompanysType.getCustomVal(param.getType()));
            companys.setStatus(Objects.isNull(param.getOperateType()) ? 1 : (param.getOperateType() == 1 ? 0 : 1));
            if (!Objects.isNull(one)) {
                companys.setId(one.getId());
                // 已存在则更新,不重复报错