Browse Source

Merge remote-tracking branch 'origin/v1.0' into v1.0

v1.0
15989082884@163.com 2 years ago
parent
commit
6b91c2fb83
  1. 1
      src/main/java/com/qs/serve/common/util/CodeGenUtil.java
  2. 9
      src/main/java/com/qs/serve/modules/bms/controller/api/BmsSupplierAddressApi.java
  3. 3
      src/main/java/com/qs/serve/modules/exl/common/ExlConst.java
  4. 30
      src/main/java/com/qs/serve/modules/exl/common/TableCreateSqlUtil.java
  5. 89
      src/main/java/com/qs/serve/modules/exl/controller/ExlTableConfController.java
  6. 140
      src/main/java/com/qs/serve/modules/exl/controller/ExlTableDataController.java
  7. 6
      src/main/java/com/qs/serve/modules/exl/entity/ExlColumnConf.java
  8. 12
      src/main/java/com/qs/serve/modules/exl/entity/ExlTableConf.java
  9. 106
      src/main/java/com/qs/serve/modules/exl/entity/ExlTableUser.java
  10. 18
      src/main/java/com/qs/serve/modules/exl/entity/bo/ExlTableUserBo.java
  11. 15
      src/main/java/com/qs/serve/modules/exl/entity/dto/ExlConditionDto.java
  12. 3
      src/main/java/com/qs/serve/modules/exl/entity/dto/ExlTableBo.java
  13. 14
      src/main/java/com/qs/serve/modules/exl/mapper/ExlTableUserMapper.java
  14. 19
      src/main/java/com/qs/serve/modules/exl/service/ExlTableUserService.java
  15. 20
      src/main/java/com/qs/serve/modules/exl/service/impl/ExlTableConfServiceImpl.java
  16. 58
      src/main/java/com/qs/serve/modules/exl/service/impl/ExlTableUserServiceImpl.java
  17. 9
      src/main/java/com/qs/serve/modules/goods/controller/api/GoodsSpuApi.java
  18. 3
      src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java
  19. 2
      src/main/java/com/qs/serve/modules/oms/controller/OmsOrderItemController.java
  20. 30
      src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java
  21. 9
      src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java
  22. 3
      src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderPcBo.java
  23. 15
      src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java
  24. 8
      src/main/java/com/qs/serve/modules/sale/entity/SalePlan.java
  25. 9
      src/main/java/com/qs/serve/modules/sale/entity/bo/SalePlanBo.java
  26. 2
      src/main/java/com/qs/serve/modules/sale/service/impl/SalePlanServiceImpl.java
  27. 4
      src/main/java/com/qs/serve/modules/third/PortalOfCostController.java
  28. 3
      src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java
  29. 3
      src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationBo.java
  30. 1
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java
  31. 15
      src/main/resources/mapper/exl/ExlTableConfMapper.xml
  32. 14
      src/main/resources/mapper/goods/GoodsSpuMapper.xml

1
src/main/java/com/qs/serve/common/util/CodeGenUtil.java

@ -24,6 +24,7 @@ public class CodeGenUtil {
CostApply("cost_apply"), CostApply("cost_apply"),
SalePlan("SalePlan"), SalePlan("SalePlan"),
Activity("activity"), Activity("activity"),
OmsOrder("OmsOrder"),
Verification("verification"), Verification("verification"),
Policy("policy"), Policy("policy"),
Budget("Budget"), Budget("Budget"),

9
src/main/java/com/qs/serve/modules/bms/controller/api/BmsSupplierAddressApi.java

@ -69,6 +69,15 @@ public class BmsSupplierAddressApi {
return R.ok(bmsSupplierAddress); return R.ok(bmsSupplierAddress);
} }
/**
* 获取默认地址
* @return
*/
@GetMapping("/getDefaultOne")
public R<BmsSupplierAddress> getDefaultOne(){
BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getDefault(AuthContextUtils.getSupplierId());
return R.ok(supplierAddress);
}
/** /**
* 根据ID更新 * 根据ID更新

3
src/main/java/com/qs/serve/modules/exl/common/ExlConst.java

@ -15,6 +15,9 @@ public interface ExlConst {
String TYPE_MONEY = "money"; String TYPE_MONEY = "money";
String TYPE_STRING = "string"; String TYPE_STRING = "string";
/** 业务类型 */
String TYPE_CUSTOMER_CODE = "customerCode";
String TYPE_USER_CODE = "userCode";
String TABLE_CONFIG_PARAM = "tb_config_cnf_id"; String TABLE_CONFIG_PARAM = "tb_config_cnf_id";

30
src/main/java/com/qs/serve/modules/exl/common/TableCreateSqlUtil.java

