|
@@ -498,9 +498,11 @@ public class FormulaController {
|
|
|
return R.data(map);
|
|
|
}
|
|
|
|
|
|
- @GetMapping("/chart-init")
|
|
|
+ @PostMapping("/chart-init")
|
|
|
@ApiOperationSupport(order = 11)
|
|
|
- public R<Object> chartInit(Long pkeyId,String id){
|
|
|
+ public R<Object> chartInit(@RequestBody ChartOption option){
|
|
|
+ Long pkeyId=option.getPkeyId();
|
|
|
+ String id=option.getId();
|
|
|
WbsTreePrivate wtp = this.wbsTreePrivateService.getOne(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getPKeyId,pkeyId));
|
|
|
if(wtp!=null&&Func.isNotEmpty(id)){
|
|
|
/*获取配置*/
|
|
@@ -514,7 +516,33 @@ public class FormulaController {
|
|
|
String[] rely = Func.toStr(config.get("rely")).split(",");
|
|
|
String ky=rely[0].split(":")[1];
|
|
|
String kx=rely[1].split(":")[1];
|
|
|
- List<Map<String,Object>> dataMap= this.jdbcTemplate.queryForList("select "+ky+","+kx+" from "+wtp.getInitTableName() +" where group_id="+id+" and p_key_id ="+pkeyId);
|
|
|
+ Map<String,Object> formData = option.getData();
|
|
|
+ List<Map<String,Object>> dataMap;
|
|
|
+ if(formData!=null&&formData.size()>0){
|
|
|
+ dataMap=new ArrayList<>();
|
|
|
+ Map<String,Object> md= new HashMap<>();
|
|
|
+ dataMap.add(md);
|
|
|
+ StringBuilder sy= new StringBuilder();
|
|
|
+ StringBuilder sx = new StringBuilder();
|
|
|
+ formData.forEach((k,v)->{
|
|
|
+ String[] ka=k.split("__");
|
|
|
+ if(ky.equals(ka[0])){
|
|
|
+ sy.append(v).append("_^_").append(ka[1]).append("☆");
|
|
|
+ }else if(kx.equals(ka[0])){
|
|
|
+ sx.append(v).append("_^_").append(ka[1]).append("☆");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if(sy.length()>1){
|
|
|
+ sy.deleteCharAt(sy.length()-1);
|
|
|
+ }
|
|
|
+ if(sx.length()>1){
|
|
|
+ sx.deleteCharAt(sx.length()-1);
|
|
|
+ }
|
|
|
+ md.put(ky,sy.toString());
|
|
|
+ md.put(kx,sx.toString());
|
|
|
+ }else{
|
|
|
+ dataMap= this.jdbcTemplate.queryForList("select "+ky+","+kx+" from "+wtp.getInitTableName() +" where group_id="+id+" and p_key_id ="+pkeyId);
|
|
|
+ }
|
|
|
if(Func.isNotEmpty(dataMap)){
|
|
|
Map<String,Object> data = dataMap.get(0);
|
|
|
String dy= Func.toStr(data.get(ky));
|
|
@@ -523,7 +551,7 @@ public class FormulaController {
|
|
|
Map<String,String> coordsMap = FormulaUtils.getElementCell(wtp.getHtmlUrl());
|
|
|
List<ElementData> ly = FormulaUtils.getElementDataList(coordsMap.get(ky),dy);
|
|
|
List<ElementData> lx = FormulaUtils.getElementDataList(coordsMap.get(kx),dx);
|
|
|
- JSONArray jsonArray =new JSONArray();
|
|
|
+ JSONArray jsonArray =new JSONArray();
|
|
|
for(int i=0;i< Math.min(ly.size(),lx.size());i++){
|
|
|
ElementData edy= ly.get(i);
|
|
|
ElementData edx = lx.get(i);
|
|
@@ -534,7 +562,7 @@ public class FormulaController {
|
|
|
if(!jsonArray.isEmpty()){
|
|
|
JSONObject chartData= job.getJSONArray("series").getJSONObject(0);
|
|
|
chartData.put("data",jsonArray);
|
|
|
- return R.data(job.toJSONString());
|
|
|
+ return R.data(job);
|
|
|
}
|
|
|
}
|
|
|
}
|