Explorar el Código

模板生成,模板的编辑,数据加载

周壕 hace 1 año
padre
commit
bb937c4f48

+ 2 - 17
src/main/java/com/bowintek/practice/controller/TempController.java

@@ -24,18 +24,11 @@ import java.util.UUID;
 @RestController
 @RequestMapping("/api/temp")
 public class TempController {
-    @Autowired
-    private RoleService roleService;
     @Autowired
     private TempService tempService;
     @Autowired
     private AccountService accountService;
 
-    @GetMapping("/getList")
-    public BaseResponse<PageInfo<RoleModel>> getList(@RequestParam("page") int page, @RequestParam("rows") int rows, @RequestParam(required = false) String name, @RequestParam(required = false) Integer userTypeID) {
-        return RespGenerstor.success(roleService.getList(page, rows, name, userTypeID));
-    }
-
     @ResponseBody
     @GetMapping("/getSubjectTree")
     public BaseResponse<List<HashMap<String, Object>>> getSubjectTree(@RequestParam(required = false) String tabName) {
@@ -43,20 +36,12 @@ public class TempController {
     }
 
     @GetMapping("get")
-    public BaseResponse<RoleModel> get(@RequestParam(required = false) String id) {
-        RoleModel data = roleService.get(id);
-
-        if (data == null) {
-            data = new RoleModel();
-            data.roleID = UUID.randomUUID().toString();
-        }
-
-        return RespGenerstor.success(data);
+    public BaseResponse<RoleModel> get(String tempId) {
+        return RespGenerstor.success(tempService.getTemp(tempId));
     }
 
     @PostMapping("/save")
     public BaseResponse<TempObjectModel> saveTemp(@RequestBody TempObjectModel data) {
-
         return RespGenerstor.success(tempService.saveTemp(data, accountService.getLoginUserID()));
     }
 }

+ 4 - 0
src/main/java/com/bowintek/practice/mapper/cquery/TempCQuery.java

@@ -18,4 +18,8 @@ public interface TempCQuery {
     Integer deletesDimensionByTempId(@Param("tempIdList") List<String> tempIdList);
     Integer deletesFieldByTempId(@Param("tempIdList") List<String> tempIdList);
     Integer deletesMeasureByTempId(@Param("tempIdList") List<String> tempIdList);
+
+    List<SrTempdimension> selectDimensionByTempId(@Param("tempIdList") List<String> tempIdList);
+    List<SrTempfield> selectFieldByTempId(@Param("tempIdList") List<String> tempIdList);
+    List<SrTempmeasure> selectMeasureByTempId(@Param("tempIdList") List<String> tempIdList);
 }

+ 38 - 21
src/main/java/com/bowintek/practice/services/impl/TempServiceImpl.java

@@ -9,6 +9,7 @@ import com.bowintek.practice.services.service.TempService;
 import com.bowintek.practice.services.service.UserService;
 import com.bowintek.practice.util.DateUtils;
 import com.bowintek.practice.vo.temp.TempObjectModel;
+import com.bowintek.practice.vo.temp.TempSaveResult;
 import com.bowintek.practice.vo.user.DataRange;
 import com.bowintek.practice.vo.user.UserInfoModel;
 import com.github.pagehelper.PageHelper;
@@ -27,47 +28,63 @@ public class TempServiceImpl implements TempService {
     TempCQuery tempCQuery;
     @Autowired
     SrSaerchtempMapper srSaerchtempMapper;
+    @Autowired
+    SrSubjectMapper srSubjectMapper;
+
+    @Override
+    public TempObjectModel getTemp(String tempId){
+        TempObjectModel data = new TempObjectModel();
+        data.temp = srSaerchtempMapper.selectByPrimaryKey(tempId);
+        data.sub = srSubjectMapper.selectByPrimaryKey(data.temp.getSubId());
+        data.bases = tempCQuery.selectDimensionByTempId(Arrays.asList(data.temp.getTempId()));
+        data.wheres = tempCQuery.selectFieldByTempId(Arrays.asList(data.temp.getTempId()));
+        data.measures = tempCQuery.selectMeasureByTempId(Arrays.asList(data.temp.getTempId()));
+
+        return data;
+    }
 
     @Override
-    public int saveTemp(TempObjectModel data, String userID){
-        int result = 0;
+    public TempSaveResult saveTemp(TempObjectModel data, String userID){
+        TempSaveResult rtn = new TempSaveResult();
         //保存模板主表
         if(data.temp.getTempId().isEmpty()){
+            rtn.tempId = UUID.randomUUID().toString();
             data.temp.setTempId(UUID.randomUUID().toString());
             data.temp.setCreateTime(new Date());
             data.temp.setCreatedBy(userID);
             data.temp.setStatus(0);
-            result += srSaerchtempMapper.insert(data.temp);
-
-            data.bases.forEach(row->{
-                row.setTempFeildId(UUID.randomUUID().toString());
-                row.setTempId(data.temp.getTempId());
-            });
-            data.wheres.forEach(row->{
-                row.setTempFeildId(UUID.randomUUID().toString());
-                row.setTempId(data.temp.getTempId());
-            });
-            data.measures.forEach(row->{
-                row.setTempFeildId(UUID.randomUUID().toString());
-                row.setTempId(data.temp.getTempId());
-            });
+            rtn.effectCount += srSaerchtempMapper.insert(data.temp);
         }
         else{
+            rtn.tempId = data.temp.getTempId();
             data.temp.setModifyTime(new Date());
             data.temp.setModifyBy(userID);
-            result += srSaerchtempMapper.updateByPrimaryKey(data.temp);
+            rtn.effectCount += srSaerchtempMapper.updateByPrimaryKey(data.temp);
 
             tempCQuery.deletesDimensionByTempId(Arrays.asList(data.temp.getTempId()));
             tempCQuery.deletesFieldByTempId(Arrays.asList(data.temp.getTempId()));
             tempCQuery.deletesMeasureByTempId(Arrays.asList(data.temp.getTempId()));
         }
 
+        data.bases.forEach(row->{
+            row.setTempFeildId(UUID.randomUUID().toString());
+            row.setTempId(data.temp.getTempId());
+        });
+        data.wheres.forEach(row->{
+            row.setTempFeildId(UUID.randomUUID().toString());
+            row.setTempId(data.temp.getTempId());
+        });
+        data.measures.forEach(row->{
+            row.setTempFeildId(UUID.randomUUID().toString());
+            row.setTempId(data.temp.getTempId());
+        });
+
         //保存模板 维度、度量、查询信息
-        result += tempCQuery.batchInsertDimension(data.bases);
-        result += tempCQuery.batchInsertField(data.wheres);
-        result += tempCQuery.batchInsertMeasure(data.measures);
+        rtn.effectCount += tempCQuery.batchInsertDimension(data.bases);
+        rtn.effectCount += tempCQuery.batchInsertField(data.wheres);
+        rtn.effectCount += tempCQuery.batchInsertMeasure(data.measures);
 
-        return result;
+        return rtn;
     }
 
     @Override

+ 3 - 1
src/main/java/com/bowintek/practice/services/service/TempService.java

@@ -2,11 +2,13 @@ package com.bowintek.practice.services.service;
 
 import com.bowintek.practice.model.SysMenu;
 import com.bowintek.practice.vo.temp.TempObjectModel;
+import com.bowintek.practice.vo.temp.TempSaveResult;
 
 import java.util.HashMap;
 import java.util.List;
 
 public interface TempService {
     List<HashMap<String,Object>> getSubjectTree(String likeName);
-    int saveTemp(TempObjectModel data, String userID);
+    TempSaveResult saveTemp(TempObjectModel data, String userID);
+    TempObjectModel getTemp(String tempId);
 }

+ 1 - 0
src/main/java/com/bowintek/practice/vo/temp/TempObjectModel.java

@@ -9,6 +9,7 @@ import java.util.List;
 @Data
 public class TempObjectModel {
     public SrSaerchtemp temp;
+    public SrSubject sub;
     public List<SrTempdimension> bases;
     public List<SrTempfield> wheres;
     public List<SrTempmeasure> measures;

+ 12 - 0
src/main/java/com/bowintek/practice/vo/temp/TempSaveResult.java

@@ -0,0 +1,12 @@
+package com.bowintek.practice.vo.temp;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class TempSaveResult {
+    public int effectCount;
+
+    public String tempId;
+}

+ 24 - 0
src/main/resources/mapping/cquery/TempCQuery.xml

@@ -11,6 +11,30 @@
         order by st.createTime desc
     </select>
 
+    <select id="selectDimensionByTempId" resultType="com.bowintek.practice.model.SrTempdimension">
+        select * from sr_tempdimension where 1=1
+        and tempId in
+        <foreach collection="tempIdList" item="tempId" index="index" open="(" close=")" separator=",">
+            #{tempId}
+        </foreach>
+    </select>
+
+    <select id="selectFieldByTempId" resultType="com.bowintek.practice.model.SrTempfield">
+        select * from sr_tempfield where 1=1
+        and tempId in
+        <foreach collection="tempIdList" item="tempId" index="index" open="(" close=")" separator=",">
+            #{tempId}
+        </foreach>
+    </select>
+
+    <select id="selectMeasureByTempId" resultType="com.bowintek.practice.model.SrTempmeasure">
+        select * from sr_tempmeasure where 1=1
+        and tempId in
+        <foreach collection="tempIdList" item="tempId" index="index" open="(" close=")" separator=",">
+            #{tempId}
+        </foreach>
+    </select>
+
     <delete id="deletesDimensionByTempId">
         delete from sr_tempdimension where 1=1
         and tempId in

+ 3 - 0
vue/src/components/basic/query/drag-base.vue

@@ -207,6 +207,9 @@
           row.disOrder = index;
         });
         return this.tagList;
+      },
+      setTagList(list){
+        this.tagList = list;
       }
     }
   })