@ -8,6 +8,8 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import static com.qs.serve.modules.exl.common.ExlConst.*;
/** /**
* @author YenHex * @author YenHex
* @since 2023/8/14 * @since 2023/8/14
@ -15,12 +17,22 @@ import java.util.Map;
public class TableCreateSqlUtil { public class TableCreateSqlUtil {
public static final Map<String,String> MYSQL_DATA_MAP = new HashMap<>(); public static final Map<String,String> MYSQL_DATA_MAP = new HashMap<>();
/**
* 业务的默认数据类型
*/
public static final String DEFAULT_STRING = "string";
static { static {
//数据类型
MYSQL_DATA_MAP.put("int","bigint"); MYSQL_DATA_MAP.put("int","bigint");
MYSQL_DATA_MAP.put("string","varchar(300)"); MYSQL_DATA_MAP.put("string","varchar(300)");
MYSQL_DATA_MAP.put("date","date"); MYSQL_DATA_MAP.put("date","date");
MYSQL_DATA_MAP.put("money","decimal(11, 2)"); MYSQL_DATA_MAP.put("money","decimal(11, 2)");
MYSQL_DATA_MAP.put("datetime","datetime"); MYSQL_DATA_MAP.put("datetime","datetime");
//业务类型
MYSQL_DATA_MAP.put(TYPE_CUSTOMER_CODE,"varchar(50)");
MYSQL_DATA_MAP.put(TYPE_USER_CODE,"varchar(50)");
} }
public static final String COLUMN_NULL = " null "; public static final String COLUMN_NULL = " null ";
@ -31,13 +43,29 @@ public class TableCreateSqlUtil {
StringBuffer result = new StringBuffer("CREATE TABLE `"+tableName+"` ("); StringBuffer result = new StringBuffer("CREATE TABLE `"+tableName+"` (");
result.append(" `union_row_id` varchar(255) NOT NULL COMMENT 'union_row_id',"); result.append(" `union_row_id` varchar(255) NOT NULL COMMENT 'union_row_id',");
for (ExlColumnConf column : columnList) { for (ExlColumnConf column : columnList) {
String columnType = MYSQL_DATA_MAP.get(column.getColumnType())==null?column.getColumnType():MYSQL_DATA_MAP.get(column.getColumnType()); String typeParam = column.getColumnType();
String columnType = MYSQL_DATA_MAP.get(typeParam)==null?column.getColumnType():MYSQL_DATA_MAP.get(typeParam);
String nullValue = column.getNotNullFlag().equals(1) ? COLUMN_NOT_NULL:COLUMN_NULL; String nullValue = column.getNotNullFlag().equals(1) ? COLUMN_NOT_NULL:COLUMN_NULL;
result.append("`"+column.getColumnName()+"` "+ result.append("`"+column.getColumnName()+"` "+
columnType + columnType +
nullValue + nullValue +
COLUMN_COMMENT + " '"+ COLUMN_COMMENT + " '"+
column.getColumnHeader()+"',"); column.getColumnHeader()+"',");
//以下,拓展业务类型数据库列
if(typeParam.equals(TYPE_CUSTOMER_CODE)){
result.append("`"+column.getColumnName()+"_ext_cus_name` "+
columnType +
COLUMN_NULL +
COLUMN_COMMENT + " '"+
column.getColumnHeader().replace("编码","")+"名称',");
}
if(typeParam.equals(TYPE_USER_CODE)){
result.append("`"+column.getColumnName()+"_ext_usr_name` "+
columnType +
COLUMN_NULL +
COLUMN_COMMENT + " '"+
column.getColumnHeader().replace("编码","")+"名称',");
}
} }
result.append(" PRIMARY KEY (`union_row_id`) USING BTREE "); result.append(" PRIMARY KEY (`union_row_id`) USING BTREE ");
return result.append(") COMMENT = '"+tableRemark+"' ").toString(); return result.append(") COMMENT = '"+tableRemark+"' ").toString();

89
src/main/java/com/qs/serve/modules/exl/controller/ExlTableConfController.java

@ -6,17 +6,17 @@ import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.*;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.common.util.WordUtil;
import com.qs.serve.modules.exl.common.ExlConst; import com.qs.serve.modules.exl.common.ExlConst;
import com.qs.serve.modules.exl.common.QsSqlSessionUtil; import com.qs.serve.modules.exl.common.QsSqlSessionUtil;
import com.qs.serve.modules.exl.common.TableCreateSqlUtil; import com.qs.serve.modules.exl.common.TableCreateSqlUtil;
import com.qs.serve.modules.exl.entity.ExlColumnConf; import com.qs.serve.modules.exl.entity.ExlColumnConf;
import com.qs.serve.modules.exl.entity.ExlTableUser;
import com.qs.serve.modules.exl.entity.bo.ExlTableUserBo;
import com.qs.serve.modules.exl.entity.dto.ExlQueryFieldDto; import com.qs.serve.modules.exl.entity.dto.ExlQueryFieldDto;
import com.qs.serve.modules.exl.entity.dto.ExlTableBo; import com.qs.serve.modules.exl.entity.dto.ExlTableBo;
import com.qs.serve.modules.exl.service.ExlColumnConfService; import com.qs.serve.modules.exl.service.ExlColumnConfService;
import com.qs.serve.modules.exl.service.ExlTableUserService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSession;
@ -49,6 +49,7 @@ public class ExlTableConfController {
private SqlSessionTemplate sqlSessionTemplate; private SqlSessionTemplate sqlSessionTemplate;
private ExlTableConfService exlTableConfService; private ExlTableConfService exlTableConfService;
private ExlColumnConfService exlColumnConfService; private ExlColumnConfService exlColumnConfService;
private ExlTableUserService exlTableUserService;
/** /**
* 列表 * 列表
@ -86,25 +87,84 @@ public class ExlTableConfController {
LambdaQueryWrapper<ExlColumnConf> columnLqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<ExlColumnConf> columnLqw = new LambdaQueryWrapper<>();
columnLqw.eq(ExlColumnConf::getTableConfId,id); columnLqw.eq(ExlColumnConf::getTableConfId,id);
List<ExlColumnConf> columnConfList = exlColumnConfService.list(columnLqw); List<ExlColumnConf> columnConfList = exlColumnConfService.list(columnLqw);
exlTableConf.setColumnList(columnConfList); //加载的列拓展
List<ExlColumnConf> 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<ExlTableUser> tableUserLqw = new LambdaQueryWrapper<>();
tableUserLqw.eq(ExlTableUser::getTableConfId,id);
List<ExlTableUser> tableUsers = exlTableUserService.list(tableUserLqw);
exlTableConf.setAdminList(tableUsers);
//组装查询参数列表 //组装查询参数列表
List<ExlColumnConf> queryColumn = columnConfList.stream() List<ExlColumnConf> queryColumn = columnConfList.stream()
.filter(a->a.getConditionFlag().equals(1) .filter(a->a.getConditionFlag().equals(1)
&&!a.getColumnType().equals(ExlConst.TYPE_MONEY)).collect(Collectors.toList()); &&!a.getColumnType().equals(ExlConst.TYPE_MONEY)).collect(Collectors.toList());
List<ExlQueryFieldDto> queryFieldList = new ArrayList<>(); List<ExlQueryFieldDto> queryFieldList = new ArrayList<>();
for (ExlColumnConf columnConf : queryColumn) { for (ExlColumnConf columnConf : queryColumn) {
if(columnConf.getColumnType().contains(ExlConst.DATE_TYPE)){ String columnType = columnConf.getColumnType();
if(columnType.contains(ExlConst.DATE_TYPE)){
ExlQueryFieldDto startDto = new ExlQueryFieldDto(); ExlQueryFieldDto startDto = new ExlQueryFieldDto();
startDto.setField(ExlConst.PRE_COLUMN_START + columnConf.getColumnName()); startDto.setField(ExlConst.PRE_COLUMN_START + columnConf.getColumnName());
startDto.setType(columnConf.getColumnType()); startDto.setType(columnType);
startDto.setLabel(columnConf.getColumnHeader()+ExlConst.PRE_COLUMN_START_LABEL); startDto.setLabel(columnConf.getColumnHeader()+ExlConst.PRE_COLUMN_START_LABEL);
queryFieldList.add(startDto); queryFieldList.add(startDto);
ExlQueryFieldDto fieldDto = new ExlQueryFieldDto(); ExlQueryFieldDto fieldDto = new ExlQueryFieldDto();
fieldDto.setField(ExlConst.PRE_COLUMN_END + columnConf.getColumnName()); fieldDto.setField(ExlConst.PRE_COLUMN_END + columnConf.getColumnName());
fieldDto.setType(columnConf.getColumnType()); fieldDto.setType(columnType);
fieldDto.setLabel(columnConf.getColumnHeader()+ExlConst.PRE_COLUMN_END_LABEL); fieldDto.setLabel(columnConf.getColumnHeader()+ExlConst.PRE_COLUMN_END_LABEL);
queryFieldList.add(fieldDto); queryFieldList.add(fieldDto);
}else { }else {
if(columnType.equals(ExlConst.TYPE_CUSTOMER_CODE)){
//业务类型-客户
ExlQueryFieldDto fieldDto = new ExlQueryFieldDto();
fieldDto.setField(columnConf.getColumnName());
fieldDto.setType(TableCreateSqlUtil.DEFAULT_STRING);
fieldDto.setLabel(columnConf.getColumnHeader());
queryFieldList.add(fieldDto);
//拓展名称
ExlQueryFieldDto fieldDtoName = new ExlQueryFieldDto();
fieldDtoName.setField(columnConf.getColumnName()+"_ext_cus_name");
fieldDtoName.setType(TableCreateSqlUtil.DEFAULT_STRING);
fieldDtoName.setLabel(columnConf.getColumnHeader()+"(名称)");
queryFieldList.add(fieldDtoName);
}else if(columnType.equals(ExlConst.TYPE_USER_CODE)){
//业务类型-用户
ExlQueryFieldDto fieldDto = new ExlQueryFieldDto();
fieldDto.setField(columnConf.getColumnName());
fieldDto.setType(TableCreateSqlUtil.DEFAULT_STRING);
fieldDto.setLabel(columnConf.getColumnHeader());
queryFieldList.add(fieldDto);
//拓展名称
ExlQueryFieldDto fieldDtoName = new ExlQueryFieldDto();
fieldDtoName.setField(columnConf.getColumnName()+"_ext_usr_name");
fieldDtoName.setType(TableCreateSqlUtil.DEFAULT_STRING);
fieldDtoName.setLabel(columnConf.getColumnHeader()+"(名称)");
queryFieldList.add(fieldDtoName);
}else {
//非业务类型
ExlQueryFieldDto fieldDto = new ExlQueryFieldDto(); ExlQueryFieldDto fieldDto = new ExlQueryFieldDto();
fieldDto.setField(columnConf.getColumnName()); fieldDto.setField(columnConf.getColumnName());
fieldDto.setType(columnConf.getColumnType()); fieldDto.setType(columnConf.getColumnType());
@ -112,7 +172,9 @@ public class ExlTableConfController {
queryFieldList.add(fieldDto); queryFieldList.add(fieldDto);
} }
} }
}
exlTableConf.setQueryList(queryFieldList); exlTableConf.setQueryList(queryFieldList);
exlTableConf.setAdminFlag(exlTableUserService.checkAdmin(exlTableConf.getId(), AuthContextUtils.getSysUserId()));
return R.ok(exlTableConf); return R.ok(exlTableConf);
} }
@ -201,5 +263,16 @@ public class ExlTableConfController {
return R.isTrue(result); return R.isTrue(result);
} }
/**
* 配置数据中心管理员
* @param param
* @return
*/
@PostMapping("/confAdmins")
public R<?> tableUser(@RequestBody ExlTableUserBo param){
exlTableUserService.confAdmins(param);
return R.ok();
}
} }

