From 898dba8c4a14d5c9e50575e81350afcf1fe3479f Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期四, 26 六月 2025 16:06:09 +0800
Subject: [PATCH] 去除工控网拷贝nc与结构树

---
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/AssignFileStreamServiceImpl.java |  382 +++++++++++++++++++++++------------------------------
 1 files changed, 166 insertions(+), 216 deletions(-)

diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/AssignFileStreamServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/AssignFileStreamServiceImpl.java
index a3c1e93..0686e8a 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/AssignFileStreamServiceImpl.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/AssignFileStreamServiceImpl.java
@@ -1,6 +1,7 @@
 package org.jeecg.modules.dncFlow.service.impl;
 
 import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -8,7 +9,6 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.google.common.collect.Lists;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.flowable.engine.TaskService;
@@ -16,16 +16,18 @@
 import org.flowable.task.api.Task;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.modules.dnc.constant.DncPassLogPassType;
+import org.jeecg.modules.dnc.constant.DocAttributionTypeEnum;
+import org.jeecg.modules.dnc.dto.TransferPackage;
 import org.jeecg.modules.dnc.entity.*;
 import org.jeecg.modules.dnc.exception.ExceptionCast;
-import org.jeecg.modules.dnc.ext.NcTxtFilePathInfo;
 import org.jeecg.modules.dnc.response.*;
 import org.jeecg.modules.dnc.service.*;
+import org.jeecg.modules.dnc.service.impl.FileFerryService;
 import org.jeecg.modules.dnc.utils.ValidateUtil;
 import org.jeecg.modules.dnc.utils.date.DateUtil;
 import org.jeecg.modules.dnc.utils.file.FileUtilS;
 import org.jeecg.modules.dncFlow.entity.AssignFileStream;
-import org.jeecg.modules.dncFlow.entity.ToEquipmentTask;
 import org.jeecg.modules.dncFlow.ext.AssignFileStreamExt;
 import org.jeecg.modules.dncFlow.mapper.AssignFileStreamMapper;
 import org.jeecg.modules.dncFlow.request.ApproveBatchRequest;
@@ -33,9 +35,9 @@
 import org.jeecg.modules.dncFlow.request.AssignFileStreamQueryRequest;
 import org.jeecg.modules.dncFlow.request.TaskRequest;
 import org.jeecg.modules.dncFlow.service.IAssignFileStreamService;
-import org.jeecg.modules.dncFlow.service.IToEquipmentTaskService;
 import org.jeecg.modules.dncFlow.vo.AssignFlowTaskVo;
 import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
+import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService;
 import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI;
 import org.jeecg.modules.flowable.apithird.service.FlowCommonService;
 import org.jeecg.modules.flowable.domain.vo.FlowTaskVo;
@@ -43,7 +45,6 @@
 import org.jeecg.modules.flowable.service.IFlowTaskService;
 import org.jeecg.modules.mdc.entity.MdcEquipment;
 import org.jeecg.modules.mdc.service.IMdcEquipmentService;
