From 5ae1b71ab6b57140d46e6a8b9e606bb4a390ce27 Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期一, 03 三月 2025 11:11:46 +0800 Subject: [PATCH] webservice接口 --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDayScheduleServiceImpl.java | 16 lxzn-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java | 1 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentDayScheduleMapper.xml | 5 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml | 17 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentDaySummaryMapper.xml | 5 lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/EquipmentStatusOverview.java | 37 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOeeInfoService.java | 1 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/CxfClientUtil.java | 31 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/config/WebServiceConfig.java | 43 ++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/webservice/EquipmentWebService.java | 20 + pom.xml | 2 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/webservice/impl/EquipmentWebServiceImpl.java | 63 +++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMapper.java | 10 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsEquipmentStatus.java | 22 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java | 12 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/WebServiceStatusJob.java | 87 ++++ lxzn-boot-base-core/pom.xml | 21 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentService.java | 22 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentDaySummaryMapper.java | 7 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDaySummary.java | 46 ++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsEquipmentUtilizationRate.java | 50 ++ lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/impl/MdcLargeScreenServiceImpl.java | 75 +++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentMapper.xml | 36 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDaySchedule.java | 79 ++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsResult.java | 20 + lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/MdcLargeScreenService.java | 19 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentDaySchedule.java | 85 ++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/WebServiceUtilizationRateJob.java | 86 ++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java | 6 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentDayScheduleMapper.java | 7 lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/controller/MdcLargeScreenController.java | 43 ++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentServiceImpl.java | 30 + lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/bo/WebResult.java | 17 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDaySummaryServiceImpl.java | 16 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcWorkshopInfo.java | 6 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentDaySummary.java | 54 ++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentDayScheduleService.java | 7 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java | 7 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentDaySummaryService.java | 7 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java | 7 40 files changed, 1,123 insertions(+), 2 deletions(-) diff --git a/lxzn-boot-base-core/pom.xml b/lxzn-boot-base-core/pom.xml index 5f93651..a6e3273 100644 --- a/lxzn-boot-base-core/pom.xml +++ b/lxzn-boot-base-core/pom.xml @@ -231,6 +231,27 @@ <artifactId>syslog4j</artifactId> <version>0.9.60</version> </dependency> + <!-- WebService --> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web-services</artifactId> + </dependency> + <dependency> + <groupId>org.apache.cxf</groupId> + <artifactId>cxf-spring-boot-starter-jaxws</artifactId> + <version>${cxf.version}</version> + </dependency> + <!-- cxf webservice --> + <dependency> + <groupId>org.apache.cxf</groupId> + <artifactId>cxf-rt-frontend-jaxws</artifactId> + <version>${cxf.version}</version> + </dependency> + <dependency> + <groupId>org.apache.cxf</groupId> + <artifactId>cxf-rt-transports-http</artifactId> + <version>${cxf.version}</version> + </dependency> </dependencies> </project> \ No newline at end of file diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java b/lxzn-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java index 8e49670..1b6cdba 100644 --- a/lxzn-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java +++ b/lxzn-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java @@ -100,6 +100,7 @@ filterChainDefinitionMap.put("/sys/checkAuth", "anon"); //鎺堟潈鎺ュ彛鎺掗櫎 filterChainDefinitionMap.put("/sys/api/appAuth", "anon"); //缃戦椄璁よ瘉鎺ュ彛鎺掗櫎 filterChainDefinitionMap.put("/sys/api/fileUpload", "anon"); //缃戦椄涓婁紶鏂囦欢鎺ュ彛鎺掗櫎 + filterChainDefinitionMap.put("/services/**", "anon"); //webservice鎺ュ彛鎺掗櫎 filterChainDefinitionMap.put("/", "anon"); diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/bo/WebResult.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/bo/WebResult.java new file mode 100644 index 0000000..c872ebd --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/bo/WebResult.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.mdc.bo; + +import lombok.Data; + + +/** + * @author Lius + * @date 2025/2/20 14:01 + */ +@Data +public class WebResult { + + private String flag; + + private String msg; + +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/config/WebServiceConfig.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/config/WebServiceConfig.java new file mode 100644 index 0000000..7ec70d1 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/config/WebServiceConfig.java @@ -0,0 +1,43 @@ +package org.jeecg.modules.mdc.config; + +import org.apache.cxf.Bus; +import org.apache.cxf.bus.spring.SpringBus; +import org.apache.cxf.jaxws.EndpointImpl; +import org.jeecg.modules.mdc.webservice.EquipmentWebService; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import javax.xml.ws.Endpoint; + +/** + * @Author hweiyu + * @Description + * @Date 2021/4/21 17:55 + */ +@Configuration +public class WebServiceConfig { + + /** + * Bus浜ょ敱spring绠$悊 + * @return + */ + @Bean(name = Bus.DEFAULT_BUS_ID) + public SpringBus springBus() { + return new SpringBus(); + } + + + /** + * 鏈嶅姟鍦板潃锛� + * http://localhost:9999/services + * http://localhost:9999/services/EquipmentWebService?wsdl + * @param equipmentWebService + * @return + */ + @Bean + public Endpoint endpoint(EquipmentWebService equipmentWebService) { + EndpointImpl endpoint = new EndpointImpl(springBus(), equipmentWebService); + endpoint.publish("/EquipmentWebService"); + return endpoint; + } +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentDaySchedule.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentDaySchedule.java new file mode 100644 index 0000000..b202d75 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentDaySchedule.java @@ -0,0 +1,85 @@ +package org.jeecg.modules.mdc.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecg.common.system.base.entity.JeecgEntity; + +import java.io.Serializable; + +@Data +@TableName("mdc_equipment_day_schedule") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value = "mdc_equipment_day_schedule瀵硅薄", description = "璁惧鏃ユ帓浜ц鍒掕〃") +public class MdcEquipmentDaySchedule extends JeecgEntity implements Serializable { + + private static final long serialVersionUID = 3006667467937651207L; + + /** + * 涓婚敭 + */ + private String medId; + /** + * 鍗曞厓 + */ + private String dept; + /** + * 杞﹂棿锛堝垎鍘傦級 + */ + private String workshop; + /** + * 鐗堟湰鍙凤紙宸ヨ壓瑙勭▼鐗堟锛� + */ + private String revisionNo; + /** + * 闆朵欢鍚嶇О + */ + private String mdsItemId; + /** + * 闆朵欢鍙� + */ + private String mdsItemCode; + /** + * 璁㈠崟鍙� + */ + private String taskCode; + /** + * 娴佸崱鍙� + */ + private String ewoNo; + /** + * 鎵规鍙� + */ + private String batchNo; + /** + * 鎵规鏁伴噺锛堣鍒掓暟锛� + */ + private String batchNum; + /** + * 鍚堟牸鏁� + */ + private Integer qualifiedQty; + /** + * 鎶ュ簾鏁� + */ + private Integer scrapQty; + /** + * 宸ュ簭鍙� + */ + private String opreationSeqNo; + /** + * 娲惧伐鏃ユ湡 + */ + private String dispatchDate; + /** + * 璁惧缂栧彿 + */ + private String equipmentId; + /** + * 1 姝e父 2 鍙栨秷 3 鍒犻櫎 + */ + private String taskType; +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentDaySummary.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentDaySummary.java new file mode 100644 index 0000000..cd2d4fa --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentDaySummary.java @@ -0,0 +1,54 @@ +package org.jeecg.modules.mdc.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecg.common.system.base.entity.JeecgEntity; + +import java.io.Serializable; + +@Data +@TableName("mdc_equipment_day_summary") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value = "mdc_equipment_day_summary瀵硅薄", description = "璁惧鏃ヤ骇閲忔眹鎬昏〃") +public class MdcEquipmentDaySummary extends JeecgEntity implements Serializable { + + private static final long serialVersionUID = 4440281782659062056L; + + /** + * 涓婚敭 + */ + private String medId; + /** + * 鍗曞厓 + */ + private String dept; + /** + * 杞﹂棿锛堝垎鍘傦級 + */ + private String workshop; + /** + * 璁惧缂栧彿 + */ + private String equipmentCode; + /** + * 褰撳墠鍦ㄥ埗鍝侀噺锛堣鍗曡鍒掓暟閲�-鍏ュ簱鏁伴噺-鎶ュ簾鏁伴噺锛� + */ + private Integer demandQty; + /** + * 浠婃棩瀹屽伐鍏ュ簱閲忥紙鍏ュ簱鏁伴噺锛� + */ + private Integer qualifiedQty; + /** + * 浠婃棩鎶曚骇閲忥紙璁㈠崟鏁伴噺锛� + */ + private Integer planQty; + /** + * 浠婃棩鎶ュ簾鏁伴噺 + */ + private Integer scrapQty; + +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcWorkshopInfo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcWorkshopInfo.java index e9621f3..cc0522a 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcWorkshopInfo.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcWorkshopInfo.java @@ -51,5 +51,11 @@ @ApiModelProperty(value = "鑿滃崟鏉冮檺缂栫爜") private String perms; + /** + * 璁惧杞﹂棿绠$悊id + */ + @ApiModelProperty(value = "璁惧杞﹂棿绠$悊id") + private String productionId; + } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/WebServiceStatusJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/WebServiceStatusJob.java new file mode 100644 index 0000000..f54d0bc --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/WebServiceStatusJob.java @@ -0,0 +1,87 @@ +package org.jeecg.modules.mdc.job; + +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.util.DateUtils; +import org.jeecg.modules.mdc.service.IEquipmentService; +import org.jeecg.modules.mdc.util.CxfClientUtil; +import org.jeecg.modules.mdc.util.ThrowableUtil; +import org.jeecg.modules.mdc.vo.WsEquipmentStatus; +import org.jeecg.modules.quartz.entity.QuartzJob; +import org.jeecg.modules.quartz.entity.SysQuartzLog; +import org.jeecg.modules.quartz.service.IQuartzJobService; +import org.jeecg.modules.quartz.service.ISysQuartzLogService; +import org.quartz.*; +import org.springframework.beans.factory.annotation.Value; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; + +/** + * @author Lius + * @date 2024/6/11 11:27 + */ +@PersistJobDataAfterExecution +@DisallowConcurrentExecution +@Slf4j +public class WebServiceStatusJob implements Job { + + /** + * url + */ + @Value("${webservice.url}") + private String url; + + /** + * namespace + */ + @Value("${webservice.namespace}") + private String namespace; + + /** + * method + */ + @Value("${webservice.statusMethod}") + private String method; + + + @Resource + private IQuartzJobService quartzJobService; + + @Resource + private ISysQuartzLogService sysQuartzLogService; + + @Resource + private IEquipmentService equipmentService; + + @Override + public void execute(JobExecutionContext context) throws JobExecutionException { + SysQuartzLog quartzLog = new SysQuartzLog(); + quartzLog.setCreateTime(new Date()); + List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName()); + if (byJobClassName != null && !byJobClassName.isEmpty()) { + quartzLog.setJobId(byJobClassName.get(0).getId()); + } + log.info("WebService涓婃姤璁惧鐘舵�佷换鍔� WebServiceStatusJob start! 鏃堕棿:" + DateUtils.now()); + long startTime = System.currentTimeMillis(); + try { + List<WsEquipmentStatus> equipmentStatusList = equipmentService.selectEquipmentStatus(); + if (equipmentStatusList != null && !equipmentStatusList.isEmpty()) { + for (WsEquipmentStatus wsEquipmentStatus : equipmentStatusList) { + String s = JSONObject.toJSONString(wsEquipmentStatus); + log.info("涓婃姤鐘舵�佹暟鎹� ===== " + s); + String result = CxfClientUtil.invokeService(url, s, namespace, method); + log.info("涓婃姤鐘舵�佺粨鏋� ===== " + result); + } + } + quartzLog.setIsSuccess(0); + } catch (Exception e) { + quartzLog.setIsSuccess(-1); + quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e)); + } + long endTime = System.currentTimeMillis(); + quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime))); + sysQuartzLogService.save(quartzLog); + } +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/WebServiceUtilizationRateJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/WebServiceUtilizationRateJob.java new file mode 100644 index 0000000..800ef9e --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/WebServiceUtilizationRateJob.java @@ -0,0 +1,86 @@ +package org.jeecg.modules.mdc.job; + +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.util.DateUtils; +import org.jeecg.modules.mdc.service.IEquipmentService; +import org.jeecg.modules.mdc.util.CxfClientUtil; +import org.jeecg.modules.mdc.util.ThrowableUtil; +import org.jeecg.modules.mdc.vo.WsEquipmentUtilizationRate; +import org.jeecg.modules.quartz.entity.QuartzJob; +import org.jeecg.modules.quartz.entity.SysQuartzLog; +import org.jeecg.modules.quartz.service.IQuartzJobService; +import org.jeecg.modules.quartz.service.ISysQuartzLogService; +import org.quartz.*; +import org.springframework.beans.factory.annotation.Value; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; + +/** + * @author Lius + * @date 2024/6/11 16:17 + */ +@PersistJobDataAfterExecution +@DisallowConcurrentExecution +@Slf4j +public class WebServiceUtilizationRateJob implements Job { + + /** + * 鍦板潃 + */ + + @Value("${webservice.url}") + private String url; + + /** + * namespace + */ + @Value("${webservice.namespace}") + private String namespace; + + /** + * 鏂规硶 + */ + @Value("${webservice.rateMethod}") + private String method; + @Resource + private IQuartzJobService quartzJobService; + + @Resource + private ISysQuartzLogService sysQuartzLogService; + + @Resource + private IEquipmentService equipmentService; + + @Override + public void execute(JobExecutionContext context) throws JobExecutionException { + SysQuartzLog quartzLog = new SysQuartzLog(); + quartzLog.setCreateTime(new Date()); + List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName()); + if (byJobClassName != null && !byJobClassName.isEmpty()) { + quartzLog.setJobId(byJobClassName.get(0).getId()); + } + log.info("WebService涓婃姤璁惧鍒╃敤鐜囦换鍔� WebServiceUtilizationRateJob start! 鏃堕棿:{}", DateUtils.now()); + long startTime = System.currentTimeMillis(); + try { + List<WsEquipmentUtilizationRate> equipmentRateList = equipmentService.selectEquipmentRate(); + if (equipmentRateList != null && !equipmentRateList.isEmpty()) { + for (WsEquipmentUtilizationRate wsEquipmentUtilizationRate : equipmentRateList) { + String s = JSONObject.toJSONString(wsEquipmentUtilizationRate); + log.info("涓婃姤鍒╃敤鐜囨暟鎹� ===== {}", s); + String result = CxfClientUtil.invokeService(url, s, namespace, method); + log.info("涓婃姤鍒╃敤鐜囩粨鏋� ===== {}", result); + } + } + quartzLog.setIsSuccess(0); + } catch (Exception e) { + quartzLog.setIsSuccess(-1); + quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e)); + } + long endTime = System.currentTimeMillis(); + quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime))); + sysQuartzLogService.save(quartzLog); + } +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMapper.java index d79cbc0..1661fd4 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMapper.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMapper.java @@ -6,6 +6,10 @@ import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.jeecg.modules.mdc.entity.Equipment; +import org.jeecg.modules.mdc.vo.WsEquipmentStatus; +import org.jeecg.modules.mdc.vo.WsEquipmentUtilizationRate; + +import java.util.List; /** * @Description: 閲囬泦璁惧琛� @@ -30,4 +34,10 @@ @Insert(" CREATE TABLE ${tableName} AS SELECT * FROM ${lastTableName} WHERE CollectTime < '${date}' ") void insertNoTableData(@Param("tableName") String tableName, @Param("lastTableName") String lastTableName, @Param("date") String date); + + List<WsEquipmentStatus> selectEquipmentStatus(); + + List<WsEquipmentUtilizationRate> selectEquipmentRate(@Param("date") String date); + + String selectOee(@Param("equipmentId") String equipmentId, @Param("date") String date); } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentDayScheduleMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentDayScheduleMapper.java new file mode 100644 index 0000000..d63150b --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentDayScheduleMapper.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.mdc.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.mdc.entity.MdcEquipmentDaySchedule; + +public interface MdcEquipmentDayScheduleMapper extends BaseMapper<MdcEquipmentDaySchedule> { +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentDaySummaryMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentDaySummaryMapper.java new file mode 100644 index 0000000..bf2f9c2 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentDaySummaryMapper.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.mdc.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.mdc.entity.MdcEquipmentDaySummary; + +public interface MdcEquipmentDaySummaryMapper extends BaseMapper<MdcEquipmentDaySummary> { +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java index 06246bc..9be2447 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java @@ -124,4 +124,11 @@ * @return */ MdcEquipmentDetailedDto findById(@Param("id") String id); + + /** + * 鏍规嵁浜х嚎id鑾峰彇璁惧鐘舵�佸垪琛� + * @param workshopId + * @return + */ + List<MdcEquipmentMonitor> getEquipmentMonitorList(@Param("workshopId") String workshopId); } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentMapper.xml index b504640..a5f4ac3 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentMapper.xml @@ -2,4 +2,40 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.jeecg.modules.mdc.mapper.EquipmentMapper"> + <!--鏌ヨ璁惧鐘舵��--> + <select id="selectEquipmentStatus" resultType="org.jeecg.modules.mdc.vo.WsEquipmentStatus"> + SELECT + t1.EquipmentID equipmentCode, + t1.equipmentName equipmentName, + t1.oporation equipmentStatus, + t1.collectTime creationDate, + t2.FactoryName finr + FROM + Equipment t1 + LEFT JOIN FactoryInfo t2 ON t1.FactoryID = t2.FactoryID + </select> + + <!--鏌ヨ璁惧鍒╃敤鐜�--> + <select id="selectEquipmentRate" resultType="org.jeecg.modules.mdc.vo.WsEquipmentUtilizationRate"> + SELECT + t1.EquipmentID equipmentCode, + t1.equipmentName equipmentName, + t2.FactoryName finr, + t3.process_long equipmentRunTime, + t3.create_time statisDate + FROM + Equipment t1 + LEFT JOIN FactoryInfo t2 ON t1.FactoryID = t2.FactoryID + LEFT JOIN mdc_equipment_statistical_info t3 ON t1.EquipmentID = t3.equipment_id + WHERE t3.the_date = #{date} + </select> + + + <select id="selectOee" resultType="java.lang.String"> + SELECT + oee + FROM + mdc_oee_info + WHERE equipment_id = #{equipmentId} AND the_date = #{date} + </select> </mapper> \ No newline at end of file diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentDayScheduleMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentDayScheduleMapper.xml new file mode 100644 index 0000000..864dff2 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentDayScheduleMapper.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="org.jeecg.modules.mdc.mapper.MdcEquipmentDayScheduleMapper"> + +</mapper> \ No newline at end of file diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentDaySummaryMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentDaySummaryMapper.xml new file mode 100644 index 0000000..b888911 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentDaySummaryMapper.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="org.jeecg.modules.mdc.mapper.MdcEquipmentDaySummaryMapper"> + +</mapper> \ No newline at end of file diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml index 4cd73de..58aaf78 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml @@ -279,4 +279,21 @@ t1.id = #{ id } </select> + <!--鏍规嵁浜х嚎id鑾峰彇璁惧鐘舵�佸垪琛�--> + <select id="getEquipmentMonitorList" resultType="org.jeecg.modules.mdc.entity.MdcEquipmentMonitor"> + SELECT e.equipment_id, + et.CollectTime, + e.equipment_name, + et.Oporation, + e.id, + e.equipment_status, + e.equipment_type AS equipmentType, + etp.equipment_type_pictures + FROM mdc_equipment e + LEFT JOIN Equipment et ON e.equipment_id = et.EquipmentID + LEFT JOIN mdc_equipment_type etp ON e.equipment_type = etp.equipment_type_name + JOIN mdc_workshop_equipment we ON e.equipment_id = we.equipment_id + WHERE we.workshop_id = #{workshopId} + </select> + </mapper> \ No newline at end of file diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentService.java index 8dfe74b..f5054dd 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentService.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentService.java @@ -2,6 +2,10 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.mdc.entity.Equipment; +import org.jeecg.modules.mdc.vo.WsEquipmentStatus; +import org.jeecg.modules.mdc.vo.WsEquipmentUtilizationRate; + +import java.util.List; /** * @Description: 閲囬泦璁惧琛� @@ -13,6 +17,7 @@ /** * 鏍规嵁鏁版嵁琛ㄥ悕绉版煡璇㈡暟鎹〃鏄惁瀛樺湪 + * * @param saveTableName * @return */ @@ -20,6 +25,7 @@ /** * 鏌ヨ闇�澶囦唤鏁版嵁閲� + * * @param saveTableName * @param day * @return @@ -28,6 +34,7 @@ /** * 鏁版嵁杩佺Щ + * * @param backupTableName * @param tableName * @param day @@ -36,6 +43,7 @@ /** * 鍒犻櫎鍘熸暟鎹〃鏁版嵁 + * * @param tableName * @param day */ @@ -43,9 +51,23 @@ /** * 鍒涘缓澶囦唤琛� + * * @param backupTableName * @param tableName * @param day */ void insertNoTableData(String backupTableName, String tableName, String day); + + /** + * 鏌ヨ璁惧鐘舵�� + * + * @return + */ + List<WsEquipmentStatus> selectEquipmentStatus(); + + /** + * 鏌ヨ璁惧鍒╃敤鐜� + * @return + */ + List<WsEquipmentUtilizationRate> selectEquipmentRate(); } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentDayScheduleService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentDayScheduleService.java new file mode 100644 index 0000000..906ba4d --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentDayScheduleService.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.mdc.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.mdc.entity.MdcEquipmentDaySchedule; + +public interface IMdcEquipmentDayScheduleService extends IService<MdcEquipmentDaySchedule> { +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentDaySummaryService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentDaySummaryService.java new file mode 100644 index 0000000..3069351 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentDaySummaryService.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.mdc.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.mdc.entity.MdcEquipmentDaySummary; + +public interface IMdcEquipmentDaySummaryService extends IService<MdcEquipmentDaySummary> { +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java index 5e20315..87a1a43 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java @@ -210,4 +210,11 @@ List<String> listEquipmentIdShift(MdcEfficiencyReportShiftQueryVo vo); + /** + * 鏍规嵁浜х嚎id鑾峰彇璁惧鐘舵�佸垪琛� + * + * @param workshopId + * @return + */ + List<MdcEquipmentMonitor> getEquipmentMonitorList(String workshopId); } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOeeInfoService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOeeInfoService.java index f9bcaea..f4fdad3 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOeeInfoService.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOeeInfoService.java @@ -46,6 +46,7 @@ /** * 璁$畻OEE + * * @param mdcOeeComputeVo */ void computeOee(MdcOeeComputeVo mdcOeeComputeVo); diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentServiceImpl.java index 3db46bc..3880d84 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentServiceImpl.java @@ -4,7 +4,14 @@ import org.jeecg.modules.mdc.entity.Equipment; import org.jeecg.modules.mdc.mapper.EquipmentMapper; import org.jeecg.modules.mdc.service.IEquipmentService; +import org.jeecg.modules.mdc.vo.WsEquipmentStatus; +import org.jeecg.modules.mdc.vo.WsEquipmentUtilizationRate; import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.time.LocalDate; +import java.util.List; /** * @Description: 閲囬泦璁惧琛� @@ -39,4 +46,27 @@ public void insertNoTableData(String backupTableName, String tableName, String day) { this.baseMapper.insertNoTableData(backupTableName, tableName, day); } + + @Override + public List<WsEquipmentStatus> selectEquipmentStatus() { + return this.baseMapper.selectEquipmentStatus(); + } + + @Override + public List<WsEquipmentUtilizationRate> selectEquipmentRate() { + String date = LocalDate.now().plusDays(-1).toString(); + List<WsEquipmentUtilizationRate> list = this.baseMapper.selectEquipmentRate(date.replaceAll("-", "")); + if (list != null && !list.isEmpty()) { + for (WsEquipmentUtilizationRate wsEquipmentUtilizationRate : list) { + String equipmentRunTime = wsEquipmentUtilizationRate.getEquipmentRunTime(); + wsEquipmentUtilizationRate.setStatisType("D"); + wsEquipmentUtilizationRate.setEquipmentRunTime(new BigDecimal(equipmentRunTime).divide(new BigDecimal("60"), 0, RoundingMode.HALF_UP).toString()); + wsEquipmentUtilizationRate.setEquipmentRate(new BigDecimal(equipmentRunTime).divide(new BigDecimal("86400"), 2, RoundingMode.HALF_UP).toString()); + wsEquipmentUtilizationRate.setEquipmentCalendar(date); + String oee = this.baseMapper.selectOee(wsEquipmentUtilizationRate.getEquipmentCode(), date); + wsEquipmentUtilizationRate.setEquipmentOee(oee == null ? "0" : oee); + } + } + return list; + } } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDayScheduleServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDayScheduleServiceImpl.java new file mode 100644 index 0000000..07e78b8 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDayScheduleServiceImpl.java @@ -0,0 +1,16 @@ +package org.jeecg.modules.mdc.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.modules.mdc.entity.MdcEquipmentDaySchedule; +import org.jeecg.modules.mdc.mapper.MdcEquipmentDayScheduleMapper; +import org.jeecg.modules.mdc.service.IMdcEquipmentDayScheduleService; +import org.springframework.stereotype.Service; + +/** + * @Author: Lius + * @CreateTime: 2025-02-26 + * @Description: s + */ +@Service +public class MdcEquipmentDayScheduleServiceImpl extends ServiceImpl<MdcEquipmentDayScheduleMapper, MdcEquipmentDaySchedule> implements IMdcEquipmentDayScheduleService { +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDaySummaryServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDaySummaryServiceImpl.java new file mode 100644 index 0000000..eb6b7d3 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDaySummaryServiceImpl.java @@ -0,0 +1,16 @@ +package org.jeecg.modules.mdc.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.modules.mdc.entity.MdcEquipmentDaySummary; +import org.jeecg.modules.mdc.mapper.MdcEquipmentDaySummaryMapper; +import org.jeecg.modules.mdc.service.IMdcEquipmentDaySummaryService; +import org.springframework.stereotype.Service; + +/** + * @Author: Lius + * @CreateTime: 2025-02-26 + * @Description: 璁惧鏃ユ眹鎬籭mpl + */ +@Service +public class MdcEquipmentDaySummaryServiceImpl extends ServiceImpl<MdcEquipmentDaySummaryMapper, MdcEquipmentDaySummary> implements IMdcEquipmentDaySummaryService { +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java index 11909c7..6c195c4 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java @@ -1,6 +1,5 @@ package org.jeecg.modules.mdc.service.impl; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -906,4 +905,15 @@ return list.stream().map(MdcEquipment::getEquipmentId).collect(Collectors.toList()); } + /** + * 鏍规嵁浜х嚎id鑾峰彇璁惧鐘舵�佸垪琛� + * + * @param workshopId + * @return + */ + @Override + public List<MdcEquipmentMonitor> getEquipmentMonitorList(String workshopId) { + return this.baseMapper.getEquipmentMonitorList(workshopId); + } + } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java index 3486a28..d2cac3a 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java @@ -53,6 +53,7 @@ /** * 鍒嗛〉鍒楄〃 + * * @param userId * @param page * @param mdcOeeInfoVo @@ -96,6 +97,7 @@ /** * 瀵煎嚭 + * * @param userId * @param mdcOeeInfoVo * @return @@ -145,7 +147,7 @@ ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); List<MdcOeeInfo> mdcOeeInfos = this.baseMapper.selectList(queryWrapper); // 瀵煎嚭鏂囦欢鍚嶇О - mv.addObject(NormalExcelConstants.FILE_NAME, "OEE鏁版嵁鍒楄〃"); + mv.addObject(NormalExcelConstants.FILE_NAME, "OEE鏁版嵁鍒楄〃"); mv.addObject(NormalExcelConstants.CLASS, MdcOeeInfo.class); LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("OEE鏁版嵁鍒楄〃鏁版嵁", "瀵煎嚭浜�:" + user.getRealname(), "OEE鏁版嵁")); @@ -156,6 +158,7 @@ /** * 璁$畻OEE + * * @param mdcOeeComputeVo */ @Override @@ -242,6 +245,7 @@ /** * 璁$畻oee + * * @param dateTime 鍙傛暟 */ @Override diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/CxfClientUtil.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/CxfClientUtil.java new file mode 100644 index 0000000..cfdda96 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/CxfClientUtil.java @@ -0,0 +1,31 @@ +package org.jeecg.modules.mdc.util; + +import org.apache.cxf.endpoint.Client; +import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory; + +import javax.xml.namespace.QName; + +/** + * @author Lius + * @date 2024/6/11 10:16 + */ +public class CxfClientUtil { + + /** + * 鍔ㄦ�佽皟鐢� + */ + public static String invokeService(String url, String data, String namespace, String method) throws Exception { + + JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); + Client client = dcf.createClient(url); + QName opName = new QName(namespace, method); + Object[] objects = new Object[0]; + try { + objects = client.invoke(opName, data); + } catch (Exception e) { + e.printStackTrace(); + } + return objects[0].toString(); + } + +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDaySchedule.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDaySchedule.java new file mode 100644 index 0000000..cb471a0 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDaySchedule.java @@ -0,0 +1,79 @@ +package org.jeecg.modules.mdc.vo; + +import lombok.Data; + +/** + * MES涓婁紶鏃ヨ鍒掓帴鏀跺璞� + * + * @author Lius + * @date 2025/2/26 14:17 + */ +@Data +public class EquipmentDaySchedule { + + /** + * 涓婚敭 + */ + private String medId; + /** + * 鍗曞厓 + */ + private String dept; + /** + * 杞﹂棿锛堝垎鍘傦級 + */ + private String workshop; + /** + * 鐗堟湰鍙凤紙宸ヨ壓瑙勭▼鐗堟锛� + */ + private String revisionNo; + /** + * 闆朵欢鍚嶇О + */ + private String mdsItemId; + /** + * 闆朵欢鍙� + */ + private String mdsItemCode; + /** + * 璁㈠崟鍙� + */ + private String taskCode; + /** + * 娴佸崱鍙� + */ + private String ewoNo; + /** + * 鎵规鍙� + */ + private String batchNo; + /** + * 鎵规鏁伴噺锛堣鍒掓暟锛� + */ + private String batchNum; + /** + * 鍚堟牸鏁� + */ + private Integer qualifiedQty; + /** + * 鎶ュ簾鏁� + */ + private Integer scrapQty; + /** + * 宸ュ簭鍙� + */ + private String opreationSeqNo; + /** + * 娲惧伐鏃ユ湡 + */ + private String dispatchDate; + /** + * 璁惧缂栧彿 + */ + private String equipmentId; + /** + * 1 姝e父 2 鍙栨秷 3 鍒犻櫎 + */ + private String taskType; + +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDaySummary.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDaySummary.java new file mode 100644 index 0000000..fac96e7 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDaySummary.java @@ -0,0 +1,46 @@ +package org.jeecg.modules.mdc.vo; + +import lombok.Data; + +/** + * MES涓婁紶鏃ユ眹鎬绘帴鏀跺璞� + * + * @author Lius + * @date 2025/2/26 14:17 + */ +@Data +public class EquipmentDaySummary { + /** + * 涓婚敭 + */ + private String medId; + /** + * 鍗曞厓 + */ + private String dept; + /** + * 杞﹂棿锛堝垎鍘傦級 + */ + private String workshop; + /** + * 璁惧缂栧彿 + */ + private String equipmentCode; + /** + * 褰撳墠鍦ㄥ埗鍝侀噺锛堣鍗曡鍒掓暟閲�-鍏ュ簱鏁伴噺-鎶ュ簾鏁伴噺锛� + */ + private Integer demandQty; + /** + * 浠婃棩瀹屽伐鍏ュ簱閲忥紙鍏ュ簱鏁伴噺锛� + */ + private Integer qualifiedQty; + /** + * 浠婃棩鎶曚骇閲忥紙璁㈠崟鏁伴噺锛� + */ + private Integer planQty; + /** + * 浠婃棩鎶ュ簾鏁伴噺 + */ + private Integer scrapQty; + +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsEquipmentStatus.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsEquipmentStatus.java new file mode 100644 index 0000000..8248ad5 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsEquipmentStatus.java @@ -0,0 +1,22 @@ +package org.jeecg.modules.mdc.vo; + +import lombok.Data; +import java.util.Date; + +/** + * @author Lius + * @date 2024/6/11 10:44 + */ +@Data +public class WsEquipmentStatus { + + private String equipmentCode; + + private String equipmentName; + + private String equipmentStatus; + + private Date creationDate; + + private String finr; +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsEquipmentUtilizationRate.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsEquipmentUtilizationRate.java new file mode 100644 index 0000000..2ac4232 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsEquipmentUtilizationRate.java @@ -0,0 +1,50 @@ +package org.jeecg.modules.mdc.vo; + +import lombok.Data; + +import java.util.Date; + +/** + * @author Lius + * @date 2024/6/11 16:31 + */ +@Data +public class WsEquipmentUtilizationRate { + + /** + * 璁惧缂栧彿 + */ + private String equipmentCode; + /** + * 璁惧鍚嶇О + */ + private String equipmentName; + /** + * 鍒嗗巶 + */ + private String finr; + /** + * 璁惧鍒╃敤鐜� + */ + private String equipmentRate; + /** + * 璁惧杩愯鏃堕棿(鍒嗛挓) + */ + private String equipmentRunTime; + /** + * 璁惧鏃ュ巻 + */ + private String equipmentCalendar; + /** + * OEE + */ + private String equipmentOee; + /** + * 缁熻绫诲瀷 + */ + private String statisType; + /** + * 缁熻鏃ユ湡 + */ + private Date statisDate; +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsResult.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsResult.java new file mode 100644 index 0000000..1421c75 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsResult.java @@ -0,0 +1,20 @@ +package org.jeecg.modules.mdc.vo; + +import lombok.Data; + +/** + * @author Lius + * @date 2024/6/11 11:12 + */ +@Data +public class WsResult { + + private String flag; + + private String msg; + + public WsResult(String flag, String msg) { + this.flag = flag; + this.msg = msg; + } +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/webservice/EquipmentWebService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/webservice/EquipmentWebService.java new file mode 100644 index 0000000..4724a7b --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/webservice/EquipmentWebService.java @@ -0,0 +1,20 @@ +package org.jeecg.modules.mdc.webservice; + +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebService; + +/** + * @author Lius + * @date 2025/2/20 13:48 + */ +@WebService(name = "EquipmentWebService", targetNamespace = "http://mdc.webservice.equipment.com") +public interface EquipmentWebService { + + @WebMethod + String equipmentDaySchedule(@WebParam(name = "msg") String msg); + + @WebMethod + String equipmentDaySummary(@WebParam(name = "msg") String msg); + +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/webservice/impl/EquipmentWebServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/webservice/impl/EquipmentWebServiceImpl.java new file mode 100644 index 0000000..21e1507 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/webservice/impl/EquipmentWebServiceImpl.java @@ -0,0 +1,63 @@ +package org.jeecg.modules.mdc.webservice.impl; + +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.modules.mdc.entity.MdcEquipmentDaySchedule; +import org.jeecg.modules.mdc.entity.MdcEquipmentDaySummary; +import org.jeecg.modules.mdc.service.IMdcEquipmentDayScheduleService; +import org.jeecg.modules.mdc.service.IMdcEquipmentDaySummaryService; +import org.jeecg.modules.mdc.vo.EquipmentDaySchedule; +import org.jeecg.modules.mdc.vo.EquipmentDaySummary; +import org.jeecg.modules.mdc.vo.WsResult; +import org.jeecg.modules.mdc.webservice.EquipmentWebService; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.jws.WebService; + + +/** + * @author Lius + * @date 2024/6/11 11:07 + */ +@Service +@WebService(name = "EquipmentWebService", + targetNamespace = "http://mdc.webservice.equipment.com", + endpointInterface = "org.jeecg.modules.mdc.webservice.EquipmentWebService" +) +@Slf4j +public class EquipmentWebServiceImpl implements EquipmentWebService { + + @Resource + private IMdcEquipmentDaySummaryService mdcEquipmentDaySummaryService; + + @Resource + private IMdcEquipmentDayScheduleService mdcEquipmentDayScheduleService; + + @Override + public String equipmentDaySchedule(String msg) { + log.info("MES涓婃姤鏃ヨ鍒掑師濮嬫暟鎹� === {}", msg); + EquipmentDaySchedule equipmentDaySchedule = JSONObject.parseObject(msg, EquipmentDaySchedule.class); + MdcEquipmentDaySchedule mdcEquipmentDaySchedule = new MdcEquipmentDaySchedule(); + BeanUtils.copyProperties(equipmentDaySchedule, mdcEquipmentDaySchedule); + mdcEquipmentDayScheduleService.save(mdcEquipmentDaySchedule); + + log.info("MES涓婃姤鏃ヨ鍒掓暟鎹垚鍔燂紒"); + WsResult wsResult = new WsResult("1", "鎴愬姛"); + return JSONObject.toJSONString(wsResult); + } + + @Override + public String equipmentDaySummary(String msg) { + log.info("MES涓婃姤鏃ユ眹鎬诲師濮嬫暟鎹� === {}", msg); + EquipmentDaySummary equipmentDaySummary = JSONObject.parseObject(msg, EquipmentDaySummary.class); + MdcEquipmentDaySummary mdcEquipmentDaySummary = new MdcEquipmentDaySummary(); + BeanUtils.copyProperties(equipmentDaySummary, mdcEquipmentDaySummary); + mdcEquipmentDaySummaryService.save(mdcEquipmentDaySummary); + + log.info("MES涓婃姤鏃ユ眹鎬绘暟鎹垚鍔燂紒"); + WsResult wsResult = new WsResult("1", "鎴愬姛"); + return JSONObject.toJSONString(wsResult); + } +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/controller/MdcLargeScreenController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/controller/MdcLargeScreenController.java new file mode 100644 index 0000000..31b0207 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/controller/MdcLargeScreenController.java @@ -0,0 +1,43 @@ +package org.jeecg.modules.screen.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.screen.dto.EquipmentStatusOverview; +import org.jeecg.modules.screen.service.MdcLargeScreenService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * @Author: Lius + * @CreateTime: 2025-02-28 + * @Description: + */ +@Slf4j +@Api(tags = "澶у睆鐪嬫澘") +@RestController +@RequestMapping("/mdc/largeScreen") +public class MdcLargeScreenController { + + @Resource + private MdcLargeScreenService mdcLargeScreenService; + + @ApiOperation(value = "澶у睆鐪嬫澘-璁惧鎯呭喌", notes = "澶у睆鐪嬫澘-璁惧鎯呭喌") + @GetMapping("/equipmentStatusOverview") + public Result<EquipmentStatusOverview> equipmentStatusOverview(String workshopId) { + EquipmentStatusOverview equipmentStatusOverview = mdcLargeScreenService.equipmentStatusOverview(workshopId); + return Result.OK(equipmentStatusOverview); + } + +// @ApiOperation(value = "澶у睆鐪嬫澘-鏈堝埄鐢ㄧ巼瓒嬪娍", notes = "澶у睆鐪嬫澘-鏈堝埄鐢ㄧ巼瓒嬪娍") +// @GetMapping("/monthUtilizationTendency") +// public Result<EquipmentStatusOverview> monthUtilizationTendency(String workshopId) { +// +// return Result.OK(equipmentStatusOverview); +// } + +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/EquipmentStatusOverview.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/EquipmentStatusOverview.java new file mode 100644 index 0000000..9e19750 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/EquipmentStatusOverview.java @@ -0,0 +1,37 @@ +package org.jeecg.modules.screen.dto; + +import lombok.Data; + +/** + * @Author: Lius + * @CreateTime: 2025-02-28 + * @Description: + */ +@Data +public class EquipmentStatusOverview { + /** + * 璁惧鎬绘暟 + */ + private Integer equipmentCount = 0; + /** + * 澶т慨銆侀」淇暟 + */ + private Integer repairCount = 0; + /** + * 姝e父杩愯鏁� + */ + private Integer runCount = 0; + /** + * 寰呮満鏁� + */ + private Integer waitCount = 0; + /** + * 鎶ヨ鏁� + */ + private Integer errorCount = 0; + /** + * 鍏虫満鏁� + */ + private Integer closeCount = 0; + +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/MdcLargeScreenService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/MdcLargeScreenService.java new file mode 100644 index 0000000..c09ee64 --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/MdcLargeScreenService.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.screen.service; + +import org.jeecg.modules.screen.dto.EquipmentStatusOverview; + +/** + * @Author: Lius + * @CreateTime: 2025-02-28 + * @Description: + */ +public interface MdcLargeScreenService { + + /** + * 璁惧鎯呭喌 + * + * @param workshopId + * @return + */ + EquipmentStatusOverview equipmentStatusOverview(String workshopId); +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/impl/MdcLargeScreenServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/impl/MdcLargeScreenServiceImpl.java new file mode 100644 index 0000000..5bb85fa --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/impl/MdcLargeScreenServiceImpl.java @@ -0,0 +1,75 @@ +package org.jeecg.modules.screen.service.impl; + +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.system.vo.DictModel; +import org.jeecg.modules.mdc.entity.MdcEquipmentMonitor; +import org.jeecg.modules.mdc.service.IMdcEquipmentService; +import org.jeecg.modules.screen.dto.EquipmentStatusOverview; +import org.jeecg.modules.screen.service.MdcLargeScreenService; +import org.jeecg.modules.system.service.ISysDictService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author: Lius + * @CreateTime: 2025-02-28 + * @Description: + */ +@Service +public class MdcLargeScreenServiceImpl implements MdcLargeScreenService { + + @Resource + private IMdcEquipmentService mdcEquipmentService; + + @Resource + private ISysDictService sysDictService; + + /** + * 璁惧鐘舵�佹儏鍐� + * + * @param workshopId + * @return + */ + @Override + public EquipmentStatusOverview equipmentStatusOverview(String workshopId) { + EquipmentStatusOverview equipmentStatusOverview = new EquipmentStatusOverview(); + List<MdcEquipmentMonitor> equipmentMonitorList = mdcEquipmentService.getEquipmentMonitorList(workshopId); + if (equipmentMonitorList != null && !equipmentMonitorList.isEmpty()) { + equipmentStatusOverview.setEquipmentCount(equipmentMonitorList.size()); + for (MdcEquipmentMonitor mdcEquipmentMonitor : equipmentMonitorList) { + if (mdcEquipmentMonitor.getEquipmentStatus() == 0) { + if (mdcEquipmentMonitor.getOporation() != null) { + switch (mdcEquipmentMonitor.getOporation()) { + case 1: + case 2: + equipmentStatusOverview.setWaitCount(equipmentStatusOverview.getWaitCount() + 1); + break; + case 3: + equipmentStatusOverview.setRunCount(equipmentStatusOverview.getRunCount()); + break; + case 22: + equipmentStatusOverview.setErrorCount(equipmentStatusOverview.getErrorCount() + 1); + break; + default: + equipmentStatusOverview.setCloseCount(equipmentStatusOverview.getCloseCount() + 1); + break; + } + } else { + equipmentStatusOverview.setCloseCount(equipmentStatusOverview.getCloseCount() + 1); + mdcEquipmentMonitor.setOporation(0); + } + } else { + List<DictModel> dictList = sysDictService.queryEnableDictItemsByCode(CommonConstant.DICT_EQUIPMENT_STATUS); + for (DictModel dictModel : dictList) { + if (Integer.valueOf(dictModel.getValue()).equals(mdcEquipmentMonitor.getEquipmentStatus())) { + equipmentStatusOverview.setRepairCount(equipmentStatusOverview.getRepairCount() + 1); + } + } + } + } + } + return equipmentStatusOverview; + } +} diff --git a/pom.xml b/pom.xml index 142ccfa..9da6f75 100644 --- a/pom.xml +++ b/pom.xml @@ -59,6 +59,8 @@ <!-- Log4j2鐖嗛浄婕忔礊 --> <log4j2.version>2.17.0</log4j2.version> <logback.version>1.2.9</logback.version> + <!-- webservice --> + <cxf.version>3.2.4</cxf.version> </properties> <modules> -- Gitblit v1.9.3