140
src/main/java/com/qs/serve/modules/exl/controller/ExlTableDataController.java

@ -7,10 +7,9 @@ import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.IdUtil; import com.qs.serve.common.util.*;
import com.qs.serve.common.util.JsonUtil; import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.common.util.PageUtil; import com.qs.serve.modules.bms.mapper.BmsSupplierMapper;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.exl.common.ExlConst; import com.qs.serve.modules.exl.common.ExlConst;
import com.qs.serve.modules.exl.common.QsSqlSessionUtil; import com.qs.serve.modules.exl.common.QsSqlSessionUtil;
import com.qs.serve.modules.exl.common.TableCreateSqlUtil; import com.qs.serve.modules.exl.common.TableCreateSqlUtil;
@ -23,6 +22,12 @@ import com.qs.serve.modules.exl.entity.dto.ExlTableBo;
import com.qs.serve.modules.exl.mapper.ExlTableConfMapper; import com.qs.serve.modules.exl.mapper.ExlTableConfMapper;
import com.qs.serve.modules.exl.service.ExlColumnConfService; import com.qs.serve.modules.exl.service.ExlColumnConfService;
import com.qs.serve.modules.exl.service.ExlTableConfService; import com.qs.serve.modules.exl.service.ExlTableConfService;
import com.qs.serve.modules.exl.service.ExlTableUserService;
import com.qs.serve.modules.his.entity.HisUserSupplier;
import com.qs.serve.modules.his.mapper.HisUserSupplierMapper;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.mapper.SysUserMapper;
import com.qs.serve.modules.sys.service.SysPostUserService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -31,12 +36,11 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import javax.validation.Valid;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.qs.serve.modules.exl.common.TableCreateSqlUtil.DEFAULT_STRING;
/** /**
* 动态Excel表 数据查询 * 动态Excel表 数据查询
* @author YenHex * @author YenHex
@ -50,8 +54,13 @@ public class ExlTableDataController {
private ExlTableConfService exlTableConfService; private ExlTableConfService exlTableConfService;
private ExlColumnConfService exlColumnConfService; private ExlColumnConfService exlColumnConfService;
private ExlTableUserService exlTableUserService;
private SqlSessionTemplate sqlSessionTemplate; private SqlSessionTemplate sqlSessionTemplate;
private ExlTableConfMapper exlTableConfMapper; private ExlTableConfMapper exlTableConfMapper;
private SysUserMapper sysUserMapper;
private SysPostUserService postUserService;
private HisUserSupplierMapper hisUserSupplierMapper;
private BmsSupplierMapper bmsSupplierMapper;
/** /**
* 翻页查询 * 翻页查询
@ -72,7 +81,8 @@ public class ExlTableDataController {
columnLqw.orderByAsc(ExlColumnConf::getSort); columnLqw.orderByAsc(ExlColumnConf::getSort);
List<ExlColumnConf> columnList = exlColumnConfService.list(columnLqw); List<ExlColumnConf> columnList = exlColumnConfService.list(columnLqw);
// query // query
Map<String, Object> queryMap = buildQueryMap(map, columnList); boolean adminFlag = false;
Map<String, Object> queryMap = buildQueryMap(map, columnList,adminFlag);
String targetTableName = ExlConst.TABLE_NAME_PRE + tableConf.getTableName(); String targetTableName = ExlConst.TABLE_NAME_PRE + tableConf.getTableName();
Long count = exlTableConfMapper.countData(targetTableName,queryMap); Long count = exlTableConfMapper.countData(targetTableName,queryMap);
PageVo vo = new PageVo(); PageVo vo = new PageVo();
@ -94,13 +104,19 @@ public class ExlTableDataController {
@NotNull @NotNull
private Map<String, Object> buildQueryMap(Map<String, String> map, List<ExlColumnConf> columnList) { private Map<String, Object> buildQueryMap(Map<String, String> map, List<ExlColumnConf> columnList,Boolean adminFlag) {
Map<String,Object> queryMap = new HashMap<>(10); Map<String,Object> queryMap = new HashMap<>(10);
// condition // condition
List<ExlConditionDto> ge_conditions = new ArrayList<>(); List<ExlConditionDto> ge_conditions = new ArrayList<>();
List<ExlConditionDto> le_conditions = new ArrayList<>(); List<ExlConditionDto> le_conditions = new ArrayList<>();
List<ExlConditionDto> eq_conditions = new ArrayList<>(); List<ExlConditionDto> eq_conditions = new ArrayList<>();
List<ExlConditionDto> like_conditions = new ArrayList<>(); List<ExlConditionDto> like_conditions = new ArrayList<>();
List<ExlConditionDto> in_conditions = new ArrayList<>();
//map赋值业务参数的key
map.putIfAbsent(ExlConst.TYPE_USER_CODE, "");
map.putIfAbsent(ExlConst.TYPE_CUSTOMER_CODE, "");
if(!map.isEmpty()){ if(!map.isEmpty()){
for (String columnName : map.keySet()) { for (String columnName : map.keySet()) {
String searchValue = map.get(columnName); String searchValue = map.get(columnName);
@ -112,24 +128,87 @@ public class ExlTableDataController {
currColumnConf = columnConf; currColumnConf = columnConf;
break; 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){ if(currColumnConf==null){
continue; continue;
} }
String colType = currColumnConf.getColumnType();
if(!adminFlag){
// 权限范围:0->无;1->本人;2->下属;3->全部(本人级下属)
Integer scope = currColumnConf.getScope();
Set<String> values = new HashSet<>();
// 业务类型
String userId = AuthContextUtils.getSysUserId();
SysUser sysUser = sysUserMapper.selectById(userId);
if(scope>0){
if (colType.equals(ExlConst.TYPE_USER_CODE)){
values.add("0");
if(scope==1){
values.add(sysUser.getCode());
}else {
List<String> childIds = postUserService.listByChildIds(AuthContextUtils.getSysUserId());
if(childIds.size()>0){
List<SysUser> sysUsers = sysUserMapper.selectBatchIds(childIds);
List<String> 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<String> userIds = new ArrayList<>();
userIds.add(userId);
if(scope>1){
List<String> childIds = postUserService.listByChildIds(AuthContextUtils.getSysUserId());
userIds.addAll(childIds);
}
LambdaQueryWrapper<HisUserSupplier> husLqw = new LambdaQueryWrapper<>();
husLqw.in(HisUserSupplier::getUserId,userIds);
husLqw.select(HisUserSupplier::getSupplierCode);
List<HisUserSupplier> hisUserSuppliers = hisUserSupplierMapper.selectList(husLqw);
List<String> supplierCodes = hisUserSuppliers.stream()
.map(HisUserSupplier::getSupplierCode).distinct().collect(Collectors.toList());
values.addAll(supplierCodes);
ExlConditionDto conditionDto = new ExlConditionDto(orgColumn,values);
in_conditions.add(conditionDto);
}
}
}
//基础的数据类型
if(columnName.contains(ExlConst.PRE_COLUMN_START)){ if(columnName.contains(ExlConst.PRE_COLUMN_START)){
ExlConditionDto conditionDto = new ExlConditionDto(orgColumn,searchValue); ExlConditionDto conditionDto = new ExlConditionDto(orgColumn,searchValue);
ge_conditions.add(conditionDto); ge_conditions.add(conditionDto);
}else if (columnName.contains(ExlConst.PRE_COLUMN_END)){ }else if (columnName.contains(ExlConst.PRE_COLUMN_END)){
ExlConditionDto conditionDto = new ExlConditionDto(orgColumn,searchValue); ExlConditionDto conditionDto = new ExlConditionDto(orgColumn,searchValue);
if(currColumnConf.getColumnType().equals(ExlConst.DATETIME_TYPE)){ if(colType.equals(ExlConst.DATETIME_TYPE)){
conditionDto.setValue(searchValue+" 23:59:59"); conditionDto.setValue(searchValue+" 23:59:59");
} }
le_conditions.add(conditionDto); le_conditions.add(conditionDto);
}else { }else {
ExlConditionDto conditionDto = new ExlConditionDto(columnName,searchValue); ExlConditionDto conditionDto = new ExlConditionDto(columnName,searchValue);
if (currColumnConf.getColumnType().equals(ExlConst.TYPE_INT)){ if (colType.equals(ExlConst.TYPE_INT)){
eq_conditions.add(conditionDto); eq_conditions.add(conditionDto);
}else if (currColumnConf.getColumnType().equals(ExlConst.TYPE_STRING)){ }else{
like_conditions.add(conditionDto); like_conditions.add(conditionDto);
} }
} }
@ -139,6 +218,7 @@ public class ExlTableDataController {
queryMap.put("geList",ge_conditions); queryMap.put("geList",ge_conditions);
queryMap.put("eqList",eq_conditions); queryMap.put("eqList",eq_conditions);
queryMap.put("likeList",like_conditions); queryMap.put("likeList",like_conditions);
queryMap.put("inBizList",in_conditions);
return queryMap; return queryMap;
} }
@ -159,7 +239,8 @@ public class ExlTableDataController {
columnLqw.orderByAsc(ExlColumnConf::getSort); columnLqw.orderByAsc(ExlColumnConf::getSort);
List<ExlColumnConf> columnList = exlColumnConfService.list(columnLqw); List<ExlColumnConf> columnList = exlColumnConfService.list(columnLqw);
// query // query
Map<String, Object> queryMap = buildQueryMap(map, columnList); boolean adminFlag = exlTableUserService.checkAdmin(tableConf.getId(),AuthContextUtils.getSysUserId())>0;
Map<String, Object> queryMap = buildQueryMap(map, columnList,adminFlag);
String targetTableName = ExlConst.TABLE_NAME_PRE + tableConf.getTableName(); String targetTableName = ExlConst.TABLE_NAME_PRE + tableConf.getTableName();
List<Map<String,Object>> list = exlTableConfMapper.listData(targetTableName,queryMap); List<Map<String,Object>> list = exlTableConfMapper.listData(targetTableName,queryMap);
this.formatListData(list); this.formatListData(list);
@ -204,7 +285,15 @@ public class ExlTableDataController {
//insert into table (cloumns) values (vals),(vals) //insert into table (cloumns) values (vals),(vals)
StringBuilder insertSql = new StringBuilder("insert into "+targetTableName +"( `union_row_id`,"); StringBuilder insertSql = new StringBuilder("insert into "+targetTableName +"( `union_row_id`,");
for (int i = 0; i < columnList.size(); i++) { 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<columnList.size()){ if(i+1<columnList.size()){
insertSql.append(","); insertSql.append(",");
} }
@ -223,6 +312,27 @@ public class ExlTableDataController {
ExlColumnConf columnConf = columnList.get(i); ExlColumnConf columnConf = columnList.get(i);
String string = jsonObject.getString(columnConf.getColumnName()); String string = jsonObject.getString(columnConf.getColumnName());
insertSql.append("'"+string+"'"); insertSql.append("'"+string+"'");
if(columnConf.getColumnType().equals(ExlConst.TYPE_USER_CODE)){
insertSql.append(",");
LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<>();
lqw.eq(SysUser::getCode,string);
lqw.select(SysUser::getCode,SysUser::getName);
List<SysUser> 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<BmsSupplier> lqw = new LambdaQueryWrapper<>();
lqw.eq(BmsSupplier::getCode,string);
lqw.select(BmsSupplier::getCode,BmsSupplier::getName);
List<BmsSupplier> supplierList = bmsSupplierMapper.selectList(lqw);
if (supplierList.size()>0){
String name = supplierList.get(0).getName();
insertSql.append("'"+name+"'");
}
}
if(i+1<columnList.size()){ if(i+1<columnList.size()){
insertSql.append(", "); insertSql.append(", ");
} }

6
src/main/java/com/qs/serve/modules/exl/entity/ExlColumnConf.java

@ -60,6 +60,9 @@ public class ExlColumnConf implements Serializable {
/** 空值标识 */ /** 空值标识 */
private Integer keyFlag; private Integer keyFlag;
/** 权限范围:0->无;1->本人;2->下属;3->全部(本人级下属) */
private Integer scope;
private Integer sort; private Integer sort;
/** 创建时间 */ /** 创建时间 */
@ -92,6 +95,9 @@ public class ExlColumnConf implements Serializable {
@JsonProperty @JsonProperty
private String delFlag; private String delFlag;
/** 在编辑页隐藏标识(0:显示;1:隐藏) */
@TableField(exist = false)
private Integer hideOnEditFlag;
public static ExlColumnConf toNewObject(ExlColumnConf source){ public static ExlColumnConf toNewObject(ExlColumnConf source){
ExlColumnConf columnConf = new ExlColumnConf(); ExlColumnConf columnConf = new ExlColumnConf();

12
src/main/java/com/qs/serve/modules/exl/entity/ExlTableConf.java

@ -98,6 +98,18 @@ public class ExlTableConf implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private List<?> queryList; private List<?> queryList;
/**
* 管理员列表
*/
@TableField(exist = false)
private List<?> adminList;
/**
* 是否管理员
*/
@TableField(exist = false)
private Integer adminFlag;
public static ExlTableConf toNewObject(ExlTableConf source){ public static ExlTableConf toNewObject(ExlTableConf source){
ExlTableConf tableConf = new ExlTableConf(); ExlTableConf tableConf = new ExlTableConf();
tableConf.setId(source.getId()); tableConf.setId(source.getId());

106
src/main/java/com/qs/serve/modules/exl/entity/ExlTableUser.java

@ -0,0 +1,106 @@
package com.qs.serve.modules.exl.entity;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 实体类
* @author YenHex
* @since 2023-09-25
*/
@Data
@TableName("exl_table_user")
public class ExlTableUser implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 表配置id */
@NotNull(message = "表配置id不能为空")
private Long tableConfId;
/** 用户id */
@NotBlank(message = "用户id不能为空")
@Length(max = 255,message = "用户id长度不能超过255字")
private String userId;
/** 用户编码 */
@NotBlank(message = "用户编码不能为空")
@Length(max = 255,message = "用户编码长度不能超过255字")
private String userCode;
/** 用户名称 */
@NotBlank(message = "用户名称不能为空")
@Length(max = 255,message = "用户名称长度不能超过255字")
private String userName;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 最后更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
public static ExlTableUser toNewObject(ExlTableUser source){
ExlTableUser tableUser = new ExlTableUser();
tableUser.setId(source.getId());
tableUser.setTableConfId(source.getTableConfId());
tableUser.setUserId(source.getUserId());
tableUser.setUserCode(source.getUserCode());
tableUser.setUserName(source.getUserName());
tableUser.setRemark(source.getRemark());
tableUser.setCreateTime(source.getCreateTime());
tableUser.setUpdateTime(source.getUpdateTime());
tableUser.setTenantId(source.getTenantId());
tableUser.setCreateBy(source.getCreateBy());
tableUser.setUpdateBy(source.getUpdateBy());
tableUser.setDelFlag(source.getDelFlag());
return tableUser;
}
}

18
src/main/java/com/qs/serve/modules/exl/entity/bo/ExlTableUserBo.java

@ -0,0 +1,18 @@
package com.qs.serve.modules.exl.entity.bo;
import lombok.Data;
import java.util.List;
/**
* @author YenHex
* @since 2023/9/25
*/
@Data
public class ExlTableUserBo {
private Long tableConfId;
private List<String> userIds;
}

15
src/main/java/com/qs/serve/modules/exl/entity/dto/ExlConditionDto.java

@ -3,16 +3,29 @@ package com.qs.serve.modules.exl.entity.dto;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import java.util.Set;
/** /**
* @author YenHex * @author YenHex
* @since 2023/8/15 * @since 2023/8/15
*/ */
@Data @Data
@AllArgsConstructor
public class ExlConditionDto { public class ExlConditionDto {
String column; String column;
String value; String value;
Set<String> values;
public ExlConditionDto(String column, String value) {
this.column = column;
this.value = value;
}
public ExlConditionDto(String column, Set<String> values) {
this.column = column;
this.values = values;
}
} }

3
src/main/java/com/qs/serve/modules/exl/entity/dto/ExlTableBo.java

@ -3,6 +3,7 @@ package com.qs.serve.modules.exl.entity.dto;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.qs.serve.modules.exl.entity.ExlColumnConf; import com.qs.serve.modules.exl.entity.ExlColumnConf;
import com.qs.serve.modules.exl.entity.bo.ExlTableUserBo;
import lombok.Data; import lombok.Data;
import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.Length;
@ -36,4 +37,6 @@ public class ExlTableBo {
private List<ExlColumnConf> columnList; private List<ExlColumnConf> columnList;
/** 管理员配置 */
private ExlTableUserBo adminParam;
} }

14
src/main/java/com/qs/serve/modules/exl/mapper/ExlTableUserMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.exl.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.exl.entity.ExlTableUser;
/**
* Mapper
* @author YenHex
* @date 2023-09-25
*/
public interface ExlTableUserMapper extends BaseMapper<ExlTableUser> {
}

19
src/main/java/com/qs/serve/modules/exl/service/ExlTableUserService.java

@ -0,0 +1,19 @@
package com.qs.serve.modules.exl.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.exl.entity.ExlTableUser;
import com.qs.serve.modules.exl.entity.bo.ExlTableUserBo;
/**
* 服务接口
* @author YenHex
* @date 2023-09-25
*/
public interface ExlTableUserService extends IService<ExlTableUser> {
void confAdmins(ExlTableUserBo param);
Integer checkAdmin(Long tableConfId,String userId);
}

20
src/main/java/com/qs/serve/modules/exl/service/impl/ExlTableConfServiceImpl.java

@ -5,8 +5,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.Assert;
import com.qs.serve.modules.exl.common.ExlConst; import com.qs.serve.modules.exl.common.ExlConst;
import com.qs.serve.modules.exl.entity.ExlColumnConf; import com.qs.serve.modules.exl.entity.ExlColumnConf;
import com.qs.serve.modules.exl.entity.bo.ExlTableUserBo;
import com.qs.serve.modules.exl.entity.dto.ExlTableBo; import com.qs.serve.modules.exl.entity.dto.ExlTableBo;
import com.qs.serve.modules.exl.service.ExlColumnConfService; import com.qs.serve.modules.exl.service.ExlColumnConfService;
import com.qs.serve.modules.exl.service.ExlTableUserService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -16,6 +18,7 @@ import com.qs.serve.modules.exl.mapper.ExlTableConfMapper;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* 表配置 服务实现类 * 表配置 服务实现类
@ -28,6 +31,7 @@ import java.util.List;
public class ExlTableConfServiceImpl extends ServiceImpl<ExlTableConfMapper,ExlTableConf> implements ExlTableConfService { public class ExlTableConfServiceImpl extends ServiceImpl<ExlTableConfMapper,ExlTableConf> implements ExlTableConfService {
private final ExlColumnConfService columnConfService; private final ExlColumnConfService columnConfService;
private final ExlTableUserService tableUserService;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@ -46,6 +50,11 @@ public class ExlTableConfServiceImpl extends ServiceImpl<ExlTableConfMapper,ExlT
a.setId(null); a.setId(null);
}); });
columnConfService.saveBatch(columnList); columnConfService.saveBatch(columnList);
ExlTableUserBo tableUserBo = param.getAdminParam();
if(tableUserBo!=null){
tableUserBo.setTableConfId(tableConf.getId());
tableUserService.confAdmins(tableUserBo);
}
return tableConf; return tableConf;
}else { }else {
//update //update
@ -62,7 +71,11 @@ public class ExlTableConfServiceImpl extends ServiceImpl<ExlTableConfMapper,ExlT
LambdaQueryWrapper<ExlColumnConf> columnLqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<ExlColumnConf> columnLqw = new LambdaQueryWrapper<>();
columnLqw.eq(ExlColumnConf::getTableConfId,param.getId()); columnLqw.eq(ExlColumnConf::getTableConfId,param.getId());
columnConfService.remove(columnLqw); columnConfService.remove(columnLqw);
List<ExlColumnConf> columnList = param.getColumnList(); List<ExlColumnConf> columnList = param.getColumnList().stream().filter(
//忽略业务拓展列
a->!a.getColumnName().contains("_ext_cus_name")
&&!a.getColumnName().contains("_ext_usr_name")
).collect(Collectors.toList());
columnList.forEach(a->{ columnList.forEach(a->{
a.setTableConfId(tableId); a.setTableConfId(tableId);
if(a.getColumnType().equals(ExlConst.TYPE_MONEY)){ if(a.getColumnType().equals(ExlConst.TYPE_MONEY)){
@ -72,6 +85,11 @@ public class ExlTableConfServiceImpl extends ServiceImpl<ExlTableConfMapper,ExlT
}); });
columnConfService.saveBatch(columnList); columnConfService.saveBatch(columnList);
} }
ExlTableUserBo tableUserBo = param.getAdminParam();
if(tableUserBo!=null){
tableUserBo.setTableConfId(tableConf.getId());
tableUserService.confAdmins(tableUserBo);
}
return tableConf; return tableConf;
} }

