From 0aaabac24ac4ebc2fe3e54c56e95f250ea238d5b Mon Sep 17 00:00:00 2001
From: admin <15939171744@163.com>
Date: 星期四, 18 七月 2024 14:31:16 +0800
Subject: [PATCH] -切换大模组代码更改

---
 jcdm-main/src/main/java/com/jcdm/main/plcserver/conf/OPCElement.java                                              |    3 
 jcdm-main/src/main/resources/mapper/bs/formulaChildInfoTemp/BsFormulaChildInfoTempMapper.xml                      |  179 ++++++
 jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java             |   27 
 jcdm-main/src/main/java/com/jcdm/main/plcserver/CustomRunner.java                                                 |    1 
 jcdm-main/src/main/java/com/jcdm/main/bs/formulaChildInfoTemp/service/impl/BsFormulaChildInfoTempServiceImpl.java |  102 +++
 jcdm-ui/src/views/main/kb/stationTerminal/index.vue                                                               |   35 +
 jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/controller/BsFormulaChildInfoController.java                |   88 ++
 jcdm-ui/src/views/main/bs/formulaChildInfoTemp/index.vue                                                          |  598 ++++++++++++++++++++
 jcdm-main/src/main/java/com/jcdm/main/bs/formulaChildInfoTemp/service/IBsFormulaChildInfoTempService.java         |   63 ++
 jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java           |   11 
 jcdm-main/src/main/java/com/jcdm/main/bs/formulaChildInfoTemp/mapper/BsFormulaChildInfoTempMapper.java            |   63 ++
 jcdm-main/src/main/java/com/jcdm/main/bs/formulaChildInfoTemp/controller/BsFormulaChildInfoTempController.java    |  104 +++
 jcdm-main/src/main/java/com/jcdm/main/bs/formulaChildInfoTemp/domain/BsFormulaChildInfoTemp.java                  |  375 ++++++++++++
 jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/domain/BsFormulaChildInfo.java                              |    3 
 jcdm-ui/src/api/main/bs/formulaChildInfoTemp/formulaChildInfoTemp.js                                              |   44 +
 15 files changed, 1,668 insertions(+), 28 deletions(-)

diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/controller/BsFormulaChildInfoController.java b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/controller/BsFormulaChildInfoController.java
index 0a067bd..5930cf2 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/controller/BsFormulaChildInfoController.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/controller/BsFormulaChildInfoController.java
@@ -7,6 +7,9 @@
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.jcdm.main.bs.formulaChildInfoTemp.domain.BsFormulaChildInfoTemp;
+import com.jcdm.main.bs.formulaChildInfoTemp.service.IBsFormulaChildInfoTempService;
 import com.jcdm.main.constant.Constants;
 import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo;
 import com.jcdm.main.om.productionOrde.service.IOmProductionOrdeInfoService;
@@ -50,6 +53,9 @@
     @Autowired
     private MiloService miloService;
 
+    @Autowired
+    private IBsFormulaChildInfoTempService bsFormulaChildInfoTempService;
+
     /**
      * 鎵爜纭
      */