+ 25 - 5
vue/src/components/basic/query/drag-where.vue

@@ -89,7 +89,7 @@
   import {defineComponent, computed} from "vue";
   import DragBase from './drag-base.vue'
   import type {SelectProps} from 'ant-design-vue';
-  import type { Dayjs } from 'dayjs';
+  import dayjs, { Dayjs } from 'dayjs';
 
   export default defineComponent({
     name : 'DragWhere',
@@ -178,12 +178,12 @@
             if(row.values[0].operation=="datetime") formatString="YYYY-MM-DD HH:mm:ss";
 
             if(row.values[0].val && row.values[0].val.length>0 && row.values[0].val[0]){
-              row.value1 = row.values[0].val[0].toDate().getTime();
-              row.valueStr1 = row.values[0].val[0].format(formatString);
+              //row.value1 = row.values[0].val[0].toDate().getTime();
+              row.value1 = row.values[0].val[0].format(formatString);
             }
             if(row.values[0].val && row.values[0].val.length>1 && row.values[0].val[1]) {
-              row.value2 = row.values[0].val[1].toDate().getTime();
-              row.valueStr2 = row.values[0].val[1].format(formatString);
+              //row.value2 = row.values[0].val[1].toDate().getTime();
+              row.value2 = row.values[0].val[1].format(formatString);
             }
           }
           else {
@@ -192,6 +192,26 @@
           }
         });
         return this.tagList;
