Quellcode durchsuchen

新搞的有3个值,实际设定值,mes设定值,实际值

wukai vor 3 Tagen
Ursprung
Commit
b7476ffaef

+ 15 - 14
jjt-admin/src/test/java/com/jjt/task/RzTest.java

@@ -12,7 +12,7 @@ import com.jjt.rz.domain.TwinDeviceTypeData;
 import com.jjt.rz.service.ITwinCalcHourRzService;
 import com.jjt.rz.service.ITwinDeviceRzService;
 import com.jjt.rz.service.ITwinDeviceTypeService;
-import com.jjt.rz.vo.CompareVo;
+import com.jjt.rz.vo.CompareVO;
 import com.jjt.utils.IotService;
 import javafx.util.Pair;
 import org.junit.jupiter.api.Test;
@@ -127,22 +127,23 @@ public class RzTest {
     @Test
     public void hour() {
         iotService.setToken();
-        String st = "2025-05-30";
+        String st = "2025-06-01";
         String ed = "2025-06-03";
         LocalDate localDate = LocalDate.parse(st);
         LocalDate endDate = LocalDate.parse(ed);
         LocalDateTime start = LocalDateTime.of(localDate, LocalTime.MIN).plusHours(7);
-        LocalDateTime end = LocalDateTime.of(endDate.plusDays(1), LocalTime.MIN).plusHours(6);
-        LocalDateTime curr = LocalDateTime.now();
-        if (end.isAfter(curr)) {
-            end = curr.minusHours(1);
-        }
-        do {
-            int i = start.getHour();
-            System.err.println(start.toLocalDate().toString() + "\t" + i);
-            hourRzService.hour(start, start.plusHours(1));
-            start = start.plusHours(1);
-        } while (!start.isAfter(end));
+        hourRzService.hour(start, start.plusHours(1));
+//        LocalDateTime end = LocalDateTime.of(endDate.plusDays(1), LocalTime.MIN).plusHours(6);
+//        LocalDateTime curr = LocalDateTime.now();
+//        if (end.isAfter(curr)) {
+//            end = curr.minusHours(1);
+//        }
+//        do {
+//            int i = start.getHour();
+//            System.err.println(start.toLocalDate().toString() + "\t" + i);
+//            hourRzService.hour(start, start.plusHours(1));
+//            start = start.plusHours(1);
+//        } while (!start.isAfter(end));
     }
 
     @Test
@@ -202,7 +203,7 @@ public class RzTest {
         req.setEnd(end);
         list.add(req);
 
-        List<CompareVo> vos = apiYrService.compare(list);
+        List<CompareVO> vos = apiYrService.compare(list);
         System.err.println(vos.size());
     }
 }

+ 2 - 2
jjt-biz/src/main/java/com/jjt/biz/service/IApiYrService.java

@@ -1,7 +1,7 @@
 package com.jjt.biz.service;
 
 import com.jjt.biz.vo.*;
-import com.jjt.rz.vo.CompareVo;
+import com.jjt.rz.vo.CompareVO;
 
 import java.util.List;
 
@@ -50,5 +50,5 @@ public interface IApiYrService {
      * @param list 输入参数
      * @return 结果集
      */
-    List<CompareVo> compare(List<YrCompareBackReq> list);
+    List<CompareVO> compare(List<YrCompareBackReq> list);
 }

+ 19 - 27
jjt-biz/src/main/java/com/jjt/biz/service/impl/ApiYrServiceImpl.java

@@ -14,7 +14,7 @@ import com.jjt.rz.domain.TwinDeviceTypeData;
 import com.jjt.rz.service.ITwinCalcHourRzService;
 import com.jjt.rz.service.ITwinDeviceRzService;
 import com.jjt.rz.service.ITwinDeviceTypeService;
-import com.jjt.rz.vo.CompareVo;
+import com.jjt.rz.vo.CompareVO;
 import com.jjt.ws.domain.TwinRzCalcMonth;
 import com.jjt.ws.service.ITwinRzCalcMonthService;
 import lombok.extern.slf4j.Slf4j;