@@ -89,9 +95,10 @@
     @GetMapping("/manualNgOffline")
     public AjaxResult manualNgOffline(BsFormulaChildInfo bsFormulaChildInfo)
     {
-        Integer stepNumber = 90;
+        Integer stepNumber = 31;
         try {
-            String str = "PACK."+bsFormulaChildInfo.getLocationCode()+".MStepNumber";
+            logger.info("鎵嬪姩涓嬬嚎锛屽啓鍏rtificialNgSignal涓猴細{}",stepNumber);
+            String str = "PACK."+bsFormulaChildInfo.getLocationCode()+".ArtificialNgSignal";
             miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(str).value(stepNumber).build());
         } catch (Exception e) {
             throw new RuntimeException(e);
@@ -137,14 +144,85 @@
     /**
      * 鏌ヨ閰嶆柟閰嶇疆瀛愪俊鎭垪琛�
      */
+//    @GetMapping("/noPageListFormulaChild")
+//    public TableDataInfo noPageListFormulaChild(BsFormulaChildInfo bsFormulaChildInfo)
+//    {
+//
+//        List<BsFormulaChildInfo> list = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
+//                .eq(BsFormulaChildInfo::getProductCode,bsFormulaChildInfo.getProductCode())
+//                .eq(BsFormulaChildInfo::getProcessesCode,bsFormulaChildInfo.getProcessesCode())
+//        );
+//        if (CollUtil.isNotEmpty(list)){
+//            List<BsFormulaChildInfo> collect1 = list.stream().filter(x -> Constants.OK.equals(x.getResults())).collect(Collectors.toList());
+//            List<BsFormulaChildInfo> collect2 = list.stream().filter(x -> !Constants.OK.equals(x.getResults())).collect(Collectors.toList());
+//            list = collect1;
+//            list.addAll(collect2);
+//        }
+//
+//        if("1".equals(bsFormulaChildInfo.getArtificialNgFlag())){
+//            List<BsFormulaChildInfoTemp> tempList = bsFormulaChildInfoTempService.list(new LambdaQueryWrapper<BsFormulaChildInfoTemp>()
+//                    .eq(BsFormulaChildInfoTemp::getProcessesCode, bsFormulaChildInfo.getProcessesCode())
+//                    .eq(BsFormulaChildInfoTemp::getProductCode, bsFormulaChildInfo.getProductCode())
+//                    .eq(BsFormulaChildInfoTemp::getSfcCode, bsFormulaChildInfo.getSfcBarcode()));
+//
+//            for (int i = 0; i < list.size(); i++) {
+//                BsFormulaChildInfo formulaChildInfo = list.get(i);
+//                if(i < tempList.size()){
+//                    BsFormulaChildInfoTemp childInfoTemp = tempList.get(i);
+//                    if(ObjectUtil.isNotEmpty(childInfoTemp)){
+//                        formulaChildInfo.setResults(childInfoTemp.getResults());
+//                        formulaChildInfo.setCollectData(childInfoTemp.getCollectData());
+//                        bsFormulaChildInfoService.saveOrUpdate(formulaChildInfo);
+//                    }
+//                }
+//                if(formulaChildInfo.getCollectData()!=null&& !"".equals(formulaChildInfo.getCollectData())){
+//                    if(formulaChildInfo.getCollectData().contains("[")){
+//                        String data = formulaChildInfo.getCollectData();
+//                        data = data.replace("[", "").replace("]", "").replace(" ", "");
+//                        String[] tightenDataParts = data.split(",");
+//                        formulaChildInfo.setCollectData("鎵煩"+tightenDataParts[0]+"瑙掑害"+tightenDataParts[1]+"鎵煩缁撴灉"+tightenDataParts[2]+"瑙掑害缁撴灉"+tightenDataParts[3]);
+//                    }
+//                }
+//            }
+//
+//            //缁檖lc鍐檔g宸ユ
+//            BsFormulaChildInfoTemp lastTemp = tempList.get(tempList.size()-1);
+//            try {
+//                Integer stepSort = Integer.valueOf(lastTemp.getStepSort()+1);
+//                logger.info("ng宸ヤ欢缁檖lc鍐欏伐姝ヤ负:{}---宸ヤ綅{}---pack鐮亄}",stepSort,lastTemp.getProcessesCode(),lastTemp.getSfcCode());
+//                String str = "PACK."+bsFormulaChildInfo.getProcessesCode()+".MStepNumber";
+//                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(str).value(stepSort+1).build());
+//            } catch (Exception e) {
+//                throw new RuntimeException(e);
+//            }
+//
+//            //娓呴櫎宸ュ崟鏍囪
+//            LambdaUpdateWrapper<OmProductionOrdeInfo> updateWrapper = new LambdaUpdateWrapper<>();
+//            updateWrapper.set(OmProductionOrdeInfo::getArtificialNgFlag, "");
+//            updateWrapper.eq(OmProductionOrdeInfo::getProductNum, lastTemp.getSfcCode());
+//            boolean update = omProductionOrdeInfoService.update(new OmProductionOrdeInfo(), updateWrapper);
+//        }else {
+//            for (BsFormulaChildInfo formulaChildInfo : list) {
+//                if(formulaChildInfo.getCollectData()!=null&& !"".equals(formulaChildInfo.getCollectData())){
+//                    if(formulaChildInfo.getCollectData().contains("[")){
+//                        String data = formulaChildInfo.getCollectData();
+//                        data = data.replace("[", "").replace("]", "").replace(" ", "");
+//                        String[] tightenDataParts = data.split(",");
+//                        formulaChildInfo.setCollectData("鎵煩"+tightenDataParts[0]+"瑙掑害"+tightenDataParts[1]+"鎵煩缁撴灉"+tightenDataParts[2]+"瑙掑害缁撴灉"+tightenDataParts[3]);
+//                    }
+//                }
+//            }
+//        }
+//        return getDataTable(list);
+//    }
+
     @GetMapping("/noPageListFormulaChild")
     public TableDataInfo noPageListFormulaChild(BsFormulaChildInfo bsFormulaChildInfo)
     {
 
         List<BsFormulaChildInfo> list = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
-                .eq(BsFormulaChildInfo::getProductCode,bsFormulaChildInfo.getProductCode())
-                .eq(BsFormulaChildInfo::getProcessesCode,bsFormulaChildInfo.getProcessesCode())
-//                .orderByAsc(BsFormulaChildInfo::getStepSort)
+                        .eq(BsFormulaChildInfo::getProductCode,bsFormulaChildInfo.getProductCode())
+                        .eq(BsFormulaChildInfo::getProcessesCode,bsFormulaChildInfo.getProcessesCode())
         );
         if (CollUtil.isNotEmpty(list)){
             List<BsFormulaChildInfo> collect1 = list.stream().filter(x -> Constants.OK.equals(x.getResults())).collect(Collectors.toList());
diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/domain/BsFormulaChildInfo.java b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/domain/BsFormulaChildInfo.java
index a1e0f80..1588d90 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/domain/BsFormulaChildInfo.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/domain/BsFormulaChildInfo.java
@@ -155,6 +155,9 @@
     @TableField(exist = false)
     private String productBarcode;
 
+    @TableField(exist = false)
+    private String artificialNgFlag;
+
     public String getParamName() {
         return paramName;
     }
diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java
index fd7517a..a0387fe 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java
@@ -18,6 +18,8 @@
 import com.jcdm.common.utils.DateUtils;
 import com.jcdm.common.utils.StringUtils;
 import com.jcdm.framework.websocket.WebSocketUsers;
+import com.jcdm.main.bs.formulaChildInfoTemp.domain.BsFormulaChildInfoTemp;
+import com.jcdm.main.bs.formulaChildInfoTemp.service.IBsFormulaChildInfoTempService;
 import com.jcdm.main.da.paramCollection.domain.DaParamCollection;
 import com.jcdm.main.da.paramCollection.mapper.DaParamCollectionMapper;
 import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService;
@@ -81,6 +83,9 @@
     private IDaParamCollectionTempService daParamCollectionTempService;
 
     Map<String, Session> map = WebSocketUsers.getUsers();
+
+    @Autowired
+    private IBsFormulaChildInfoTempService bsFormulaChildInfoTempService;
 
     /**
      * 鏌ヨ閰嶆柟閰嶇疆瀛愪俊鎭�
@@ -393,6 +398,7 @@
         LambdaUpdateWrapper<BsFormulaChildInfo> updateWrapper = new LambdaUpdateWrapper();
         updateWrapper.set(BsFormulaChildInfo::getCollectData, "");
         updateWrapper.set(BsFormulaChildInfo::getResults,"");
+        updateWrapper.set(BsFormulaChildInfo::getNgTimes,0);
         updateWrapper.eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getLocationCode());
         updateWrapper.eq(BsFormulaChildInfo::getProductCode, bsFormulaChildInfo.getProductCode());
         BsFormulaChildInfo info = new BsFormulaChildInfo();
@@ -550,12 +556,13 @@
 
 //            Integer ngTimes = bsFormulaChildInfo.getNgTimes();
 //            bsFormulaChildInfo.setNgTimes(ngTimes+1);
-//            if(ngTimes > 3){
+//            bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfo);
+//
+//            if(bsFormulaChildInfo.getNgTimes() > 3){
+//                this.recordNgTighteningData(bsFormulaChildInfo.getLocationCode(), bsFormulaChildInfo.getProductCode(), bsFormulaChildInfo.getProductBarcode());
 //                WebSocketUsers.sendMessageToUserByText(map.get(bsFormulaChildInfo.getLocationCode()), "NG");
-//                this.recordNgTighteningData(bsFormulaChildInfo.getLocationCode(), bsFormulaChildInfo.getProductCode());
 //                return AjaxResult.error("瓒呰繃涓夋鎷х揣 pack NG涓嬬嚎锛�");
 //            }
-            bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfo);
             return AjaxResult.error("鎷х揣缁撴灉NG,璇烽噸鏂版嫥绱э紒");
         }else {
             //List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(listQuery);
@@ -603,7 +610,7 @@
         return AjaxResult.success("鎷х揣鎴愬姛锛�");
     }
 
-    public void recordNgTighteningData(String locationCode,String productCode){
+    public void recordNgTighteningData(String locationCode,String productCode,String packId){
         List<BsFormulaChildInfo> ngFormulaList = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
                 .eq(BsFormulaChildInfo::getProcessesCode, locationCode)
                 .eq(BsFormulaChildInfo::getProductCode, productCode)
@@ -612,9 +619,15 @@
                 .filter(formula -> formula.getResults() != null && !formula.getResults().isEmpty())
                 .collect(Collectors.toList());
         for (BsFormulaChildInfo childInfo : filteredList) {
-            childInfo.setNgCollectData(childInfo.getCollectData());
-            childInfo.setNgResults(childInfo.getResults());
-            bsFormulaChildInfoMapper.updateBsFormulaChildInfo(childInfo);
+            BsFormulaChildInfoTemp childInfoTemp = new BsFormulaChildInfoTemp();
+            childInfoTemp.setCollectData(childInfo.getCollectData());
+            childInfoTemp.setResults(childInfo.getResults());
+            childInfoTemp.setSfcCode(packId);
+            childInfoTemp.setProcessesCode(childInfo.getProcessesCode());
+            childInfoTemp.setProductCode(childInfo.getProductCode());
+            childInfoTemp.setStepSort(childInfo.getStepSort());
+//            childInfoTemp.setLineCode(childInfo.getId());
+            bsFormulaChildInfoTempService.save(childInfoTemp);
         }
     }
 
diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChildInfoTemp/controller/BsFormulaChildInfoTempController.java b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChildInfoTemp/controller/BsFormulaChildInfoTempController.java
new file mode 100644
index 0000000..d2340e7
--- /dev/null
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChildInfoTemp/controller/BsFormulaChildInfoTempController.java
@@ -0,0 +1,104 @@
+package com.jcdm.main.bs.formulaChildInfoTemp.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.jcdm.common.annotation.Log;
+import com.jcdm.common.core.controller.BaseController;
+import com.jcdm.common.core.domain.AjaxResult;
+import com.jcdm.common.enums.BusinessType;
+import com.jcdm.main.bs.formulaChildInfoTemp.domain.BsFormulaChildInfoTemp;
+import com.jcdm.main.bs.formulaChildInfoTemp.service.IBsFormulaChildInfoTempService;
+import com.jcdm.common.utils.poi.ExcelUtil;
+import com.jcdm.common.core.page.TableDataInfo;
+
+/**
+ * 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤Controller
+ * 
+ * @author Yi
+ * @date 2024-07-15
+ */
+@RestController
+@RequestMapping("/bs/formulaChildInfoTemp")
+public class BsFormulaChildInfoTempController extends BaseController
+{
+    @Autowired
+    private IBsFormulaChildInfoTempService bsFormulaChildInfoTempService;
+
+    /**
+     * 鏌ヨ閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('bs:formulaChildInfoTemp:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(BsFormulaChildInfoTemp bsFormulaChildInfoTemp)
+    {
+        startPage();
+        List<BsFormulaChildInfoTemp> list = bsFormulaChildInfoTempService.selectBsFormulaChildInfoTempList(bsFormulaChildInfoTemp);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('bs:formulaChildInfoTemp:export')")
+    @Log(title = "閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BsFormulaChildInfoTemp bsFormulaChildInfoTemp)
+    {
+        List<BsFormulaChildInfoTemp> list = bsFormulaChildInfoTempService.selectBsFormulaChildInfoTempList(bsFormulaChildInfoTemp);
+        ExcelUtil<BsFormulaChildInfoTemp> util = new ExcelUtil<BsFormulaChildInfoTemp>(BsFormulaChildInfoTemp.class);
+        util.exportExcel(response, list, "閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('bs:formulaChildInfoTemp:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(bsFormulaChildInfoTempService.selectBsFormulaChildInfoTempById(id));
+    }
+
+    /**
+     * 鏂板閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     */
+    @PreAuthorize("@ss.hasPermi('bs:formulaChildInfoTemp:add')")
+    @Log(title = "閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BsFormulaChildInfoTemp bsFormulaChildInfoTemp)
+    {
+        return toAjax(bsFormulaChildInfoTempService.insertBsFormulaChildInfoTemp(bsFormulaChildInfoTemp));
+    }
+
+    /**
+     * 淇敼閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     */
+    @PreAuthorize("@ss.hasPermi('bs:formulaChildInfoTemp:edit')")
+    @Log(title = "閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BsFormulaChildInfoTemp bsFormulaChildInfoTemp)
+    {
+        return toAjax(bsFormulaChildInfoTempService.updateBsFormulaChildInfoTemp(bsFormulaChildInfoTemp));
+    }
+
+    /**
+     * 鍒犻櫎閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     */
+    @PreAuthorize("@ss.hasPermi('bs:formulaChildInfoTemp:remove')")
+    @Log(title = "閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(bsFormulaChildInfoTempService.deleteBsFormulaChildInfoTempByIds(ids));
+    }
+}
diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChildInfoTemp/domain/BsFormulaChildInfoTemp.java b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChildInfoTemp/domain/BsFormulaChildInfoTemp.java
new file mode 100644
index 0000000..2750968
--- /dev/null
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChildInfoTemp/domain/BsFormulaChildInfoTemp.java
@@ -0,0 +1,375 @@
+package com.jcdm.main.bs.formulaChildInfoTemp.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.jcdm.common.annotation.Excel;
+import com.jcdm.common.core.domain.BaseEntity;
+
+/**
+ * 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤瀵硅薄 bs_formula_child_info_temp
+ * 
+ * @author Yi
+ * @date 2024-07-15
+ */
+public class BsFormulaChildInfoTemp extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private Long id;
+
+    /** 鎬绘垚鐮� */
+    @Excel(name = "鎬绘垚鐮�")
+    private String sfcCode;
+
+    /** 浜х嚎 */
+    @Excel(name = "浜х嚎")
+    private String lineCode;
+
+    /** 宸ュ簭 */
+    @Excel(name = "宸ュ簭")
+    private String processesCode;
+
+    /** 浜у搧缂栧彿 */
+    @Excel(name = "浜у搧缂栧彿")
+    private String productCode;
+
+    /** 鎿嶄綔鍐呭 */
+    @Excel(name = "鎿嶄綔鍐呭")
+    private String operationSteps;
+
+    /** 鎶�鏈姹� */
+    @Excel(name = "鎶�鏈姹�")
+    private String techRequirement;
+
+    /** 绫诲瀷锛堟壂鎻忎骇鍝佹潯鐮�1銆佹壂鎻忕墿鏂欐潯鐮�2銆佹嫥绱х被3锛� */
+    @Excel(name = "绫诲瀷", readConverterExp = "鎵�=鎻忎骇鍝佹潯鐮�1銆佹壂鎻忕墿鏂欐潯鐮�2銆佹嫥绱х被3")
+    private String operationType;
+
+    /** 鎺掑簭 */
+    @Excel(name = "鎺掑簭")
+    private String stepSort;
+
+    /** 鍙傛暟缂栫爜 */
+    @Excel(name = "鍙傛暟缂栫爜")
+    private String paramCode;
+
+    /** 鐗╂枡缂栫爜 */
+    @Excel(name = "鐗╂枡缂栫爜")
+    private String materialCode;
+
+    /** 閰嶆柟缂栫爜 */
+    @Excel(name = "閰嶆柟缂栫爜")
+    private String formulaCode;
+
+    /** 鍥剧墖 */
+    @Excel(name = "鍥剧墖")
+    private String picture;
+
+    /** 澶囨敞 */
+    @Excel(name = "澶囨敞")
+    private String remarks;
+
+    /** 鍒涘缓鐢ㄦ埛 */
+    @Excel(name = "鍒涘缓鐢ㄦ埛")
+    private String createUser;
+
+    /** 鏇存敼鐢ㄦ埛 */
+    @Excel(name = "鏇存敼鐢ㄦ埛")
+    private String updateUser;
+
+    /** 棰勭暀瀛楁1 */
+    @Excel(name = "棰勭暀瀛楁1")
+    private String spareField1;
+
+    /** 棰勭暀瀛楁2 */
+    @Excel(name = "棰勭暀瀛楁2")
+    private String spareField2;
+
+    /** 棰勭暀瀛楁3 */
+    @Excel(name = "棰勭暀瀛楁3")
+    private String spareField3;
+
+    /** 棰勭暀瀛楁4 */
+    @Excel(name = "棰勭暀瀛楁4")
+    private String spareField4;
+
+    /** 閲囬泦鏁版嵁 */
+    @Excel(name = "閲囬泦鏁版嵁")
+    private String collectData;
+
+    /** 缁撴灉 */
+    @Excel(name = "缁撴灉")
+    private String results;
+
+    /** ng娆℃暟 */
+    @Excel(name = "ng娆℃暟")
+    private Long ngTimes;
+
+    /** ng閲囬泦鏁版嵁 */
+    @Excel(name = "ng閲囬泦鏁版嵁")
+    private String ngCollectData;
+
+    /** ng缁撴灉 */
+    @Excel(name = "ng缁撴灉")
+    private String ngResults;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setSfcCode(String sfcCode) 
+    {
+        this.sfcCode = sfcCode;
+    }
+
+    public String getSfcCode() 
+    {
+        return sfcCode;
+    }
+    public void setLineCode(String lineCode) 
+    {
+        this.lineCode = lineCode;
+    }
+
+    public String getLineCode() 
+    {
+        return lineCode;
+    }
+    public void setProcessesCode(String processesCode) 
+    {
+        this.processesCode = processesCode;
+    }
+
+    public String getProcessesCode() 
+    {
+        return processesCode;
+    }
+    public void setProductCode(String productCode) 
+    {
+        this.productCode = productCode;
+    }
+
+    public String getProductCode() 
+    {
+        return productCode;
+    }
+    public void setOperationSteps(String operationSteps) 
+    {
+        this.operationSteps = operationSteps;
+    }
+
+    public String getOperationSteps() 
+    {
+        return operationSteps;
+    }
+    public void setTechRequirement(String techRequirement) 
+    {
+        this.techRequirement = techRequirement;
+    }
+
+    public String getTechRequirement() 
+    {
+        return techRequirement;
+    }
+    public void setOperationType(String operationType) 
+    {
+        this.operationType = operationType;
+    }
+
+    public String getOperationType() 
+    {
+        return operationType;
+    }
+    public void setStepSort(String stepSort) 
+    {
+        this.stepSort = stepSort;
+    }
+
+    public String getStepSort() 
+    {
+        return stepSort;
+    }
+    public void setParamCode(String paramCode) 
+    {
+        this.paramCode = paramCode;
+    }
+
+    public String getParamCode() 
+    {
+        return paramCode;
+    }
+    public void setMaterialCode(String materialCode) 
+    {
+        this.materialCode = materialCode;
+    }
+
+    public String getMaterialCode() 
+    {
+        return materialCode;
+    }
+    public void setFormulaCode(String formulaCode) 
+    {
+        this.formulaCode = formulaCode;
+    }
+
+    public String getFormulaCode() 
+    {
+        return formulaCode;
+    }
+    public void setPicture(String picture) 
+    {
+        this.picture = picture;
+    }
+
+    public String getPicture() 
+    {
+        return picture;
+    }
+    public void setRemarks(String remarks) 
+    {
+        this.remarks = remarks;
+    }
+
+    public String getRemarks() 
+    {
+        return remarks;
+    }
+    public void setCreateUser(String createUser) 
+    {
+        this.createUser = createUser;
+    }
+
+    public String getCreateUser() 
+    {
+        return createUser;
+    }
+    public void setUpdateUser(String updateUser) 
+    {
+        this.updateUser = updateUser;
+    }
+
+    public String getUpdateUser() 
+    {
+        return updateUser;
+    }
+    public void setSpareField1(String spareField1) 
+    {
+        this.spareField1 = spareField1;
+    }
+
+    public String getSpareField1() 
+    {
+        return spareField1;
+    }
+    public void setSpareField2(String spareField2) 
+    {
+        this.spareField2 = spareField2;
+    }
+
+    public String getSpareField2() 
+    {
+        return spareField2;
+    }
+    public void setSpareField3(String spareField3) 
+    {
+        this.spareField3 = spareField3;
+    }
+
+    public String getSpareField3() 
+    {
+        return spareField3;
+    }
+    public void setSpareField4(String spareField4) 
+    {
+        this.spareField4 = spareField4;
+    }
+
+    public String getSpareField4() 
+    {
+        return spareField4;
+    }
+    public void setCollectData(String collectData) 
+    {
+        this.collectData = collectData;
+    }
+
+    public String getCollectData() 
+    {
+        return collectData;
+    }
+    public void setResults(String results) 
+    {
+        this.results = results;
+    }
+
+    public String getResults() 
+    {
+        return results;
+    }
+    public void setNgTimes(Long ngTimes) 
+    {
+        this.ngTimes = ngTimes;
+    }
+
+    public Long getNgTimes() 
+    {
+        return ngTimes;
+    }
+    public void setNgCollectData(String ngCollectData) 
+    {
+        this.ngCollectData = ngCollectData;
+    }
+
+    public String getNgCollectData() 
+    {
+        return ngCollectData;
+    }
+    public void setNgResults(String ngResults) 
+    {
+        this.ngResults = ngResults;
+    }
+
+    public String getNgResults() 
+    {
+        return ngResults;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("sfcCode", getSfcCode())
+            .append("lineCode", getLineCode())
+            .append("processesCode", getProcessesCode())
+            .append("productCode", getProductCode())
+            .append("operationSteps", getOperationSteps())
+            .append("techRequirement", getTechRequirement())
+            .append("operationType", getOperationType())
+            .append("stepSort", getStepSort())
+            .append("paramCode", getParamCode())
+            .append("materialCode", getMaterialCode())
+            .append("formulaCode", getFormulaCode())
+            .append("picture", getPicture())
+            .append("remarks", getRemarks())
+            .append("createUser", getCreateUser())
+            .append("createTime", getCreateTime())
+            .append("updateUser", getUpdateUser())
+            .append("updateTime", getUpdateTime())
+            .append("spareField1", getSpareField1())
+            .append("spareField2", getSpareField2())
+            .append("spareField3", getSpareField3())
+            .append("spareField4", getSpareField4())
+            .append("collectData", getCollectData())
+            .append("results", getResults())
+            .append("ngTimes", getNgTimes())
+            .append("ngCollectData", getNgCollectData())
+            .append("ngResults", getNgResults())
+            .toString();
+    }
+}
diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChildInfoTemp/mapper/BsFormulaChildInfoTempMapper.java b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChildInfoTemp/mapper/BsFormulaChildInfoTempMapper.java
new file mode 100644
index 0000000..c1f370f
--- /dev/null
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChildInfoTemp/mapper/BsFormulaChildInfoTempMapper.java
@@ -0,0 +1,63 @@
+package com.jcdm.main.bs.formulaChildInfoTemp.mapper;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jcdm.main.bs.formulaChildInfoTemp.domain.BsFormulaChildInfoTemp;
+
+/**
+ * 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤Mapper鎺ュ彛
+ * 
+ * @author Yi
+ * @date 2024-07-15
+ */
+public interface BsFormulaChildInfoTempMapper extends BaseMapper<BsFormulaChildInfoTemp>
+{
+    /**
+     * 鏌ヨ閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     * 
+     * @param id 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤涓婚敭
+     * @return 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     */
+    public BsFormulaChildInfoTemp selectBsFormulaChildInfoTempById(Long id);
+
+    /**
+     * 鏌ヨ閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤鍒楄〃
+     * 
+     * @param bsFormulaChildInfoTemp 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     * @return 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤闆嗗悎
+     */
+    public List<BsFormulaChildInfoTemp> selectBsFormulaChildInfoTempList(BsFormulaChildInfoTemp bsFormulaChildInfoTemp);
+
+    /**
+     * 鏂板閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     * 
+     * @param bsFormulaChildInfoTemp 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     * @return 缁撴灉
+     */
+    public int insertBsFormulaChildInfoTemp(BsFormulaChildInfoTemp bsFormulaChildInfoTemp);
+
+    /**
+     * 淇敼閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     * 
+     * @param bsFormulaChildInfoTemp 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     * @return 缁撴灉
+     */
+    public int updateBsFormulaChildInfoTemp(BsFormulaChildInfoTemp bsFormulaChildInfoTemp);
+
+    /**
+     * 鍒犻櫎閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     * 
+     * @param id 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteBsFormulaChildInfoTempById(Long id);
+
+    /**
+     * 鎵归噺鍒犻櫎閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteBsFormulaChildInfoTempByIds(Long[] ids);
+}
diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChildInfoTemp/service/IBsFormulaChildInfoTempService.java b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChildInfoTemp/service/IBsFormulaChildInfoTempService.java
new file mode 100644
index 0000000..ce038a2
--- /dev/null
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChildInfoTemp/service/IBsFormulaChildInfoTempService.java
@@ -0,0 +1,63 @@
+package com.jcdm.main.bs.formulaChildInfoTemp.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jcdm.main.bs.formulaChildInfoTemp.domain.BsFormulaChildInfoTemp;
+
+/**
+ * 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤Service鎺ュ彛
+ * 
+ * @author Yi
+ * @date 2024-07-15
+ */
+public interface IBsFormulaChildInfoTempService extends IService<BsFormulaChildInfoTemp>
+{
+    /**
+     * 鏌ヨ閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     * 
+     * @param id 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤涓婚敭
+     * @return 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     */
+    public BsFormulaChildInfoTemp selectBsFormulaChildInfoTempById(Long id);
+
+    /**
+     * 鏌ヨ閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤鍒楄〃
+     * 
+     * @param bsFormulaChildInfoTemp 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     * @return 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤闆嗗悎
+     */
+    public List<BsFormulaChildInfoTemp> selectBsFormulaChildInfoTempList(BsFormulaChildInfoTemp bsFormulaChildInfoTemp);
+
+    /**
+     * 鏂板閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     * 
+     * @param bsFormulaChildInfoTemp 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     * @return 缁撴灉
+     */
+    public int insertBsFormulaChildInfoTemp(BsFormulaChildInfoTemp bsFormulaChildInfoTemp);
+
+    /**
+     * 淇敼閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     * 
+     * @param bsFormulaChildInfoTemp 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     * @return 缁撴灉
+     */
+    public int updateBsFormulaChildInfoTemp(BsFormulaChildInfoTemp bsFormulaChildInfoTemp);
+
+    /**
+     * 鎵归噺鍒犻櫎閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteBsFormulaChildInfoTempByIds(Long[] ids);
+
+    /**
+     * 鍒犻櫎閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤淇℃伅
+     * 
+     * @param id 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteBsFormulaChildInfoTempById(Long id);
+}
diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChildInfoTemp/service/impl/BsFormulaChildInfoTempServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChildInfoTemp/service/impl/BsFormulaChildInfoTempServiceImpl.java
new file mode 100644
index 0000000..1071816
--- /dev/null
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChildInfoTemp/service/impl/BsFormulaChildInfoTempServiceImpl.java
@@ -0,0 +1,102 @@
+package com.jcdm.main.bs.formulaChildInfoTemp.service.impl;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jcdm.common.utils.DateUtils;
+import com.jcdm.main.bs.lineInfo.domain.BsLineInfo;
+import com.jcdm.main.bs.lineInfo.mapper.BsLineInfoMapper;
+import com.jcdm.main.bs.lineInfo.service.IBsLineInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.jcdm.main.bs.formulaChildInfoTemp.mapper.BsFormulaChildInfoTempMapper;
+import com.jcdm.main.bs.formulaChildInfoTemp.domain.BsFormulaChildInfoTemp;
+import com.jcdm.main.bs.formulaChildInfoTemp.service.IBsFormulaChildInfoTempService;
+
+/**
+ * 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤Service涓氬姟灞傚鐞�
+ * 
+ * @author Yi
+ * @date 2024-07-15
+ */
+@Service
+public class BsFormulaChildInfoTempServiceImpl extends ServiceImpl<BsFormulaChildInfoTempMapper, BsFormulaChildInfoTemp> implements IBsFormulaChildInfoTempService
+{
+    @Autowired
+    private BsFormulaChildInfoTempMapper bsFormulaChildInfoTempMapper;
+
+    /**
+     * 鏌ヨ閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     * 
+     * @param id 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤涓婚敭
+     * @return 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     */
+    @Override
+    public BsFormulaChildInfoTemp selectBsFormulaChildInfoTempById(Long id)
+    {
+        return bsFormulaChildInfoTempMapper.selectBsFormulaChildInfoTempById(id);
+    }
+
+    /**
+     * 鏌ヨ閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤鍒楄〃
+     * 
+     * @param bsFormulaChildInfoTemp 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     * @return 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     */
+    @Override
+    public List<BsFormulaChildInfoTemp> selectBsFormulaChildInfoTempList(BsFormulaChildInfoTemp bsFormulaChildInfoTemp)
+    {
+        return bsFormulaChildInfoTempMapper.selectBsFormulaChildInfoTempList(bsFormulaChildInfoTemp);
+    }
+
+    /**
+     * 鏂板閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     * 
+     * @param bsFormulaChildInfoTemp 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertBsFormulaChildInfoTemp(BsFormulaChildInfoTemp bsFormulaChildInfoTemp)
+    {
+        bsFormulaChildInfoTemp.setCreateTime(DateUtils.getNowDate());
+        return bsFormulaChildInfoTempMapper.insertBsFormulaChildInfoTemp(bsFormulaChildInfoTemp);
+    }
+
+    /**
+     * 淇敼閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     * 
+     * @param bsFormulaChildInfoTemp 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateBsFormulaChildInfoTemp(BsFormulaChildInfoTemp bsFormulaChildInfoTemp)
+    {
+        bsFormulaChildInfoTemp.setUpdateTime(DateUtils.getNowDate());
+        return bsFormulaChildInfoTempMapper.updateBsFormulaChildInfoTemp(bsFormulaChildInfoTemp);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteBsFormulaChildInfoTempByIds(Long[] ids)
+    {
+        return bsFormulaChildInfoTempMapper.deleteBsFormulaChildInfoTempByIds(ids);
+    }
+
+    /**
+     * 鍒犻櫎閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤淇℃伅
+     * 
+     * @param id 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteBsFormulaChildInfoTempById(Long id)
+    {
+        return bsFormulaChildInfoTempMapper.deleteBsFormulaChildInfoTempById(id);
+    }
+}
diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java
index ac40ca2..b067763 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java
@@ -677,17 +677,6 @@
         parentVO.setTotalResult("1");
         parentVO.setCheckList(childVOList);
         HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
-//        try{
-//            CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
-//                logger.info("寮�濮嬫墽琛屽紓姝ユ柟娉�");
-//                HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
-//                System.out.println(execute.body());
-//                logger.info("寮傛鏂规硶鎵ц缁撴潫");
-//                logger.info("绉伴噸寮傛鏂规硶{}",execute.body());
-//            });
-//        }catch (Exception e){
-//            System.out.println(e.getMessage());
-//        }
         RestfulService.getWorkReportResultFeedback(daParamCollection.getSfcCode(),"POP430",format.format(new Date()));
     }
 
diff --git a/jcdm-main/src/main/java/com/jcdm/main/plcserver/CustomRunner.java b/jcdm-main/src/main/java/com/jcdm/main/plcserver/CustomRunner.java
index c9fe985..38c433c 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/plcserver/CustomRunner.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/plcserver/CustomRunner.java
@@ -85,6 +85,7 @@
         lists.add(OPCElement.PACK_POP330_TighteningFrequency);//璇锋眰璁板綍鏁版嵁
         lists.add(OPCElement.PACK_POP340_RecordData);//璇锋眰璁板綍鏁版嵁
         lists.add(OPCElement.PACK_POP340_TighteningFrequency);//璇锋眰璁板綍鏁版嵁
+        lists.add(OPCElement.PACK_POP350_RecordData);//璇锋眰璁板綍鏁版嵁
         lists.add(OPCElement.PACK_POP3601_RecordData);//璇锋眰璁板綍鏁版嵁
         lists.add(OPCElement.PACK_POP3602_RecordData);//璇锋眰璁板綍鏁版嵁
         lists.add(OPCElement.PACK_POP3603_RecordData);//璇锋眰璁板綍鏁版嵁
diff --git a/jcdm-main/src/main/java/com/jcdm/main/plcserver/conf/OPCElement.java b/jcdm-main/src/main/java/com/jcdm/main/plcserver/conf/OPCElement.java
index 8f30776..6bcdb77 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/plcserver/conf/OPCElement.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/plcserver/conf/OPCElement.java
@@ -101,6 +101,9 @@
     public static final String PACK_POP340_RecordData = "PACK.POP340.RecordData";//璇锋眰璁板綍鏁版嵁
 
     public static final String PACK_POP340_TighteningFrequency = "PACK.POP340.TighteningFrequency";//璇锋眰鎷х揣鏁版嵁
+
+    public static final String PACK_POP350_RecordData = "PACK.POP350.RecordData";//璇锋眰璁板綍鏁版嵁
+
     /**
      * OP440
      */
diff --git a/jcdm-main/src/main/resources/mapper/bs/formulaChildInfoTemp/BsFormulaChildInfoTempMapper.xml b/jcdm-main/src/main/resources/mapper/bs/formulaChildInfoTemp/BsFormulaChildInfoTempMapper.xml
new file mode 100644
index 0000000..ac0cd99
--- /dev/null
+++ b/jcdm-main/src/main/resources/mapper/bs/formulaChildInfoTemp/BsFormulaChildInfoTempMapper.xml
@@ -0,0 +1,179 @@
+<?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="com.jcdm.main.bs.formulaChildInfoTemp.mapper.BsFormulaChildInfoTempMapper">
+    
+    <resultMap type="BsFormulaChildInfoTemp" id="BsFormulaChildInfoTempResult">
+        <result property="id"    column="id"    />
+        <result property="sfcCode"    column="sfc_code"    />
+        <result property="lineCode"    column="line_code"    />
+        <result property="processesCode"    column="processes_code"    />
+        <result property="productCode"    column="product_code"    />
+        <result property="operationSteps"    column="operation_steps"    />
+        <result property="techRequirement"    column="tech_requirement"    />
+        <result property="operationType"    column="operation_type"    />
+        <result property="stepSort"    column="step_sort"    />
+        <result property="paramCode"    column="param_code"    />
+        <result property="materialCode"    column="material_code"    />
+        <result property="formulaCode"    column="formula_code"    />
+        <result property="picture"    column="picture"    />
+        <result property="remarks"    column="remarks"    />
+        <result property="createUser"    column="create_user"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateUser"    column="update_user"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="spareField1"    column="spare_field1"    />
+        <result property="spareField2"    column="spare_field2"    />
+        <result property="spareField3"    column="spare_field3"    />
+        <result property="spareField4"    column="spare_field4"    />
+        <result property="collectData"    column="collect_data"    />
+        <result property="results"    column="results"    />
+        <result property="ngTimes"    column="ng_times"    />
+        <result property="ngCollectData"    column="ng_collect_data"    />
+        <result property="ngResults"    column="ng_results"    />
+    </resultMap>
+
+    <sql id="selectBsFormulaChildInfoTempVo">
+        select id, sfc_code, line_code, processes_code, product_code, operation_steps, tech_requirement, operation_type, step_sort, param_code, material_code, formula_code, picture, remarks, create_user, create_time, update_user, update_time, spare_field1, spare_field2, spare_field3, spare_field4, collect_data, results, ng_times, ng_collect_data, ng_results from bs_formula_child_info_temp
+    </sql>
+
+    <select id="selectBsFormulaChildInfoTempList" parameterType="BsFormulaChildInfoTemp" resultMap="BsFormulaChildInfoTempResult">
+        <include refid="selectBsFormulaChildInfoTempVo"/>
+        <where>  
+            <if test="sfcCode != null  and sfcCode != ''"> and sfc_code = #{sfcCode}</if>
+            <if test="lineCode != null  and lineCode != ''"> and line_code = #{lineCode}</if>
+            <if test="processesCode != null  and processesCode != ''"> and processes_code = #{processesCode}</if>
+            <if test="productCode != null  and productCode != ''"> and product_code = #{productCode}</if>
+            <if test="operationSteps != null  and operationSteps != ''"> and operation_steps = #{operationSteps}</if>
+            <if test="techRequirement != null  and techRequirement != ''"> and tech_requirement = #{techRequirement}</if>
+            <if test="operationType != null  and operationType != ''"> and operation_type = #{operationType}</if>
+            <if test="stepSort != null  and stepSort != ''"> and step_sort = #{stepSort}</if>
+            <if test="paramCode != null  and paramCode != ''"> and param_code = #{paramCode}</if>
+            <if test="materialCode != null  and materialCode != ''"> and material_code = #{materialCode}</if>
+            <if test="formulaCode != null  and formulaCode != ''"> and formula_code = #{formulaCode}</if>
+            <if test="picture != null  and picture != ''"> and picture = #{picture}</if>
+            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
+            <if test="createUser != null  and createUser != ''"> and create_user = #{createUser}</if>
+            <if test="updateUser != null  and updateUser != ''"> and update_user = #{updateUser}</if>
+            <if test="spareField1 != null  and spareField1 != ''"> and spare_field1 = #{spareField1}</if>
+            <if test="spareField2 != null  and spareField2 != ''"> and spare_field2 = #{spareField2}</if>
+            <if test="spareField3 != null  and spareField3 != ''"> and spare_field3 = #{spareField3}</if>
+            <if test="spareField4 != null  and spareField4 != ''"> and spare_field4 = #{spareField4}</if>
+            <if test="collectData != null  and collectData != ''"> and collect_data = #{collectData}</if>
+            <if test="results != null  and results != ''"> and results = #{results}</if>
+            <if test="ngTimes != null "> and ng_times = #{ngTimes}</if>
+            <if test="ngCollectData != null  and ngCollectData != ''"> and ng_collect_data = #{ngCollectData}</if>
+            <if test="ngResults != null  and ngResults != ''"> and ng_results = #{ngResults}</if>
+        </where>
+    </select>
+    
+    <select id="selectBsFormulaChildInfoTempById" parameterType="Long" resultMap="BsFormulaChildInfoTempResult">
+        <include refid="selectBsFormulaChildInfoTempVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertBsFormulaChildInfoTemp" parameterType="BsFormulaChildInfoTemp" useGeneratedKeys="true" keyProperty="id">
+        insert into bs_formula_child_info_temp
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="sfcCode != null">sfc_code,</if>
+            <if test="lineCode != null">line_code,</if>
+            <if test="processesCode != null">processes_code,</if>
+            <if test="productCode != null">product_code,</if>
+            <if test="operationSteps != null">operation_steps,</if>
+            <if test="techRequirement != null">tech_requirement,</if>
+            <if test="operationType != null">operation_type,</if>
+            <if test="stepSort != null">step_sort,</if>
+            <if test="paramCode != null">param_code,</if>
+            <if test="materialCode != null">material_code,</if>
+            <if test="formulaCode != null">formula_code,</if>
+            <if test="picture != null">picture,</if>
+            <if test="remarks != null">remarks,</if>
+            <if test="createUser != null">create_user,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateUser != null">update_user,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="spareField1 != null">spare_field1,</if>
+            <if test="spareField2 != null">spare_field2,</if>
+            <if test="spareField3 != null">spare_field3,</if>
+            <if test="spareField4 != null">spare_field4,</if>
+            <if test="collectData != null">collect_data,</if>
+            <if test="results != null">results,</if>
+            <if test="ngTimes != null">ng_times,</if>
+            <if test="ngCollectData != null">ng_collect_data,</if>
+            <if test="ngResults != null">ng_results,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="sfcCode != null">#{sfcCode},</if>
+            <if test="lineCode != null">#{lineCode},</if>
+            <if test="processesCode != null">#{processesCode},</if>
+            <if test="productCode != null">#{productCode},</if>
+            <if test="operationSteps != null">#{operationSteps},</if>
+            <if test="techRequirement != null">#{techRequirement},</if>
+            <if test="operationType != null">#{operationType},</if>
+            <if test="stepSort != null">#{stepSort},</if>
+            <if test="paramCode != null">#{paramCode},</if>
+            <if test="materialCode != null">#{materialCode},</if>
+            <if test="formulaCode != null">#{formulaCode},</if>
+            <if test="picture != null">#{picture},</if>
+            <if test="remarks != null">#{remarks},</if>
+            <if test="createUser != null">#{createUser},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateUser != null">#{updateUser},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="spareField1 != null">#{spareField1},</if>
+            <if test="spareField2 != null">#{spareField2},</if>
+            <if test="spareField3 != null">#{spareField3},</if>
+            <if test="spareField4 != null">#{spareField4},</if>
+            <if test="collectData != null">#{collectData},</if>
+            <if test="results != null">#{results},</if>
+            <if test="ngTimes != null">#{ngTimes},</if>
+            <if test="ngCollectData != null">#{ngCollectData},</if>
+            <if test="ngResults != null">#{ngResults},</if>
+         </trim>
+    </insert>
+
+    <update id="updateBsFormulaChildInfoTemp" parameterType="BsFormulaChildInfoTemp">
+        update bs_formula_child_info_temp
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="sfcCode != null">sfc_code = #{sfcCode},</if>
+            <if test="lineCode != null">line_code = #{lineCode},</if>
+            <if test="processesCode != null">processes_code = #{processesCode},</if>
+            <if test="productCode != null">product_code = #{productCode},</if>
+            <if test="operationSteps != null">operation_steps = #{operationSteps},</if>
+            <if test="techRequirement != null">tech_requirement = #{techRequirement},</if>
+            <if test="operationType != null">operation_type = #{operationType},</if>
+            <if test="stepSort != null">step_sort = #{stepSort},</if>
+            <if test="paramCode != null">param_code = #{paramCode},</if>
+            <if test="materialCode != null">material_code = #{materialCode},</if>
+            <if test="formulaCode != null">formula_code = #{formulaCode},</if>
+            <if test="picture != null">picture = #{picture},</if>
+            <if test="remarks != null">remarks = #{remarks},</if>
+            <if test="createUser != null">create_user = #{createUser},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateUser != null">update_user = #{updateUser},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="spareField1 != null">spare_field1 = #{spareField1},</if>
+            <if test="spareField2 != null">spare_field2 = #{spareField2},</if>
+            <if test="spareField3 != null">spare_field3 = #{spareField3},</if>
+            <if test="spareField4 != null">spare_field4 = #{spareField4},</if>
+            <if test="collectData != null">collect_data = #{collectData},</if>
+            <if test="results != null">results = #{results},</if>
+            <if test="ngTimes != null">ng_times = #{ngTimes},</if>
+            <if test="ngCollectData != null">ng_collect_data = #{ngCollectData},</if>
+            <if test="ngResults != null">ng_results = #{ngResults},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBsFormulaChildInfoTempById" parameterType="Long">
+        delete from bs_formula_child_info_temp where id = #{id}
+    </delete>
+
+    <delete id="deleteBsFormulaChildInfoTempByIds" parameterType="String">
+        delete from bs_formula_child_info_temp where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/jcdm-ui/src/api/main/bs/formulaChildInfoTemp/formulaChildInfoTemp.js b/jcdm-ui/src/api/main/bs/formulaChildInfoTemp/formulaChildInfoTemp.js
new file mode 100644
index 0000000..8f82f8b
--- /dev/null
+++ b/jcdm-ui/src/api/main/bs/formulaChildInfoTemp/formulaChildInfoTemp.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 鏌ヨ閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤鍒楄〃
+export function listFormulaChildInfoTemp(query) {
+  return request({
+    url: '/bs/formulaChildInfoTemp/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 鏌ヨ閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤璇︾粏
+export function getFormulaChildInfoTemp(id) {
+  return request({
+    url: '/bs/formulaChildInfoTemp/' + id,
+    method: 'get'
+  })
+}
+
+// 鏂板閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+export function addFormulaChildInfoTemp(data) {
+  return request({
+    url: '/bs/formulaChildInfoTemp',
+    method: 'post',
+    data: data
+  })
+}
+
+// 淇敼閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+export function updateFormulaChildInfoTemp(data) {
+  return request({
+    url: '/bs/formulaChildInfoTemp',
+    method: 'put',
+    data: data
+  })
+}
+
+// 鍒犻櫎閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤
+export function delFormulaChildInfoTemp(id) {
+  return request({
+    url: '/bs/formulaChildInfoTemp/' + id,
+    method: 'delete'
+  })
+}
diff --git a/jcdm-ui/src/views/main/bs/formulaChildInfoTemp/index.vue b/jcdm-ui/src/views/main/bs/formulaChildInfoTemp/index.vue
new file mode 100644
index 0000000..7c7ccca
--- /dev/null
+++ b/jcdm-ui/src/views/main/bs/formulaChildInfoTemp/index.vue
@@ -0,0 +1,598 @@
+<template>
+  <div class="app-container">
+    <el-card class="box-card">
+        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+          <el-form-item label="鎬绘垚鐮�" prop="sfcCode">
+            <el-input
+              v-model="queryParams.sfcCode"
+              placeholder="璇疯緭鍏ユ�绘垚鐮�"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="浜х嚎" prop="lineCode">
+            <el-input
+              v-model="queryParams.lineCode"
+              placeholder="璇疯緭鍏ヤ骇绾�"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="宸ュ簭" prop="processesCode">
+            <el-input
+              v-model="queryParams.processesCode"
+              placeholder="璇疯緭鍏ュ伐搴�"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="浜у搧缂栧彿" prop="productCode">
+            <el-input
+              v-model="queryParams.productCode"
+              placeholder="璇疯緭鍏ヤ骇鍝佺紪鍙�"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="鎿嶄綔鍐呭" prop="operationSteps">
+            <el-input
+              v-model="queryParams.operationSteps"
+              placeholder="璇疯緭鍏ユ搷浣滃唴瀹�"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="鎶�鏈姹�" prop="techRequirement">
+            <el-input
+              v-model="queryParams.techRequirement"
+              placeholder="璇疯緭鍏ユ妧鏈姹�"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="鎺掑簭" prop="stepSort">
+            <el-input
+              v-model="queryParams.stepSort"
+              placeholder="璇疯緭鍏ユ帓搴�"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="鍙傛暟缂栫爜" prop="paramCode">
+            <el-input
+              v-model="queryParams.paramCode"
+              placeholder="璇疯緭鍏ュ弬鏁扮紪鐮�"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="鐗╂枡缂栫爜" prop="materialCode">
+            <el-input
+              v-model="queryParams.materialCode"
+              placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="閰嶆柟缂栫爜" prop="formulaCode">
+            <el-input
+              v-model="queryParams.formulaCode"
+              placeholder="璇疯緭鍏ラ厤鏂圭紪鐮�"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="鍥剧墖" prop="picture">
+            <el-input
+              v-model="queryParams.picture"
+              placeholder="璇疯緭鍏ュ浘鐗�"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="澶囨敞" prop="remarks">
+            <el-input
+              v-model="queryParams.remarks"
+              placeholder="璇疯緭鍏ュ娉�"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="鍒涘缓鐢ㄦ埛" prop="createUser">
+            <el-input
+              v-model="queryParams.createUser"
+              placeholder="璇疯緭鍏ュ垱寤虹敤鎴�"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="鏇存敼鐢ㄦ埛" prop="updateUser">
+            <el-input
+              v-model="queryParams.updateUser"
+              placeholder="璇疯緭鍏ユ洿鏀圭敤鎴�"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="棰勭暀瀛楁1" prop="spareField1">
+            <el-input
+              v-model="queryParams.spareField1"
+              placeholder="璇疯緭鍏ラ鐣欏瓧娈�1"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="棰勭暀瀛楁2" prop="spareField2">
+            <el-input
+              v-model="queryParams.spareField2"
+              placeholder="璇疯緭鍏ラ鐣欏瓧娈�2"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="棰勭暀瀛楁3" prop="spareField3">
+            <el-input
+              v-model="queryParams.spareField3"
+              placeholder="璇疯緭鍏ラ鐣欏瓧娈�3"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="棰勭暀瀛楁4" prop="spareField4">
+            <el-input
+              v-model="queryParams.spareField4"
+              placeholder="璇疯緭鍏ラ鐣欏瓧娈�4"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="閲囬泦鏁版嵁" prop="collectData">
+            <el-input
+              v-model="queryParams.collectData"
+              placeholder="璇疯緭鍏ラ噰闆嗘暟鎹�"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="缁撴灉" prop="results">
+            <el-input
+              v-model="queryParams.results"
+              placeholder="璇疯緭鍏ョ粨鏋�"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="ng娆℃暟" prop="ngTimes">
+            <el-input
+              v-model="queryParams.ngTimes"
+              placeholder="璇疯緭鍏g娆℃暟"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="ng閲囬泦鏁版嵁" prop="ngCollectData">
+            <el-input
+              v-model="queryParams.ngCollectData"
+              placeholder="璇疯緭鍏g閲囬泦鏁版嵁"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="ng缁撴灉" prop="ngResults">
+            <el-input
+              v-model="queryParams.ngResults"
+              placeholder="璇疯緭鍏g缁撴灉"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item style="float: right">
+            <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+          </el-form-item>
+        </el-form>
+    </el-card>
+
+    <el-card style="margin-top: 10px" class="box-card">
+        <el-row :gutter="10" class="mb8">
+          <el-col :span="1.5">
+            <el-button
+              type="primary"
+              plain
+              icon="el-icon-plus"
+              size="mini"
+              @click="handleAdd"
+              v-hasPermi="['bs:formulaChildInfoTemp:add']"
+            >鏂板</el-button>
+          </el-col>
+          <el-col :span="1.5">
+            <el-button
+              type="success"
+              plain
+              icon="el-icon-edit"
+              size="mini"
+              :disabled="single"
+              @click="handleUpdate"
+              v-hasPermi="['bs:formulaChildInfoTemp:edit']"
+            >淇敼</el-button>
+          </el-col>
+          <el-col :span="1.5">
+            <el-button
+              type="danger"
+              plain
+              icon="el-icon-delete"
+              size="mini"
+              :disabled="multiple"
+              @click="handleDelete"
+              v-hasPermi="['bs:formulaChildInfoTemp:remove']"
+            >鍒犻櫎</el-button>
+          </el-col>
+          <el-col :span="1.5">
+            <el-button
+              type="warning"
+              plain
+              icon="el-icon-download"
+              size="mini"
+              @click="handleExport"
+              v-hasPermi="['bs:formulaChildInfoTemp:export']"
+            >瀵煎嚭</el-button>
+          </el-col>
+          <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+        </el-row>
+
+        <el-table border v-loading="loading" :data="formulaChildInfoTempList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="55" align="center" />
+          <el-table-column label="id" align="center" prop="id" />
+          <el-table-column label="鎬绘垚鐮�" align="center" prop="sfcCode">
+          </el-table-column>
+          <el-table-column label="浜х嚎" align="center" prop="lineCode">
+          </el-table-column>
+          <el-table-column label="宸ュ簭" align="center" prop="processesCode">
+          </el-table-column>
+          <el-table-column label="浜у搧缂栧彿" align="center" prop="productCode">
+          </el-table-column>
+          <el-table-column label="鎿嶄綔鍐呭" align="center" prop="operationSteps">
+          </el-table-column>
+          <el-table-column label="鎶�鏈姹�" align="center" prop="techRequirement">
+          </el-table-column>
+          <el-table-column label="绫诲瀷" align="center" prop="operationType">
+          </el-table-column>
+          <el-table-column label="鎺掑簭" align="center" prop="stepSort">
+          </el-table-column>
+          <el-table-column label="鍙傛暟缂栫爜" align="center" prop="paramCode">
+          </el-table-column>
+          <el-table-column label="鐗╂枡缂栫爜" align="center" prop="materialCode">
+          </el-table-column>
+          <el-table-column label="閰嶆柟缂栫爜" align="center" prop="formulaCode">
+          </el-table-column>
+          <el-table-column label="鍥剧墖" align="center" prop="picture">
+          </el-table-column>
+          <el-table-column label="澶囨敞" align="center" prop="remarks">
+          </el-table-column>
+          <el-table-column label="鍒涘缓鐢ㄦ埛" align="center" prop="createUser">
+          </el-table-column>
+          <el-table-column label="鏇存敼鐢ㄦ埛" align="center" prop="updateUser">
+          </el-table-column>
+          <el-table-column label="棰勭暀瀛楁1" align="center" prop="spareField1">
+          </el-table-column>
+          <el-table-column label="棰勭暀瀛楁2" align="center" prop="spareField2">
+          </el-table-column>
+          <el-table-column label="棰勭暀瀛楁3" align="center" prop="spareField3">
+          </el-table-column>
+          <el-table-column label="棰勭暀瀛楁4" align="center" prop="spareField4">
+          </el-table-column>
+          <el-table-column label="閲囬泦鏁版嵁" align="center" prop="collectData">
+          </el-table-column>
+          <el-table-column label="缁撴灉" align="center" prop="results">
+          </el-table-column>
+          <el-table-column label="ng娆℃暟" align="center" prop="ngTimes">
+          </el-table-column>
+          <el-table-column label="ng閲囬泦鏁版嵁" align="center" prop="ngCollectData">
+          </el-table-column>
+          <el-table-column label="ng缁撴灉" align="center" prop="ngResults">
+          </el-table-column>
+          <el-table-column fixed="right" width="200" label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+            <template slot-scope="scope">
+              <el-button
+                size="mini"
+                type="success"
+                plain
+                style="width: 72px"
+                icon="el-icon-edit"
+                @click="handleUpdate(scope.row)"
+                v-hasPermi="['bs:formulaChildInfoTemp:edit']"
+              >淇敼</el-button>
+              <el-button
+                size="mini"
+                type="danger"
+                plain
+                style="width: 72px"
+                icon="el-icon-delete"
+                @click="handleDelete(scope.row)"
+                v-hasPermi="['bs:formulaChildInfoTemp:remove']"
+              >鍒犻櫎</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+    </el-card>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 娣诲姞鎴栦慨鏀归厤鏂归厤缃瓙淇℃伅-澶囦唤瀵硅瘽妗� -->
+    <el-dialog v-dialogpop-up :title="title" :visible.sync="open" width="500px" append-to-body>
+      <span slot="title">
+        <i class="el-icon-s-order"></i>
+        {{titleName}}
+      </span>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="鎬绘垚鐮�" prop="sfcCode">
+          <el-input v-model="form.sfcCode" placeholder="璇疯緭鍏ユ�绘垚鐮�" />
+        </el-form-item>
+        <el-form-item label="浜х嚎" prop="lineCode">
+          <el-input v-model="form.lineCode" placeholder="璇疯緭鍏ヤ骇绾�" />
+        </el-form-item>
+        <el-form-item label="宸ュ簭" prop="processesCode">
+          <el-input v-model="form.processesCode" placeholder="璇疯緭鍏ュ伐搴�" />
+        </el-form-item>
+        <el-form-item label="浜у搧缂栧彿" prop="productCode">
+          <el-input v-model="form.productCode" placeholder="璇疯緭鍏ヤ骇鍝佺紪鍙�" />
+        </el-form-item>
+        <el-form-item label="鎿嶄綔鍐呭" prop="operationSteps">
+          <el-input v-model="form.operationSteps" placeholder="璇疯緭鍏ユ搷浣滃唴瀹�" />
+        </el-form-item>
+        <el-form-item label="鎶�鏈姹�" prop="techRequirement">
+          <el-input v-model="form.techRequirement" placeholder="璇疯緭鍏ユ妧鏈姹�" />
+        </el-form-item>
+        <el-form-item label="鎺掑簭" prop="stepSort">
+          <el-input v-model="form.stepSort" placeholder="璇疯緭鍏ユ帓搴�" />
+        </el-form-item>
+        <el-form-item label="鍙傛暟缂栫爜" prop="paramCode">
+          <el-input v-model="form.paramCode" placeholder="璇疯緭鍏ュ弬鏁扮紪鐮�" />
+        </el-form-item>
+        <el-form-item label="鐗╂枡缂栫爜" prop="materialCode">
+          <el-input v-model="form.materialCode" placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�" />
+        </el-form-item>
+        <el-form-item label="閰嶆柟缂栫爜" prop="formulaCode">
+          <el-input v-model="form.formulaCode" placeholder="璇疯緭鍏ラ厤鏂圭紪鐮�" />
+        </el-form-item>
+        <el-form-item label="鍥剧墖" prop="picture">
+          <el-input v-model="form.picture" placeholder="璇疯緭鍏ュ浘鐗�" />
+        </el-form-item>
+        <el-form-item label="澶囨敞" prop="remarks">
+          <el-input v-model="form.remarks" placeholder="璇疯緭鍏ュ娉�" />
+        </el-form-item>
+        <el-form-item label="鍒涘缓鐢ㄦ埛" prop="createUser">
+          <el-input v-model="form.createUser" placeholder="璇疯緭鍏ュ垱寤虹敤鎴�" />
+        </el-form-item>
+        <el-form-item label="鏇存敼鐢ㄦ埛" prop="updateUser">
+          <el-input v-model="form.updateUser" placeholder="璇疯緭鍏ユ洿鏀圭敤鎴�" />
+        </el-form-item>
+        <el-form-item label="棰勭暀瀛楁1" prop="spareField1">
+          <el-input v-model="form.spareField1" placeholder="璇疯緭鍏ラ鐣欏瓧娈�1" />
+        </el-form-item>
+        <el-form-item label="棰勭暀瀛楁2" prop="spareField2">
+          <el-input v-model="form.spareField2" placeholder="璇疯緭鍏ラ鐣欏瓧娈�2" />
+        </el-form-item>
+        <el-form-item label="棰勭暀瀛楁3" prop="spareField3">
+          <el-input v-model="form.spareField3" placeholder="璇疯緭鍏ラ鐣欏瓧娈�3" />
+        </el-form-item>
+        <el-form-item label="棰勭暀瀛楁4" prop="spareField4">
+          <el-input v-model="form.spareField4" placeholder="璇疯緭鍏ラ鐣欏瓧娈�4" />
+        </el-form-item>
+        <el-form-item label="閲囬泦鏁版嵁" prop="collectData">
+          <el-input v-model="form.collectData" placeholder="璇疯緭鍏ラ噰闆嗘暟鎹�" />
+        </el-form-item>
+        <el-form-item label="缁撴灉" prop="results">
+          <el-input v-model="form.results" placeholder="璇疯緭鍏ョ粨鏋�" />
+        </el-form-item>
+        <el-form-item label="ng娆℃暟" prop="ngTimes">
+          <el-input v-model="form.ngTimes" placeholder="璇疯緭鍏g娆℃暟" />
+        </el-form-item>
+        <el-form-item label="ng閲囬泦鏁版嵁" prop="ngCollectData">
+          <el-input v-model="form.ngCollectData" placeholder="璇疯緭鍏g閲囬泦鏁版嵁" />
+        </el-form-item>
+        <el-form-item label="ng缁撴灉" prop="ngResults">
+          <el-input v-model="form.ngResults" placeholder="璇疯緭鍏g缁撴灉" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+        <el-button @click="cancel">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listFormulaChildInfoTemp, getFormulaChildInfoTemp, delFormulaChildInfoTemp, addFormulaChildInfoTemp, updateFormulaChildInfoTemp } from "@/api/main/bs/formulaChildInfoTemp/formulaChildInfoTemp";
+
+export default {
+  name: "FormulaChildInfoTemp",
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      titleName: "",
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤琛ㄦ牸鏁版嵁
+      formulaChildInfoTempList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        sfcCode: null,
+        lineCode: null,
+        processesCode: null,
+        productCode: null,
+        operationSteps: null,
+        techRequirement: null,
+        operationType: null,
+        stepSort: null,
+        paramCode: null,
+        materialCode: null,
+        formulaCode: null,
+        picture: null,
+        remarks: null,
+        createUser: null,
+        updateUser: null,
+        spareField1: null,
+        spareField2: null,
+        spareField3: null,
+        spareField4: null,
+        collectData: null,
+        results: null,
+        ngTimes: null,
+        ngCollectData: null,
+        ngResults: null
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        id: [
+          { required: true, message: "id涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 鏌ヨ閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤鍒楄〃 */
+    getList() {
+      this.loading = true;
+      listFormulaChildInfoTemp(this.queryParams).then(response => {
+        this.formulaChildInfoTempList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        id: null,
+        sfcCode: null,
+        lineCode: null,
+        processesCode: null,
+        productCode: null,
+        operationSteps: null,
+        techRequirement: null,
+        operationType: null,
+        stepSort: null,
+        paramCode: null,
+        materialCode: null,
+        formulaCode: null,
+        picture: null,
+        remarks: null,
+        createUser: null,
+        createTime: null,
+        updateUser: null,
+        updateTime: null,
+        spareField1: null,
+        spareField2: null,
+        spareField3: null,
+        spareField4: null,
+        collectData: null,
+        results: null,
+        ngTimes: null,
+        ngCollectData: null,
+        ngResults: null
+      };
+      this.resetForm("form");
+    },
+    /** 鎼滅储鎸夐挳鎿嶄綔 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 閲嶇疆鎸夐挳鎿嶄綔 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 澶氶�夋閫変腑鏁版嵁
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.titleName = "娣诲姞閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤";
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getFormulaChildInfoTemp(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.titleName = "淇敼閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤";
+      });
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateFormulaChildInfoTemp(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addFormulaChildInfoTemp(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('鏄惁纭鍒犻櫎閰嶆柟閰嶇疆瀛愪俊鎭�-澶囦唤缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function() {
+        return delFormulaChildInfoTemp(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+      }).catch(() => {});
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('bs/formulaChildInfoTemp/export', {
+        ...this.queryParams
+      }, `formulaChildInfoTemp_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>
diff --git a/jcdm-ui/src/views/main/kb/stationTerminal/index.vue b/jcdm-ui/src/views/main/kb/stationTerminal/index.vue
index 4c35bf7..b230e60 100644
--- a/jcdm-ui/src/views/main/kb/stationTerminal/index.vue
+++ b/jcdm-ui/src/views/main/kb/stationTerminal/index.vue
@@ -332,7 +332,7 @@
   addParamCollection,
   addTighteningParameters,
   saveCampaignTimeParameters,
-  replaceAssemblyCode, checkRecordDataDone,
+  replaceAssemblyCode, checkRecordDataDone, enterWeighing,
 } from "@/api/main/da/paramCollection/paramCollection";
 
 export default {
@@ -350,6 +350,8 @@
         pageSize: 10,
         productCode: null,
         processesCode: null,
+        artificialNgFlag: null,
+        sfcBarcode: null,
       },
       // 閰嶆柟閰嶇疆瀛愪俊鎭〃鏍兼暟鎹�
       formulaChildList: [],
@@ -392,8 +394,8 @@
       content: '',
       activeName: 'first',
       // url: "ws://192.168.2.248:8080/websocket/message/",
-      // url: "ws://10.103.210.248:8080/websocket/message/",
-      url: "ws://192.168.2.76:8080/websocket/message/",
+      url: "ws://10.103.210.248:8080/websocket/message/",
+      // url: "ws://192.168.2.76:8080/websocket/message/",
       message: "",
       text_content: "",
       ws: null,
@@ -424,6 +426,7 @@
       originalArray: [],
       yzSfcFlag: 1,
       endYz: false,
+      artificialNgFlag: null,
     }
   },
   beforeDestroy() {
@@ -533,6 +536,11 @@
       // this.formulaChildList = []
       this.formulaChildParams.productCode = this.workpieceInformation.productCode
       this.formulaChildParams.processesCode = this.headContent.processesCode
+      console.log(this.artificialNgFlag)
+      if(this.artificialNgFlag !== null){
+        this.formulaChildParams.artificialNgFlag = this.artificialNgFlag
+        this.formulaChildParams.sfcBarcode = this.headContent.sfcCode
+      }
       console.log(this.formulaChildParams)
       noPageListFormulaChild(this.formulaChildParams).then(response => {
         this.formulaChildList = response.rows;
@@ -573,6 +581,8 @@
       this.headContent.sfcCode = '';
       this.headContent.yzSfcCode = '';
       this.headContent.cardCode = '';
+      this.formulaChildParams.artificialNgFlag = null
+      this.formulaChildParams.sfcBarcode = null
     },
     changeMenu(tab, event) {
       console.log(tab, event);
@@ -609,6 +619,7 @@
         this.workpieceInformation.productModel = rowsData.productModel;
         this.workpieceInformation.productName = rowsData.productName;
         this.headContent.cardCode = rowsData.trolleyYard;
+        this.artificialNgFlag = rowsData.artificialNgFlag;
       });
       this.getListFormulaChild()
       // this.addOverStationCollection()
@@ -702,12 +713,18 @@
         } else if (event.data === "NG") {
           //缁檖lc鍙戜笅绾夸俊鍙�
           //娓呴櫎鏁版嵁
-          this.$confirm('<span style="font-size: 20px;color: red">鎷х揣瓒呰繃涓夋璇ヤ骇鍝丯G涓嬬嚎锛岃纭锛�</span>', '閫氱煡', {
+          self.$confirm('鎷х揣涓夋NG锛岃纭涓嬬嚎锛侊紒锛�', '娑堟伅', {
             confirmButtonText: '纭畾',
+            cancelButtonText: '鍙栨秷',
+            showCancelButton: false,
             type: 'warning'
           }).then(() => {
             self.ngFunction();
-          })
+            this.$message({
+              type: 'success',
+              message: '纭鎴愬姛!'
+            });
+          });
 
         } else if (event.data === "OUT") {
           self.cakeLamp.release = 1;
@@ -736,6 +753,14 @@
             formulaChildEntity: self.formulaChildList[formulaChildIndex]
           }
 
+          // if(param.locationCode === 'POP430'){
+          //   let enterWeighingparam = {
+          //     sfcCode: param.productBarcode,
+          //   }
+          //   enterWeighing(enterWeighingparam).then(response => {
+          //   });
+          // }
+
           console.log("杩涘叆鏈�缁堟柟娉�")
           self.endSaveData(param)
         } else if (event.data.includes("[")) {

--
Gitblit v1.9.3