58
src/main/java/com/qs/serve/modules/exl/service/impl/ExlTableUserServiceImpl.java

@ -0,0 +1,58 @@
package com.qs.serve.modules.exl.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.modules.exl.entity.bo.ExlTableUserBo;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.mapper.SysUserMapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.exl.entity.ExlTableUser;
import com.qs.serve.modules.exl.service.ExlTableUserService;
import com.qs.serve.modules.exl.mapper.ExlTableUserMapper;
import java.util.ArrayList;
import java.util.List;
/**
* 服务实现类
* @author YenHex
* @since 2023-09-25
*/
@Slf4j
@Service
@AllArgsConstructor
public class ExlTableUserServiceImpl extends ServiceImpl<ExlTableUserMapper,ExlTableUser> implements ExlTableUserService {
private SysUserMapper sysUserMapper;
@Override
public void confAdmins(ExlTableUserBo param) {
LambdaQueryWrapper<ExlTableUser> rmlqw = new LambdaQueryWrapper<>();
rmlqw.eq(ExlTableUser::getTableConfId,param.getTableConfId());
super.remove(rmlqw);
if(CollectionUtil.isNotEmpty(param.getUserIds())){
List<ExlTableUser> list = new ArrayList<>();
for (String userId : param.getUserIds()) {
SysUser sysUser = sysUserMapper.selectById(userId);
ExlTableUser tableUser = new ExlTableUser();
tableUser.setTableConfId(param.getTableConfId());
tableUser.setUserId(sysUser.getId());
tableUser.setUserCode(sysUser.getCode());
tableUser.setUserName(sysUser.getName());
list.add(tableUser);
}
super.saveBatch(list);
}
}
@Override
public Integer checkAdmin(Long tableConfId, String userId) {
LambdaQueryWrapper<ExlTableUser> lqw = new LambdaQueryWrapper<>();
lqw.eq(ExlTableUser::getTableConfId,tableConfId);
lqw.eq(ExlTableUser::getUserId,userId);
return super.count(lqw)>0?1:0;
}
}

