Browse Source

bom模块

home 2 years ago
parent
commit
3be298e11f

+ 135 - 136
bladex/blade-service/blade-system/src/main/java/org/springblade/system/controller/TenantController.java

@@ -60,142 +60,141 @@ import static org.springblade.core.tenant.constant.TenantBaseConstant.TENANT_DAT
 @Api(value = "租户管理", tags = "接口")
 public class TenantController extends BladeController {
 
-	private final ITenantService tenantService;
-
-	/**
-	 * 详情
-	 */
-	@GetMapping("/detail")
-	@ApiOperationSupport(order = 1)
-	@ApiOperation(value = "详情", notes = "传入tenant")
-	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
-	public R<Tenant> detail(Tenant tenant) {
-		Tenant detail = tenantService.getOne(Condition.getQueryWrapper(tenant));
-		return R.data(detail);
-	}
-
-	/**
-	 * 分页
-	 */
-	@GetMapping("/list")
-	@ApiImplicitParams({
-		@ApiImplicitParam(name = "tenantId", value = "参数名称", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "tenantName", value = "角色别名", paramType = "query", dataType = "string"),
-		@ApiImplicitParam(name = "contactNumber", value = "联系电话", paramType = "query", dataType = "string")
-	})
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "分页", notes = "传入tenant")
-	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
-	public R<IPage<Tenant>> list(@ApiIgnore @RequestParam Map<String, Object> tenant, Query query, BladeUser bladeUser) {
-		QueryWrapper<Tenant> queryWrapper = Condition.getQueryWrapper(tenant, Tenant.class);
-		IPage<Tenant> pages = tenantService.page(Condition.getPage(query), (!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Tenant::getTenantId, bladeUser.getTenantId()) : queryWrapper);
-		return R.data(pages);
-	}
-
-	/**
-	 * 下拉数据源
-	 */
-	@GetMapping("/select")
-	@ApiOperationSupport(order = 3)
-	@ApiOperation(value = "下拉数据源", notes = "传入tenant")
-	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
-	public R<List<Tenant>> select(Tenant tenant, BladeUser bladeUser) {
-		QueryWrapper<Tenant> queryWrapper = Condition.getQueryWrapper(tenant);
-		List<Tenant> list = tenantService.list((!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Tenant::getTenantId, bladeUser.getTenantId()) : queryWrapper);
-		return R.data(list);
-	}
-
-	/**
-	 * 自定义分页
-	 */
-	@GetMapping("/page")
-	@ApiOperationSupport(order = 4)
-	@ApiOperation(value = "分页", notes = "传入tenant")
-	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
-	public R<IPage<Tenant>> page(Tenant tenant, Query query) {
-		IPage<Tenant> pages = tenantService.selectTenantPage(Condition.getPage(query), tenant);
-		return R.data(pages);
-	}
-
-	/**
-	 * 新增或修改
-	 */
-	@PostMapping("/submit")
-	@ApiOperationSupport(order = 5)
-	@ApiOperation(value = "新增或修改", notes = "传入tenant")
-	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
-	public R submit(@Valid @RequestBody Tenant tenant) {
-		return R.status(tenantService.submitTenant(tenant));
-	}
-
-
-	/**
-	 * 删除
-	 */
-	@PostMapping("/remove")
-	@ApiOperationSupport(order = 6)
-	@ApiOperation(value = "逻辑删除", notes = "传入ids")
-	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
-	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-		return R.status(tenantService.removeTenant(Func.toLongList(ids)));
-	}
-
-	/**
-	 * 授权配置
-	 */
-	@PostMapping("/setting")
-	@ApiOperationSupport(order = 7)
-	@ApiOperation(value = "授权配置", notes = "传入ids,accountNumber,expireTime")
-	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
-	public R setting(@ApiParam(value = "主键集合", required = true) @RequestParam String ids, @ApiParam(value = "账号额度") Integer accountNumber, @ApiParam(value = "过期时间") Date expireTime) {
-		return R.status(tenantService.setting(accountNumber, expireTime, ids));
-	}
-
-	/**
-	 * 数据源配置
-	 */
-	@PostMapping("datasource")
-	@ApiOperationSupport(order = 8)
-	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
-	@ApiOperation(value = "数据源配置", notes = "传入datasource_id")
-	public R datasource(@ApiParam(value = "租户ID", required = true) @RequestParam String tenantId, @ApiParam(value = "数据源ID", required = true) @RequestParam Long datasourceId){
-		CacheUtil.evict(TENANT_DATASOURCE_CACHE, TENANT_DATASOURCE_EXIST_KEY, tenantId, Boolean.FALSE);
-		return R.status(tenantService.update(Wrappers.<Tenant>update().lambda().set(Tenant::getDatasourceId, datasourceId).eq(Tenant::getTenantId, tenantId)));
-	}
-
-	/**
-	 * 根据名称查询列表
-	 *
-	 * @param name 租户名称
-	 */
-	@GetMapping("/find-by-name")
-	@ApiOperationSupport(order = 9)
-	@ApiOperation(value = "详情", notes = "传入tenant")
-	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
-	public R<List<Tenant>> findByName(String name) {
-		List<Tenant> list = tenantService.list(Wrappers.<Tenant>query().lambda().like(Tenant::getTenantName, name));
-		return R.data(list);
-	}
-
-	/**
-	 * 根据域名查询信息
-	 *
-	 * @param domain 域名
-	 */
-	@GetMapping("/info")
-	@ApiOperationSupport(order = 10)
-	@ApiOperation(value = "配置信息", notes = "传入domain")
-	public R<Kv> info(String domain) {
-		Tenant tenant = tenantService.getOne(Wrappers.<Tenant>query().lambda().eq(Tenant::getDomain, domain));
-		Kv kv = Kv.create();
-		if (tenant != null) {
-			kv.set("tenantId", tenant.getTenantId())
-				.set("domain", tenant.getDomain())
-				.set("backgroundUrl", tenant.getBackgroundUrl());
-		}
-		return R.data(kv);
-	}
-
+    private final ITenantService tenantService;
+
+    /**
+     * 详情
+     */
+    @GetMapping("/detail")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "详情", notes = "传入tenant")
+    @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+    public R<Tenant> detail(Tenant tenant) {
+        Tenant detail = tenantService.getOne(Condition.getQueryWrapper(tenant));
+        return R.data(detail);
+    }
+
+    /**
+     * 分页
+     */
+    @GetMapping("/list")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "tenantId", value = "参数名称", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "tenantName", value = "角色别名", paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "contactNumber", value = "联系电话", paramType = "query", dataType = "string")
+    })
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "分页", notes = "传入tenant")
+    @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+    public R<IPage<Tenant>> list(@ApiIgnore @RequestParam Map<String, Object> tenant, Query query, BladeUser bladeUser) {
+        QueryWrapper<Tenant> queryWrapper = Condition.getQueryWrapper(tenant, Tenant.class);
+        IPage<Tenant> pages = tenantService.page(Condition.getPage(query), (!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Tenant::getTenantId, bladeUser.getTenantId()) : queryWrapper);
+        return R.data(pages);
+    }
+
+    /**
+     * 下拉数据源
+     */
+    @GetMapping("/select")
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "下拉数据源", notes = "传入tenant")
+    @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+    public R<List<Tenant>> select(Tenant tenant, BladeUser bladeUser) {
+        QueryWrapper<Tenant> queryWrapper = Condition.getQueryWrapper(tenant);
+        List<Tenant> list = tenantService.list((!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Tenant::getTenantId, bladeUser.getTenantId()) : queryWrapper);
+        return R.data(list);
+    }
+
+    /**
+     * 自定义分页
+     */
+    @GetMapping("/page")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "分页", notes = "传入tenant")
+    @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+    public R<IPage<Tenant>> page(Tenant tenant, Query query) {
+        IPage<Tenant> pages = tenantService.selectTenantPage(Condition.getPage(query), tenant);
+        return R.data(pages);
+    }
+
+    /**
+     * 新增或修改
+     */
+    @PostMapping("/submit")
+    @ApiOperationSupport(order = 5)
+    @ApiOperation(value = "新增或修改", notes = "传入tenant")
+    @PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+    public R submit(@Valid @RequestBody Tenant tenant) {
+        return R.status(tenantService.submitTenant(tenant));
+    }
+
+
+    /**
+     * 删除
+     */
+    @PostMapping("/remove")
+    @ApiOperationSupport(order = 6)
+    @ApiOperation(value = "逻辑删除", notes = "传入ids")
+    @PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+    public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+        return R.status(tenantService.removeTenant(Func.toLongList(ids)));
+    }
+
+    /**
+     * 授权配置
+     */
+    @PostMapping("/setting")
+    @ApiOperationSupport(order = 7)
+    @ApiOperation(value = "授权配置", notes = "传入ids,accountNumber,expireTime")
+    @PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+    public R setting(@ApiParam(value = "主键集合", required = true) @RequestParam String ids, @ApiParam(value = "账号额度") Integer accountNumber, @ApiParam(value = "过期时间") Date expireTime) {
+        return R.status(tenantService.setting(accountNumber, expireTime, ids));
+    }
+
+    /**
+     * 数据源配置
+     */
+    @PostMapping("datasource")
+    @ApiOperationSupport(order = 8)
+    @PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+    @ApiOperation(value = "数据源配置", notes = "传入datasource_id")
+    public R datasource(@ApiParam(value = "租户ID", required = true) @RequestParam String tenantId, @ApiParam(value = "数据源ID", required = true) @RequestParam Long datasourceId) {
+        CacheUtil.evict(TENANT_DATASOURCE_CACHE, TENANT_DATASOURCE_EXIST_KEY, tenantId, Boolean.FALSE);
+        return R.status(tenantService.update(Wrappers.<Tenant>update().lambda().set(Tenant::getDatasourceId, datasourceId).eq(Tenant::getTenantId, tenantId)));
+    }
+
+    /**
+     * 根据名称查询列表
+     *
+     * @param name 租户名称
+     */
+    @GetMapping("/find-by-name")
+    @ApiOperationSupport(order = 9)
+    @ApiOperation(value = "详情", notes = "传入tenant")
+    @PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+    public R<List<Tenant>> findByName(String name) {
+        List<Tenant> list = tenantService.list(Wrappers.<Tenant>query().lambda().like(Tenant::getTenantName, name));
+        return R.data(list);
+    }
+
+    /**
+     * 根据域名查询信息
+     *
+     * @param domain 域名
+     */
+    @GetMapping("/info")
+    @ApiOperationSupport(order = 10)
+    @ApiOperation(value = "配置信息", notes = "传入domain")
+    public R<Kv> info(String domain) {
+        Tenant tenant = tenantService.getOne(Wrappers.<Tenant>query().lambda().eq(Tenant::getDomain, domain));
+        Kv kv = Kv.create();
+        if (tenant != null) {
+            kv.set("tenantId", tenant.getTenantId())
+                    .set("domain", tenant.getDomain())
+                    .set("backgroundUrl", tenant.getBackgroundUrl());
+        }
+        return R.data(kv);
+    }
 
 
 }

