From c244eac50b187ef25f941350f759f13c60df531e Mon Sep 17 00:00:00 2001 From: baoge <751575283@qq.com> Date: Mon, 27 Feb 2023 17:36:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0lms=E5=A4=A7=E5=B1=8F?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=9A=E7=94=9F=E4=BA=A7=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=EF=BC=8C=E4=BB=93=E5=82=A8=E7=9B=91=E6=8E=A7=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/cockpit/rest/CockpitController.java | 68 ++++++ .../wms/cockpit/service/CockpitService.java | 36 +++ .../service/dto/ProductionStatisticsDto.java | 37 ++++ .../cockpit/service/dto/SchBasePointDto.java | 207 ++++++++++++++++++ .../wms/cockpit/service/dto/WorkorderDto.java | 131 +++++++++++ .../service/impl/CockpitServiceImpl.java | 181 +++++++++++++++ .../org/nl/wms/cockpit/wql/COCKPIT_DEVICE.wql | 55 +++++ .../nl/wms/cockpit/wql/COCKPIT_PRODUCTION.wql | 95 ++++++++ .../nl/wms/cockpit/wql/COCKPIT_STORAGE.wql | 74 +++++++ .../nl/wms/cockpit/wql/COCKPIT_WORKSHOP.wql | 56 +++++ 10 files changed, 940 insertions(+) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/rest/CockpitController.java b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/rest/CockpitController.java index e69de29..5a2f2cb 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/rest/CockpitController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/rest/CockpitController.java @@ -0,0 +1,68 @@ +package org.nl.wms.cockpit.rest; + +import org.nl.wms.cockpit.service.CockpitService; +import org.nl.wms.cockpit.service.dto.WorkorderDto; +import org.springframework.data.domain.Pageable; +import lombok.RequiredArgsConstructor; +import org.nl.modules.logging.annotation.Log; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import io.swagger.annotations.*; +import lombok.extern.slf4j.Slf4j; + +/** + * 大屏数据/1 + * + * @author gbx + * @since 2023/2/27 + */ +@RestController +@RequiredArgsConstructor +@Api(tags = "大屏数据") +@RequestMapping("/api/cockpit") +@Slf4j +public class CockpitController{ + private final CockpitService cockpitService; + + /** + * 生产统计 + */ + @GetMapping("/productionStatistics") + @Log("生产统计") + @ApiOperation("生产统计") + public ResponseEntity productionStatistics() { + return new ResponseEntity<>(cockpitService.productionStatistics(), HttpStatus.OK); + } + + /** + * 仓储监控 + */ + @GetMapping("/storageMonitor") + @Log("仓储监控") + @ApiOperation("仓储监控") + public ResponseEntity storageMonitor() { + return new ResponseEntity<>(cockpitService.storageMonitor(), HttpStatus.OK); + } + + /** + * 设备监控 + */ + @GetMapping("/deviceMonitor") + @Log("设备监控") + @ApiOperation("设备监控") + public ResponseEntity deviceMonitor() { + return new ResponseEntity<>(cockpitService.deviceMonitor(), HttpStatus.OK); + } + + /** + * 车间情况 + */ + @GetMapping("/workshopCondition") + @Log("车间情况") + @ApiOperation("车间情况") + public ResponseEntity workshopCondition() { + return new ResponseEntity<>(cockpitService.workshopCondition(), HttpStatus.OK); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/CockpitService.java b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/CockpitService.java index e69de29..7845951 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/CockpitService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/CockpitService.java @@ -0,0 +1,36 @@ +package org.nl.wms.cockpit.service; + +import org.nl.wms.cockpit.service.dto.WorkorderDto; +import org.springframework.data.domain.Pageable; + +import java.util.Map; +import java.util.List; +import java.util.concurrent.ConcurrentHashMap; + +/** + * 大屏服务接口/1 + * + * @author gbx + * @date 2023-02-27 + **/ +public interface CockpitService{ + /** + * 生产统计 + */ + ConcurrentHashMap productionStatistics(); + + /** + * 仓储监控 + */ + ConcurrentHashMap storageMonitor(); + + /** + * 设备监控 + */ + ConcurrentHashMap deviceMonitor(); + + /** + * 车间情况 + */ + ConcurrentHashMap workshopCondition(); +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/dto/ProductionStatisticsDto.java b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/dto/ProductionStatisticsDto.java index e69de29..135d7ad 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/dto/ProductionStatisticsDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/dto/ProductionStatisticsDto.java @@ -0,0 +1,37 @@ +package org.nl.wms.cockpit.service.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * @author gbx + * @description /1 + * @since 2023/2/27 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ProductionStatisticsDto +{ + + + + @ApiModelProperty(value = "/**工序*/") + /** 工序 */ + private BigDecimal workorderProcedure; + + @ApiModelProperty(value = "/**计划数量*/") + /** 计划数量 */ + private BigDecimal planQty; + + + @ApiModelProperty(value = "/**实际数量*/") + /** 实际数量 */ + private BigDecimal realQty; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/dto/SchBasePointDto.java b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/dto/SchBasePointDto.java index e69de29..d730adc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/dto/SchBasePointDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/dto/SchBasePointDto.java @@ -0,0 +1,207 @@ +package org.nl.wms.cockpit.service.dto; + +import lombok.Data; + +import java.math.BigDecimal; +import java.io.Serializable; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; + +/** + * @author gbx + * @description /1 + * @since 2023/2/27 + */ +@Data +public class SchBasePointDto implements Serializable{ + /** + * 点位标识 + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long point_id; + /** + * 点位编码 + */ + private String point_code; + /** + * 物料号 + */ + private String material_code; + /** + * 生产物料 + */ + private String material_name; + /** + * 点位名称 + */ + private String point_name; + /** + * 所属区域 + */ + private Long region_id; + /** + * 区域编码 + */ + private String region_code; + /** + * 区域名称 + */ + private String region_name; + /** + * 点位类型 + */ + private String point_type; + /** + * 点位状态 + */ + private String point_status; + /** + * 锁定类型 + */ + private String lock_type; + /** + * 设备编码 + */ + private String device_code; + /** + * MES设备编码 + */ + private String mes_device_code; + /** + * 允许的载具类型 + */ + private String can_vehicle_type; + /** + * 载具类型 + */ + private String vehicle_type; + /** + * 载具编码 + */ + private String vehicle_code; + /** + * 载具数量 + */ + private BigDecimal vehicle_qty; + /** + * 块 + */ + private BigDecimal block_num; + /** + * 排 + */ + private BigDecimal row_num; + /** + * 列 + */ + private BigDecimal col_num; + /** + * 层 + */ + private BigDecimal layer_num; + /** + * 点位组编码 + */ + private String point_group_code; + /** + * 是否建工单 + */ + private String is_have_workder; + /** + * 备注 + */ + private String remark; + /** + * 来源标识 + */ + private Long source_id; + /** + * 是否启用 + */ + private String is_used; + /** + * 是否删除 + */ + private String is_delete; + /** + * 创建人 + */ + private Long create_id; + /** + * 创建人 + */ + private String create_name; + /** + * 创建时间 + */ + private String create_time; + /** + * 修改人 + */ + private Long update_optid; + /** + * 修改人 + */ + private String update_optname; + /** + * 修改时间 + */ + private String update_time; + /** + * 载具允许最大数量 + */ + private BigDecimal vehicle_max_qty; + /** + * 入库顺序 + */ + private BigDecimal in_order_seq; + /** + * 出库顺序 + */ + private BigDecimal out_order_seq; + /** + * 入空载具顺序 + */ + private BigDecimal in_empty_seq; + /** + * 出空载具顺序 + */ + private BigDecimal out_empty_seq; + /** + * 在执行的任务标识 + */ + private Long task_id; + /** + * 物料标识 + */ + private Long material_id; + /** + * 批次 + */ + private String pcsn; + /** + * 库存数 + */ + private BigDecimal ivt_qty; + /** + * 计量单位标识 + */ + private Long qty_unit_id; + /** + * 入库时间 + */ + private String instorage_time; + /** + * 静置时间(分钟) + */ + private BigDecimal standing_time; + /** + * 静置状态 + */ + private String standing_status; + /** + * 是否关联库存表 + */ + private String is_ref_ivt; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/dto/WorkorderDto.java b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/dto/WorkorderDto.java index e69de29..ce73839 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/dto/WorkorderDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/dto/WorkorderDto.java @@ -0,0 +1,131 @@ +package org.nl.wms.cockpit.service.dto; + +import lombok.Data; + +import java.math.BigDecimal; +import java.io.Serializable; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; + +/** + * @author gbx + * @description /1 + * @date 2023-02-27 + **/ +@Data +public class WorkorderDto implements Serializable{ + /** + *工单标识 + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long workorder_id; + /** + * 工序 + */ + private String label; + /** + * 设备 + */ + private String device_name; + /** + * 物料号 + */ + private String material_code; + /** + * 生产物料 + */ + private String material_name; + /** + * 生产日期 + */ + private String produce_date; + /** + * 计划数量 + */ + private BigDecimal plan_qty; + /** + * 实际数量 + */ + private BigDecimal real_qty; + /** + * 物料标识 + */ + private Long material_id; + /** + * 载具类型 + */ + private String vehicle_type; + /** + * 计划生产开始时间 + */ + private String planproducestart_date; + /** + * 计划生产结束时间 + */ + private String planproduceend_date; + /** + * 实际生产开始时间 + */ + private String realproducestart_date; + /** + * 实际生产结束时间 + */ + private String realproduceend_date; + /** + * 设备标识 + */ + private Long device_id; + /** + * 所属工序:1-压制2-干燥3-成品 + */ + private String workorder_procedure; + /** + * 工单状态 + */ + private String order_status; + /** + * 是否搬运 + */ + private String is_needmove; + /** + * 回传MES状态 + */ + private String passback_status; + /** + * 外部标识 + */ + private String ext_id; + /** + * 是否删除 + */ + private String is_delete; + /** + * 创建人 + */ + private Long create_id; + /** + * 创建人 + */ + private String create_name; + /** + * 创建时间 + */ + private String create_time; + /** + * 修改人 + */ + private Long update_optid; + /** + * 修改人 + */ + private String update_optname; + /** + * 工单编号 + */ + private String workorder_code; + /** + * 修改时间 + */ + private String update_time; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/impl/CockpitServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/impl/CockpitServiceImpl.java index e69de29..d4bcb70 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/impl/CockpitServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/impl/CockpitServiceImpl.java @@ -0,0 +1,181 @@ +package org.nl.wms.cockpit.service.impl; + +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUnit; +import com.alibaba.fastjson.JSON; +import lombok.RequiredArgsConstructor; +import lombok.var; +import org.apache.commons.lang3.StringUtils; +import org.checkerframework.checker.units.qual.A; +import org.nl.config.thread.ThreadPoolExecutorUtil; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.wql.WQL; +import org.nl.wms.cockpit.service.CockpitService; +import org.nl.wms.cockpit.service.dto.ProductionStatisticsDto; +import org.nl.wms.cockpit.service.dto.SchBasePointDto; +import org.nl.wms.cockpit.service.dto.WorkorderDto; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.data.domain.Pageable; + +import java.math.BigDecimal; +import java.util.*; +import java.util.concurrent.*; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.nl.modules.common.utils.SecurityUtils; +import org.nl.modules.wql.core.bean.ResultBean; +import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.modules.wql.util.WqlUtil; +import lombok.extern.slf4j.Slf4j; +import cn.hutool.core.util.ObjectUtil; +import org.springframework.util.CollectionUtils; + +/** + * 大屏服务实现 + * + * @author gbx + * @date 2023-02-27 + **/ +@Service +@RequiredArgsConstructor +@Slf4j +public class CockpitServiceImpl implements CockpitService{ + /** + * 生产统计大屏信息 + * + * @author gbx + * @since 2023/2/27 + */ + @Override + public ConcurrentHashMap productionStatistics() { + ThreadPoolExecutor pool = ThreadPoolExecutorUtil.getPoll(); + ConcurrentHashMap map = new ConcurrentHashMap<>(); + // 1、获取生产任务列表 + CompletableFuture> productionTask = CompletableFuture.supplyAsync(() -> { + List res = new CopyOnWriteArrayList<>(); + JSONArray result = WQL.getWO("COCKPIT_PRODUCTION").addParam("flag", "1").process().getResultJSONArray(0); + if(ObjectUtil.isNotEmpty(result)) { + res = result.toJavaList(WorkorderDto.class); + } + return res; + }, pool); + productionTask.thenAccept((result) -> { + map.put("productionTask", result); + }).exceptionally((e) -> { + log.error("获取生产任务列表: {}", e.getMessage(), e); + map.put("productionTask", ""); + return null; + }); + // 2、获取原料计划完成情况 + CompletableFuture materialTask = CompletableFuture.supplyAsync(() -> WQL.getWO("COCKPIT_PRODUCTION").addParam("flag", "2").process().getResultJSONArray(0), pool); + materialTask.thenAccept((result) -> { + map.put("materialTask", result); + }).exceptionally((e) -> { + log.error("获取原料计划完成情况: {}", e.getMessage(), e); + map.put("materialTask", ""); + return null; + }); + // 3、获取成品计划完成情况,今日压制量,干燥量,成品量 + CompletableFuture finishedTask = CompletableFuture.supplyAsync(() -> WQL.getWO("COCKPIT_PRODUCTION").addParam("flag", "3").process().getResultJSONArray(0), pool); + finishedTask.thenAccept((result) -> { + map.put("finishedTask", result); + }).exceptionally((e) -> { + log.error("获取成品计划完成情况: {}", e.getMessage(), e); + map.put("finishedTask", ""); + return null; + }); + CompletableFuture allQuery = CompletableFuture.allOf(productionTask, materialTask, finishedTask); + CompletableFuture> future = allQuery.thenApply((result) -> map).exceptionally((e) -> { + log.error(e.getMessage(), e); + return null; + }); + future.join(); + return map; + } + + /** + * 仓储监控大屏信息 + * + * @author gbx + * @since 2023/2/27 + */ + @Override + public ConcurrentHashMap storageMonitor() { + ThreadPoolExecutor pool = ThreadPoolExecutorUtil.getPoll(); + ConcurrentHashMap map = new ConcurrentHashMap<>(); + // 1、获取原料仓储信息 + CompletableFuture> materialStorage = CompletableFuture.supplyAsync(() -> { + List res = new CopyOnWriteArrayList<>(); + JSONArray result = WQL.getWO("COCKPIT_STORAGE").addParam("flag", "1").process().getResultJSONArray(0); + if(ObjectUtil.isNotEmpty(result)) { + res = result.toJavaList(SchBasePointDto.class); + res.forEach(schBasePointDto -> { + //根据入库时间和静置时间判断状态静置状态 + if(StringUtils.isNotBlank(schBasePointDto.getInstorage_time()) && null != schBasePointDto.getStanding_time()) { + DateTime nowTime = DateUtil.parse(DateUtil.now(), DatePattern.NORM_DATETIME_FORMAT); + DateTime instorageTime = DateUtil.parse(schBasePointDto.getInstorage_time(), DatePattern.NORM_DATETIME_FORMAT); + long minute = DateUtil.between(nowTime, instorageTime, DateUnit.MINUTE); + if(minute < schBasePointDto.getStanding_time().longValue()) { + schBasePointDto.setStanding_status("静置中"); + } + else{ + schBasePointDto.setStanding_status("静置完成"); + } + } + }); + } + return res; + }, pool); + materialStorage.thenAccept((result) -> { + map.put("materialTask", result); + }).exceptionally((e) -> { + log.error("获取原料仓储信息: {}", e.getMessage(), e); + map.put("materialTask", ""); + return null; + }); + // 2、获取成品仓储信息 + CompletableFuture> finishedStorage = CompletableFuture.supplyAsync(() -> { + List res = new CopyOnWriteArrayList<>(); + JSONArray result = WQL.getWO("COCKPIT_STORAGE").addParam("flag", "1").process().getResultJSONArray(0); + if(ObjectUtil.isNotEmpty(result)) { + res = result.toJavaList(SchBasePointDto.class); + } + return res; + }, pool); + finishedStorage.thenAccept((result) -> { + map.put("productionTask", result); + }).exceptionally((e) -> { + log.error("获取成品仓储信息: {}", e.getMessage(), e); + map.put("productionTask", ""); + return null; + }); + CompletableFuture allQuery = CompletableFuture.allOf(materialStorage, finishedStorage); + CompletableFuture> future = allQuery.thenApply((result) -> map).exceptionally((e) -> { + log.error(e.getMessage(), e); + return null; + }); + future.join(); + return map; + } + + /** + * 设备监控大屏信息 + * + * @author gbx + * @since 2023/2/27 + */ + @Override + public ConcurrentHashMap deviceMonitor() { + return null; + } + + @Override + public ConcurrentHashMap workshopCondition() { + return null; + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_DEVICE.wql b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_DEVICE.wql index e69de29..c0cf206 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_DEVICE.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_DEVICE.wql @@ -0,0 +1,55 @@ +[交易说明] + 交易名: 设备监控/1 + 所属模块: + 功能简述: + 版权所有: + 表引用: + 版本经历: + +[数据库] + --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 + +[IO定义] + ################################################# + ## 表字段对应输入参数 + ################################################# + 输入.flag TYPEAS s_string + 输入.date TYPEAS s_string + + +[临时表] + --这边列出来的临时表就会在运行期动态创建 + +[临时变量] + --所有中间过程变量均可在此处定义 + +[业务过程] + + ########################################## + # 1、输入输出检查 # + ########################################## + + + ########################################## + # 2、主过程前处理 # + ########################################## + + + ########################################## + # 3、业务主过程 # + ########################################## + + IF 输入.flag = "1" + PAGEQUERY + + ENDSELECT + ENDPAGEQUERY + ENDIF + + IF 输入.flag = "2" + PAGEQUERY + + ENDSELECT + ENDPAGEQUERY + ENDIF + diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_PRODUCTION.wql b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_PRODUCTION.wql index e69de29..548757f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_PRODUCTION.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_PRODUCTION.wql @@ -0,0 +1,95 @@ +[交易说明] + 交易名: 生产统计/1 + 所属模块: + 功能简述: + 版权所有: + 表引用: + 版本经历: + +[数据库] + --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 + +[IO定义] + ################################################# + ## 表字段对应输入参数 + ################################################# + 输入.flag TYPEAS s_string + 输入.date TYPEAS s_string + + +[临时表] + --这边列出来的临时表就会在运行期动态创建 + +[临时变量] + --所有中间过程变量均可在此处定义 + +[业务过程] + + ########################################## + # 1、输入输出检查 # + ########################################## + + + ########################################## + # 2、主过程前处理 # + ########################################## + + + ########################################## + # 3、业务主过程 # + ########################################## + + IF 输入.flag = "1" + PAGEQUERY + SELECT + dict.label, + material.material_code, + material.material_name, + device.device_name, + workorder.* + FROM + PDM_BD_WORKORDER workorder + LEFT JOIN md_me_materialbase material ON material.material_id = workorder.material_id + LEFT JOIN pdm_bi_device device ON workorder.device_id = device.device_id + LEFT JOIN sys_dict_detail dict ON dict.`VALUE` = workorder.workorder_procedure + AND dict.dict_id = 112 + WHERE + workorder.is_delete = '0' + AND TO_DAYS(workorder.realproduceend_date) = TO_DAYS(NOW()) + ORDER BY + workorder.create_time DESC + ENDSELECT + ENDPAGEQUERY + ENDIF + + IF 输入.flag = "2" + PAGEQUERY + SELECT + SUM( plan_qty ) planQty, + SUM( real_qty ) realQty + FROM + PDM_BD_WORKORDER workorder + WHERE + workorder.is_delete = '0' + AND TO_DAYS(workorder.realproduceend_date) = TO_DAYS(NOW()) + ENDSELECT + ENDPAGEQUERY + ENDIF + + IF 输入.flag = "3" + PAGEQUERY + SELECT + workorder.workorder_procedure, + SUM( plan_qty ) planQty, + SUM( real_qty ) realQty + FROM + PDM_BD_WORKORDER workorder + WHERE + workorder.is_delete = '0' + AND TO_DAYS(workorder.realproduceend_date) = TO_DAYS(NOW()) + GROUP BY + workorder.workorder_procedure + ENDSELECT + ENDPAGEQUERY + ENDIF + diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_STORAGE.wql b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_STORAGE.wql index e69de29..bacb055 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_STORAGE.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_STORAGE.wql @@ -0,0 +1,74 @@ +[交易说明] + 交易名: 仓储监控/1 + 所属模块: + 功能简述: + 版权所有: + 表引用: + 版本经历: + +[数据库] + --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 + +[IO定义] + ################################################# + ## 表字段对应输入参数 + ################################################# + 输入.flag TYPEAS s_string + +[临时表] + --这边列出来的临时表就会在运行期动态创建 + +[临时变量] + --所有中间过程变量均可在此处定义 + +[业务过程] + + ########################################## + # 1、输入输出检查 # + ########################################## + + + ########################################## + # 2、主过程前处理 # + ########################################## + + + ########################################## + # 3、业务主过程 # + ########################################## + + IF 输入.flag = "1" + PAGEQUERY + SELECT + material.material_code, + material.material_name, + point.* + FROM + sch_base_point point + LEFT JOIN md_me_materialbase material ON material.material_id = point.material_id + WHERE + point.region_code = 'KLHJ' + ORDER BY + point.create_time DESC + ENDSELECT + ENDPAGEQUERY + ENDIF + + IF 输入.flag = "2" + PAGEQUERY + SELECT + material.material_code, + material.material_name, + point.* + FROM + sch_base_point point + LEFT JOIN md_me_materialbase material ON material.material_id = point.material_id + WHERE + point.region_code = 'CYZCQ' + ORDER BY + point.create_time DESC + ENDSELECT + ENDPAGEQUERY + ENDIF + + diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_WORKSHOP.wql b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_WORKSHOP.wql index e69de29..dba8788 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_WORKSHOP.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_WORKSHOP.wql @@ -0,0 +1,56 @@ +[交易说明] + 交易名: 车间情况/1 + 所属模块: + 功能简述: + 版权所有: + 表引用: + 版本经历: + +[数据库] + --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 + +[IO定义] + ################################################# + ## 表字段对应输入参数 + ################################################# + 输入.flag TYPEAS s_string + 输入.date TYPEAS s_string + + +[临时表] + --这边列出来的临时表就会在运行期动态创建 + +[临时变量] + --所有中间过程变量均可在此处定义 + +[业务过程] + + ########################################## + # 1、输入输出检查 # + ########################################## + + + ########################################## + # 2、主过程前处理 # + ########################################## + + + ########################################## + # 3、业务主过程 # + ########################################## + + IF 输入.flag = "1" + PAGEQUERY + + ENDSELECT + ENDPAGEQUERY + ENDIF + + IF 输入.flag = "2" + PAGEQUERY + + ENDSELECT + ENDPAGEQUERY + ENDIF + +