9
src/main/java/com/qs/serve/modules/goods/controller/api/GoodsSpuApi.java

@ -61,6 +61,15 @@ public class GoodsSpuApi {
.or().eq(GoodsSpu::getCategoryThird,selectCateId); .or().eq(GoodsSpu::getCategoryThird,selectCateId);
}); });
} }
List<Long> selectCateIds = param.getSelectCateIds();
if(selectCateIds!=null&&selectCateIds.size()>0){
spuWrapper.and(qw->{
qw.in(GoodsSpu::getCategoryFirst,selectCateIds)
.or().in(GoodsSpu::getCategoryLast,selectCateIds)
.or().in(GoodsSpu::getCategorySecond,selectCateIds)
.or().in(GoodsSpu::getCategoryThird,selectCateIds);
});
}
spuWrapper.eq(GoodsSpu::getShelf,1); spuWrapper.eq(GoodsSpu::getShelf,1);
spuWrapper.orderByDesc(GoodsSpu::getSort); spuWrapper.orderByDesc(GoodsSpu::getSort);
List<GoodsSpu> list = goodsSpuService.list(spuWrapper); List<GoodsSpu> list = goodsSpuService.list(spuWrapper);

3
src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java

@ -141,5 +141,8 @@ public class GoodsSpu implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private List<Long> selectIds; private List<Long> selectIds;
@TableField(exist = false)
private List<Long> selectCateIds;
} }

