Browse Source

炉次实绩

guoqiang 7 months ago
parent
commit
53aec71522

+ 13 - 0
jeecg-module-conn/src/main/java/org/jeecg/modules/billetActual/entity/BilletBasicInfo.java

@@ -127,6 +127,11 @@ public class BilletBasicInfo implements Serializable {
     @ApiModelProperty(value = "判级结果",required = true)
     private String ratingsResult;
 
+    /**编辑条件*/
+    @Excel(name = "编辑条件", width = 15)
+    @ApiModelProperty(value = "编辑条件",required = true)
+    private Integer opType;
+
     public BilletBasicInfo() {
     }
 
@@ -332,4 +337,12 @@ public class BilletBasicInfo implements Serializable {
     public void setRatingsResult(String ratingsResult) {
         this.ratingsResult = ratingsResult;
     }
+
+    public Integer getOpType() {
+        return opType;
+    }
+
+    public void setOpType(Integer opType) {
+        this.opType = opType;
+    }
 }

+ 8 - 5
jeecg-module-conn/src/main/java/org/jeecg/modules/billetActual/service/impl/BilletBasicInfoServiceImpl.java

@@ -19,11 +19,14 @@ public class BilletBasicInfoServiceImpl extends ServiceImpl<BilletBasicInfoMappe
 
     @Override
     public void addC(BilletBasicInfo billetBasicInfo) {
-        LambdaQueryWrapper<BilletBasicInfo> queryWrapper = new LambdaQueryWrapper<BilletBasicInfo>().eq(BilletBasicInfo::getBilletNo, billetBasicInfo.getBilletNo());
-        BilletBasicInfo basicInfo = baseMapper.selectOne(queryWrapper);
-        if(oConvertUtils.isNotEmpty(basicInfo)&&oConvertUtils.isNotEmpty(basicInfo.getId())){
-            billetBasicInfo.setId(basicInfo.getId());
-            baseMapper.updateById(billetBasicInfo);
+        // 满足  optype;  // 操作类型, 1 = 新增, 2 = 编辑
+        if(billetBasicInfo.getOpType() == 2) { // 编辑
+            LambdaQueryWrapper<BilletBasicInfo> queryWrapper = new LambdaQueryWrapper<BilletBasicInfo>().eq(BilletBasicInfo::getBilletNo, billetBasicInfo.getBilletNo());
+            BilletBasicInfo basicInfo = baseMapper.selectOne(queryWrapper);
+            if(oConvertUtils.isNotEmpty(basicInfo) && oConvertUtils.isNotEmpty(basicInfo.getId())){
+                billetBasicInfo.setId(basicInfo.getId());
+                baseMapper.updateById(billetBasicInfo);
+            }
         }else {
             baseMapper.insert(billetBasicInfo);
         }

+ 24 - 0
jeecg-module-conn/src/main/java/org/jeecg/modules/heatsActuals/controller/HeatsActualsController.java

@@ -0,0 +1,24 @@
+package org.jeecg.modules.heatsActuals.controller;
+
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.modules.heatsActuals.entity.HeatsActuals;
+import org.jeecg.modules.heatsActuals.service.IHeatsActualsService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.Api;
+
+ /**
+ * @Description: 炉次实绩
+ * @Author: jeecg-boot
+ * @Date:   2024-04-18
+ * @Version: V1.0
+ */
+@Api(tags="炉次实绩")
+@RestController
+@RequestMapping("/actualControl/heatsActuals")
+@Slf4j
+public class HeatsActualsController extends JeecgController<HeatsActuals, IHeatsActualsService> {
+	@Autowired
+	private IHeatsActualsService heatsActualsService;
+}

+ 382 - 0
jeecg-module-conn/src/main/java/org/jeecg/modules/heatsActuals/entity/HeatsActuals.java

@@ -0,0 +1,382 @@
+package org.jeecg.modules.heatsActuals.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.alibaba.druid.sql.ast.expr.SQLSmallIntExpr;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: 炉次实绩
+ * @Author: jeecg-boot
+ * @Date:   2024-04-18
+ * @Version: V1.0
+ */
+@TableName("heats_actuals")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="heats_actuals对象", description="炉次实绩")
+public class HeatsActuals implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**主键*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键")
+    private String id;
+    /**钢坯总支数*/
+    @Excel(name = "钢坯总支数", width = 15)
+    @ApiModelProperty(value = "钢坯总支数",required = true)
+    private Integer billetSum;
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+	/**创建日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建日期")
+    private Date createTime;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+	/**更新日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "更新日期")
+    private Date updateTime;
+	/**所属部门*/
+    @ApiModelProperty(value = "所属部门")
+    private String sysOrgCode;
+	/**炉号*/
+	@Excel(name = "炉号", width = 15)
+    @ApiModelProperty(value = "炉号",required = true)
+    private String heatsCode;
+	/**铸机号*/
+	@Excel(name = "铸机号", width = 15)
+    @ApiModelProperty(value = "铸机号",required = true)
+    private String casterCode;
+	/**钢包号*/
+	@Excel(name = "钢包号", width = 15)
+    @ApiModelProperty(value = "钢包号",required = true)
+    private String ladleCode;
+	/**开浇时间*/
+	@Excel(name = "开浇时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "开浇时间",required = true)
+    private Date startPourTime;
+	/**停浇时间*/
+	@Excel(name = "停浇时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "停浇时间",required = true)
+    private Date stopPourTime;
+	/**实包重量*/
+	@Excel(name = "实包重量", width = 15)
+    @ApiModelProperty(value = "实包重量",required = true)
+    private Double fullLadleWeight;
+	/**空包重量*/
+	@Excel(name = "空包重量", width = 15)
+    @ApiModelProperty(value = "空包重量",required = true)
+    private Double emptyLadleWeight;
+	/**钢水重量*/
+	@Excel(name = "钢水重量", width = 15)
+    @ApiModelProperty(value = "钢水重量",required = true)
+    private Double moltenSteelWeight;
+    /**规格*/
+    @Excel(name = "规格", width = 15)
+    @ApiModelProperty(value = "规格",required = true)
+    private String spec;
+    /**钢种*/
+    @Excel(name = "钢种", width = 15)
+    @ApiModelProperty(value = "钢种",required = true)
+    private String grade;
+    /**第一次切割时间*/
+    @Excel(name = "第一次切割时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "第一次切割时间",required = true)
+    private Date firstCutTime;
+    /**最后切割时间*/
+    @Excel(name = "最后切割时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "最后切割时间",required = true)
+    private Date lastCutTime;
+
+    /**定尺*/
+    @Excel(name = "定尺1", width = 15)
+    @ApiModelProperty(value = "定尺1",required = true)
+    private Integer lengthOne;
+    /**定尺*/
+    @Excel(name = "定尺1-支数", width = 15)
+    @ApiModelProperty(value = "定尺1-支数",required = true)
+    private Integer lengthOneSum;
+    /**定尺*/
+    @Excel(name = "定尺2", width = 15)
+    @ApiModelProperty(value = "定尺2",required = true)
+    private Integer lengthTwo;
+    /**定尺*/
+    @Excel(name = "定尺2-支数", width = 15)
+    @ApiModelProperty(value = "定尺2-支数",required = true)
+    private Integer lengthTwoSum;
+    /**定尺*/
+    @Excel(name = "定尺3", width = 15)
+    @ApiModelProperty(value = "定尺3",required = true)
+    private Integer lengthThree;
+    /**定尺*/
+    @Excel(name = "定尺3-支数", width = 15)
+    @ApiModelProperty(value = "定尺3-支数",required = true)
+    private Integer lengthThreeSum;
+    /**定尺*/
+    @Excel(name = "定尺4", width = 15)
+    @ApiModelProperty(value = "定尺1",required = true)
+    private Integer lengthFour;
+    /**定尺*/
+    @Excel(name = "定尺4-支数", width = 15)
+    @ApiModelProperty(value = "定尺4-支数",required = true)
+    private Integer lengthFourSum;
+    /**定尺*/
+    @Excel(name = "定尺5", width = 15)
+    @ApiModelProperty(value = "定尺5",required = true)
+    private Integer lengthFive;
+    /**定尺*/
+    @Excel(name = "定尺5-支数", width = 15)
+    @ApiModelProperty(value = "定尺5-支数",required = true)
+    private Integer lengthFiveSum;
+    /**定尺*/
+    @Excel(name = "定尺6", width = 15)
+    @ApiModelProperty(value = "定尺6",required = true)
+    private Integer lengthSix;
+    /**定尺*/
+    @Excel(name = "定尺6-支数", width = 15)
+    @ApiModelProperty(value = "定尺6-支数",required = true)
+    private Integer lengthSixSum;
+
+    /**编辑条件*/
+    @Excel(name = "编辑条件", width = 15)
+    @ApiModelProperty(value = "编辑条件",required = true)
+    private Integer opType;
+
+    public HeatsActuals() {
+    }
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public Integer getBilletSum() {
+        return billetSum;
+    }
+
+    public void setBilletSum(Integer billetSum) {
+        this.billetSum = billetSum;
+    }
+
+    public String getCreateBy() {
+        return createBy;
+    }
+
+    public void setCreateBy(String createBy) {
+        this.createBy = createBy;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getUpdateBy() {
+        return updateBy;
+    }
+
+    public void setUpdateBy(String updateBy) {
+        this.updateBy = updateBy;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getSysOrgCode() {
+        return sysOrgCode;
+    }
+
+    public void setSysOrgCode(String sysOrgCode) {
+        this.sysOrgCode = sysOrgCode;
+    }
+
+    public String getHeatsCode() {
+        return heatsCode;
+    }
+
+    public void setHeatsCode(String heatsCode) {
+        this.heatsCode = heatsCode;
+    }
+
+    public String getCasterCode() {
+        return casterCode;
+    }
+
+    public void setCasterCode(String casterCode) {
+        this.casterCode = casterCode;
+    }
+
+    public String getLadleCode() {
+        return ladleCode;
+    }
+
+    public void setLadleCode(String ladleCode) {
+        this.ladleCode = ladleCode;
+    }
+
+    public Date getStartPourTime() {
+        return startPourTime;
+    }
+
+    public void setStartPourTime(Date startPourTime) {
+        this.startPourTime = startPourTime;
+    }
+
+    public Date getStopPourTime() {
+        return stopPourTime;
+    }
+
+    public void setStopPourTime(Date stopPourTime) {
+        this.stopPourTime = stopPourTime;
+    }
+
+    public Double getFullLadleWeight() {
+        return fullLadleWeight;
+    }
+
+    public void setFullLadleWeight(Double fullLadleWeight) {
+        this.fullLadleWeight = fullLadleWeight;
+    }
+
+    public Double getEmptyLadleWeight() {
+        return emptyLadleWeight;
+    }
+
+    public void setEmptyLadleWeight(Double emptyLadleWeight) {
+        this.emptyLadleWeight = emptyLadleWeight;
+    }
+
+    public Double getMoltenSteelWeight() {
+        return moltenSteelWeight;
+    }
+
+    public void setMoltenSteelWeight(Double moltenSteelWeight) {
+        this.moltenSteelWeight = moltenSteelWeight;
+    }
+
+    public String getSpec() {
+        return spec;
+    }
+
+    public void setSpec(String spec) {
+        this.spec = spec;
+    }
+
+    public String getGrade() {
+        return grade;
+    }
+
+    public void setGrade(String grade) {
+        this.grade = grade;
+    }
+
+    public Date getFirstCutTime() {
+        return firstCutTime;
+    }
+
+    public void setFirstCutTime(Date firstCutTime) {
+        this.firstCutTime = firstCutTime;
+    }
+
+    public Date getLastCutTime() {
+        return lastCutTime;
+    }
+
+    public void setLastCutTime(Date lastCutTime) {
+        this.lastCutTime = lastCutTime;
+    }
+
+    public Integer getLengthOne() {
+        return lengthOne;
+    }
+
+    public void setLengthOne(Integer lengthOne) {
+        this.lengthOne = lengthOne;
+    }
+
+    public Integer getLengthTwo() {
+        return lengthTwo;
+    }
+
+    public void setLengthTwo(Integer lengthTwo) {
+        this.lengthTwo = lengthTwo;
+    }
+
+    public Integer getLengthThree() {
+        return lengthThree;
+    }
+
+    public void setLengthThree(Integer lengthThree) {
+        this.lengthThree = lengthThree;
+    }
+
+    public Integer getLengthFour() {
+        return lengthFour;
+    }
+
+    public void setLengthFour(Integer lengthFour) {
+        this.lengthFour = lengthFour;
+    }
+
+    public Integer getLengthFive() {return lengthFive;}
+
+    public void setLengthFive(Integer lengthFive) {
+        this.lengthFive = lengthFive;
+    }
+
+    public Integer getLengthSix() {
+        return lengthSix;
+    }
+
+    public void setLengthSix(Integer lengthSix) {
+        this.lengthSix = lengthSix;
+    }
+
+    public Integer getOpType() {
+        return opType;
+    }
+
+    public void setOpType(Integer opType) {
+        this.opType = opType;
+    }
+
+}

+ 13 - 0
jeecg-module-conn/src/main/java/org/jeecg/modules/heatsActuals/mapper/HeatsActualsMapper.java

@@ -0,0 +1,13 @@
+package org.jeecg.modules.heatsActuals.mapper;
+
+import org.jeecg.modules.heatsActuals.entity.HeatsActuals;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 炉次实绩
+ * @Author: jeecg-boot
+ * @Date:   2024-04-18
+ * @Version: V1.0
+ */
+public interface HeatsActualsMapper extends BaseMapper<HeatsActuals> {
+}

+ 5 - 0
jeecg-module-conn/src/main/java/org/jeecg/modules/heatsActuals/mapper/xml/HeatsActualsMapper.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.actualControl.heatsActuals.mapper.HeatsActualsMapper">
+
+</mapper>

+ 16 - 0
jeecg-module-conn/src/main/java/org/jeecg/modules/heatsActuals/service/IHeatsActualsService.java

@@ -0,0 +1,16 @@
+package org.jeecg.modules.heatsActuals.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.heatsActuals.entity.HeatsActuals;
+
+/**
+ * @Description: 炉次实绩
+ * @Author: jeecg-boot
+ * @Date:   2024-04-18
+ * @Version: V1.0
+ */
+public interface IHeatsActualsService extends IService<HeatsActuals> {
+
+    void addC(HeatsActuals heatsActuals);
+
+}

+ 36 - 0
jeecg-module-conn/src/main/java/org/jeecg/modules/heatsActuals/service/impl/HeatsActualsServiceImpl.java

@@ -0,0 +1,36 @@
+package org.jeecg.modules.heatsActuals.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.heatsActuals.entity.HeatsActuals;
+import org.jeecg.modules.heatsActuals.mapper.HeatsActualsMapper;
+import org.jeecg.modules.heatsActuals.service.IHeatsActualsService;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 炉次实绩
+ * @Author: jeecg-boot
+ * @Date:   2024-04-18
+ * @Version: V1.0
+ */
+@Service
+public class HeatsActualsServiceImpl extends ServiceImpl<HeatsActualsMapper, HeatsActuals> implements IHeatsActualsService {
+    @Override
+    public void addC(HeatsActuals heatsActuals) {
+        // 满足  optype;  // 操作类型, 1=新增, 2=编辑
+        // 编辑条件 = 炉号+铸机号+开浇时间
+        if(heatsActuals.getOpType() == 2){ // 编辑信号
+            LambdaQueryWrapper<HeatsActuals> queryWrapper = new LambdaQueryWrapper<HeatsActuals>().eq(HeatsActuals::getHeatsCode, heatsActuals.getHeatsCode())
+                    .eq(HeatsActuals::getCasterCode, heatsActuals.getCasterCode())
+                    .eq(HeatsActuals::getStartPourTime, heatsActuals.getStartPourTime());
+            HeatsActuals actuals = baseMapper.selectOne(queryWrapper);
+            if(oConvertUtils.isNotEmpty(actuals) && oConvertUtils.isNotEmpty(actuals.getId())){ // 编辑
+                heatsActuals.setId(actuals.getId());
+                baseMapper.updateById(heatsActuals);
+            }
+        } else {
+            baseMapper.insert(heatsActuals);
+        }
+    }
+}

+ 10 - 1
jeecg-module-conn/src/main/java/org/jeecg/modules/push/utils/MqttClientCallback.java

@@ -9,6 +9,8 @@ import org.jeecg.modules.billetActual.entity.BilletBasicInfo;
 import org.jeecg.modules.billetActual.service.IBilletBasicInfoService;
 import org.jeecg.modules.connConfig.configMqtt.entity.MqttMsg;
 import org.jeecg.modules.connConfig.configMqtt.mapper.MqttMsgMapper;
+import org.jeecg.modules.heatsActuals.entity.HeatsActuals;
+import org.jeecg.modules.heatsActuals.service.IHeatsActualsService;
 import org.springframework.data.mongodb.core.MongoTemplate;
 
 import java.util.*;
@@ -46,6 +48,8 @@ public class MqttClientCallback implements MqttCallback, MqttCallbackExtended{
 
     private IBilletBasicInfoService billetBasicInfoService = SpringContextHolder.getBean(IBilletBasicInfoService.class);
 
+    private IHeatsActualsService heatsActualsService = SpringContextHolder.getBean(IHeatsActualsService.class);
+
     /**
      * MQTT 断开连接会执行此方法
      */
@@ -95,7 +99,12 @@ public class MqttClientCallback implements MqttCallback, MqttCallbackExtended{
         mqttMsgMapper.delete(eq);
         mqttMsgMapper.insert(mqttMsg);
         JSONObject jsonObject = JSONObject.fromObject(message.toString());
-        log.info("铸坯实绩");
+        // 炉次实绩
+        if(topic.contains("trace/performance/converter/add")){
+            HeatsActuals heatsActuals = (HeatsActuals)JSONObject.toBean(jsonObject, HeatsActuals.class);
+            heatsActualsService.addC(heatsActuals);
+            return;
+        }
         // 铸坯实绩
         if(topic.contains("trace/performance/billet/add")){
             BilletBasicInfo billetBasicInfo = (BilletBasicInfo) JSONObject.toBean(jsonObject, BilletBasicInfo.class);