Преглед на файлове

aps-排程的入参和结果存储本地文件

sucheng преди 5 месеца
родител
ревизия
8943d5c5da
променени са 1 файла, в които са добавени 42 реда и са изтрити 5 реда
  1. 42 5
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsServiceImpl.java

+ 42 - 5
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsServiceImpl.java

@@ -29,6 +29,10 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.time.LocalDateTime;
@@ -264,7 +268,7 @@ public class ApsServiceImpl implements ApsService {
             // 更新排程明细数据锁定状态为否
             /*processOperationProcessEquService.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>().set(ApsProcessOperationProcessEquDo::getLockmark,"n")
                     .in(ApsProcessOperationProcessEquDo::getBlankid,blankOrderIds));*/
-            apsBlankOrderDao.setProDetailLockMark(blankidStrs,currentUser.getId(),currentUser.getName());
+            apsBlankOrderDao.setProDetailLockMark(blankidStrs, currentUser.getId(), currentUser.getName());
         }
         // 排程
         List<ProductionScheduleVo> productionScheduleVos = new ArrayList<>();
@@ -638,7 +642,7 @@ public class ApsServiceImpl implements ApsService {
             // 更新排程明细数据锁定状态为否
             /*processOperationProcessEquService.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>().set(ApsProcessOperationProcessEquDo::getLockmark,"n")
                     .in(ApsProcessOperationProcessEquDo::getBlankid,blankOrderIds));*/
-            apsBlankOrderDao.setProDetailLockMark(blankidStrs,currentUser.getId(),currentUser.getName());
+            apsBlankOrderDao.setProDetailLockMark(blankidStrs, currentUser.getId(), currentUser.getName());
         }
         // 排程
         List<ProductionScheduleVo> productionScheduleVos = new ArrayList<>();
@@ -765,6 +769,8 @@ public class ApsServiceImpl implements ApsService {
             logger.info("排程数据:" + JSONUtil.toJsonStr(apsProductionSchedule, jsonConfig));
             // APS平台排程接口调用
             ProductionScheduleRetVo productionScheduleRetVo = rwApsServer.productionSchedule(apsProductionSchedule);
+            //日志写入文件
+            logWriter(JSONUtil.toJsonStr(apsProductionSchedule, jsonConfig), JSONUtil.toJsonStr(productionScheduleRetVo, jsonConfig), apsType.getScheduleType());
             if (!"200".equals(productionScheduleRetVo.getCode())) {
                 logger.info("排程异常,坯料计划ID:" + blankOrderIds);
                 // 排程异常后恢复历史排程结果为锁定状态
@@ -786,7 +792,7 @@ public class ApsServiceImpl implements ApsService {
                     apsBlankOrderService.apsAfter(productionScheduleRetVo, apsBlankOrders, currentUser, apsType);
                 }
                 //还原排程过程中,开工/报工的作业的计划时间
-                apsProcessOperationProcessEquDao.repairePlanStartDate(currentUser.getId(),currentUser.getName());
+                apsProcessOperationProcessEquDao.repairePlanStartDate(currentUser.getId(), currentUser.getName());
 
                 if (StrUtil.isNotBlank(productionScheduleRetVo.getMsg())) {
                     // 排程异常后恢复历史排程结果为锁定状态
@@ -809,6 +815,37 @@ public class ApsServiceImpl implements ApsService {
         }
     }
 
+    private static void logWriter(String req, String res, String scheduleType) {
+        String fileName = "";
+        if (scheduleType.equals("dd")) {
+            fileName = "调度";
+        } else {
+            fileName = "预排程";
+        }
+        String now = DateUtil.format(DateUtil.date(), "yyyy-MM-dd");
+        fileName += DateUtil.format(DateUtil.date(), "yyyyMMddHHmmss");
+        String filePath = "../rw-aps/" + now + "/" + fileName + ".txt";
+        String content = req + "\r\n" + res;
+        // 创建File对象
+        File file = new File(filePath);
+
+        try {
+            // 如果文件不存在,则创建新文件
+            if (!file.exists()) {
+                file.getParentFile().mkdirs(); // 确保父目录存在
+                file.createNewFile();
+            }
+
+            // 使用BufferedWriter写入内容
+            BufferedWriter writer = new BufferedWriter(new FileWriter(file));
+            writer.write(content);
+            writer.close();
+
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
     /**
      * 计算合并退火的个数
      *
@@ -1516,7 +1553,7 @@ public class ApsServiceImpl implements ApsService {
                                 item.getProcessid().equals(operationDo.getId())
                                         && ObjectUtil.isNotEmpty(item.getProcessdeviceid())
                                         && !"".equals(item.getProcessdeviceid())
-                        && !(ObjectUtil.isNotEmpty(item.getCancelroll()) && item.getCancelroll() >= item.getPlanprocessrall()))
+                                        && !(ObjectUtil.isNotEmpty(item.getCancelroll()) && item.getCancelroll() >= item.getPlanprocessrall()))
                         .sorted(Comparator.comparing(ApsProcessOperationProcessEquDo::getPlanstartdate))
                         .collect(Collectors.toList());
                 for (ApsProcessOperationProcessEquDo processDetail : processDetails) {
@@ -1722,7 +1759,7 @@ public class ApsServiceImpl implements ApsService {
                     }
                 } else {
                     for (Integer i = 0; i < operationDo.getPlanprocessrall() - operationDo.getCancelrollsum(); i++) {
-                        if (processEquDos != null && i >= processEquDos.size() && !processEquDos.isEmpty()){
+                        if (processEquDos != null && i >= processEquDos.size() && !processEquDos.isEmpty()) {
                             continue;
                         }
                         ProductionProcesses processes = productionProcessesDetailInit(operationDo, produceOrder, optionalEquipments, outMaterDos, apsBlankOrderVo, processOperationEquDos);