2
src/main/java/com/qs/serve/modules/oms/controller/OmsOrderItemController.java

@ -37,7 +37,6 @@ public class OmsOrderItemController {
* @return * @return
*/ */
@GetMapping("/listByOrderId/{orderId}") @GetMapping("/listByOrderId/{orderId}")
@PreAuthorize("hasRole('oms:orderItem:query')")
public R<List<OmsOrderItem>> listByOrderId(@PathVariable("orderId")Long orderId){ public R<List<OmsOrderItem>> listByOrderId(@PathVariable("orderId")Long orderId){
LambdaQueryWrapper<OmsOrderItem> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<OmsOrderItem> lqw = new LambdaQueryWrapper<>();
lqw.eq(OmsOrderItem::getOrderId,orderId); lqw.eq(OmsOrderItem::getOrderId,orderId);
@ -52,7 +51,6 @@ public class OmsOrderItemController {
*/ */
@GetMapping("/getById/{id}") @GetMapping("/getById/{id}")
@SysLog(module = SystemModule.BASE, title = "订单明细", biz = BizType.QUERY) @SysLog(module = SystemModule.BASE, title = "订单明细", biz = BizType.QUERY)
@PreAuthorize("hasRole('oms:orderItem:query')")
public R<OmsOrderItem> getById(@PathVariable("id") String id){ public R<OmsOrderItem> getById(@PathVariable("id") String id){
OmsOrderItem omsOrderItem = omsOrderItemService.getById(id); OmsOrderItem omsOrderItem = omsOrderItemService.getById(id);
return R.ok(omsOrderItem); return R.ok(omsOrderItem);

30
src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java

@ -9,6 +9,8 @@ import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.PageUtil;
import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.entity.BmsSupplierAddress;
import com.qs.serve.modules.bms.service.BmsSupplierAddressService;
import com.qs.serve.modules.oms.entity.OmsOrder; import com.qs.serve.modules.oms.entity.OmsOrder;
import com.qs.serve.modules.oms.entity.OmsOrderItem; import com.qs.serve.modules.oms.entity.OmsOrderItem;
import com.qs.serve.modules.oms.entity.bo.OmsCancelOrder; import com.qs.serve.modules.oms.entity.bo.OmsCancelOrder;
@ -17,6 +19,8 @@ import com.qs.serve.modules.oms.entity.bo.OmsOrderPcBo;
import com.qs.serve.modules.oms.entity.vo.OmsConfirmOrderResult; import com.qs.serve.modules.oms.entity.vo.OmsConfirmOrderResult;
import com.qs.serve.modules.oms.service.OmsOrderItemService; import com.qs.serve.modules.oms.service.OmsOrderItemService;
import com.qs.serve.modules.oms.service.OmsOrderService; import com.qs.serve.modules.oms.service.OmsOrderService;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysUserService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -37,6 +41,8 @@ public class OmsOrderApi {
private OmsOrderService omsOrderService; private OmsOrderService omsOrderService;
private OmsOrderItemService omsOrderItemService; private OmsOrderItemService omsOrderItemService;
private BmsSupplierAddressService bmsSupplierAddressService;
private SysUserService sysUserService;
/** /**
* 确认订单 * 确认订单
@ -49,7 +55,7 @@ public class OmsOrderApi {
} }
/** /**
* 创建订单(PC) * 创建订单H5
* @param omsOrderBo * @param omsOrderBo
* @return * @return
*/ */
@ -99,6 +105,28 @@ public class OmsOrderApi {
return R.byPageHelperList(list); return R.byPageHelperList(list);
} }
/**
* 翻页查询(PC,我的业务订单)
* @param param
* @return
*/
@GetMapping("/page4pc")
public R<PageVo<OmsOrder>> getPage4Pc(OmsOrder param){
PageUtil.startPage();
LambdaQueryWrapper<OmsOrder> orderWrapper = new LambdaQueryWrapper<>(param);
orderWrapper.eq(OmsOrder::getUserId,AuthContextUtils.getSysUserId());
List<OmsOrder> list = omsOrderService.list(orderWrapper);
for (OmsOrder order : list) {
BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getById(order.getSupplierAddrId());
order.setAddressInfo(supplierAddress);
SysUser sysUser = sysUserService.getById(order.getCheckUserId());
if(sysUser!=null){
order.setCheckUserInfo(sysUser.toSysUserVo());
}
}
return R.byPageHelperList(list);
}
/** /**
* 根据ID查询 * 根据ID查询
* @param id * @param id

9
src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java

@ -33,6 +33,7 @@ public class OmsOrder implements Serializable {
/** 订单号 */ /** 订单号 */
@NotBlank(message = "订单号不能为空") @NotBlank(message = "订单号不能为空")
@Length(max = 20,message = "订单号长度不能超过20字") @Length(max = 20,message = "订单号长度不能超过20字")
@TableField(exist = false)
private String orderSn; private String orderSn;
/** 供应商ID */ /** 供应商ID */
@ -145,5 +146,13 @@ public class OmsOrder implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private List<?> orderItems; private List<?> orderItems;
/** 订单明细项 */
@TableField(exist = false)
private Object addressInfo;
/** 确认订单人员 */
@TableField(exist = false)
private Object checkUserInfo;
} }

3
src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderPcBo.java

@ -25,6 +25,9 @@ public class OmsOrderPcBo {
/** 创建订单参数(确认订单时可不传) */ /** 创建订单参数(确认订单时可不传) */
private CreateOrderParam createOrderParam; private CreateOrderParam createOrderParam;
/** 收货地址 */
private Long addressId;
@Data @Data
public static class SkuParam{ public static class SkuParam{
/** skuId */ /** skuId */

15
src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java

@ -2,10 +2,7 @@ package com.qs.serve.modules.oms.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.*;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.entity.BmsSupplierAddress; import com.qs.serve.modules.bms.entity.BmsSupplierAddress;
import com.qs.serve.modules.bms.service.BmsSupplierAddressService; import com.qs.serve.modules.bms.service.BmsSupplierAddressService;
@ -155,7 +152,13 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
//todo 计算供应商折扣 //todo 计算供应商折扣
//todo 计算是否有活动优惠 //todo 计算是否有活动优惠
BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getDefault(Long.parseLong(supplier.getId())); //收货地址
BmsSupplierAddress supplierAddress;
if(confirmOrder.getAddressId()!=null){
supplierAddress = bmsSupplierAddressService.getById(confirmOrder.getAddressId());
}else {
supplierAddress = bmsSupplierAddressService.getDefault(Long.parseLong(supplier.getId()));
}
OmsConfirmOrderResult confirmOrderResult = new OmsConfirmOrderResult(); OmsConfirmOrderResult confirmOrderResult = new OmsConfirmOrderResult();
confirmOrderResult.setSupplier(supplier); confirmOrderResult.setSupplier(supplier);
confirmOrderResult.setDefaultAddress(supplierAddress); confirmOrderResult.setDefaultAddress(supplierAddress);
@ -190,7 +193,7 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
} }
List<OmsShoppingCart> shoppingCarts = confirmOrder.getShoppingCarts(); List<OmsShoppingCart> shoppingCarts = confirmOrder.getShoppingCarts();
OmsOrder order = new OmsOrder(); OmsOrder order = new OmsOrder();
order.setOrderSn(StringUtils.generateOrderNo()); order.setOrderSn("SN"+CodeGenUtil.generate(CodeGenUtil.SourceKey.OmsOrder));
order.setSupplierId(Long.parseLong(supplier.getId())); order.setSupplierId(Long.parseLong(supplier.getId()));
order.setSupplierCode(supplier.getCode()); order.setSupplierCode(supplier.getCode());
order.setSupplierName(supplier.getName()); order.setSupplierName(supplier.getName());

8
src/main/java/com/qs/serve/modules/sale/entity/SalePlan.java

@ -32,6 +32,14 @@ public class SalePlan implements Serializable {
@TableId(type = IdType.AUTO) @TableId(type = IdType.AUTO)
private Long id; private Long id;
/** 年 */
@NotNull(message = "年份不能为空")
private Integer yearNum;
/** 月 */
@NotNull(message = "月份不能为空")
private Integer monthNum;
/** 编码 */ /** 编码 */
@NotBlank(message = "编码不能为空") @NotBlank(message = "编码不能为空")
@Length(max = 50,message = "编码长度不能超过50字") @Length(max = 50,message = "编码长度不能超过50字")

9
src/main/java/com/qs/serve/modules/sale/entity/bo/SalePlanBo.java

@ -4,6 +4,7 @@ import lombok.Data;
import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List; import java.util.List;
/** /**
@ -16,6 +17,14 @@ public class SalePlanBo {
/** id */ /** id */
private Long id; private Long id;
/** 年 */
@NotNull(message = "年份不能为空")
private Integer yearNum;
/** 月 */
@NotNull(message = "月份不能为空")
private Integer monthNum;
/** 标题 */ /** 标题 */
@NotBlank(message = "标题不能为空") @NotBlank(message = "标题不能为空")
private String planTitle; private String planTitle;

2
src/main/java/com/qs/serve/modules/sale/service/impl/SalePlanServiceImpl.java

@ -55,6 +55,8 @@ public class SalePlanServiceImpl extends ServiceImpl<SalePlanMapper,SalePlan> im
SysUser sysUser = sysUserMapper.selectById(userId); SysUser sysUser = sysUserMapper.selectById(userId);
BmsSupplier supplier = supplierMapper.selectById(param.getSupplierId()); BmsSupplier supplier = supplierMapper.selectById(param.getSupplierId());
SalePlan salePlan = new SalePlan(); SalePlan salePlan = new SalePlan();
salePlan.setYearNum(param.getYearNum());
salePlan.setMonthNum(param.getMonthNum());
salePlan.setPlanTitle(param.getPlanTitle()); salePlan.setPlanTitle(param.getPlanTitle());
salePlan.setUserId(sysUser.getId()); salePlan.setUserId(sysUser.getId());
salePlan.setUserCode(sysUser.getCode()); salePlan.setUserCode(sysUser.getCode());

4
src/main/java/com/qs/serve/modules/third/PortalOfCostController.java

@ -46,16 +46,16 @@ public class PortalOfCostController {
@PostMapping("createByCostApply") @PostMapping("createByCostApply")
public R<?> createCostProcess(@Valid @RequestBody ProcessCreateCostApplyBo createBo,HttpServletRequest request){ public R<?> createCostProcess(@Valid @RequestBody ProcessCreateCostApplyBo createBo,HttpServletRequest request){
SysSyncLog syncLog = new SysSyncLog(); SysSyncLog syncLog = new SysSyncLog();
syncLog.setFrom("核销系统"); syncLog.setFrom("一站式费用");
syncLog.setUrl(request.getRequestURI()); syncLog.setUrl(request.getRequestURI());
syncLog.setRequestJson(JsonUtil.objectToJson(createBo)); syncLog.setRequestJson(JsonUtil.objectToJson(createBo));
syncLog.setEntityClass(ProcessCreateCostApplyBo.class.getName()); syncLog.setEntityClass(ProcessCreateCostApplyBo.class.getName());
try { try {
log.debug("站式创建费用(费用申请)===>{}", JsonUtil.objectToJson(createBo));
ThirdTokenUtil.checkToken(request); ThirdTokenUtil.checkToken(request);
portalOfCostApplication.createCostProcess(createBo); portalOfCostApplication.createCostProcess(createBo);
syncLog.setSuccessStatus(1); syncLog.setSuccessStatus(1);
} catch (Exception e) { } catch (Exception e) {
log.error("站式创建费用(费用申请)===>{}", JsonUtil.objectToJson(createBo));
syncLog.setFailReason(e.getMessage()); syncLog.setFailReason(e.getMessage());
return R.error(e.getMessage()); return R.error(e.getMessage());
} }

3
src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java

@ -79,6 +79,9 @@ public class VtbVerification implements Serializable {
/** 记录释放标识 */ /** 记录释放标识 */
private Integer regReleaseFlag; private Integer regReleaseFlag;
/** 输入的释放标识 */
private Integer inputReleaseFlag;
/** 金额 */ /** 金额 */
private BigDecimal amount; private BigDecimal amount;

3
src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationBo.java

@ -57,5 +57,8 @@ public class VtbVerificationBo implements Serializable {
/** 原来的审批id */ /** 原来的审批id */
private Long orgVerificationId; private Long orgVerificationId;
/** 是否释放 */
private Integer inputReleaseFlag;
} }

1
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

@ -647,6 +647,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
verification.setCostApplyId(costApply.getId()); verification.setCostApplyId(costApply.getId());
verification.setActivityId(verificationBo.getActivityId()); verification.setActivityId(verificationBo.getActivityId());
verification.setAttachIds(verificationBo.getAttachIds()); verification.setAttachIds(verificationBo.getAttachIds());
verification.setInputReleaseFlag(verificationBo.getInputReleaseFlag());
verification.setSupplierId(activity.getSupplierId()); verification.setSupplierId(activity.getSupplierId());
verification.setSupplierCode(activity.getSupplierCode()); verification.setSupplierCode(activity.getSupplierCode());
verification.setSupplierName(activity.getSupplierName()); verification.setSupplierName(activity.getSupplierName());

15
src/main/resources/mapper/exl/ExlTableConfMapper.xml

@ -55,7 +55,22 @@
<if test="query.likeList!=null and query.likeList.size > 0"> <if test="query.likeList!=null and query.likeList.size > 0">
and and
<foreach collection="query.likeList" item ="item" index="i" separator="and"> <foreach collection="query.likeList" item ="item" index="i" separator="and">
<if test="item.value!=null and item.value != ''">
${item.column} like concat('%', #{item.value} ,'%') ${item.column} like concat('%', #{item.value} ,'%')
</if>
<if test="item.value==null or item.value == ''">
1=1
</if>
</foreach>
</if>
<if test="query.inBizList!=null and query.inBizList.size > 0">
and
<foreach collection="query.inBizList" item ="inItem" index="i" separator="and">
${inItem.column} in (
<foreach collection="inItem.values" item="item" index="i" separator=",">
#{item}
</foreach>
)
</foreach> </foreach>
</if> </if>
</where> </where>

14
src/main/resources/mapper/goods/GoodsSpuMapper.xml

@ -94,6 +94,20 @@
#{selectId} #{selectId}
</foreach> </foreach>
</if> </if>
<if test="query.selectCateIds!=null and query.selectCateIds.size > 0">
and `goods_spu`.`category_first` in
<foreach collection="query.selectCateIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
or `goods_spu`.`category_second` in
<foreach collection="query.selectCateIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
or `goods_spu`.`category_third` in
<foreach collection="query.selectCateIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
</if>
</where> </where>
</select> </select>

Loading…
Cancel
Save