+ 24 - 0
hx-common/client-util/src/main/java/com/fjhx/utils/FileClientUtil.java

@@ -31,6 +31,12 @@ public class FileClientUtil {
         Assert.eqTrue(result.isSuccess(), "保存文件信息失败");
     }
 
+    public static void bindingFile(Long businessId, FileInfoParam param) {
+        if (ObjectUtil.isEmpty(param)) return;
+        R result = fileClient.bindingFile(APPLICATION_NAME, businessId, 0, Collections.singletonList(param));
+        Assert.eqTrue(result.isSuccess(), "保存文件信息失败");
+    }
+
     /**
      * 文件绑定业务id
      *
@@ -44,6 +50,12 @@ public class FileClientUtil {
         Assert.eqTrue(result.isSuccess(), "保存文件信息失败");
     }
 
+    public static void bindingFile(Long businessId, List<FileInfoParam> paramList) {
+        if (ObjectUtil.isEmpty(paramList)) return;
+        R result = fileClient.bindingFile(APPLICATION_NAME, businessId, 0, paramList);
+        Assert.eqTrue(result.isSuccess(), "保存文件信息失败");
+    }
+
     /**
      * 修改文件绑定信息
      *
@@ -57,6 +69,12 @@ public class FileClientUtil {
         Assert.eqTrue(result.isSuccess(), "保存文件信息失败");
     }
 
+    public static void againBindingFile(Long businessId, FileInfoParam param) {
+        if (ObjectUtil.isEmpty(param)) return;
+        R result = fileClient.againBindingFile(APPLICATION_NAME, businessId, 0, Collections.singletonList(param));
+        Assert.eqTrue(result.isSuccess(), "保存文件信息失败");
+    }
+
     /**
      * 修改文件绑定信息
      *
@@ -70,6 +88,12 @@ public class FileClientUtil {
         Assert.eqTrue(result.isSuccess(), "保存文件信息失败");
     }
 
+    public static void againBindingFile(Long businessId, List<FileInfoParam> paramList) {
+        if (ObjectUtil.isEmpty(paramList)) return;
+        R result = fileClient.againBindingFile(APPLICATION_NAME, businessId, 0, paramList);
+        Assert.eqTrue(result.isSuccess(), "保存文件信息失败");
+    }
+
     /**
      * 删除文件绑定信息
      *

+ 6 - 4
hx-common/hx-tool/src/main/java/com/fjhx/base/BaseService.java

@@ -148,11 +148,13 @@ public interface BaseService<T> extends IService<T> {
      */
     default void setCreateInfo(T entity) {
         if (entity instanceof BaseEntity) {
+            Date date = new Date();
+            Long userId = AuthUtil.getUserId();
             ((BaseEntity) entity).setTenantId(AuthUtil.getTenantId());
-            ((BaseEntity) entity).setCreateUser(AuthUtil.getUserId());
-            ((BaseEntity) entity).setCreateTime(new Date());
-            ((BaseEntity) entity).setUpdateUser(null);
-            ((BaseEntity) entity).setUpdateTime(null);
+            ((BaseEntity) entity).setCreateUser(userId);
+            ((BaseEntity) entity).setCreateTime(date);
+            ((BaseEntity) entity).setUpdateUser(userId);
+            ((BaseEntity) entity).setUpdateTime(date);
         }
     }
 