-import org.jeecg.modules.system.entity.MdcProduction;
 import org.jeecg.modules.system.service.IMdcProductionService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -52,37 +53,21 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.io.IOException;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service("IAssignFileStreamService")
 public class AssignFileStreamServiceImpl extends ServiceImpl<AssignFileStreamMapper, AssignFileStream> implements IAssignFileStreamService , FlowCallBackServiceI {
     private static final String PROCESS_KEY = "assign_nc_to_device";
-    private static final String APPLY_VARIABLE = "apply_user";
-    private static final String APPROVE_VARIABLE = "approve_users";
     private static final String SEND_CODE = "SEND";
-
     @Value("${flowable.enable}")
     private Boolean flowableEnable;
-
+    @Value("${fileHomePath}")
+    private String fileHomePath;
     @Autowired
     private IDocInfoService docInfoService;
     @Autowired
-    private IProcessStreamService processStreamService;
-    @Autowired
-    private IWorkStepService workStepService;
-    @Autowired
-    private IPermissionStreamNewService permissionStreamNewService;
-    @Autowired
     private IDocClassificationService classificationService;
-    @Autowired
-    private IToEquipmentTaskService equipmentTaskService;
-    @Autowired
-    private IDeviceInfoService deviceInfoService;
     @Autowired
     private IDocFileService docFileService;
     @Autowired
@@ -104,22 +89,32 @@
     @Autowired
     private IFlowTaskService flowTaskService;
     @Autowired
-    private IDeviceTypeService deviceTypeService;
-
-    @Value("${securedoc.whether}")
-    private String whether;
-    @Value("${securedoc.localFilePath}")
-    private String localFilePath;
-
+    private IFlowMyBusinessService flowMyBusinessService;
+    @Autowired
+    private PermissionService permissionService;
+    @Autowired
+    private IDncPassLogService dncPassLogService;
+    @Value("${deploy.secretFolder}")
+    private String secretFolder;    //娑夊瘑缃戜紶杈搉c鏂囦欢澶�
+    @Autowired
+    private FileFerryService ferryService;
+    @Autowired
+    private IDocClassificationService iDocClassificationService;
     @Override
     @Transactional(rollbackFor = {Exception.class})
-    public Result applyAssignFile(AssignFileStream stream) {
+    public Result<?> applyAssignFile(AssignFileStream stream) {
         synchronized (this){
             //鍒ゆ柇璁惧鐗规畩瀛楃
             String specialChar = getDeviceSpecialChar(stream.getDeviceId(),stream.getFileId());
             if (StrUtil.isNotEmpty(specialChar)){
                 //鎶涘嚭鐗规畩瀛楃寮傚父
                 return Result.error("鏂囦欢鍚嶇О瀛樺湪璁惧鐗规畩瀛楃");
+            }
+            //鏌ヨ鏂囨。鐨勭姸鎬侊紝鎵瑰噯鐘舵�佹墠鍙互鎸囨淳
+            DocInfo docInfo=getDocInfo(stream);
+            DocClassification docClassification=iDocClassificationService.getById(docInfo.getClassificationId());
+            if (docInfo.getDocDispatchStatus()!=null&&docInfo.getDocDispatchStatus()!=3&&docClassification.getClassificationCode().equals("nc")){
+                return Result.error("璇ユ枃浠剁姸鎬佷笉鍏佽鎸囨淳,璇峰厛瀹屾垚瀹$娴佺▼");
             }
             if(flowableEnable) {
                 return applyAssignFileActive(stream);
@@ -136,7 +131,6 @@
      */
     public String getDeviceSpecialChar(String deviceId, String fileId){
         //鏇挎崲涓簃dc璁惧琛�
-//        DeviceInfo deviceInfo = deviceInfoService.getById(deviceId);
         MdcEquipment mdcEquipment = iMdcEquipmentService.getById(deviceId);
         if(mdcEquipment == null)
             ExceptionCast.cast(ActivitiCode.ACT_ASSIGN_DEVICE_NONE);
@@ -230,6 +224,9 @@
         //鏉冮檺鏍¢獙
         validateParams(stream);
         DocInfo docInfo = getDocInfo(stream);
+        //淇敼鍘熸湁鐘舵��
+        docInfo.setDocDispatchStatus(4);
+        docInfoService.updateById(docInfo);
         MdcEquipment mdcEquipment = getMdcEquipment(stream);
         DocFile docFile = getDocFile(stream);
         DocInfo deviceDoc = docInfoService.getByDocAttrAndDocId(stream.getDocId(), 7, stream.getDeviceId());
@@ -259,8 +256,19 @@
             }
 
         }
+        List<DocRelative> docRelativeList=docRelativeService.
+                list(new QueryWrapper<DocRelative>()
+                        .eq("attribution_type",stream.getAttributionType())
+                        .eq("attribution_id",stream.getAttributionId())
+                        .eq("doc_id",stream.getDocId()));
+        if (docRelativeList.isEmpty()){
+            ExceptionCast.cast(ActivitiCode.ACT_APPROVE_ERROR);
+        }
         handleFileTransfer(mdcEquipment, docFile);
-        handleFileProcessing(docFile, mdcEquipment, whether, localFilePath);
+        //NC鏂囦欢鐨勬嫹璐�
+//        handleFileProcessing(docFile, mdcEquipment, secretFolder);
+        //瀵瑰簲浜у搧缁撴瀯鏍戞嫹璐�
+//        handleProductTree(docInfo,docRelativeList.get(0),mdcEquipment.getEquipmentId());
         synchronizedFlagService.updateFlag(2);
         return Result.OK("鎿嶄綔鎴愬姛");
     }
@@ -289,6 +297,34 @@
         //flowable澶勭悊
         FlowTaskVo flowTaskVo = new FlowTaskVo();
         BeanUtils.copyProperties(assignFlowTaskVo, flowTaskVo);
+
+        List<FlowMyBusiness> businessList = flowMyBusinessService.list(
+                new QueryWrapper<FlowMyBusiness>()
+                        .eq("process_instance_id", assignFlowTaskVo.getInstanceId())
+        );
+        if (businessList.isEmpty()) {
+            return false;
+        }
+        FlowMyBusiness flowMyBusiness = businessList.get(0);
+        List<String> todoUsers = JSON.parseArray(flowMyBusiness.getTodoUsers(), String.class);
+        if (todoUsers == null || !todoUsers.contains(user.getUsername())) {
+            return false;
+        }
+
+        // 4. 璁ら浠诲姟锛堝鐞嗗凡琚棰嗙殑鎯呭喌锛�
+        String taskId = flowMyBusiness.getTaskId();
+        Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
+        if (task == null) {
+            return false;
+        }
+        if (task.getAssignee() != null && !task.getAssignee().equals(user.getUsername())) {
+            return false;
+        }
+        taskService.claim(taskId, user.getUsername());
+        Map<String, Object> values=new HashMap<>();
+        values.put("dataId", assignFlowTaskVo.getDataId());
+        flowTaskVo.setTaskId(assignFlowTaskVo.getTaskId());
+        flowTaskVo.setValues(values);
         flowTaskService.complete(flowTaskVo);
         //鏇存柊瀵硅薄灏佽
         AssignFileStream up = new AssignFileStream();
@@ -301,22 +337,19 @@
         if(!b)
             ExceptionCast.cast(ActivitiCode.ACT_APPROVE_ERROR);
         if(up.getStatus() == 2) {
-            DocInfo docInfo;
             //鍚屾剰鎿嶄綔
-            if (StrUtil.isNotEmpty(en.getStepId())){
-                //宸ユ涓嬭澶囩被鎸囨淳
-                docInfo = docInfoService.getByDocAttrAndDocId(en.getDocId(), 6, en.getDeviceTypeId());
-            }else {
-                docInfo = docInfoService.getByDocAttrAndDocId(en.getDocId(), 5, en.getDeviceTypeId());
-            }
-            if(docInfo == null || docInfo.getDocStatus() == 3)
-                               ExceptionCast.cast(ActivitiCode.ACT_DOC_ERROR);
+            DocInfo docInfo = docInfoService.getByDocAttrAndDocId(en.getDocId(), Integer.valueOf(en.getAttributionType()), en.getAttributionId());
+            if(docInfo == null )
+               ExceptionCast.cast(ActivitiCode.ACT_DOC_ERROR);
             MdcEquipment mdcEquipment = iMdcEquipmentService.getById(en.getDeviceId());
             if(mdcEquipment == null)
                 ExceptionCast.cast(ActivitiCode.ACT_ASSIGN_DEVICE_NONE);
             DocFile docFile = docFileService.getById(en.getFileId());
             if(docFile == null)
                 ExceptionCast.cast(ActivitiCode.ACT_FILE_ERROR);
+            //淇敼鍘熸湁鐘舵��
+            docInfo.setDocDispatchStatus(4);
+            docInfoService.updateById(docInfo);
             DocInfo deviceDoc = docInfoService.getByDocAttrAndDocId(en.getDocId(),7, en.getDeviceId());
             if(deviceDoc != null) {
                 // 鍒犻櫎 澶囦唤  瑕嗙洊 鍘熸湁鐨�
@@ -361,6 +394,20 @@
                     }
                 }
             }
+            List<DocRelative> docRelativeList=docRelativeService.
+                    list(new QueryWrapper<DocRelative>()
+                            .eq("attribution_type",en.getAttributionType())
+                            .eq("attribution_id",en.getAttributionId())
+                            .eq("doc_id",en.getDocId()));
+            if (docRelativeList.isEmpty()){
+                ExceptionCast.cast(ActivitiCode.ACT_APPROVE_ERROR);
+            }
+            //娑夊瘑缃戣繘琛孨C鏂囦欢鐨勬嫹璐�
+            handleFileTransfer(mdcEquipment, docFile);
+            //NC鏂囦欢鐨勬嫹璐�
+//            handleFileProcessing(docFile, mdcEquipment, secretFolder);
+            //瀵瑰簲浜у搧缁撴瀯鏍戞嫹璐�
+//            handleProductTree(docInfo,docRelativeList.get(0),mdcEquipment.getEquipmentId());
             return synchronizedFlagService.updateFlag(1);
         }else if(up.getStatus() == 3) {
             //鎷掔粷鎿嶄綔 浠�涔堜篃涓嶅仛
@@ -403,14 +450,6 @@
         List<TaskRequest> list = approveBatchRequest.getTaskArr();
         if(list == null || list.isEmpty())
             ExceptionCast.cast(CommonCode.INVALID_PARAM);
-//        list.forEach(item -> {
-//            AssignFileStream stream = new AssignFileStream();
-//            stream.setApproveContent(approveBatchRequest.getApproveContent());
-//            stream.setStatus(approveBatchRequest.getStatus());
-//            boolean b = approveAssignFile(item.getId(), item.getBusinessKey(), stream);
-//            if(!b)
-//                ExceptionCast.cast(ActivitiCode.ACT_APPROVE_ERROR);
-//        });
         return synchronizedFlagService.updateFlag(1);
     }
 
@@ -464,64 +503,6 @@
         return false;
     }
 
