ERPServiceImpl.java 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package com.uas.eis.service.Impl;
  2. import com.uas.eis.core.config.SpObserver;
  3. import com.uas.eis.dao.*;
  4. import com.uas.eis.sdk.dto.*;
  5. import com.uas.eis.beans.result.Result;
  6. import com.uas.eis.service.ERPService;
  7. import com.uas.eis.utils.BaseUtil;
  8. import com.uas.eis.utils.CollectionUtil;
  9. import com.uas.eis.utils.StringUtil;
  10. import org.slf4j.Logger;
  11. import org.slf4j.LoggerFactory;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.jdbc.core.BeanPropertyRowMapper;
  14. import org.springframework.stereotype.Service;
  15. import java.util.ArrayList;
  16. import java.util.HashMap;
  17. import java.util.List;
  18. import java.util.Map;
  19. /**
  20. * @author wuyx
  21. * @email wuyx@usoftchina.com
  22. * @date 2025-04-25
  23. */
  24. @Service
  25. public class ERPServiceImpl implements ERPService {
  26. private final Logger logger = LoggerFactory.getLogger(this.getClass());
  27. @Autowired
  28. private BaseDao baseDao;
  29. @Override
  30. public Map<String,Object> getList(QueryReq queryReq,String ev) {
  31. Map<String,Object> resMap = new HashMap<>();
  32. if(!"prod".equals(ev)){
  33. SpObserver.putSp("N_DGMT_TEST");
  34. }
  35. String formId = queryReq.getFormId(); //表单名称
  36. String fieldKeys = queryReq.getFieldKeys(); //字段名
  37. String filterString = queryReq.getFilterString(); //字段名
  38. String orderString = queryReq.getOrderString(); //排序条件
  39. Integer topRowCount = queryReq.getTopRowCount(); //返回记录行数,0 不限制
  40. Integer page = queryReq.getStartRow(); //起始行数(分页显示用) 0 默认从第一行记录
  41. Integer pageSize = queryReq.getLimit(); //最多行数 默认2000
  42. page = (page == 0) ? 1 : page;
  43. pageSize = (pageSize == 0) ? 2000 : pageSize;
  44. int start = ((page - 1) * pageSize + 1);
  45. int end = page * pageSize;
  46. List<Map<String, Object>> dataList = new ArrayList<>();
  47. resMap.put("Data",dataList);
  48. if(!StringUtil.hasText(formId)){
  49. resMap.put("Code","1001");
  50. resMap.put("Msg","请传入FormId");
  51. return resMap;
  52. }
  53. String sql_ = baseDao.queryForObject("select max(sql_) from MES_QUERYSQL_CONFIG WHERE FORMID ='"+formId+"'",String.class);
  54. if(!StringUtil.hasText(sql_)){
  55. resMap.put("Code","1002");
  56. resMap.put("Msg","请传入正确FormId。");
  57. return resMap;
  58. }
  59. sql_= "SELECT "+(StringUtil.hasText(fieldKeys) ? fieldKeys:"*")+" from "+sql_ ;
  60. if(StringUtil.hasText(filterString)){
  61. sql_ = sql_+" where "+ filterString;
  62. }
  63. if(StringUtil.hasText(orderString)){
  64. sql_ = sql_+" order by "+ orderString;
  65. }
  66. StringBuffer querySql = new StringBuffer("select * from (select TT.*, ROWNUM rn from ( ");
  67. querySql.append(sql_);
  68. querySql.append(" )TT where ROWNUM <= ");
  69. querySql.append(end);
  70. querySql.append(") where rn >= ");
  71. querySql.append(start);
  72. try{
  73. dataList = baseDao.queryForList(querySql.toString());
  74. } catch (Exception exception){
  75. logger.info("querySql:查询有误!请检查传入筛选字段或条件是否有误. {}",querySql.toString());
  76. // exception.printStackTrace();
  77. resMap.put("Code","1003");
  78. resMap.put("Msg","查询有误!请检查传入筛选字段或条件是否有误.");
  79. return resMap;
  80. }
  81. if(dataList.size() == 0){
  82. resMap.put("Code","1004");
  83. resMap.put("Msg","查询数据不存在.");
  84. return resMap;
  85. }
  86. resMap.put("Data",dataList);
  87. resMap.put("Code","200");
  88. resMap.put("Msg","OK");
  89. return resMap;
  90. }
  91. }