+ 0 - 7
hx-service/iot-management/src/main/java/com/fjhx/bom/controller/BomController.java

@@ -2,7 +2,6 @@ package com.fjhx.bom.controller;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.bom.service.BomService;
-import com.fjhx.entity.bom.Bom;
 import com.fjhx.params.bom.BomEx;
 import com.fjhx.params.bom.BomVo;
 import org.springblade.core.tool.api.R;
@@ -53,11 +52,5 @@ public class BomController {
         return R.success();
     }
 
-    @PostMapping("/detail")
-    public R detail(@RequestBody BomVo bomVo) {
-        Bom result = bomService.detail(bomVo);
-        return R.success(result);
-    }
-
 }
 

+ 0 - 2
hx-service/iot-management/src/main/java/com/fjhx/bom/service/BomService.java

@@ -26,6 +26,4 @@ public interface BomService extends BaseService<Bom> {
 
     void delete(BomVo bomVo);
 
-    Bom detail(BomVo bomVo);
-
 }

+ 17 - 17
hx-service/iot-management/src/main/java/com/fjhx/bom/service/impl/BomServiceImpl.java

@@ -3,22 +3,24 @@ package com.fjhx.bom.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.base.BaseEntity;
 import com.fjhx.bom.mapper.BomMapper;
 import com.fjhx.bom.service.BomService;
 import com.fjhx.constants.StatusConstant;
 import com.fjhx.entity.bom.Bom;
 import com.fjhx.enums.bom.BomTypeEnum;
