package com.consum.base.service.impl;
|
|
import com.consum.base.core.utils.IdUtil;
|
import com.consum.base.pojo.WarehouseManagerInfo;
|
import com.consum.base.pojo.request.WarehouseManagerParam;
|
import com.consum.base.service.BaseWarehouseManagerService;
|
import com.consum.base.service.FinSysTenantUserServiceImpl;
|
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 implements BaseWarehouseManagerService {
|
|
@Autowired
|
private FinSysTenantUserServiceImpl finSysTenantUserService;
|
|
|
/**
|
* @Description 新增
|
* @Author 卢庆阳
|
* @Date 2023/10/26
|
*/
|
@Override
|
@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);
|
|
}
|
}
|
|
}
|
|
@Override
|
public List<BaseWarehouseManager> selectWarehouseManager(Long warehouseId) {
|
BaseWarehouseManager baseWarehouseManager = new BaseWarehouseManager();
|
baseWarehouseManager.setBaseWarehouseId(warehouseId);
|
List<BaseWarehouseManager> select = this.select(baseWarehouseManager);
|
return select;
|
}
|
|
@Override
|
public List<BaseWarehouseManager> selectManagerList(Long warehouseId, Long agencyId) {
|
StringBuilder sql = new StringBuilder("select * from base_warehouse_manager bwm left join base_warehouse bw on bwm.base_warehouse_id = bw.id "
|
+ "where 1=1 ");
|
Map<String, Object> param = new HashMap<>();
|
if (warehouseId != null) {
|
param.put("warehouseId", warehouseId);
|
sql.append("and bwm.BASE_WAREHOUSE_ID =:warehouseId ");
|
}
|
if (agencyId != null) {
|
param.put("agencyId", agencyId);
|
sql.append("and bw.agency_id =:agencyId ");
|
}
|
List<BaseWarehouseManager> select = this.select(sql.toString(), param, new BaseWarehouseManager());
|
return select;
|
}
|
|
|
}
|