package com.consum.base.service; import com.consum.base.Constants; import com.consum.base.core.CodeGeneratorService; import com.consum.base.pojo.BaseWarehouseParam; import com.consum.base.util.IdUtil; import com.consum.model.po.BaseWarehouse; import com.consum.model.po.FinSysTenant; import com.consum.model.po.FinSysTenantDepartment; import com.consum.model.po.FinSysTenantUser; import com.walker.db.page.GenericPager; import com.walker.infrastructure.utils.StringUtils; import com.walker.jdbc.service.BaseServiceImpl; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; import java.util.Set; import java.util.stream.Collectors; /** * @Description 仓库管理 * @Author 卢庆阳 * @Date 2023/10/26 */ @Service public class BaseWarehouseServiceImpl extends BaseServiceImpl { @Autowired private CodeGeneratorService codeGeneratorService; @Autowired private FinSysTenantServiceImpl finSysTenantService; @Autowired private FinSysTenantDepartmentServiceImpl departmentService; @Autowired private FinSysTenantUserServiceImpl userService; /** * @Description 新增 * @Author 卢庆阳 * @Date 2023/10/26 */ public int add(BaseWarehouseParam param) { BaseWarehouse baseWarehouse = new BaseWarehouse(); BeanUtils.copyProperties(param, baseWarehouse); baseWarehouse.setId(IdUtil.generateId()); baseWarehouse.setWarehouseType(Constants.WAREHOUSE_TYPE_TENANT); baseWarehouse.setWarehouseCode(codeGeneratorService.createWarehouseCode()); // //根据机构id查询机构 // FinSysTenant finSysTenant = finSysTenantService.get(new FinSysTenant(baseWarehouse.getAgencyId())); // if (finSysTenant != null) { // baseWarehouse.setParentAgencyId(finSysTenant.getParentId()); // baseWarehouse.setAgencyName(finSysTenant.getName()); // } baseWarehouse.setIsDefault(Constants.IS_DEFAULT_YES); return this.insert(baseWarehouse); } /** * @Description 仓库列表查询 * @Author 卢庆阳 * @Date 2023/10/26 */ // public GenericPager queryList(BaseWarehouseParam param, FinSysTenantUser sysInfo) { public GenericPager queryList(BaseWarehouseParam param) { StringBuilder sql = new StringBuilder("SELECT * FROM base_warehouse WHERE 1 = 1 "); HashMap paramts = new HashMap<>(); //仓库名称 if (!StringUtils.isEmpty(param.getWarehouseName())) { sql.append(" and WAREHOUSE_NAME like:WAREHOUSE_NAME "); paramts.put("WAREHOUSE_NAME", StringUtils.CHAR_PERCENT + param.getWarehouseName() + StringUtils.CHAR_PERCENT); } //类型 if (!StringUtils.isEmpty(param.getClassificationCode())) { sql.append(" and CLASSIFICATION_CODE =:CLASSIFICATION_CODE "); paramts.put("CLASSIFICATION_CODE", param.getClassificationCode()); } //机构id // sql.append(" and AGENCY_ID =:AGENCY_ID "); // if (param.getAgencyId() != null) { // paramts.put("AGENCY_ID", param.getAgencyId()); // } else { // paramts.put("AGENCY_ID", Long.valueOf(sysInfo.getTenantId())); // } //状态 if (param.getStates() != null) { sql.append(" and states =:states "); paramts.put("states", param.getStates()); } else { sql.append(" and states !=3 "); } sql.append(" ORDER BY states "); return selectSplit(sql.toString(), paramts, new BaseWarehouse()); } /** * @Description 编辑(修改状态) * @Author 卢庆阳 * @Date 2023/10/26 */ public int updateBaseWarehouse(BaseWarehouse baseWarehouse) { return this.update(baseWarehouse); } /** * 根据id查询仓库详情 * @author 卢庆阳 * @Date 2023/10/26 */ public BaseWarehouse getById(Long id) { return this.get(new BaseWarehouse(id)); } /** * @Description 根据id删除仓库 * @Author 卢庆阳 * @Date 2023/10/26 */ public int updateById(BaseWarehouse baseWarehouse) { baseWarehouse.setStates(Constants.STATES_DELETED); return this.update(baseWarehouse); } /** * @Description 根据仓库id获取机构用户信息 * @Author 卢庆阳 * @Date 2023/10/26 */ public void queryUserList(Long baseWarehouseId) { //1.根据仓库id查询仓库 BaseWarehouse baseWarehouse = this.getById(baseWarehouseId); if (baseWarehouse != null) { Long agencyId = baseWarehouse.getAgencyId(); String agencyName = baseWarehouse.getAgencyName(); //2.根据机构id查询部门 List list = this.departmentService.getByTenantId(agencyId); //获取部门id Set deptIds = list.stream().map(dept -> dept.getId()).collect(Collectors.toSet()); //3.根据部门id查询用户 //this.userService.getByDeptIds(); } } /** * @Description 根据机构id查询机构仓库 * @Author 卢庆阳 * @Date 2023/10/27 * @return */ public List getByAgencyId(Long agencyId) { StringBuilder sql = new StringBuilder("SELECT * FROM base_warehouse WHERE 1 = 1 "); HashMap paramts = new HashMap<>(); //机构id if (agencyId != null) { sql.append(" and AGENCY_ID =:AGENCY_ID "); paramts.put("AGENCY_ID", agencyId); } return select(sql.toString(), paramts, new BaseWarehouse()); } }