+      },
+      setTagList(list){
+        list.forEach((row)=>{
+          row.values = [{ operation : row.operation, val :row.value1, val2 : row.value2 }];
+
+          if(this.convertDataType(row.dataType)==2){
+            let formatString = "YYYY-MM-DD";
+            if(row.values[0].operation=="datetime") formatString="YYYY-MM-DD HH:mm:ss";
+
+            row.values[0].val = [];
+            if(row.value1 && row.value1.length>0){
+              row.values[0].val.push(dayjs(row.value1,formatString));
+            }
+            if(row.value2 && row.value2.length>0){
+              row.values[0].val.push(dayjs(row.value2,formatString));
+            }
+          }
+        });
+
+        this.tagList = list;
       }
     }
   })

+ 2 - 1
vue/src/views/position/index.vue

@@ -234,7 +234,8 @@ export default defineComponent({
       tabsViewStore.addTabByPath('/position/detail', {id: key});
     };
     const add = () => {
-      tabsViewStore.addTabByPath('/position/edit', {});
+      //tabsViewStore.addTabByPath('/position/edit', {});
+      tabsViewStore.addTabByPath('/query/index', {tempId: 'af029fdd-62ca-443e-9503-f940f40a7fdc'});
     };
     const edit = (key: string) => {
       tabsViewStore.addTabByPath('/position/edit', {id: key});

+ 28 - 2
vue/src/views/query/index.vue

@@ -49,7 +49,7 @@
               </a-form-item>
             </a-col>
             <a-col :span="6" style="text-align: left">
-              <a-button type="primary" html-type="submit" @click="onFinish">查询预览</a-button>
+              <a-button type="primary" html-type="submit" @click="onSelect">查询预览</a-button>
               <a-button html-type="submit" @click="onFinish" style="margin-left: 10px;">保存模板</a-button>
             </a-col>
 
@@ -115,6 +115,7 @@ export default defineComponent({
     const measure = ref<typeof DragMeasure>();
     const base = ref<typeof DragBase>();
     const where = ref<typeof DragWhere>();
+
     const subjectTrees = ref({
       data :[] as TreeProps['treeData'],
       expandedKeys : ['']
@@ -148,10 +149,15 @@ export default defineComponent({
 
         save('temp/save', formState.value).then(result => {
           console.log(result);
+          getTemp(result["tempId"]);
         });
       });
     }
 
+    const onSelect= () =>{
+
+    }
+
     const onDragStart = (event, obj) =>{
       event.dataTransfer.setData("dragData", "-");
       obj.tempFeildId = new Date().getTime()+'';
@@ -173,6 +179,21 @@ export default defineComponent({
     }
     getSubjectTree('');
 
+    const getTemp = async function(tempId){
+      const rtn = await get('temp/get', {tempId : tempId});
+      console.log(rtn);
+      formState.value.temp = rtn.temp;
+      formState.value.sub = rtn.sub;
+      formState.value.bases = rtn.bases;
+      formState.value.wheres = rtn.wheres;
+      formState.value.measures = rtn.measures;
+      readerTable();
+
+      (measure.value as any).setTagList(rtn.measures);
+      (where.value as any).setTagList(rtn.wheres);
+      (base.value as any).setTagList(rtn.bases);
+    }
+
     const onChangeMeasure = (list, obj) => {
       console.log("onChangeMeasure", arguments, list, obj);
       formState.value.measures = list;
@@ -239,6 +260,8 @@ export default defineComponent({
       onChangeBase,
       onDragStart,
       checkSubjectId,
+      onSelect,
+      getTemp,
 
       dataList,
       columns,
@@ -246,7 +269,10 @@ export default defineComponent({
     };
   },
   created() {
-
+    if (history.state.params?.tempId ) {
+      console.log("created",history.state.params?.tempId );
+      this.getTemp(history.state.params?.tempId);
+    }
   },
   activated() {