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 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 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 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 params = new HashMap<>(); params.put("warehouseId", warehouseId); this.execute(sql, params); //重新保存 List 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 userRoleParam = new HashMap<>(); userRoleParam.put("managerId", sysUserId); userRoleParam.put("roleId", roleId); this.execute(saveUserRole, userRoleParam); } } } @Override public List selectWarehouseManager(Long warehouseId) { BaseWarehouseManager baseWarehouseManager = new BaseWarehouseManager(); baseWarehouseManager.setBaseWarehouseId(warehouseId); List select = this.select(baseWarehouseManager); return select; } @Override public List 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 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 select = this.select(sql.toString(), param, new BaseWarehouseManager()); return select; } }