Commit 75ed5383 by 王炜晨

查询组件查询子表接口

parent ace1140c
......@@ -26,10 +26,12 @@ import com.beecode.bcp.type.TypeConstants;
import com.beecode.inz.common.CommonConstants;
import com.beecode.inz.common.GlobalControllerExceptionHandler;
import com.beecode.inz.common.dao.CommonDao;
import com.beecode.inz.common.dao.QueryComponentDao;
import com.beecode.inz.common.internal.biztrait.InzBizTraitImpl;
import com.beecode.inz.common.internal.dao.ByIdDaoImpl;
import com.beecode.inz.common.internal.dao.CommonDaoImpl;
import com.beecode.inz.common.internal.dao.FollowerDaoImpl;
import com.beecode.inz.common.internal.dao.QueryComponentDaoImpl;
import com.beecode.inz.common.internal.dao.SalesRecordDaoImpl;
import com.beecode.inz.common.internal.scene.ChargeOfMeScene;
import com.beecode.inz.common.internal.scene.ChargeOfMySubordinates;
......@@ -49,15 +51,18 @@ import com.beecode.inz.common.internal.service.ByIdServiceImpl;
import com.beecode.inz.common.internal.service.CommonServiceImpl;
import com.beecode.inz.common.internal.service.FollowerPrivilegeServiceImpl;
import com.beecode.inz.common.internal.service.FollowerServiceImpl;
import com.beecode.inz.common.internal.service.QueryComponentServiceImpl;
import com.beecode.inz.common.internal.service.SalesRecordServiceImpl;
import com.beecode.inz.common.internal.service.TemplateManageServiceImpl;
import com.beecode.inz.common.service.CommonService;
import com.beecode.inz.common.service.QueryComponentService;
import com.beecode.inz.common.util.ApiSecurityHandle;
import com.beecode.inz.common.web.AuthcInfoController;
import com.beecode.inz.common.web.BiztypeViewConfigController;
import com.beecode.inz.common.web.CertifacationController;
import com.beecode.inz.common.web.CommonController;
import com.beecode.inz.common.web.FollowerController;
import com.beecode.inz.common.web.QueryComponentController;
import com.beecode.inz.common.web.SalesRecordController;
/**
......@@ -275,4 +280,18 @@ public class CommonConfiguration {
return new ApiSecurityHandle();
}
@Bean
public QueryComponentController queryComponentController(){
return new QueryComponentController();
}
@Bean
public QueryComponentService queryComponentServiceImpl(){
return new QueryComponentServiceImpl();
}
@Bean
public QueryComponentDao queryComponentDaoImpl(){
return new QueryComponentDaoImpl();
}
}
package com.beecode.inz.common.dao;
import java.util.List;
import java.util.UUID;
import org.json.JSONArray;
import org.json.JSONObject;
import com.beecode.inz.common.pojo.QueryComponentCoulmnData;
public interface QueryComponentDao {
JSONObject queryDetailByMasterId(UUID masterId, String detailModelName, List<QueryComponentCoulmnData> columnList,
int pageSize, int current);
}
package com.beecode.inz.common.internal.dao;
import java.util.List;
import java.util.UUID;
import javax.persistence.Tuple;
import org.hibernate.query.Query;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate5.HibernateTemplate;
import com.beecode.inz.common.dao.QueryComponentDao;
import com.beecode.inz.common.pojo.QueryComponentCoulmnData;
public class QueryComponentDaoImpl implements QueryComponentDao{
@Autowired
private HibernateTemplate template;
@Override
public JSONObject queryDetailByMasterId(UUID masterId, String detailModelName, List<QueryComponentCoulmnData> columnList, int pageSize,
int current) {
return template.execute(session ->{
String hql = "SELECT ";
int i = 0;
for(QueryComponentCoulmnData column : columnList) {
hql += " " + column.getKey();
if(i < columnList.size() - 1) {
hql += ",";
}
i++;
}
hql += " from " + detailModelName + " where master.id =:masterId ";
Query<Tuple> query = session.createQuery(hql, Tuple.class).setFirstResult((current - 1) * pageSize).setMaxResults(pageSize);
query.setParameter("masterId", masterId);
List<Tuple> queryList = query.getResultList();
JSONArray resultList = new JSONArray();
for(Tuple queryResult : queryList) {
JSONObject resultData = new JSONObject();
for(int j = 0 ; j < columnList.size() ; j++) {
resultData.put(columnList.get(j).getKey(), queryResult.get(j));
}
resultList.put(resultData);
}
JSONObject result = new JSONObject();
result.put("data", resultList);
long total = queryDetailCountByMasterId(masterId, detailModelName);
result.put("total", total);
return result;
});
}
private long queryDetailCountByMasterId(UUID masterId, String detailModelName) {
return template.execute(session ->{
String hql = "SELECT count(id) ";
hql += " from " + detailModelName + " where master.id =:masterId ";
Query<Tuple> query = session.createQuery(hql, Tuple.class);
query.setParameter("masterId", masterId);
List<Tuple> queryList = query.getResultList();
Tuple tuple = queryList.get(0);
long count = Long.parseLong(tuple.get(0).toString());
return count;
});
}
}
package com.beecode.inz.common.internal.service;
import java.util.List;
import java.util.UUID;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import com.beecode.inz.common.dao.ByIdDao;
import com.beecode.inz.common.dao.QueryComponentDao;
import com.beecode.inz.common.pojo.QueryComponentCoulmnData;
import com.beecode.inz.common.service.QueryComponentService;
public class QueryComponentServiceImpl implements QueryComponentService {
@Autowired
private QueryComponentDao queryComponentDao;
@Override
public JSONObject queryDetailByMasterId(UUID masterId, String detailModelName, List<QueryComponentCoulmnData> columnList, int pageSize,
int current) {
// TODO Auto-generated method stub
return queryComponentDao.queryDetailByMasterId(masterId, detailModelName, columnList, pageSize, current);
}
}
package com.beecode.inz.common.pojo;
public class QueryComponentCoulmnData {
private String title;
private String key;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
}
package com.beecode.inz.common.service;
import java.util.List;
import java.util.UUID;
import org.json.JSONArray;
import com.beecode.inz.common.pojo.QueryComponentCoulmnData;
public interface QueryComponentService {
Object queryDetailByMasterId(UUID masterId, String detailModelName, List<QueryComponentCoulmnData> columnList, int pageSize,
int current);
}
package com.beecode.inz.common.web;
import java.util.List;
import java.util.UUID;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import com.beecode.inz.common.pojo.QueryComponentCoulmnData;
import com.beecode.inz.common.service.QueryComponentService;
import net.sf.json.JSONArray;
import net.sf.json.JsonConfig;
@RestController
public class QueryComponentController {
@Autowired
private QueryComponentService queryComponentService;
@PostMapping("/queryComponent/queryDetailByMasterId/{masterId}")
public Object queryDetailByMasterId(@PathVariable UUID masterId, @RequestBody String body) {
JSONObject list = new JSONObject(body);
JSONArray array = JSONArray.fromObject(list.get("columnList").toString());
List<QueryComponentCoulmnData> columnList = JSONArray.toList(array, QueryComponentCoulmnData.class);
return queryComponentService.queryDetailByMasterId(masterId, list.getString("detailModelName"), columnList, list.getInt("pageSize"), list.getInt("current")).toString();
}
@PostMapping("/sand/user/queryComponent/queryDetailByMasterId/{masterId}")
public Object queryDetailByMasterIdComcompany(@PathVariable UUID masterId, @RequestBody String body) {
JSONObject list = new JSONObject(body);
JSONArray array = JSONArray.fromObject(list.get("columnList").toString());
List<QueryComponentCoulmnData> columnList = JSONArray.toList(array, QueryComponentCoulmnData.class);
return queryComponentService.queryDetailByMasterId(masterId, list.getString("detailModelName"), columnList, list.getInt("pageSize"), list.getInt("current")).toString();
}
}
......@@ -37,22 +37,6 @@
]
},
"actions": [
{
"param": [],
"enable": "ALL",
"name": "query_export",
"action": "query_export",
"title": "导出",
"type": ""
},
{
"name": "queryRefresh",
"title": "刷新",
"action": "queryRefresh",
"param": [],
"type": "",
"enable": "ALL"
}
],
"table": {
"selectType": "MULTI",
......@@ -150,7 +134,21 @@
"title" : "详情",
"action" : "openDetail",
"param" : {
"modelName" : "123"
"detailModelName" : "com.xyst.dinas.sales.datamodel.NeedPlan$NeedPlanDetail",
"columnList":[
{
"key":"dinasType.dinasTypeName",
"title":"砂石种类"
},
{
"key":"needPlanAmount",
"title":"需用计划量(吨)"
},
{
"key":"effectiveSale",
"title":"销售计划量(吨)"
}
]
},
"type" : ""
} ],
......
......@@ -47,22 +47,6 @@
}
],
"table": {
"actions": [
{
"param": [],
"enable": "ALL",
"name": "query_export",
"action": "query_export",
"title": "导出",
"type": ""
}
],
"selectType": "MULTI",
"serialNumber": "series",
"pageSize": 10,
"orders":[
],
"expand": false,
"columns": [
{
......@@ -163,7 +147,25 @@
"title" : "详情",
"action" : "openDetail",
"param" : {
"modelName" : "123"
"detailModelName" : "com.xyst.dinas.sales.datamodel.SalesPlan$SalesPlanDetail",
"columnList":[
{
"key":"dinasType.dinasTypeName",
"title":"砂石种类"
},
{
"key":"requiredAmount",
"title":"需用计划量(吨)"
},
{
"key":"planAmount",
"title":"销售计划量(吨)"
},
{
"key":"actualSaleAmount",
"title":"实际运输量(吨)"
}
]
},
"type" : ""
} ],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment