diff --git a/src/main/java/com/qs/serve/modules/bms/controller/api/BmsSupplierAddressApi.java b/src/main/java/com/qs/serve/modules/bms/controller/api/BmsSupplierAddressApi.java index ecc98710..5931860d 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/api/BmsSupplierAddressApi.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/api/BmsSupplierAddressApi.java @@ -69,6 +69,15 @@ public class BmsSupplierAddressApi { return R.ok(bmsSupplierAddress); } + /** + * 获取默认地址 + * @return + */ + @GetMapping("/getDefaultOne") + public R getDefaultOne(){ + BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getDefault(AuthContextUtils.getSupplierId()); + return R.ok(supplierAddress); + } /** * 根据ID更新 diff --git a/src/main/java/com/qs/serve/modules/exl/controller/ExlTableConfController.java b/src/main/java/com/qs/serve/modules/exl/controller/ExlTableConfController.java index d551c82f..87aef41c 100644 --- a/src/main/java/com/qs/serve/modules/exl/controller/ExlTableConfController.java +++ b/src/main/java/com/qs/serve/modules/exl/controller/ExlTableConfController.java @@ -87,7 +87,31 @@ public class ExlTableConfController { LambdaQueryWrapper columnLqw = new LambdaQueryWrapper<>(); columnLqw.eq(ExlColumnConf::getTableConfId,id); List columnConfList = exlColumnConfService.list(columnLqw); - exlTableConf.setColumnList(columnConfList); + //加载的列拓展 + List resultColumnConfList = new ArrayList<>(); + for (ExlColumnConf columnConf : columnConfList) { + columnConf.setHideOnEditFlag(0); + resultColumnConfList.add(columnConf); + if(columnConf.getColumnType().equals(ExlConst.TYPE_CUSTOMER_CODE)){ + ExlColumnConf conf = new ExlColumnConf(); + conf.setColumnName(columnConf.getColumnName()+"_ext_cus_name"); + conf.setColumnHeader(columnConf.getColumnHeader()+"(名称)"); + conf.setColumnType(TableCreateSqlUtil.DEFAULT_STRING); + conf.setSort(0); + conf.setHideOnEditFlag(1); + resultColumnConfList.add(conf); + } + if(columnConf.getColumnType().equals(ExlConst.TYPE_USER_CODE)){ + ExlColumnConf conf = new ExlColumnConf(); + conf.setColumnName(columnConf.getColumnName()+"_ext_usr_name"); + conf.setColumnHeader(columnConf.getColumnHeader()+"(名称)"); + conf.setColumnType(TableCreateSqlUtil.DEFAULT_STRING); + conf.setSort(0); + conf.setHideOnEditFlag(1); + resultColumnConfList.add(conf); + } + } + exlTableConf.setColumnList(resultColumnConfList); //加载管理员 LambdaQueryWrapper tableUserLqw = new LambdaQueryWrapper<>(); tableUserLqw.eq(ExlTableUser::getTableConfId,id); @@ -123,7 +147,7 @@ public class ExlTableConfController { ExlQueryFieldDto fieldDtoName = new ExlQueryFieldDto(); fieldDtoName.setField(columnConf.getColumnName()+"_ext_cus_name"); fieldDtoName.setType(TableCreateSqlUtil.DEFAULT_STRING); - fieldDtoName.setLabel(columnConf.getColumnHeader()); + fieldDtoName.setLabel(columnConf.getColumnHeader()+"(名称)"); queryFieldList.add(fieldDtoName); }else if(columnType.equals(ExlConst.TYPE_USER_CODE)){ @@ -137,7 +161,7 @@ public class ExlTableConfController { ExlQueryFieldDto fieldDtoName = new ExlQueryFieldDto(); fieldDtoName.setField(columnConf.getColumnName()+"_ext_usr_name"); fieldDtoName.setType(TableCreateSqlUtil.DEFAULT_STRING); - fieldDtoName.setLabel(columnConf.getColumnHeader()); + fieldDtoName.setLabel(columnConf.getColumnHeader()+"(名称)"); queryFieldList.add(fieldDtoName); }else { //非业务类型 diff --git a/src/main/java/com/qs/serve/modules/exl/controller/ExlTableDataController.java b/src/main/java/com/qs/serve/modules/exl/controller/ExlTableDataController.java index 28e88a64..4b179315 100644 --- a/src/main/java/com/qs/serve/modules/exl/controller/ExlTableDataController.java +++ b/src/main/java/com/qs/serve/modules/exl/controller/ExlTableDataController.java @@ -8,6 +8,8 @@ import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.util.*; +import com.qs.serve.modules.bms.entity.BmsSupplier; +import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; import com.qs.serve.modules.exl.common.ExlConst; import com.qs.serve.modules.exl.common.QsSqlSessionUtil; import com.qs.serve.modules.exl.common.TableCreateSqlUtil; @@ -37,6 +39,8 @@ import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; +import static com.qs.serve.modules.exl.common.TableCreateSqlUtil.DEFAULT_STRING; + /** * 动态Excel表 数据查询 * @author YenHex @@ -56,6 +60,7 @@ public class ExlTableDataController { private SysUserMapper sysUserMapper; private SysPostUserService postUserService; private HisUserSupplierMapper hisUserSupplierMapper; + private BmsSupplierMapper bmsSupplierMapper; /** * 翻页查询 @@ -108,6 +113,10 @@ public class ExlTableDataController { List like_conditions = new ArrayList<>(); List in_conditions = new ArrayList<>(); + //map赋值业务参数的key + map.putIfAbsent(ExlConst.TYPE_USER_CODE, ""); + map.putIfAbsent(ExlConst.TYPE_CUSTOMER_CODE, ""); + if(!map.isEmpty()){ for (String columnName : map.keySet()) { String searchValue = map.get(columnName); @@ -119,52 +128,69 @@ public class ExlTableDataController { currColumnConf = columnConf; break; } + //拓展业务查询条件 + String extColumnName = null; + if(columnConf.getColumnType().equals(ExlConst.TYPE_USER_CODE)){ + extColumnName = columnConf.getColumnName()+"_ext_usr_name"; + }else if (columnConf.getColumnType().equals(ExlConst.TYPE_CUSTOMER_CODE)){ + extColumnName = columnConf.getColumnName()+"_ext_cus_name"; + } + if(extColumnName!=null&&extColumnName.equals(orgColumn)){ + ExlColumnConf conf = new ExlColumnConf(); + conf.setColumnName(extColumnName); + conf.setColumnType(DEFAULT_STRING); + conf.setScope(0); + currColumnConf = conf; + break; + } } if(currColumnConf==null){ continue; } String colType = currColumnConf.getColumnType(); if(!adminFlag){ - // 权限范围:0->本人;1->下属;2->全部(本人级下属) + // 权限范围:0->无;1->本人;2->下属;3->全部(本人级下属) Integer scope = currColumnConf.getScope(); Set values = new HashSet<>(); // 业务类型 String userId = AuthContextUtils.getSysUserId(); SysUser sysUser = sysUserMapper.selectById(userId); - if (colType.equals(ExlConst.TYPE_USER_CODE)){ - values.add("0"); - if(scope==0){ - values.add(sysUser.getCode()); - }else if (scope>0){ - List childIds = postUserService.listByChildIds(AuthContextUtils.getSysUserId()); - if(childIds.size()>0){ - List sysUsers = sysUserMapper.selectBatchIds(childIds); - List codes = sysUsers.stream().map(a->a.getCode()).collect(Collectors.toList()); - values.addAll(codes); - } - if (scope==2){ + if(scope>0){ + if (colType.equals(ExlConst.TYPE_USER_CODE)){ + values.add("0"); + if(scope==1){ values.add(sysUser.getCode()); + }else { + List childIds = postUserService.listByChildIds(AuthContextUtils.getSysUserId()); + if(childIds.size()>0){ + List sysUsers = sysUserMapper.selectBatchIds(childIds); + List codes = sysUsers.stream().map(a->a.getCode()).collect(Collectors.toList()); + values.addAll(codes); + } + if (scope==3){ + values.add(sysUser.getCode()); + } } + ExlConditionDto conditionDto = new ExlConditionDto(orgColumn,values); + in_conditions.add(conditionDto); + }else if (colType.equals(ExlConst.TYPE_CUSTOMER_CODE)){ + values.add("0"); + List userIds = new ArrayList<>(); + userIds.add(userId); + if(scope>1){ + List childIds = postUserService.listByChildIds(AuthContextUtils.getSysUserId()); + userIds.addAll(childIds); + } + LambdaQueryWrapper husLqw = new LambdaQueryWrapper<>(); + husLqw.in(HisUserSupplier::getUserId,userIds); + husLqw.select(HisUserSupplier::getSupplierCode); + List hisUserSuppliers = hisUserSupplierMapper.selectList(husLqw); + List supplierCodes = hisUserSuppliers.stream() + .map(HisUserSupplier::getSupplierCode).distinct().collect(Collectors.toList()); + values.addAll(supplierCodes); + ExlConditionDto conditionDto = new ExlConditionDto(orgColumn,values); + in_conditions.add(conditionDto); } - ExlConditionDto conditionDto = new ExlConditionDto(orgColumn,values); - in_conditions.add(conditionDto); - }else if (colType.equals(ExlConst.TYPE_CUSTOMER_CODE)){ - values.add("0"); - List userIds = new ArrayList<>(); - userIds.add(userId); - if(scope>0){ - List childIds = postUserService.listByChildIds(AuthContextUtils.getSysUserId()); - userIds.addAll(childIds); - } - LambdaQueryWrapper husLqw = new LambdaQueryWrapper<>(); - husLqw.in(HisUserSupplier::getUserId,userIds); - husLqw.select(HisUserSupplier::getSupplierCode); - List hisUserSuppliers = hisUserSupplierMapper.selectList(husLqw); - List supplierCodes = hisUserSuppliers.stream() - .map(HisUserSupplier::getSupplierCode).distinct().collect(Collectors.toList()); - values.addAll(supplierCodes); - ExlConditionDto conditionDto = new ExlConditionDto(orgColumn,values); - in_conditions.add(conditionDto); } } @@ -259,7 +285,15 @@ public class ExlTableDataController { //insert into table (cloumns) values (vals),(vals) StringBuilder insertSql = new StringBuilder("insert into "+targetTableName +"( `union_row_id`,"); for (int i = 0; i < columnList.size(); i++) { - insertSql.append(" `"+columnList.get(i).getColumnName()+"` "); + ExlColumnConf columnConf = columnList.get(i); + insertSql.append(" `"+columnConf.getColumnName()+"` "); + if(columnConf.getColumnType().equals(ExlConst.TYPE_USER_CODE)){ + insertSql.append(","); + insertSql.append(" `"+columnConf.getColumnName()+"_ext_usr_name` "); + }else if(columnConf.getColumnType().equals(ExlConst.TYPE_CUSTOMER_CODE)){ + insertSql.append(","); + insertSql.append(" `"+columnConf.getColumnName()+"_ext_cus_name` "); + } if(i+1 lqw = new LambdaQueryWrapper<>(); + lqw.eq(SysUser::getCode,string); + lqw.select(SysUser::getCode,SysUser::getName); + List sysUsers = sysUserMapper.selectList(lqw); + if (sysUsers.size()>0){ + String name = sysUsers.get(0).getName(); + insertSql.append("'"+name+"'"); + } + }else if(columnConf.getColumnType().equals(ExlConst.TYPE_CUSTOMER_CODE)){ + insertSql.append(","); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(BmsSupplier::getCode,string); + lqw.select(BmsSupplier::getCode,BmsSupplier::getName); + List supplierList = bmsSupplierMapper.selectList(lqw); + if (supplierList.size()>0){ + String name = supplierList.get(0).getName(); + insertSql.append("'"+name+"'"); + } + } if(i+1本人;1->下属;2->全部(本人级下属) */ + /** 权限范围:0->无;1->本人;2->下属;3->全部(本人级下属) */ private Integer scope; private Integer sort; @@ -95,6 +95,9 @@ public class ExlColumnConf implements Serializable { @JsonProperty private String delFlag; + /** 在编辑页隐藏标识(0:显示;1:隐藏) */ + @TableField(exist = false) + private Integer hideOnEditFlag; public static ExlColumnConf toNewObject(ExlColumnConf source){ ExlColumnConf columnConf = new ExlColumnConf(); diff --git a/src/main/java/com/qs/serve/modules/exl/service/impl/ExlTableConfServiceImpl.java b/src/main/java/com/qs/serve/modules/exl/service/impl/ExlTableConfServiceImpl.java index e4c6c31c..5976972e 100644 --- a/src/main/java/com/qs/serve/modules/exl/service/impl/ExlTableConfServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/exl/service/impl/ExlTableConfServiceImpl.java @@ -17,6 +17,7 @@ import com.qs.serve.modules.exl.mapper.ExlTableConfMapper; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.stream.Collectors; /** * 表配置 服务实现类 @@ -64,7 +65,11 @@ public class ExlTableConfServiceImpl extends ServiceImpl columnLqw = new LambdaQueryWrapper<>(); columnLqw.eq(ExlColumnConf::getTableConfId,param.getId()); columnConfService.remove(columnLqw); - List columnList = param.getColumnList(); + List columnList = param.getColumnList().stream().filter( + //忽略业务拓展列 + a->!a.getColumnName().contains("_ext_cus_name") + &&!a.getColumnName().contains("_ext_usr_name") + ).collect(Collectors.toList()); columnList.forEach(a->{ a.setTableConfId(tableId); if(a.getColumnType().equals(ExlConst.TYPE_MONEY)){ diff --git a/src/main/resources/mapper/exl/ExlTableConfMapper.xml b/src/main/resources/mapper/exl/ExlTableConfMapper.xml index 2da53406..dfe1de5d 100644 --- a/src/main/resources/mapper/exl/ExlTableConfMapper.xml +++ b/src/main/resources/mapper/exl/ExlTableConfMapper.xml @@ -55,16 +55,22 @@ and - ${item.column} like concat('%', #{item.value} ,'%') + + ${item.column} like concat('%', #{item.value} ,'%') + + + 1=1 + and - ${inItem.column} in - + ${inItem.column} in ( + #{item} + )