@@ -291,8 +291,8 @@ public class ApiYrServiceImpl implements IApiYrService {
      * @return 结果集
      */
     @Override
-    public List<CompareVo> compare(List<YrCompareBackReq> reqs) {
-        List<CompareVo> result = new ArrayList<>();
+    public List<CompareVO> compare(List<YrCompareBackReq> reqs) {
+        List<CompareVO> result = new ArrayList<>();
         List<TwinDeviceTypeData> all = typeService.selectTwinDeviceTypeDataAll();
         Map<Long, TwinDeviceTypeData> dataMap = all.stream()
                 .collect(Collectors.toMap(
@@ -301,13 +301,13 @@ public class ApiYrServiceImpl implements IApiYrService {
                         (existing, replacement) -> existing
                 ));
         for (YrCompareBackReq req : reqs) {
-            CompareVo vo = new CompareVo();
+            CompareVO vo = new CompareVO();
             vo.setLine(req.getLine());
             vo.setStart(req.getStart());
             vo.setEnd(req.getEnd());
             vo.setYh(10);
-            CompareVo.Qz qz = vo.getQz();
-            CompareVo.Hz hz = vo.getHz();
+            CompareVO.Qz qz = vo.getQz();
+            CompareVO.Hz hz = vo.getHz();
             LocalDateTime ldt = req.getEnd().minusHours(1);
             Date date = Date.from(ldt.toLocalDate().atStartOfDay(ZoneOffset.of("+8")).toInstant());
             TwinCalcHourRz search = new TwinCalcHourRz();
@@ -316,15 +316,9 @@ public class ApiYrServiceImpl implements IApiYrService {
             search.setLine(req.getLine());
             List<TwinCalcHourRz> list = hourRzService.selectTwinCalcHourRzList(search);
             list.forEach(item -> {
-                TreeMap<String, String> map = JSON.parseObject(item.getData(), TreeMap.class);
-                TreeMap<String, String> treeMap = new TreeMap<>();
-                treeMap.put("device", item.getDeviceName());
-                map.forEach((id, value) -> {
-                    TwinDeviceTypeData data = dataMap.get(Long.parseLong(id));
-                    if (data != null) {
-                        treeMap.put(data.getDataName(), value);
-                    }
-                });
+                Map<String, Object> map = JSON.parseObject(item.getData(), Map.class);
+                map.put("device", item.getDeviceName());
+                map.put("online", item.getOnline());
 
                 if (item.getWsName().equals("Forward")) {
                     //前整
@@ -334,28 +328,28 @@ public class ApiYrServiceImpl implements IApiYrService {
                             if ("Y".equals(item.getOnline())) {
                                 qz.setDx(qz.getDx() + 1);
                             }
-                            qz.addDxPara(treeMap);
+                            qz.addDxPara(map);
                             break;
                         case 3:
                             //双棍烫光机
                             if ("Y".equals(item.getOnline())) {
                                 qz.setTg(qz.getTg() + 1);
                             }
-                            qz.addTgPara(treeMap);
+                            qz.addTgPara(map);
                             break;
                         case 4:
                             //高梳机
                             if ("Y".equals(item.getOnline())) {
                                 qz.setGs(qz.getGs() + 1);
                             }
-                            qz.addGsPara(treeMap);
+                            qz.addGsPara(map);
                             break;
                         case 5:
                             //双棍刷毛
                             if ("Y".equals(item.getOnline())) {
                                 qz.setSm(qz.getSm() + 1);
                             }
-                            qz.addSmPara(treeMap);
+                            qz.addSmPara(map);
                             break;
                         default:
                             break;
@@ -368,49 +362,47 @@ public class ApiYrServiceImpl implements IApiYrService {
                             if ("Y".equals(item.getOnline())) {
                                 hz.setDx(hz.getDx() + 1);
                             }
-                            hz.addDxPara(treeMap);
+                            hz.addDxPara(map);
                             break;
                         case 3:
                             //双棍烫光机
                             if ("Y".equals(item.getOnline())) {
                                 hz.setTg(hz.getTg() + 1);
                             }
-                            hz.addTgPara(treeMap);
+                            hz.addTgPara(map);
                             break;
                         case 4:
                             //高梳机
                             if ("Y".equals(item.getOnline())) {
                                 hz.setGs(hz.getGs() + 1);
                             }
-                            hz.addGsPara(treeMap);
+                            hz.addGsPara(map);
                             break;
                         case 5:
                             //双棍刷毛
                             if ("Y".equals(item.getOnline())) {
                                 hz.setSm(hz.getSm() + 1);
                             }
-                            hz.addSmPara(treeMap);
+                            hz.addSmPara(map);
                             break;
                         case 7:
                             //起毛机
                             if ("Y".equals(item.getOnline())) {
                                 hz.setQm(hz.getQm() + 1);
                             }
-                            hz.addQmPara(treeMap);
+                            hz.addQmPara(map);
                             break;
                         case 9:
                             //烫剪机
                             if ("Y".equals(item.getOnline())) {
                                 hz.setTj(hz.getTj() + 1);
                             }
-                            hz.addTjPara(treeMap);
+                            hz.addTjPara(map);
                             break;
                         default:
                             break;
                     }
                 }
-//
-
             });
             result.add(vo);
         }

+ 44 - 115
jjt-biz/src/main/java/com/jjt/rz/domain/TwinDeviceTypeData.java

@@ -1,11 +1,11 @@
 package com.jjt.rz.domain;
 
-import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
 import com.jjt.common.annotation.Excel;
 import com.jjt.common.core.domain.BaseEntity;
+import lombok.Data;
+
+import java.util.Date;
 
 /**
  * 设备类型数据管理对象 TWIN_DEVICE_TYPE_DATA
@@ -13,142 +13,71 @@ import com.jjt.common.core.domain.BaseEntity;
  * @author wukai
  * @date 2025-05-21
  */
-public class TwinDeviceTypeData extends BaseEntity
-{
+@Data
+public class TwinDeviceTypeData extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
-    /** ID */
+    /**
+     * ID
+     */
     private Long dataId;
 
-    /** 设备类型ID */
+    /**
+     * 设备类型ID
+     */
     @Excel(name = "设备类型ID")
     private Long typeId;
 
-    /** 数据名称 */
+    /**
+     * 数据名称
+     */
     @Excel(name = "数据名称")
     private String dataName;
 
-    /** 数据IOT字段 */
-    @Excel(name = "数据IOT字段")
+    @Excel(name = "排序")
+    private Integer dataSort;
+    /**
+     * 人工设定
+     */
+    @Excel(name = "人工设定")
     private String dataCode;
 
-    /** 数据获取类型;1.累计类型  2.累计中间清零 3.状态记录 */
-    @Excel(name = "数据获取类型;1.累计类型  2.累计中间清零 3.状态记录")
-    private String dataType;
-
-    /** 创建人 */
+    /**
+     * mes下发字段
+     */
+    @Excel(name = "mes下发字段")
+    private String mesCode;
+
+    /**
+     * 实际值字段
+     */
+    @Excel(name = "实际值字段")
+    private String actCode;
+
+    /**
+     * 创建人
+     */
     @Excel(name = "创建人")
     private String createdBy;
 
-    /** 创建时间 */
+    /**
+     * 创建时间
+     */
     @JsonFormat(pattern = "yyyy-MM-dd")
     @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
     private Date createdTime;
 
-    /** 更新人 */
+    /**
+     * 更新人
+     */
     @Excel(name = "更新人")
     private String updatedBy;
 
-    /** 更新时间 */
+    /**
+     * 更新时间
+     */
     @JsonFormat(pattern = "yyyy-MM-dd")
     @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
     private Date updatedTime;
 
-    public void setDataId(Long dataId)
-    {
-        this.dataId = dataId;
-    }
-
-    public Long getDataId()
-    {
-        return dataId;
-    }
-    public void setTypeId(Long typeId)
-    {
-        this.typeId = typeId;
-    }
-
-    public Long getTypeId()
-    {
-        return typeId;
-    }
-    public void setDataName(String dataName)
-    {
-        this.dataName = dataName;
-    }
-
-    public String getDataName()
-    {
-        return dataName;
-    }
-    public void setDataCode(String dataCode)
-    {
-        this.dataCode = dataCode;
-    }
-
-    public String getDataCode()
-    {
-        return dataCode;
-    }
-    public void setDataType(String dataType)
-    {
-        this.dataType = dataType;
-    }
-
-    public String getDataType()
-    {
-        return dataType;
-    }
-    public void setCreatedBy(String createdBy)
-    {
-        this.createdBy = createdBy;
-    }
-
-    public String getCreatedBy()
-    {
-        return createdBy;
-    }
-    public void setCreatedTime(Date createdTime)
-    {
-        this.createdTime = createdTime;
-    }
-
-    public Date getCreatedTime()
-    {
-        return createdTime;
-    }
-    public void setUpdatedBy(String updatedBy)
-    {
-        this.updatedBy = updatedBy;
-    }
-
-    public String getUpdatedBy()
-    {
-        return updatedBy;
-    }
-    public void setUpdatedTime(Date updatedTime)
-    {
-        this.updatedTime = updatedTime;
-    }
-
-    public Date getUpdatedTime()
-    {
-        return updatedTime;
-    }
-
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("dataId", getDataId())
-            .append("typeId", getTypeId())
-            .append("dataName", getDataName())
-            .append("dataCode", getDataCode())
-            .append("dataType", getDataType())
-            .append("createdBy", getCreatedBy())
-            .append("createdTime", getCreatedTime())
-            .append("updatedBy", getUpdatedBy())
-            .append("updatedTime", getUpdatedTime())
-            .append("remark", getRemark())
-            .toString();
-    }
 }

+ 5 - 0
jjt-biz/src/main/java/com/jjt/rz/service/ITwinCalcHourRzService.java

@@ -62,6 +62,11 @@ public interface ITwinCalcHourRzService {
     public int deleteTwinCalcHourRzById(Long id);
 
     /**
+     * 获取上一时段数据
+     */
+    void last();
+
+    /**
      * 按小时获取数据
      *
      * @param start 开始时间

+ 74 - 15
jjt-biz/src/main/java/com/jjt/rz/service/impl/TwinCalcHourRzServiceImpl.java

@@ -2,15 +2,20 @@ package com.jjt.rz.service.impl;
 
 import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson2.JSON;
+import com.jjt.common.utils.StringUtils;
 import com.jjt.rz.domain.TwinCalcHourRz;
 import com.jjt.rz.domain.TwinDeviceRz;
 import com.jjt.rz.domain.TwinDeviceType;
+import com.jjt.rz.domain.TwinDeviceTypeData;
 import com.jjt.rz.mapper.TwinCalcHourRzMapper;
 import com.jjt.rz.service.ITwinCalcHourRzService;
 import com.jjt.rz.service.ITwinDeviceRzService;
 import com.jjt.rz.service.ITwinDeviceTypeService;
 import com.jjt.utils.IotService;
+import com.jjt.utils.Tools;
+import javafx.util.Pair;
 import org.apache.ibatis.session.ExecutorType;
 import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.session.SqlSessionFactory;
@@ -109,6 +114,16 @@ public class TwinCalcHourRzServiceImpl implements ITwinCalcHourRzService {
     }
 
     /**
+     * 获取上一时段数据
+     */
+    @Override
+    public void last() {
+        LocalDateTime start = Tools.currWholeTime();
+        LocalDateTime end = start.plusHours(1);
+        hour(start, end);
+    }
+
+    /**
      * 按小时获取数据
      *
      * @param start 开始时间
@@ -123,33 +138,53 @@ public class TwinCalcHourRzServiceImpl implements ITwinCalcHourRzService {
         List<TwinDeviceRz> list = rzService.selectTwinDeviceRzList(new TwinDeviceRz());
         List<TwinDeviceType> typeList = typeService.selectTwinDeviceTypeAll();
         Map<Long, TwinDeviceType> typeMap = new HashMap<>(16);
-        Map<String, Long> dataMap = new HashMap<>(16);
+        //存明细数据,key用deviceCode+dataCode
+        Map<String, TwinDeviceTypeData> detailMap = new HashMap<>(16);
         typeList.forEach(item -> typeMap.put(item.getTypeId(), item));
         List<String> strList = new ArrayList<>();
         Map<String, TwinDeviceRz> rzMap = new HashMap<>(16);
+
+        //这个集合用来保存数据是属于 设定值 还是mes 还是实际值
+        Map<String, Pair<String, String>> clsMap = new HashMap<>(16);
         //查询状态结尾部分
         String statusSuffix = ".Capacity_data_1";
         list.forEach(item -> {
             String str = item.getDeviceCode() + statusSuffix;
-            String mapId = item.getDevicePath() + statusSuffix;
             item.setOnline(false);
-            rzMap.put(mapId, item);
+            rzMap.put(item.getDeviceCode(), item);
             strList.add(str);
 
             TwinDeviceType type = typeMap.get(item.getTypeId());
-            type.getTwinDeviceTypeDataList().forEach(item1 -> {
-                String suffix1 = "." + item1.getDataCode();
-                String mapId1 = item.getDevicePath() + suffix1;
+            type.getTwinDeviceTypeDataList().forEach(detail -> {
+                String suffix1 = "." + detail.getDataCode();
                 strList.add(item.getDeviceCode() + suffix1);
-                rzMap.put(mapId1, item);
-                //devicePath+suffix1当key ,dataId当value
-                String key = item.getDevicePath() + suffix1;
-                dataMap.put(key, item1.getDataId());
+                clsMap.put(item.getDeviceCode() + suffix1, new Pair<>("set", detail.getDataName()));
+                detailMap.put(item.getDeviceCode() + suffix1, detail);
+                if (StringUtils.isNotEmpty(detail.getMesCode())) {
+                    suffix1 = "." + detail.getMesCode();
+                    strList.add(item.getDeviceCode() + suffix1);
+                    clsMap.put(item.getDeviceCode() + suffix1, new Pair<>("mes", detail.getDataName()));
+                    detailMap.put(item.getDeviceCode() + suffix1, detail);
+                }
+
+                if (StringUtils.isNotEmpty(detail.getActCode())) {
+                    JSONArray array = JSONUtil.parseArray(detail.getActCode());
+                    for (int j = 0; j < array.size(); j++) {
+                        JSONObject jsonObject = array.getJSONObject(j);
+                        String suffix2 = "." + jsonObject.getStr("code");
+                        String name = jsonObject.getStr("name");
+                        if (StringUtils.isEmpty(name)) {
+                            name = detail.getDataName();
+                        }
+                        strList.add(item.getDeviceCode() + suffix2);
+                        clsMap.put(item.getDeviceCode() + suffix2, new Pair<>("act", name));
+                        detailMap.put(item.getDeviceCode() + suffix2, detail);
+                    }
+                }
             });
         });
         String sql = "select last %s from root.tl.suxi where time>%s and time <=%s";
         sql = String.format(sql, String.join(",", strList), startTime, endTime);
-        iotService.query(sql);
         JSONObject jsonObject = iotService.query(sql);
         JSONObject data = jsonObject.getJSONObject("data");
         JSONArray values = data.getJSONArray("values");
@@ -158,12 +193,16 @@ public class TwinCalcHourRzServiceImpl implements ITwinCalcHourRzService {
         for (int i = 0; i < values.size(); i++) {
             JSONArray da = values.getJSONArray(i);
             String type = da.getStr(0);
+            String[] tmp = type.split("\\.");
+            String deviceCode = tmp[3];
+            String dataCode = tmp[4];
             String value = da.getStr(1);
-            TwinDeviceRz rz = rzMap.get(type);
+            TwinDeviceRz rz = rzMap.get(deviceCode);
             if (rz != null) {
                 Map<String, Object> params = rz.getParams();
                 if (params == null) {
                     params = new HashMap<>();
+                    rz.setParams(params);
                 }
                 //判断状态
                 if (type.contains(statusSuffix)) {
@@ -179,9 +218,29 @@ public class TwinCalcHourRzServiceImpl implements ITwinCalcHourRzService {
                     }
                 } else {
                     //工艺参数数据获取
-                    String key = String.valueOf(dataMap.get(type));
-                    params.put(key, value);
-                    rz.setParams(params);
+                    String key = deviceCode + "." + dataCode;
+                    TwinDeviceTypeData detail = detailMap.get(key);
+                    Pair<String, String> clsPair = clsMap.get(key);
+                    Object obj = params.get(detail.getDataName());
+                    Map<String, Object> subMap = new HashMap<>(16);
+                    if (obj == null) {
+                        params.put(detail.getDataName(), subMap);
+                    } else {
+                        subMap = (Map<String, Object>) obj;
+                    }
+                    if ("act".equals(clsPair.getKey())) {
+                        List<Map<String, String>> actList = (List<Map<String, String>>) subMap.get(clsPair.getKey());
+                        if (actList == null) {
+                            actList = new ArrayList<>();
+                        }
+                        Map<String, String> actMap = new HashMap<>(2);
+                        actMap.put("name", clsPair.getValue());
+                        actMap.put("value", value);
+                        actList.add(actMap);
+                        subMap.put(clsPair.getKey(), actList);
+                    } else {
+                        subMap.put(clsPair.getKey(), value);
+                    }
                 }
             }
         }

+ 25 - 24
jjt-biz/src/main/java/com/jjt/rz/vo/CompareVo.java → jjt-biz/src/main/java/com/jjt/rz/vo/CompareVO.java

@@ -9,7 +9,7 @@ import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.TreeMap;
+import java.util.Map;
 
 /**
  * 工艺比对视图
@@ -17,9 +17,10 @@ import java.util.TreeMap;
  * @author wukai
  * @date 2025/6/3 23:47
  */
-@ApiModel(value = "CompareVo", description = "工艺比对视图")
 @Data
-public class CompareVo {
+@ApiModel(value = "CompareVo", description = "工艺比对视图")
+public class CompareVO {
+    private static final long serialVersionUID = 1L;
     @ApiModelProperty("产线")
     private Integer line;
     @ApiModelProperty("开始时间")
@@ -46,19 +47,19 @@ public class CompareVo {
         @ApiModelProperty("定型次数")
         private Integer dx;
         @ApiModelProperty("定型参数")
-        private List<TreeMap<String, String>> dxPara;
+        private List<Map<String, Object>> dxPara;
         @ApiModelProperty("高梳次数")
         private Integer gs;
         @ApiModelProperty("高梳参数")
-        private List<TreeMap<String, String>> gsPara;
+        private List<Map<String, Object>> gsPara;
         @ApiModelProperty("双棍烫光次数")
         private Integer tg;
         @ApiModelProperty("双棍烫光参数")
-        private List<TreeMap<String, String>> tgPara;
+        private List<Map<String, Object>> tgPara;
         @ApiModelProperty("双棍刷毛次数")
         private Integer sm;
         @ApiModelProperty("双棍刷毛参数")
-        private List<TreeMap<String, String>> smPara;
+        private List<Map<String, Object>> smPara;
         @ApiModelProperty("电")
         private BigDecimal elect;
         @ApiModelProperty("热油")
@@ -77,19 +78,19 @@ public class CompareVo {
             this.smPara = new ArrayList<>();
         }
 
-        public void addDxPara(TreeMap<String, String> treeMap) {
+        public void addDxPara(Map<String, Object> treeMap) {
             this.dxPara.add(treeMap);
         }
 
-        public void addGsPara(TreeMap<String, String> treeMap) {
+        public void addGsPara(Map<String, Object> treeMap) {
             this.gsPara.add(treeMap);
         }
 
-        public void addTgPara(TreeMap<String, String> treeMap) {
+        public void addTgPara(Map<String, Object> treeMap) {
             this.tgPara.add(treeMap);
         }
 
-        public void addSmPara(TreeMap<String, String> treeMap) {
+        public void addSmPara(Map<String, Object> treeMap) {
             this.smPara.add(treeMap);
         }
     }
@@ -99,27 +100,27 @@ public class CompareVo {
         @ApiModelProperty("定型次数")
         private Integer dx;
         @ApiModelProperty("定型参数")
-        private List<TreeMap<String, String>> dxPara;
+        private List<Map<String, Object>> dxPara;
         @ApiModelProperty("高梳次数")
         private Integer gs;
         @ApiModelProperty("高梳参数")
-        private List<TreeMap<String, String>> gsPara;
+        private List<Map<String, Object>> gsPara;
         @ApiModelProperty("双棍烫光次数")
         private Integer tg;
         @ApiModelProperty("双棍烫光参数")
-        private List<TreeMap<String, String>> tgPara;
+        private List<Map<String, Object>> tgPara;
         @ApiModelProperty("双棍刷毛次数")
         private Integer sm;
         @ApiModelProperty("双棍刷毛参数")
-        private List<TreeMap<String, String>> smPara;
+        private List<Map<String, Object>> smPara;
         @ApiModelProperty("起毛次数")
         private Integer qm;
         @ApiModelProperty("起毛参数")
-        private List<TreeMap<String, String>> qmPara;
+        private List<Map<String, Object>> qmPara;
         @ApiModelProperty("烫剪次数")
         private Integer tj;
         @ApiModelProperty("烫剪参数")
-        private List<TreeMap<String, String>> tjPara;
+        private List<Map<String, Object>> tjPara;
         @ApiModelProperty("电")
         private BigDecimal elect;
         @ApiModelProperty("热油")
@@ -142,32 +143,32 @@ public class CompareVo {
             this.tjPara = new ArrayList<>();
         }
 
-        public void addDxPara(TreeMap<String, String> treeMap) {
+        public void addDxPara(Map<String, Object> treeMap) {
             this.dxPara.add(treeMap);
         }
 
-        public void addGsPara(TreeMap<String, String> treeMap) {
+        public void addGsPara(Map<String, Object> treeMap) {
             this.gsPara.add(treeMap);
         }
 
-        public void addTgPara(TreeMap<String, String> treeMap) {
+        public void addTgPara(Map<String, Object> treeMap) {
             this.tgPara.add(treeMap);
         }
 
-        public void addSmPara(TreeMap<String, String> treeMap) {
+        public void addSmPara(Map<String, Object> treeMap) {
             this.smPara.add(treeMap);
         }
 
-        public void addQmPara(TreeMap<String, String> treeMap) {
+        public void addQmPara(Map<String, Object> treeMap) {
             this.qmPara.add(treeMap);
         }
 
-        public void addTjPara(TreeMap<String, String> treeMap) {
+        public void addTjPara(Map<String, Object> treeMap) {
             this.tjPara.add(treeMap);
         }
     }
 
-    public CompareVo() {
+    public CompareVO() {
         this.qz = new Qz();
         this.hz = new Hz();
 

+ 5 - 4
jjt-biz/src/main/java/com/jjt/task/YhjTask.java

@@ -1,11 +1,9 @@
 package com.jjt.task;
 
-import com.jjt.calc.service.ITwinCalcDayService;
 import com.jjt.calc.service.ITwinCalcDayYhjService;
-import com.jjt.calc.service.ITwinCalcHourService;
 import com.jjt.calc.service.ITwinCalcHourYhjService;
-import com.jjt.common.utils.DateUtils;
-import com.jjt.emp.service.ITwinEmpCalcService;
+import com.jjt.rz.service.ITwinCalcHourRzService;
+import com.jjt.utils.Tools;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
@@ -23,12 +21,15 @@ public class YhjTask {
     private ITwinCalcHourYhjService yhjService;
     @Resource
     private ITwinCalcDayYhjService dayService;
+    @Resource
+    private ITwinCalcHourRzService rzService;
 
     /**
      * 统计上一时段数据
      */
     public void last() {
         yhjService.last();
+        rzService.last();
     }
 
     /**

+ 74 - 35
jjt-biz/src/main/resources/mapper/rz/TwinDeviceTypeMapper.xml

@@ -1,61 +1,94 @@
 <?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">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.jjt.rz.mapper.TwinDeviceTypeMapper">
 
     <resultMap type="TwinDeviceType" id="TwinDeviceTypeResult">
-        <result property="typeId"    column="TYPE_ID"    />
-        <result property="typeGroup"    column="TYPE_GROUP"    />
-        <result property="typeName"    column="TYPE_NAME"    />
-        <result property="typeMatch"    column="TYPE_MATCH"    />
-        <result property="createdBy"    column="CREATED_BY"    />
-        <result property="createdTime"    column="CREATED_TIME"    />
-        <result property="updatedBy"    column="UPDATED_BY"    />
-        <result property="updatedTime"    column="UPDATED_TIME"    />
-        <result property="remark"    column="REMARK"    />
+        <result property="typeId" column="TYPE_ID"/>
+        <result property="typeGroup" column="TYPE_GROUP"/>
+        <result property="typeName" column="TYPE_NAME"/>
+        <result property="typeMatch" column="TYPE_MATCH"/>
+        <result property="createdBy" column="CREATED_BY"/>
+        <result property="createdTime" column="CREATED_TIME"/>
+        <result property="updatedBy" column="UPDATED_BY"/>
+        <result property="updatedTime" column="UPDATED_TIME"/>
+        <result property="remark" column="REMARK"/>
     </resultMap>
 
     <resultMap id="TwinDeviceTypeTwinDeviceTypeDataResult" type="TwinDeviceType" extends="TwinDeviceTypeResult">
-        <collection property="twinDeviceTypeDataList" ofType="TwinDeviceTypeData" column="TYPE_ID" select="selectTwinDeviceTypeDataList" />
+        <collection property="twinDeviceTypeDataList" ofType="TwinDeviceTypeData" column="TYPE_ID"
+                    select="selectTwinDeviceTypeDataList"/>
     </resultMap>
 
     <resultMap type="TwinDeviceTypeData" id="TwinDeviceTypeDataResult">
-        <result property="dataId"    column="DATA_ID"    />
-        <result property="typeId"    column="TYPE_ID"    />
-        <result property="dataName"    column="DATA_NAME"    />
-        <result property="dataCode"    column="DATA_CODE"    />
-        <result property="dataType"    column="DATA_TYPE"    />
-        <result property="createdBy"    column="CREATED_BY"    />
-        <result property="createdTime"    column="CREATED_TIME"    />
-        <result property="updatedBy"    column="UPDATED_BY"    />
-        <result property="updatedTime"    column="UPDATED_TIME"    />
-        <result property="remark"    column="REMARK"    />
+        <result property="dataId" column="DATA_ID"/>
+        <result property="typeId" column="TYPE_ID"/>
+        <result property="dataName" column="DATA_NAME"/>
+        <result property="dataSort" column="DATA_SORT"/>
+        <result property="dataCode" column="DATA_CODE"/>
+        <result property="mesCode" column="MES_CODE"/>
+        <result property="actCode" column="ACT_CODE"/>
+        <result property="createdBy" column="CREATED_BY"/>
+        <result property="createdTime" column="CREATED_TIME"/>
+        <result property="updatedBy" column="UPDATED_BY"/>
+        <result property="updatedTime" column="UPDATED_TIME"/>
+        <result property="remark" column="REMARK"/>
     </resultMap>
 
     <sql id="selectTwinDeviceTypeVo">
-        select TYPE_ID, TYPE_GROUP, TYPE_NAME, TYPE_MATCH, CREATED_BY, CREATED_TIME, UPDATED_BY, UPDATED_TIME, REMARK from TWIN_DEVICE_TYPE
+        select TYPE_ID,
+               TYPE_GROUP,
+               TYPE_NAME,
+               TYPE_MATCH,
+               CREATED_BY,
+               CREATED_TIME,
+               UPDATED_BY,
+               UPDATED_TIME,
+               REMARK
+        from TWIN_DEVICE_TYPE
     </sql>
 
-    <select id="selectTwinDeviceTypeList" parameterType="TwinDeviceType" resultMap="TwinDeviceTypeTwinDeviceTypeDataResult">
+    <select id="selectTwinDeviceTypeList" parameterType="TwinDeviceType"
+            resultMap="TwinDeviceTypeTwinDeviceTypeDataResult">
         <include refid="selectTwinDeviceTypeVo"/>
         <where>
-            <if test="typeGroup != null  and typeGroup != ''"> and TYPE_GROUP = #{typeGroup}</if>
-            <if test="typeName != null  and typeName != ''"> and TYPE_NAME like concat('%', #{typeName}, '%')</if>
-            <if test="typeMatch != null  and typeMatch != ''"> and TYPE_MATCH = #{typeMatch}</if>
+            <if test="typeGroup != null  and typeGroup != ''">and TYPE_GROUP = #{typeGroup}</if>
+            <if test="typeName != null  and typeName != ''">and TYPE_NAME like concat('%', #{typeName}, '%')</if>
+            <if test="typeMatch != null  and typeMatch != ''">and TYPE_MATCH = #{typeMatch}</if>
         </where>
     </select>
 
     <select id="selectTwinDeviceTypeByTypeId" parameterType="Long" resultMap="TwinDeviceTypeTwinDeviceTypeDataResult">
-        select TYPE_ID, TYPE_GROUP, TYPE_NAME, TYPE_MATCH, CREATED_BY, CREATED_TIME, UPDATED_BY, UPDATED_TIME, REMARK
+        select TYPE_ID,
+               TYPE_GROUP,
+               TYPE_NAME,
+               TYPE_MATCH,
+               CREATED_BY,
+               CREATED_TIME,
+               UPDATED_BY,
+               UPDATED_TIME,
+               REMARK
         from TWIN_DEVICE_TYPE
         where TYPE_ID = #{typeId}
     </select>
 
     <select id="selectTwinDeviceTypeDataList" resultMap="TwinDeviceTypeDataResult">
-        select DATA_ID, TYPE_ID, DATA_NAME, DATA_CODE, DATA_TYPE, CREATED_BY, CREATED_TIME, UPDATED_BY, UPDATED_TIME, REMARK
+        select DATA_ID,
+               TYPE_ID,
+               DATA_NAME,
+               DATA_CODE,
+               MES_CODE,
+               ACT_CODE,
+               CREATED_BY,
+               CREATED_TIME,
+               UPDATED_BY,
+               UPDATED_TIME,
+               REMARK,
+               DATA_SORT
         from TWIN_DEVICE_TYPE_DATA
         where TYPE_ID = #{TYPE_ID}
+        order by type_id, data_sort
     </select>
 
     <insert id="insertTwinDeviceType" parameterType="TwinDeviceType" useGeneratedKeys="true" keyProperty="typeId">
@@ -69,7 +102,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updatedBy != null">UPDATED_BY,</if>
             <if test="updatedTime != null">UPDATED_TIME,</if>
             <if test="remark != null">REMARK,</if>
-         </trim>
+        </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="typeGroup != null">#{typeGroup},</if>
             <if test="typeName != null">#{typeName},</if>
@@ -79,7 +112,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updatedBy != null">#{updatedBy},</if>
             <if test="updatedTime != null">#{updatedTime},</if>
             <if test="remark != null">#{remark},</if>
-         </trim>
+        </trim>
     </insert>
 
     <update id="updateTwinDeviceType" parameterType="TwinDeviceType">
@@ -98,7 +131,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </update>
 
     <delete id="deleteTwinDeviceTypeByTypeId" parameterType="Long">
-        delete from TWIN_DEVICE_TYPE where TYPE_ID = #{typeId}
+        delete
+        from TWIN_DEVICE_TYPE
+        where TYPE_ID = #{typeId}
     </delete>
 
     <delete id="deleteTwinDeviceTypeByTypeIds" parameterType="String">
@@ -116,13 +151,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </delete>
 
     <delete id="deleteTwinDeviceTypeDataByTypeId" parameterType="Long">
-        delete from TWIN_DEVICE_TYPE_DATA where TYPE_ID = #{typeId}
+        delete
+        from TWIN_DEVICE_TYPE_DATA
+        where TYPE_ID = #{typeId}
     </delete>
 
     <insert id="batchTwinDeviceTypeData">
-        insert into TWIN_DEVICE_TYPE_DATA( TYPE_ID, DATA_NAME, DATA_CODE, DATA_TYPE, CREATED_BY, CREATED_TIME, UPDATED_BY, UPDATED_TIME, REMARK) values
+        insert into TWIN_DEVICE_TYPE_DATA(TYPE_ID, DATA_NAME, DATA_CODE, MES_CODE, ACT_CODE, CREATED_BY, CREATED_TIME,
+        UPDATED_BY, UPDATED_TIME, REMARK, DATA_SORT) values
         <foreach item="item" index="index" collection="list" separator=",">
-            ( #{item.typeId}, #{item.dataName}, #{item.dataCode}, #{item.dataType}, #{item.createdBy}, #{item.createdTime}, #{item.updatedBy}, #{item.updatedTime}, #{item.remark})
+            (#{item.typeId}, #{item.dataName}, #{item.dataCode}, #{item.mesCode}, #{item.actCode}, #{item.createdBy},
+            #{item.createdTime}, #{item.updatedBy}, #{item.updatedTime}, #{item.remark}, #{item.dataSort})
         </foreach>
     </insert>
 </mapper>