qiangxuan 1 месяц назад
Родитель
Сommit
7fc4914ab3

+ 2 - 0
zgzt-sys-java/jeecg-module-conn/src/main/java/org/jeecg/modules/billetActual/service/IBilletHotsendChangeShiftService.java

@@ -15,4 +15,6 @@ public interface IBilletHotsendChangeShiftService extends IService<BilletHotsend
     void autoChangeShift(JSONObject jsonObject);
 
     void autoChangeShiftSix(JSONObject jsonObject);
+
+    void autoChangeShiftBak(JSONObject jsonObject, String ccmNo);
 }

+ 104 - 0
zgzt-sys-java/jeecg-module-conn/src/main/java/org/jeecg/modules/billetActual/service/impl/BilletHotsendChangeShiftServiceImpl.java

@@ -236,6 +236,110 @@ public class BilletHotsendChangeShiftServiceImpl extends ServiceImpl<BilletHotse
         log.info("6号机C端自动化交班结果:{}{}", jsonObject, DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
     }
 
+    @Override
+    public void autoChangeShiftBak(JSONObject jsonObj, String ccmNo) {
+
+        String keyShiftGroupsix = String.format("class:shift:group:%s", ccmNo);
+        String keyShiftsix = String.format("class:shift:%s", ccmNo);
+
+        String sixShiftGroup = oConvertUtils.getString(redisTemplate.opsForValue().get(keyShiftGroupsix));
+        String sixShift = oConvertUtils.getString(redisTemplate.opsForValue().get(keyShiftsix));
+
+        String currentShiftGroupName = ShiftGroupEnum.fromCode(sixShiftGroup).name();
+        String currentShiftName = ShiftEnum.fromCode(sixShift).name().replace("班", "");
+
+        String nextshiftIdKey = String.format("class:nextshift:Id:%s", ccmNo);
+        String currentCacheId = oConvertUtils.getString(redisTemplate.opsForValue().get(nextshiftIdKey));
+
+        log.info(DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()) + "&&" + ccmNo + "号机C端自动化当前班次信息值:" + sixShift+ ","+ sixShiftGroup);
+        log.info(DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get())  + "&&" + ccmNo + "号机C端自动化当前班次信息名:" + currentCacheId + "," + currentShiftName+ ","+ currentShiftGroupName);
+
+        String[] data = {
+                "1 丙", "2 甲", "3 乙", "4 丙", "5 甲", "6 乙", "7 丙", "8 甲", "9 乙", "10 丙",
+                "11 甲", "12 乙", "13 丁", "14 丙", "15 甲", "16 丁", "17 丙", "18 甲", "19 丁", "20 丙",
+                "21 甲", "22 丁", "23 丙", "24 甲", "25 乙", "26 丁", "27 丙", "28 乙", "29 丁", "30 丙",
+                "31 乙", "32 丁", "33 丙", "34 乙", "35 丁", "36 丙", "37 甲", "38 乙", "39 丁", "40 甲",
+                "41 乙", "42 丁", "43 甲", "44 乙", "45 丁", "46 甲", "47 乙", "48 丁"
+        };
+
+        ShiftInfo nextShiftGroupInfo = ScheduleUtils.findNextShift(data, Integer.valueOf(currentCacheId), currentShiftGroupName);
+        if (nextShiftGroupInfo == null){
+            log.info("{}{}",  ccmNo + "号机获取到下个班组信息为空!", DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()) + "C端自动化交班失败!");
+            return;
+        }
+        // 班别名(白中夜)
+        String nextShiftName  = "";
+        // 验证23:00 到01:00 之间
+        if (ScheduleUtils.isBetweenTime(new Date(), "07:40", "08:30")) {
+            nextShiftName = "白";
+        } else if (ScheduleUtils.isBetweenTime(new Date(), "15:40", "16:30")) {
+            nextShiftName = "中";
+        } else if (ScheduleUtils.isBetweenTime(new Date(), "23:40", "00:30")) {
+            nextShiftName = "夜";
+        }else {
+            log.info("{}{}", "未在交班范围内,", DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()) + "^^" + ccmNo + "号机C端自动化交班失败!");
+            return;
+        }
+        // 班组名(甲乙丙丁)
+        String nextShiftGroupName =  nextShiftGroupInfo.getShift();
+        // 班组值
+        String finalNextShiftGroupVal = ShiftGroupEnum.getCodeByName(nextShiftGroupName);
+        // 班别值
+        String finalNextShiftVal = ShiftEnum.getCodeByName(nextShiftName + "班");
+
+        log.info(DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()) + "^^" + ccmNo + "号机C端自动化下一个班次信息值:" + finalNextShiftVal + ","+ finalNextShiftGroupVal);
+
+        // 获取当前班组班别
+        BilletHotsendChangeShift billetHotsendChangeShift = baseMapper.selectOne(new LambdaQueryWrapper<BilletHotsendChangeShift>()
+                .eq(BilletHotsendChangeShift::getCcmNo, ccmNo)
+                .orderByDesc(BilletHotsendChangeShift::getCreateTime)
+                .last("limit 1"));
+        if (oConvertUtils.isEmpty(billetHotsendChangeShift)) {
+            log.info("{}", DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()) + "^^" + ccmNo + "号机C端自动化交班失败!");
+            return;
+        }
+        // 更新当前班次的交班时间,相当于上一个班交班的结束时间
+        if (oConvertUtils.isNotEmpty(jsonObj.getString("changeShiftTime"))){
+            billetHotsendChangeShift.setChangeShiftTime(DateUtils.str2Date(jsonObj.getString("changeShiftTime"), DateUtils.datetimeFormat.get()));
+        }else {
+            billetHotsendChangeShift.setChangeShiftTime(new Date());
+        }
+        baseMapper.updateById(billetHotsendChangeShift);
+
+        // 生成新的交班记录 初始化并保存入库
+        BilletHotsendChangeShift billetHotsendChangeShift1 = new BilletHotsendChangeShift();
+        billetHotsendChangeShift1.setId(String.valueOf(IdWorker.getId()));
+        billetHotsendChangeShift1.setCcmNo(ccmNo);
+        billetHotsendChangeShift1.setShift(finalNextShiftVal);
+        billetHotsendChangeShift1.setShiftGroup(finalNextShiftGroupVal);
+        billetHotsendChangeShift1.setHotfeignAmount(0); // 当前热装支数
+        billetHotsendChangeShift1.setProductAmount(0); // 当前生产支数
+        billetHotsendChangeShift1.setHotsendAmount(0); // 当前热送支数
+        billetHotsendChangeShift1.setStackAmount(0); // 当前起垛支数
+        billetHotsendChangeShift1.setOutCarNum(0); // 车次
+        billetHotsendChangeShift1.setShiftSum(0); // 当班总数
+        billetHotsendChangeShift1.setShiftProduct(0d); // 当班总重
+        billetHotsendChangeShift1.setWasteAmount(0); // 当前废品支数
+        billetHotsendChangeShift1.setWasteBlankOutput(0d);// 当前废品总重量
+        billetHotsendChangeShift1.setCreateTime(new Date());
+        // 3.19 新增班次实绩
+        billetHotsendChangeShift1.setShiftHotsendAmount(0);
+        billetHotsendChangeShift1.setShiftHotsendWeight(0d);
+
+        billetHotsendChangeShift1.setShiftHotfeignAmount(0);
+        billetHotsendChangeShift1.setShiftHotfeignWeight(0d);
+
+        billetHotsendChangeShift1.setShiftStackAmount(0);
+        billetHotsendChangeShift1.setShiftStackWeight(0d);
+
+        billetHotsendChangeShift1.setAllCarNum(0);
+        billetHotsendChangeShift1.setCounts(0);
+        billetHotsendChangeShift1.setBlankOutputs(0d);
+        baseMapper.insert(billetHotsendChangeShift1);
+
+        log.info("{}{}",  ccmNo + "号机C端自动化交班成功:", DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
+    }
+
     private JSONObject autoSixChangeShiftHandle(BilletHotsendChangeShift billetHotsendChangeShiftVo, String currentShiftGroup, String currentShift) {
         JSONObject result = new JSONObject();
         // 缓存交班索引ID

+ 18 - 19
zgzt-sys-java/jeecg-module-conn/src/main/java/org/jeecg/modules/watch/TaskAutoBilletWatch.java

@@ -249,7 +249,7 @@ public class TaskAutoBilletWatch {
 //    @Scheduled(cron = "0/5 * * * * ?")
     public void processAddBilletAssemblyData6() {
         String ccmNo = "6";
-        processAddBilletAssemblyData(ccmNo);
+
     }
 
     public void processAddBilletAssemblyData(String ccmNo) {
@@ -311,26 +311,23 @@ public class TaskAutoBilletWatch {
     }
 
     /**
-     * 5号机交班
+     * 6、5号机交班
      */
     @Scheduled(cron = "0/2 * * * * ?")
     public void processAddChangeShiftFiveData5() {
-        String ccmNo = "5";
-        processAddChangeShiftFiveData(ccmNo);
-    }
-    /**
-     * 6号机交班
-     */
-//    @Scheduled(cron = "0/2 * * * * ?")
-    public void processAddChangeShiftFiveData6() {
-        String ccmNo = "6";
-        processAddChangeShiftFiveData(ccmNo);
+        processAddChangeShiftFiveData("5");
+        processAddChangeShiftFiveData("6");
     }
 
     public void processAddChangeShiftFiveData(String ccmNo) {
-        String queryChangeShiftFiveIdKey = String.format("auto:query:changeShiftFive:%s", ccmNo);
+        String queryChangeShiftIdKey = "";
+        if ("5".equals(ccmNo)){
+            queryChangeShiftIdKey = String.format("auto:query:changeShiftFive:%s", ccmNo);
+        }else {
+            queryChangeShiftIdKey = String.format("auto:query:changeShiftSix:%s", ccmNo);
+        }
+        String queryChangeShiftFiveId = !oConvertUtils.getString(redisTemplate.opsForValue().get(queryChangeShiftIdKey)).isEmpty() ? oConvertUtils.getString(redisTemplate.opsForValue().get(queryChangeShiftIdKey)) : "";
 
-        String queryChangeShiftFiveId = !oConvertUtils.getString(redisTemplate.opsForValue().get(queryChangeShiftFiveIdKey)).isEmpty() ? oConvertUtils.getString(redisTemplate.opsForValue().get(queryChangeShiftFiveIdKey)) : "";
         if (oConvertUtils.isEmpty(queryChangeShiftFiveId)){
             log.info("{}", ccmNo + "号机缓存中的交班唯一ID为空,查询交班失败!");
             return;
@@ -359,9 +356,13 @@ public class TaskAutoBilletWatch {
                 log.info("{}{}", ccmNo + "号机当班交班记录已处理!", autoJiaobanId + "&" + cacheId);
                 return;
             }
-            billetHotsendChangeShiftService.autoChangeShift(jsonObject);
+//            billetHotsendChangeShiftService.autoChangeShift(jsonObject);
+            /**
+             * 公用线上lg项目中的缓存信息,此处不做任何缓存更新
+             */
+            billetHotsendChangeShiftService.autoChangeShiftBak(jsonObject, ccmNo);
             log.info("{}{}", ccmNo + "号机交班自动化操作成功:", jsonObject);
-            redisTemplate.opsForValue().set(queryChangeShiftFiveIdKey, autoJiaobanId);
+            redisTemplate.opsForValue().set(queryChangeShiftIdKey, autoJiaobanId);
         }catch (Exception e) {
             log.error("{}{}", ccmNo + "号机交班数据查询失败!", e.getMessage());
             e.printStackTrace();
@@ -412,9 +413,7 @@ public class TaskAutoBilletWatch {
             }
 
             // 获取id字段的最大值
-            Optional<Integer> maxIdOpt = dataList.stream()
-                    .map(row -> (Integer) row.get("id"))
-                    .max(Integer::compareTo);
+            Optional<Integer> maxIdOpt = dataList.stream().map(row -> (Integer) row.get("id")).max(Integer::compareTo);
             int maxId = maxIdOpt.get();
 
             for (Map<String, Object> map : dataList) {