-    @Override
-    @Transactional(rollbackFor = {Exception.class})
-    public boolean transferDocFile(String pnCode, String deviceNo) {
-        List<ProcessStream> streams = processStreamService.validateDeviceProcessInfo(pnCode, deviceNo);
-        DeviceInfo deviceInfo = deviceInfoService.getByDeviceNo(deviceNo);
-        if(deviceInfo == null)
-            ExceptionCast.cast(DeviceCode.DEVICE_NOT_EXIST);
-        //鍒犻櫎鍘熸潵璁惧涓嬬殑鎵�鏈夋枃妗�
-        docRelativeService.deleteByDocAttr(7, deviceInfo.getDeviceId());
-        List<DocInfo> docInfoList = docInfoService.getByProcessIds(streams);
-        if(docInfoList == null || docInfoList.isEmpty())
-            ExceptionCast.cast(DocumentCode.DOC_NOT_EXIST);
-        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        String userId = user.getId();
-        if(!ValidateUtil.validateString(userId))
-            ExceptionCast.cast(UcenterCode.UCENTER_ACCOUNT_NOT_EXIST);
-        for(DocInfo docInfo : docInfoList) {
-            DocFile docFile = docFileService.getById(docInfo.getPublishFileId());
-            if(docFile == null)
-                ExceptionCast.cast(ActivitiCode.ACT_FILE_ERROR);
-            //鎻掑叆鏂囨。鍒拌澶囧彂閫佹枃妗�
-            DocClassification classification = classificationService.getByCode(SEND_CODE);
-            if(classification == null)
-                ExceptionCast.cast(DocumentCode.DOC_CLASS_ERROR);
-            DocRelative docRelative = new DocRelative();
-            docRelative.setDocId(docInfo.getDocId());
-            docRelative.setClassificationId(classification.getClassificationId());
-            docRelative.setAttributionType(7);
-            docRelative.setAttributionId(deviceInfo.getDeviceId());
-            boolean b = docRelativeService.save(docRelative);
-            if(!b)
-                ExceptionCast.cast(ActivitiCode.ACT_APPROVE_ERROR);
-            //鎻掑叆鏂囦欢浼犺緭浠诲姟琛�
-            ToEquipmentTask equipmentTask = new ToEquipmentTask();
-            //涓嶈兘鐩存帴浠巇oc涓嬁fileId 鍜寁ersion  鍙兘浼氬瓨鍦ㄦ枌鏇�
-            //equipmentTask.setFileId(docInfo.getPublishFileId());
-            //equipmentTask.setDocVersion(docInfo.getPublishVersion());
-            equipmentTask.setDocId(docInfo.getDocId());
-            equipmentTask.setSyncFlag(1);
-            equipmentTask.setDeviceNo(deviceInfo.getDeviceNo());
-            equipmentTask.setDeviceId(deviceInfo.getDeviceId());
-            equipmentTask.setDepartId(deviceInfo.getDepartId());
-            //鏂囦欢鐩稿叧淇℃伅
-            equipmentTask.setFileId(docFile.getFileId());
-            equipmentTask.setDocVersion(docFile.getDocVersion());
-            equipmentTask.setFileName(docInfo.getDocName());
-            equipmentTask.setFileEncodeName(docFile.getFileEncodeName());
-            equipmentTask.setFilePath(docFile.getFilePath());
-            equipmentTask.setFileSuffix(docFile.getFileSuffix());
-            equipmentTask.setFileSize(docFile.getFileSize());
-            b = equipmentTaskService.save(equipmentTask);
-            if(!b) {
-                ExceptionCast.cast(ActivitiCode.ACT_APPROVE_ERROR);
-            }
-        }
-        return synchronizedFlagService.updateFlag(1);
-    }
-
     //浼犲弬楠岃瘉
     private void validateParams(AssignFileStream stream) {
         if (stream == null) {
@@ -552,7 +533,7 @@
 
     //鑾峰彇鏂囦欢
     private void handleExistingDeviceDoc(DocFile docFile, MdcEquipment mdcEquipment, String deviceId) {
-        List<String> strings = iMdcProductionService.findListParentTreeAll(mdcEquipment.getEquipmentId());
+        List<String> strings = iMdcProductionService.findListParentTreeAll(mdcEquipment.getId());
         if (strings != null && !strings.isEmpty()) {
             String path = StringUtils.join(strings.toArray(), "/");
             boolean copyFileNc = FileUtilS.copyFileNcToBak(path + "/" + mdcEquipment.getEquipmentId(),
@@ -570,69 +551,12 @@
     }
 
     private PermissionStreamNew getPermissionStreams(AssignFileStream stream) {
-        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        DeviceType deviceType = deviceTypeService.getById(stream.getAttributionId());
-        String attributionId = deviceType != null ? deviceType.getAttributionId() : stream.getAttributionId();
-
-        PermissionStreamNew permissionStreams;
-        if (stream.getAttributionType().equals("5")) {
-            // 宸ュ簭
-            permissionStreams = handleProcess(stream, attributionId, user);
-        } else {
-            // 宸ユ
-            permissionStreams = handleWorkStep(stream, attributionId, user);
-        }
-        if (permissionStreams == null) {
+        PermissionStreamNew permissionStreamNew = permissionService.getPermissionStreams(stream);
+        if (permissionStreamNew  == null) {
             ExceptionCast.cast(ActivitiCode.ACT_NODE_DEPART_NONE);
         }
-        return permissionStreams;
+        return permissionStreamNew ;
     }
-
-    private PermissionStreamNew handleProcess(AssignFileStream stream, String attributionId, LoginUser user) {
-        ProcessStream processStream = processStreamService.getById(attributionId);
-        if (processStream == null) {
-            ExceptionCast.cast(CommonCode.INVALID_PARAM);
-        }
-        stream.setProductId(processStream.getProductId());
-        stream.setComponentId(processStream.getComponentId());
-        stream.setPartsId(processStream.getPartsId());
-        stream.setProcessId(processStream.getProcessId());
-        if (deviceTypeService.getById(stream.getAttributionId()) != null) {
-            stream.setDeviceTypeId(deviceTypeService.getById(stream.getAttributionId()).getId());
-        }
-        return permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(processStream.getProcessId(), user.getId(), "5");
-    }
-
-    private PermissionStreamNew handleWorkStep(AssignFileStream stream, String attributionId, LoginUser user) {
-        WorkStep workStep = workStepService.getById(attributionId);
-        if (workStep == null) {
-            ExceptionCast.cast(CommonCode.INVALID_PARAM);
-        }
-        stream.setProductId(workStep.getProductId());
-        stream.setComponentId(workStep.getComponentId());
-        stream.setPartsId(workStep.getPartsId());
-        stream.setProcessId(workStep.getProcessId());
-        stream.setStepId(workStep.getId());
-        if (deviceTypeService.getById(stream.getAttributionId()) != null) {
-            stream.setDeviceTypeId(deviceTypeService.getById(stream.getAttributionId()).getId());
-        }
-        return permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(workStep.getId(), user.getId(), "6");
-    }
-
-    //鑾峰彇閮ㄩ棬淇℃伅
-    //todo 淇敼
-    private List<String> getDepartIds(List<PermissionStream> permissionStreams, String userId) {
-        Map<String, MdcProduction> map = iMdcProductionService.getUserAssignedDepart(userId);
-        List<String> departIds = permissionStreams.stream()
-                .filter(item -> map.containsKey(item.getDepartId()))
-                .map(PermissionStream::getDepartId)
-                .collect(Collectors.toList());
-        if (departIds.isEmpty()) {
-            ExceptionCast.cast(ActivitiCode.ACT_USER_NOT_PERM);
-        }
-        return departIds;
-    }
-
 
     //灏佽鏁版嵁
     private void saveBusinessObject(AssignFileStream stream, String userId) {
@@ -646,19 +570,6 @@
             ExceptionCast.cast(ActivitiCode.ACT_BUSINESS_SAVE_ERROR);
         }
     }
-
-    //寮�濮嬪伐浣滄祦
-//    private ProcessInstance startProcessInstance(AssignFileStream stream, List<String> userIdList) {
-//        String approveUsers = String.join(",", userIdList);
-//        Map<String, Object> avariableMap = new HashMap<>();
-//        avariableMap.put(APPLY_VARIABLE, stream.getApplyUserId());
-//        avariableMap.put(APPROVE_VARIABLE, approveUsers);
-//        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(PROCESS_KEY, stream.getStreamId(), avariableMap);
-//        if (processInstance == null) {
-//            ExceptionCast.cast(ActivitiCode.ACT_APPROVE_USERS_NONE);
-//        }
-//        return processInstance;
-//    }
 
     //鎷惧彇浠诲姟
     private void completeTask(ProcessInstance processInstance, String userId) {
@@ -689,7 +600,8 @@
     }
 
     //鎻掑叆鏂囦欢浼犺緭浠诲姟琛�
-    private void handleFileTransfer(MdcEquipment mdcEquipment, DocFile docFile) {
+    @Override
+    public void handleFileTransfer(MdcEquipment mdcEquipment, DocFile docFile) {
         List<String> strings = iMdcProductionService.findListParentTreeAll(mdcEquipment.getId());
         if (strings != null && !strings.isEmpty()) {
             String path = StringUtils.join(strings.toArray(), "/");
@@ -708,46 +620,84 @@
     }
 
     //灏佽澶勭悊鏂囦欢
-    private void handleFileProcessing(DocFile docFile, MdcEquipment mdcEquipment, String whether, String localFilePath) {
-        if (whether.equals("true") && !docFile.getFileSuffix().equals("zip") && !docFile.getFileSuffix().equals("rar")) {
-            String size = FileUtilS.fileSizeNC(docFile.getFilePath(), docFile.getFileEncodeName());
+    private void handleFileProcessing(DocFile docFile, MdcEquipment mdcEquipment, String secretFolder) {
+        if (!docFile.getFileSuffix().equals("zip") && !docFile.getFileSuffix().equals("rar")) {
             List<String> strings = iMdcProductionService.findListParentTreeAll(mdcEquipment.getId());
             if (strings != null && !strings.isEmpty()) {
+                DncPassLog passInfoTxt = new DncPassLog();
+
                 String path = StringUtils.join(strings.toArray(), "/");
                 Date dateFirst = DateUtil.getNow();
-                NcTxtFilePathInfo ncTxt = new NcTxtFilePathInfo();
-                ncTxt.setEquipmentId(mdcEquipment.getEquipmentId());
-                ncTxt.setFileNcName("02A" + DateUtil.format(dateFirst, DateUtil.STR_YEARMONTHDAY));
-                ncTxt.setFileTxtName("02A" + DateUtil.format(dateFirst, DateUtil.STR_YEARMONTHDAY));
-                ncTxt.setFilePath(path + "/" + mdcEquipment.getEquipmentId() + "/");
-                ncTxt.setOrigFileName(docFile.getFileName());
-                ncTxt.setOrigFileSuffix(docFile.getFileSuffix());
-                ncTxt.setFileAddOrDelete(1);
-                String loFilePath = localFilePath + ncTxt.getFileTxtName() + ".nc";
-                try {
-                    String allList = ncTxt.getFileTxtName() + "\n"
-                            + ncTxt.getFileNcName() + "\n"
-                            + ncTxt.getOrigFileName() + "\n"
-                            + ncTxt.getOrigFileSuffix() + "\n"
-                            + ncTxt.getFilePath() + "\n"
-                            + ncTxt.getEquipmentId() + "\n"
-                            + ncTxt.getFileAddOrDelete().toString() + "\n"
-                            + size + "\n";
-                    FileUtilS.fileWriterSql(loFilePath, allList);
-                    boolean copyFileNc = FileUtilS.copyFileUpName(path + "/" + mdcEquipment.getEquipmentId() + "/send/" +
-                                    docFile.getFileName(),
-                            localFilePath + ncTxt.getFileNcName(),
-                            docFile.getFileSuffix(), "NC");
-                    if (!copyFileNc) {
-                        FileUtilS.deleteNcFile(loFilePath);
-                    }
-                } catch (IOException e) {
-                    throw new RuntimeException("鏂囦欢澶勭悊澶辫触", e);
+                passInfoTxt.setDayTime(DateUtil.format(dateFirst,DateUtil.STR_YEARMONTHDAY));
+                /*鏌ヨ鏈�鍚庝竴鏉¤褰�*/
+                //浼戠湢 500姣
+                DncPassLog dncPassLog  = dncPassLogService.findDayTime(DateUtil.format(dateFirst,DateUtil.STR_YEARMONTHDAY));
+                int fileNc =0;
+                if (dncPassLog !=null) {
+                    fileNc = dncPassLog.getSequenceNumber() + 1;
+                } else {
+                    fileNc =  1;
                 }
+                //澶勭悊鏂囦欢鍚嶇О  鏂囦欢璺緞
+                String sequenceNc = String.format("%06d",fileNc);
+                DncPassLog passInfoNc = new DncPassLog();
+                passInfoNc.setSequenceNumber(fileNc);
+                passInfoNc.setSequenceOrder(sequenceNc);
+                passInfoNc.setDayTime(DateUtil.format(dateFirst,DateUtil.STR_YEARMONTHDAY));
+                passInfoNc.setPassType("02");
+                passInfoNc.setPassName(docFile.getFileName());
+                try {
+                    Thread.sleep(1000);
+                    Date date = new Date();
+                    passInfoNc.setCreateTime(date);
+                    System.out.println(DateUtil.format(date,DateUtil.STR_DATE_TIME));
+                } catch (InterruptedException e) {
+                    e.printStackTrace();
+                }
+                dncPassLogService.save(passInfoNc);
+                FileUtilS.copyFileUpName(path + "/" + mdcEquipment.getEquipmentId() + "/send/" +
+                                docFile.getFileName(),
+                        secretFolder +"/"+"10A"+DateUtil.format(dateFirst,DateUtil.STR_YEARMONTHDAY)+sequenceNc+"_"+mdcEquipment.getEquipmentId(),
+                        docFile.getFileSuffix(), "NC");
             }
         }
     }
 
+    /**
+     * 澶勭悊瀵瑰簲浜у搧缁撴瀯鏍戙�乶c鏂囦欢銆佸垁鍏峰垪琛ㄣ�佺▼搴忓姞宸ョ‘璁よ〃灏佽
+     * @param docInfo
+     */
+    private void handleProductTree(DocInfo docInfo,DocRelative docRelative,String equipmentId) {
+        /*鏌ヨ鏈�鍚庝竴鏉¤褰�*/
+        //浼戠湢 500姣
+        DncPassLog passInfoTxt = new DncPassLog();
+        Date dateFirst = DateUtil.getNow();
+        passInfoTxt.setDayTime(DateUtil.format(dateFirst,DateUtil.STR_YEARMONTHDAY));
+        DncPassLog dncPassLog  = dncPassLogService.findDayTime(DateUtil.format(dateFirst,DateUtil.STR_YEARMONTHDAY));
+        int fileTxt = 0, fileNc =0;
+        if (dncPassLog !=null) {
+            fileTxt = dncPassLog.getSequenceNumber() + 1;
+        } else {
+            fileTxt =  1;
+        }
+        String sequence = String.format("%06d",fileTxt);
+        passInfoTxt.setSequenceNumber(fileTxt);
+        passInfoTxt.setCreateTime(dateFirst);
+        passInfoTxt.setSequenceOrder(sequence);
+        System.out.println(DateUtil.format(dateFirst,DateUtil.STR_DATE_TIME));
+        passInfoTxt.setPassType(DncPassLogPassType.PRODUCTSTRUCTURE.getCode());
+        dncPassLogService.save(passInfoTxt);
+        String fileName="10A"+DateUtil.format(dateFirst,DateUtil.STR_YEARMONTHDAY);
+        if (Objects.equals(docInfo.getAttributionType(), DocAttributionTypeEnum.PROCESS.getCode())){
+            //宸ュ簭瀵瑰簲璁惧绫�
+            String filePath = ferryService.exportData(TransferPackage.DataType.PROCESS, docRelative.getId(),fileName+sequence+"_"+equipmentId+".ferry");
+            System.out.println("宸ュ簭鏁版嵁宸插鍑�: " + filePath);
+        }else {
+            //宸ユ瀵瑰簲璁惧绫�
+            String filePath = ferryService.exportData(TransferPackage.DataType.WORKSTEP, docRelative.getId(),fileName+sequence+"_"+equipmentId+".ferry");
+            System.out.println("宸ユ鏁版嵁宸插鍑�: " + filePath);
+        }
+    }
     @Override
     public void afterFlowHandle(FlowMyBusiness business) {
         business.getTaskNameId();//鎺ヤ笅鏉ュ鎵圭殑鑺傜偣
@@ -767,6 +717,6 @@
 
     @Override
     public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) {
-        return Lists.newArrayList("jeecg");
+        return null;
     }
 }

--
Gitblit v1.9.3