diff --git a/lms/nladmin-system/src/main/java/org/nl/AppRun.java b/lms/nladmin-system/src/main/java/org/nl/AppRun.java index 48763c8d9..9d230504a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/AppRun.java +++ b/lms/nladmin-system/src/main/java/org/nl/AppRun.java @@ -1,10 +1,16 @@ package org.nl; import cn.dev33.satoken.annotation.SaIgnore; +import cn.hutool.core.util.IdUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.alicp.jetcache.anno.config.EnableCreateCacheAnnotation; import com.alicp.jetcache.anno.config.EnableMethodCache; import io.swagger.annotations.Api; import org.mybatis.spring.annotation.MapperScan; +import org.nl.common.utils.MapOf; +import org.nl.modules.wql.WQL; +import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -70,5 +76,108 @@ public class AppRun { public String index() { return "Backend service started successfully"; } + @GetMapping("/w") // 最后可以去掉这个方法 + @SaIgnore + public String index2() { + // 采用循环+判断进行铺设图标, 可以通过舞台编辑协助完成 + WQLObject stageTab = WQLObject.getWQLObject("stage"); + WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); + JSONObject save = new JSONObject(); + JSONArray nodes = new JSONArray(); + JSONArray edges = new JSONArray(); + int x = 50; // 首个位置 + int y = 50; + int step = 5; + String type = "html-node"; + int nodeSizeW = 50; + int nodeSizeH = 50; + for (int i = 2; i < 23; i=i+2) { // 第几块,每两块为一块 + // 获取列数col_num + System.out.println( (i>=10?"3":"30") + i); + JSONObject jsonObject = WQL.getWO("ss").addParamMap(MapOf.of("flag", "1" + , "block_num", (i>=10?"3":"30") + i)).process().uniqueResult(0); + int num = Integer.parseInt(jsonObject.getString("num")); + for (int j = 1; j <= num; j++) { + // 获取2,1....块的数据 + JSONArray array = attrTab.query("block_num IN ('" + (i>=10?"3":"30") + i + "','" + + ((i-1)>=10?"3":"30") + (i - 1) + "') AND " + + "layer_num = 3 AND col_num = " + j, "block_num DESC, row_num DESC").getResultJSONArray(0); + for (int k = 0; k < array.size(); k++) { // 1,2...块的每列数据 + JSONObject object = array.getJSONObject(k); + if (object.getString("is_delete").equals("1")) { + x = x + step + nodeSizeW; + continue; + } + // 设置节点,只需要struct_id, 自定义参数数据都加载properties对象里面 + JSONObject node = new JSONObject(); + node.put("id", IdUtil.getSnowflake(1,1).nextIdStr()); + node.put("type", type); + node.put("x", x); + node.put("y", y); + JSONObject properties = new JSONObject(); + JSONObject nodeSize = new JSONObject(); + nodeSize.put("width", nodeSizeW); + nodeSize.put("height", nodeSizeH); + properties.put("nodeSize", nodeSize); + properties.put("struct_id", object.getString("struct_id")); // 灵活配置,其他为固定参数 + node.put("properties", properties); + node.put("zIndex", "2023"); + x = x + step + nodeSizeW; + nodes.add(node); + if (k+1 < array.size()) { // 如果块与块不同,空一个距离 + JSONObject object2 = array.getJSONObject(k+1); + if (!object2.getString("block_num").equals(object.getString("block_num"))) { + JSONObject node2 = new JSONObject(); + node2.put("id", IdUtil.getSnowflake(1,1).nextIdStr()); + node2.put("type", type); + node2.put("x", x); + node2.put("y", y); + JSONObject properties2 = new JSONObject(); + JSONObject nodeSize2 = new JSONObject(); + nodeSize2.put("width", nodeSizeW); + nodeSize2.put("height", nodeSizeH); + properties2.put("nodeSize", nodeSize2); + properties2.put("flag", "1"); + properties2.put("transform", 90); + node2.put("properties", properties2); + node2.put("zIndex", "2023"); + x = x + step + nodeSizeW; + nodes.add(node2); + } + } + } + // 下一列 + x = 50; + y = y + step + nodeSizeH; + } + // 下一个块 + x = 50; + for (int j = 0; j < 16; j++) { // 铺设一行道路 + JSONObject node2 = new JSONObject(); + node2.put("id", IdUtil.getSnowflake(1,1).nextIdStr()); + node2.put("type", type); + node2.put("x", x); + node2.put("y", y); + JSONObject properties2 = new JSONObject(); + JSONObject nodeSize2 = new JSONObject(); + nodeSize2.put("width", nodeSizeW); + nodeSize2.put("height", nodeSizeH); + properties2.put("nodeSize", nodeSize2); + properties2.put("flag", "1"); + node2.put("properties", properties2); + node2.put("zIndex", "2023"); + x = x + step + nodeSizeW; + nodes.add(node2); + } + x = 50; + y = y + step + nodeSizeH; + } + save.put("nodes", nodes); + save.put("edges", edges); + JSONObject jsonObject = stageTab.query("stage_code = 'AS_3'").uniqueResult(0); + jsonObject.put("stage_data", save); + stageTab.update(jsonObject); + return "Backend service started successfully"; + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/ss.wql b/lms/nladmin-system/src/main/java/org/nl/ss.wql new file mode 100644 index 000000000..4f9c18679 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/ss.wql @@ -0,0 +1,54 @@ +[交易说明] + 交易名: 半成品出库 + 所属模块: + 功能简述: + 版权所有: + 表引用: + 版本经历: + +[数据库] + --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 + +[IO定义] + ################################################# + ## 表字段对应输入参数 + ################################################# + 输入.flag TYPEAS s_string + 输入.block_num TYPEAS s_string + + +[临时表] + --这边列出来的临时表就会在运行期动态创建 + +[临时变量] + --所有中间过程变量均可在此处定义 + +[业务过程] + + ########################################## + # 1、输入输出检查 # + ########################################## + + + ########################################## + # 2、主过程前处理 # + ########################################## + + + ########################################## + # 3、业务主过程 # + ########################################## + IF 输入.flag = "1" + QUERY + SELECT + MAX(col_num) as num + FROM + `st_ivt_structattr` + WHERE + 1=1 + OPTION 输入.block_num <> "" + block_num = 输入.block_num + ENDOPTION + ENDSELECT + ENDQUERY + ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/StructattrController.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/StructattrController.java index c83a71661..3c1928112 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/StructattrController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/StructattrController.java @@ -2,6 +2,7 @@ package org.nl.wms.basedata.st.rest; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -73,4 +74,12 @@ public class StructattrController { structattrService.changeActive(json); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } + + @PostMapping("/getStructByCodes") + @Log("获取仓位信息") + @ApiOperation("获取仓位信息") + public ResponseEntity getStructByCodes(@RequestBody String json){ + JSONArray jsonArray = JSONArray.parseArray(json); + return new ResponseEntity<>(structattrService.getStructByCodes(jsonArray), HttpStatus.OK); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/StructattrService.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/StructattrService.java index b316562f2..388838755 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/StructattrService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/StructattrService.java @@ -1,6 +1,7 @@ package org.nl.wms.basedata.st.service; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.nl.wms.basedata.st.service.dto.StructattrDto; import org.springframework.data.domain.Pageable; @@ -69,4 +70,9 @@ public interface StructattrService { */ void changeActive(JSONObject json); + /** + * 获取仓位信息 + * @return + */ + JSONArray getStructByCodes(JSONArray json); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructattrServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructattrServiceImpl.java index ba18e91a6..fe5546dba 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructattrServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructattrServiceImpl.java @@ -11,6 +11,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.common.utils.MapOf; import org.nl.modules.common.exception.BadRequestException; import org.nl.common.utils.SecurityUtils; import org.nl.wms.basedata.st.service.SectattrService; @@ -240,4 +241,52 @@ public class StructattrServiceImpl implements StructattrService { WQLObject.getWQLObject("sch_base_point").update(json, " point_id = '" + struct_id + "'"); } + @Override + public JSONArray getStructByCodes(JSONArray jsonArray) { + /** + * jsonArry: 所有组件的信息,包括组件本身的id以及仓位id,组件id是用来给前端做对应筛选使用,如果没有仓位id证明不是 + * 仓位组件,故不做处理,可以不用返回数据。 + */ + WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); + JSONArray arr = new JSONArray(); + for (int i = 0; i < jsonArray.size(); i++) { + JSONObject obj = new JSONObject(); + JSONObject js = jsonArray.getJSONObject(i); + String struct_id = js.getString("struct_id"); + + if (ObjectUtil.isEmpty(struct_id)) continue; + + int struct_status = 2; + // 获取信息 1蓝色空载具 2黄色木箱 3绿色空位 4灰色禁用 + // 查找详细信息, 这里可能是有多条数据 + JSONArray array = WQL + .getWO("QST_STRUCTATTR") + .addParamMap(MapOf.of("struct_id", struct_id, "flag", "1")) + .process() + .getResultJSONArray(0); + // 获取仓位表中的信息 + JSONObject strInfo = attrTab + .query("struct_id = '" + struct_id + "'") + .uniqueResult(0); + if (strInfo.getString("is_delete").equals("1")) { + // 被删掉 + struct_status = 4; + } else if (ObjectUtil.isEmpty(strInfo.getString("storagevehicle_code"))) { + // 空位 + struct_status = 3; + } else if (ObjectUtil.isNotEmpty(strInfo.getString("storagevehicle_code")) + && strInfo.getString("sect_code").equals("KTP01")) { + struct_status = 1; + } + // 剩余层数货位信息没统计,统计可以用obj.put(key, value)返给前端,前端在initStatus()就可以遍历去获取,给节点赋值 + obj.put("data", array); + obj.put("struct_status", struct_status); + obj.put("struct_id", strInfo.getString("struct_id")); + obj.put("struct_code", strInfo.getString("struct_code")); + obj.put("id", js.getString("id")); // 设备不存在就只保留id,方便前端查看 + arr.add(obj); + } + return arr; + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STRUCTATTR.wql b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STRUCTATTR.wql new file mode 100644 index 000000000..065bafe58 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STRUCTATTR.wql @@ -0,0 +1,62 @@ +[交易说明] + 交易名: 将海亮的物料导入mysql + 所属模块: + 功能简述: + 版权所有: + 表引用: + 版本经历: + +[数据库] + --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 + +[IO定义] + ################################################# + ## 表字段对应输入参数 + ################################################# + 输入.flag TYPEAS s_string + 输入.struct_id TYPEAS s_string + +[临时表] + --这边列出来的临时表就会在运行期动态创建 + +[临时变量] + --所有中间过程变量均可在此处定义 + +[业务过程] + + ########################################## + # 1、输入输出检查 # + ########################################## + + + ########################################## + # 2、主过程前处理 # + ########################################## + + + ########################################## + # 3、业务主过程 # + ########################################## + + IF 输入.flag = "1" + QUERY + SELECT + attr.*, + sub.package_box_sn, + sub.quanlity_in_box, + sub.box_weight, + sub.sale_order_name, + sub.container_name, + sub.product_description, + sub.net_weight + FROM + st_ivt_structattr attr + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.package_box_sn = attr.storagevehicle_code + WHERE + 1 = 1 + OPTION 输入.struct_id <> "" + attr.struct_id = 输入.struct_id + ENDOPTION + ENDSELECT + ENDQUERY + ENDIF diff --git a/lms/nladmin-ui/package.json b/lms/nladmin-ui/package.json index 81ea67be7..b4e80d24f 100644 --- a/lms/nladmin-ui/package.json +++ b/lms/nladmin-ui/package.json @@ -33,7 +33,7 @@ "url": "https://github.com/elunez/eladmin/issues" }, "dependencies": { - "@logicflow/core": "^1.1.22", + "@logicflow/core": "^1.2.3", "@logicflow/extension": "^1.1.22", "@riophae/vue-treeselect": "0.4.0", "af-table-column": "^1.0.3", diff --git a/lms/nladmin-ui/src/assets/icons/svg/clear.svg b/lms/nladmin-ui/src/assets/icons/svg/clear.svg new file mode 100644 index 000000000..add284f45 --- /dev/null +++ b/lms/nladmin-ui/src/assets/icons/svg/clear.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/lms/nladmin-ui/src/assets/icons/svg/downAlign.svg b/lms/nladmin-ui/src/assets/icons/svg/downAlign.svg new file mode 100644 index 000000000..d02dce283 --- /dev/null +++ b/lms/nladmin-ui/src/assets/icons/svg/downAlign.svg @@ -0,0 +1,2 @@ + diff --git a/lms/nladmin-ui/src/assets/icons/svg/horizontalAlign.svg b/lms/nladmin-ui/src/assets/icons/svg/horizontalAlign.svg new file mode 100644 index 000000000..ed79e1a7f --- /dev/null +++ b/lms/nladmin-ui/src/assets/icons/svg/horizontalAlign.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/lms/nladmin-ui/src/assets/icons/svg/horizontalDistribution.svg b/lms/nladmin-ui/src/assets/icons/svg/horizontalDistribution.svg new file mode 100644 index 000000000..b4af40e37 --- /dev/null +++ b/lms/nladmin-ui/src/assets/icons/svg/horizontalDistribution.svg @@ -0,0 +1,2 @@ + diff --git a/lms/nladmin-ui/src/assets/icons/svg/leftAlign.svg b/lms/nladmin-ui/src/assets/icons/svg/leftAlign.svg new file mode 100644 index 000000000..b373ac3f4 --- /dev/null +++ b/lms/nladmin-ui/src/assets/icons/svg/leftAlign.svg @@ -0,0 +1,2 @@ + diff --git a/lms/nladmin-ui/src/assets/icons/svg/rightAlign.svg b/lms/nladmin-ui/src/assets/icons/svg/rightAlign.svg new file mode 100644 index 000000000..b0670ba09 --- /dev/null +++ b/lms/nladmin-ui/src/assets/icons/svg/rightAlign.svg @@ -0,0 +1,2 @@ + diff --git a/lms/nladmin-ui/src/assets/icons/svg/save.svg b/lms/nladmin-ui/src/assets/icons/svg/save.svg new file mode 100644 index 000000000..e9e05e3e3 --- /dev/null +++ b/lms/nladmin-ui/src/assets/icons/svg/save.svg @@ -0,0 +1,2 @@ + diff --git a/lms/nladmin-ui/src/assets/icons/svg/upAlign.svg b/lms/nladmin-ui/src/assets/icons/svg/upAlign.svg new file mode 100644 index 000000000..29645dd50 --- /dev/null +++ b/lms/nladmin-ui/src/assets/icons/svg/upAlign.svg @@ -0,0 +1,2 @@ + diff --git a/lms/nladmin-ui/src/assets/icons/svg/verticalAlign.svg b/lms/nladmin-ui/src/assets/icons/svg/verticalAlign.svg new file mode 100644 index 000000000..a3646a05a --- /dev/null +++ b/lms/nladmin-ui/src/assets/icons/svg/verticalAlign.svg @@ -0,0 +1,2 @@ + diff --git a/lms/nladmin-ui/src/assets/icons/svg/verticalDistribution.svg b/lms/nladmin-ui/src/assets/icons/svg/verticalDistribution.svg new file mode 100644 index 000000000..e628a9ec5 --- /dev/null +++ b/lms/nladmin-ui/src/assets/icons/svg/verticalDistribution.svg @@ -0,0 +1,2 @@ + diff --git a/lms/nladmin-ui/src/views/system/logicflow/editor/components/DiagramToolbar.vue b/lms/nladmin-ui/src/views/system/logicflow/editor/components/DiagramToolbar.vue index 42d0f9821..51c10c512 100644 --- a/lms/nladmin-ui/src/views/system/logicflow/editor/components/DiagramToolbar.vue +++ b/lms/nladmin-ui/src/views/system/logicflow/editor/components/DiagramToolbar.vue @@ -24,43 +24,67 @@
- 锁定 + + +
- 解锁 + + +
- 垂直居中 + + +
- 水平居中 + + +
- 向左对齐 + + +
- 向右对齐 + + +
- 向上对齐 + + +
- 向下对齐 + + +
- 水平分布 + + +
- 垂直分布 + + +
- 清空画布 + + +
- 保存 + + +
- +
舞台: - + -
- -
` diff --git a/lms/nladmin-ui/src/views/system/logicflow/editor/image/Empty_state_money.svg b/lms/nladmin-ui/src/views/system/logicflow/editor/image/Empty_state_money.svg new file mode 100644 index 000000000..3b123dd6b --- /dev/null +++ b/lms/nladmin-ui/src/views/system/logicflow/editor/image/Empty_state_money.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/lms/nladmin-ui/src/views/system/logicflow/editor/image/ban.svg b/lms/nladmin-ui/src/views/system/logicflow/editor/image/ban.svg new file mode 100644 index 000000000..d08110e2c --- /dev/null +++ b/lms/nladmin-ui/src/views/system/logicflow/editor/image/ban.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/lms/nladmin-ui/src/views/system/logicflow/editor/image/default.svg b/lms/nladmin-ui/src/views/system/logicflow/editor/image/default.svg new file mode 100644 index 000000000..6304fc7cb --- /dev/null +++ b/lms/nladmin-ui/src/views/system/logicflow/editor/image/default.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/lms/nladmin-ui/src/views/system/logicflow/editor/image/empty.svg b/lms/nladmin-ui/src/views/system/logicflow/editor/image/empty.svg new file mode 100644 index 000000000..77b92c37d --- /dev/null +++ b/lms/nladmin-ui/src/views/system/logicflow/editor/image/empty.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/lms/nladmin-ui/src/views/system/logicflow/editor/image/k.svg b/lms/nladmin-ui/src/views/system/logicflow/editor/image/k.svg new file mode 100644 index 000000000..e8bc9bccd --- /dev/null +++ b/lms/nladmin-ui/src/views/system/logicflow/editor/image/k.svg @@ -0,0 +1,63 @@ + + 没有数据 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lms/nladmin-ui/src/views/system/logicflow/editor/image/rold.svg b/lms/nladmin-ui/src/views/system/logicflow/editor/image/rold.svg new file mode 100644 index 000000000..fa465fb70 --- /dev/null +++ b/lms/nladmin-ui/src/views/system/logicflow/editor/image/rold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/lms/nladmin-ui/src/views/system/logicflow/editor/image/vehicle.svg b/lms/nladmin-ui/src/views/system/logicflow/editor/image/vehicle.svg new file mode 100644 index 000000000..f6ae1def7 --- /dev/null +++ b/lms/nladmin-ui/src/views/system/logicflow/editor/image/vehicle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/lms/nladmin-ui/src/views/system/logicflow/editor/image/wood.svg b/lms/nladmin-ui/src/views/system/logicflow/editor/image/wood.svg new file mode 100644 index 000000000..cc72f1909 --- /dev/null +++ b/lms/nladmin-ui/src/views/system/logicflow/editor/image/wood.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/lms/nladmin-ui/src/views/system/logicflow/index.vue b/lms/nladmin-ui/src/views/system/logicflow/index.vue index 90c77e103..aebcabf2d 100644 --- a/lms/nladmin-ui/src/views/system/logicflow/index.vue +++ b/lms/nladmin-ui/src/views/system/logicflow/index.vue @@ -46,7 +46,7 @@ - +