-import com.fjhx.feign.IFileClient;
+import com.fjhx.params.FileInfoParam;
 import com.fjhx.params.bom.BomEx;
 import com.fjhx.params.bom.BomVo;
 import com.fjhx.utils.FileClientUtil;
 import com.fjhx.utils.UserClientUtil;
 import com.fjhx.utils.WrapperUtil;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -31,9 +33,6 @@ import java.util.Map;
 @Service
 public class BomServiceImpl extends ServiceImpl<BomMapper, Bom> implements BomService {
 
-    @Autowired
-    private IFileClient fileClient;
-
     @Override
     public Page<BomEx> getPage(Map<String, String> condition) {
 
@@ -49,11 +48,19 @@ public class BomServiceImpl extends ServiceImpl<BomMapper, Bom> implements BomSe
         wrapper.orderByAsc("p.code"); // 产品编码排序
 
         Page<BomEx> result = baseMapper.getPage(createPage(condition), wrapper);
+        List<BomEx> records = result.getRecords();
 
         // 赋值最后修改人
-        Map<Long, String> userNameMap = UserClientUtil.getUserNameMapFunctionLong(result.getRecords(), Bom::getUpdateUser);
-        result.getRecords().forEach(item -> item.setUpdateUserName(userNameMap.get(item.getUpdateUser())));
+        Map<Long, String> userNameMap = UserClientUtil.getUserNameMapFunctionLong(records, Bom::getUpdateUser);
+
+        // 文件信息
+        Map<Long, FileInfoParam> fileInfoMap = FileClientUtil.getFileInfoMap(
+                records.stream().map(BaseEntity::getId).collect(Collectors.toList()));
 
+        records.forEach(item -> {
+            item.setUpdateUserName(userNameMap.get(item.getUpdateUser()));
+            item.setFileInfoParam(fileInfoMap.get(item.getId()));
+        });
 
         return result;
     }
@@ -61,28 +68,21 @@ public class BomServiceImpl extends ServiceImpl<BomMapper, Bom> implements BomSe
     @Transactional
     @Override
     public void add(BomVo bomVo) {
-
         save(bomVo);
-
         // 绑定文件
-        FileClientUtil.bindingFile(bomVo.getId(), 1, bomVo.getFileInfoParam());
-
+        FileClientUtil.bindingFile(bomVo.getId(), bomVo.getFileInfoParam());
     }
 
     @Override
     public void edit(BomVo bomVo) {
         updateById(bomVo);
+        FileClientUtil.againBindingFile(bomVo.getId(), bomVo.getFileInfoParam());
     }
 
     @Override
     public void delete(BomVo bomVo) {
         removeById(bomVo.getId());
-    }
-
-    @Override
-    public Bom detail(BomVo bomVo) {
-        Bom result = getById(bomVo.getId());
-        return result;
+        FileClientUtil.relieveBindingFile(bomVo.getId());
     }
 
 }