package com.consum.base.service;
|
|
import com.consum.base.core.utils.IdUtil;
|
import com.consum.base.pojo.WarehouseManagerInfo;
|
import com.consum.base.pojo.request.WarehouseManagerParam;
|
import com.consum.model.po.BaseWarehouseManager;
|
import com.consum.model.po.FinSysTenantUser;
|
import com.iplatform.model.po.S_role;
|
import com.walker.infrastructure.utils.CollectionUtils;
|
import com.walker.jdbc.service.BaseServiceImpl;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
/**
|
* @Description 物品分类
|
* @Author 卢庆阳
|
* @Date 2023/10/23
|
*/
|
@Service
|
public class BaseWarehouseManagerServiceImpl extends BaseServiceImpl {
|
|
@Autowired
|
private FinSysTenantUserServiceImpl finSysTenantUserService;
|
|
/**
|
* @Description 新增
|
* @Author 卢庆阳
|
* @Date 2023/10/26
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
public void add(WarehouseManagerParam list) throws Exception {
|
|
Long warehouseId = list.getWarehouseId();
|
|
// 角色id
|
Long roleId = null;
|
List<S_role> roleAll = finSysTenantUserService.getRoleAll();
|
if (!CollectionUtils.isEmpty(roleAll)) {
|
S_role sRole = roleAll.stream().filter(item -> item.getRole_name().equals("仓库管理员")).findFirst().orElse(null);
|
if (sRole != null) {
|
roleId = sRole.getRole_id();
|
}
|
}
|
|
// 删除角色
|
BaseWarehouseManager warehouseManager = new BaseWarehouseManager();
|
warehouseManager.setBaseWarehouseId(warehouseId);
|
List<BaseWarehouseManager> baseWarehouseManagerList = this.select(warehouseManager);
|
String deleteRoleSql = "DELETE FROM S_ROLE_USER WHERE USER_ID =:managerId AND role_id =:roleId";
|
for (BaseWarehouseManager item : baseWarehouseManagerList) {
|
Long managerId = item.getManagerId();
|
FinSysTenantUser finSysTenantUser = finSysTenantUserService.queryOneById(String.valueOf(managerId));
|
if (finSysTenantUser == null) {
|
throw new Exception("用户不存在");
|
}
|
Map<String, Object> params = new HashMap<>();
|
params.put("managerId", finSysTenantUser.getSysUserId());
|
params.put("roleId", roleId);
|
this.execute(deleteRoleSql, params);
|
}
|
|
//删除库管记录
|
String sql = "delete from base_warehouse_manager where base_warehouse_id =:warehouseId";
|
Map<String, Object> params = new HashMap<>();
|
params.put("warehouseId", warehouseId);
|
this.execute(sql, params);
|
//重新保存
|
List<WarehouseManagerInfo> warehouseManagerInfoList = list.getWarehouseManagerInfoList();
|
if (!CollectionUtils.isEmpty(warehouseManagerInfoList)) {
|
for (WarehouseManagerInfo warehouseManagerInfo : warehouseManagerInfoList) {
|
Long managerId = warehouseManagerInfo.getManagerId();
|
String managerName = warehouseManagerInfo.getManagerName();
|
BaseWarehouseManager baseWarehouseManager = new BaseWarehouseManager();
|
baseWarehouseManager.setId(IdUtil.generateId());
|
baseWarehouseManager.setBaseWarehouseId(warehouseId);
|
baseWarehouseManager.setManagerId(managerId);
|
baseWarehouseManager.setManagerName(managerName);
|
this.insert(baseWarehouseManager);
|
|
FinSysTenantUser finSysTenantUser = finSysTenantUserService.queryOneById(String.valueOf(managerId));
|
if (finSysTenantUser == null) {
|
throw new Exception("用户不存在");
|
}
|
Long sysUserId = finSysTenantUser.getSysUserId();
|
String saveUserRole = "insert into s_role_user(user_id, role_id, org_id) values(:managerId,:roleId,0)";
|
Map<String, Object> userRoleParam = new HashMap<>();
|
userRoleParam.put("managerId", sysUserId);
|
userRoleParam.put("roleId", roleId);
|
this.execute(saveUserRole, userRoleParam);
|
|
}
|
}
|
|
}
|
|
|
}
|