From 3a6f6d86d14284a665dc016914b39a1a6a82b29b Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期六, 05 十月 2024 23:19:09 +0800
Subject: [PATCH] 导出数据点ok

---
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/system/service/IDataScopeManagerService.java         |    5 
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/CollectTemplateService.java              |   68 +++
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/controller/MyTestController.java                 |   80 +++
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/mapper/WorkstationDatapointsMapper.java          |   19 
 smart-man-boot/src/main/resources/com/qianwen/smartman/modules/cps/mapper/CollectDeviceTypeMapper.xml          |   14 
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/vo/CollectDeviceTypeVO.java                      |   56 ++
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/impl/EmployeeServiceImpl.java            |    6 
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/mdc/service/impl/OutputStatisticsServiceImpl.java    |    1 
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/system/service/impl/DataScopeManagerServiceImpl.java |    5 
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/entity/CollectDeviceType.java                    |   40 +
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/system/controller/DataScopeManagerController.java    |    8 
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/entity/WorkstationDatapoints.java                |   54 ++
 smart-man-boot/src/main/resources/com/qianwen/smartman/modules/cps/mapper/CollectTemplateMapper.xml            |   29 +
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/controller/WorkstationController.java            |   19 
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/vo/WorkstationDatapointsSubmitVO.java            |   49 ++
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/impl/CalendarServiceImpl.java            |   17 
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/wrapper/CollectTemplateWrapper.java              |   24 +
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/entity/CollectTemplate.java                      |   50 ++
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/mapper/CollectTemplateMapper.java                |   18 
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/vo/WorkstationDatapointsVO.java                  |   60 ++
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/mdc/utils/FilterOffUtils.java                        |    8 
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/controller/CollectTemplateController.java        |  131 ++++++
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/IWorkstationService.java                 |    8 
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/WorkstationDatapointsService.java        |   91 ++++
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/CollectDeviceTypeService.java            |   66 +++
 smart-man-boot/src/main/resources/application-dev.yml                                                          |    2 
 smart-man-boot/src/main/resources/dp/dpend.json                                                                |    1 
 smart-man-boot/src/main/resources/dp/dpstart.json                                                              |    1 
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/vo/CollectTemplateVO.java                        |   70 +++
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/mapper/CollectDeviceTypeMapper.java              |    9 
 smart-man-boot/src/main/java/com/qianwen/smartman/common/enums/MenuCategoryEnum.java                           |    4 
 smart-man-boot/pom.xml                                                                                         |   12 
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/controller/WorkstationDpController.java          |  187 ++++++++
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/impl/WorkstationServiceImpl.java         |    2 
 smart-man-boot/src/main/resources/application.yml                                                              |    1 
 35 files changed, 1,185 insertions(+), 30 deletions(-)

diff --git a/smart-man-boot/pom.xml b/smart-man-boot/pom.xml
index b3458e1..fc2650f 100644
--- a/smart-man-boot/pom.xml
+++ b/smart-man-boot/pom.xml
@@ -551,6 +551,18 @@
             <plugin>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
+                <configuration>
+					<mainClass>com.qianwen.smartman.Application</mainClass>
+                    <layout>ZIP</layout>
+                    <includes>
+                         
+                        <include>
+                            <groupId>nothing</groupId>
+                            <artifactId>nothing</artifactId>
+                        </include>
+                        
+                    </includes>
+                </configuration>
             </plugin>
             <plugin>
                 <artifactId>maven-compiler-plugin</artifactId>
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/common/enums/MenuCategoryEnum.java b/smart-man-boot/src/main/java/com/qianwen/smartman/common/enums/MenuCategoryEnum.java
index 7756748..4e77c8d 100644
--- a/smart-man-boot/src/main/java/com/qianwen/smartman/common/enums/MenuCategoryEnum.java
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/common/enums/MenuCategoryEnum.java
@@ -2,7 +2,9 @@
 
 import java.util.Arrays;
 import java.util.List;
-
+/**
+ * 鑿滃崟鍒嗙被
+ */
 public enum MenuCategoryEnum {
     APP(0, "app"),
     MENU(1, "鑿滃崟"),
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/controller/CollectTemplateController.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/controller/CollectTemplateController.java
new file mode 100644
index 0000000..c2948f6
--- /dev/null
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/controller/CollectTemplateController.java
@@ -0,0 +1,131 @@
+package com.qianwen.smartman.modules.cps.controller;
+
+import java.util.List;
+
+import javax.validation.Valid;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.qianwen.core.log.annotation.ApiLog;
+import com.qianwen.core.mp.support.Condition;
+import com.qianwen.core.mp.support.Query;
+import com.qianwen.core.scanner.modular.annotation.GetResource;
+import com.qianwen.core.scanner.modular.annotation.PostResource;
+import com.qianwen.core.scanner.modular.stereotype.ApiResource;
+import com.qianwen.core.secure.annotation.PreAuth;
+import com.qianwen.core.tenant.annotation.NonDS;
+import com.qianwen.core.tool.api.R;
+import com.qianwen.smartman.modules.cps.entity.CollectTemplate;
+import com.qianwen.smartman.modules.cps.service.CollectDeviceTypeService;
+import com.qianwen.smartman.modules.cps.service.CollectTemplateService;
+import com.qianwen.smartman.modules.cps.vo.CollectDeviceTypeVO;
+import com.qianwen.smartman.modules.cps.vo.CollectTemplateVO;
+import com.qianwen.smartman.modules.cps.wrapper.CollectTemplateWrapper;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import springfox.documentation.annotations.ApiIgnore;
+
+@Api(value = "閲囬泦妯℃澘", tags = {"閲囬泦妯℃澘"})
+@RestController
+@ApiResource({"smart-collect/tpl"})
+@NonDS
+public class CollectTemplateController {
+	@Autowired
+    private CollectTemplateService templateService;
+	
+	@Autowired
+    private CollectDeviceTypeService collectDeviceTypeService;
+    
+	
+	@ApiOperationSupport(order = 3)
+    @ApiLog("璁惧閲囬泦绫诲瀷鍒楄〃")
+    @GetResource({"/typelist"})
+    @ApiOperation(value = "璁惧閲囬泦绫诲瀷鍒楄〃")
+    public R<List<CollectDeviceTypeVO>> list() {
+  
+        return R.data(collectDeviceTypeService.typeList());
+    }
+	
+	@ApiOperationSupport(order = 1)
+    @ApiLog("閲囬泦妯℃澘璇︽儏")
+    @ApiOperation(value = "閲囬泦妯℃澘璇︽儏", notes = "浼犲叆id")
+    @GetResource({"/detail"})
+    public R<CollectTemplateVO> detail(Long id) {
+        return R.data(this.templateService.detail(id));
+    }
+	
+    @ApiOperationSupport(order = 3)
+    @ApiImplicitParams({@ApiImplicitParam(name = "name", value = "鍚嶇О", paramType = "query", dataType = "string")})
+    @ApiLog("鏌ヨ閲囬泦妯℃澘鍒楄〃")
+    @GetResource({"/page"})
+    @ApiOperation(value = "妯℃澘鍒楄〃", notes = "浼犲叆name,type")
+    public R<IPage<CollectTemplateVO>> page(@ApiIgnore CollectTemplate tpl, Query query) {
+        IPage<CollectTemplate> pages = this.templateService.selectPage(Condition.getPage(query), tpl);
+       
+        //return R.data(UserWrapper.build().pageVO(pages));
+        return R.data(CollectTemplateWrapper.build().pageVO(pages));
+    }
+    
+    @ApiOperationSupport(order = 4)
+    @PostResource({"/submit"})
+    @ApiLog("鏂板鎴栦慨鏀归噰闆嗘ā鏉�")
+    @ApiOperation(value = "鏂板鎴栦慨鏀�", notes = "浼犲叆妯℃澘")
+    @PreAuth
+    public R<Void> submit(@Valid @RequestBody CollectTemplateVO tpl) {
+    	this.templateService.submit(tpl);
+        return R.status(true);
+    }
+    
+    @ApiOperationSupport(order = 6)
+    @PostResource({"/remove"})
+    @ApiLog("鍒犻櫎妯℃澘")
+    @ApiOperation(value = "鍒犻櫎", notes = "浼犲叆id闆嗗悎")
+    @PreAuth
+    public R<Boolean> remove(@RequestParam String ids) {
+    	
+        return R.status(templateService.removeTemplate(ids));
+    }
+    /*
+    @ApiOperationSupport(order = RegionCache.VILLAGE_LEVEL)
+    @PostResource({"/update"})
+    @ApiLog("淇敼鐢ㄦ埛")
+    @ApiOperation(value = "淇敼", notes = "浼犲叆User")
+    @PreAuth
+    public R update(@Valid @RequestBody User user) {
+        CacheUtil.clear("blade:user", ExtCacheConstant.TENANT_MODE);
+        return R.status(this.userService.updateUser(user));
+    }
+
+    
+
+    @ApiOperationSupport(order = 10)
+    @PostResource({"/update-info"})
+    @ApiLog("淇敼鍩烘湰淇℃伅")
+    @ApiOperation(value = "淇敼鍩烘湰淇℃伅", notes = "浼犲叆User")
+    public R updateInfo(@Valid @RequestBody User user) {
+        CacheUtil.clear("blade:user", ExtCacheConstant.TENANT_MODE);
+        return R.status(this.userService.updateUserInfo(user));
+    }
+
+    @ApiOperationSupport(order = 11)
+    @ApiLog("鐢ㄦ埛鍒楄〃")
+    @GetResource({"/user-list"})
+    @ApiOperation(value = "鐢ㄦ埛鍒楄〃", notes = "浼犲叆user")
+    public R<List<User>> userList(User user, BladeUser bladeUser) {
+    	QueryWrapper<User> queryWrapper = Condition.getQueryWrapper(user);
+        List<User> list = this.userService.list(!AuthUtil.isAdministrator() ? queryWrapper.lambda().eq(User::getTenantId, bladeUser.getTenantId()) : queryWrapper);
+    	
+        return R.data(list);
+    }
+
+   
+    */
+}
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/controller/MyTestController.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/controller/MyTestController.java
new file mode 100644
index 0000000..e0b1535
--- /dev/null
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/controller/MyTestController.java
@@ -0,0 +1,80 @@
+package com.qianwen.smartman.modules.cps.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.Charset;
+import java.util.List;
+import com.qianwen.core.boot.ctrl.BladeController;
+import com.qianwen.core.datascope.props.DataScopeProperties;
+import com.qianwen.core.mp.intercept.QueryInterceptor;
+import com.qianwen.core.scanner.modular.annotation.GetResource;
+import com.qianwen.core.scanner.modular.stereotype.ApiResource;
+import com.qianwen.core.secure.annotation.PreAuth;
+import com.qianwen.core.tenant.annotation.NonDS;
+import com.qianwen.core.tool.api.R;
+import com.qianwen.smartman.modules.cps.service.CollectDeviceTypeService;
+import com.qianwen.smartman.modules.cps.service.ICommonGroupService;
+import com.qianwen.smartman.modules.cps.service.WorkstationDatapointsService;
+import com.qianwen.smartman.modules.cps.vo.CollectDeviceTypeVO;
+import com.qianwen.smartman.modules.cps.vo.WorkstationDatapointsVO;
+import com.qianwen.smartman.modules.cps.vo.WorkstationGroupVO;
+
+import org.apache.commons.io.IOUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+@Api(value = "test", tags = {"test"})
+@RestController
+@ApiResource({"blade-cps/test"})
+public class MyTestController {// extends BladeController
+    
+    @Autowired
+    private WorkstationDatapointsService workstationDatapointsService;
+   
+    @Autowired
+    private CollectDeviceTypeService typeService;
+    
+    @Autowired
+    DataScopeProperties dsp;
+    @Autowired
+    QueryInterceptor qi;
+    @GetMapping({"/dsp"})
+    @ApiOperation("dsp")
+    public R<String> showdsp() {
+        return R.data(dsp.toString()+qi);
+    }
+    
+    @GetMapping({"/listDatapointsByWorkstationId"})
+    @ApiOperation("鏍规嵁宸ヤ綅id鑾峰彇鏁版嵁鐐�")
+    public R<String> listDatapointsByWorkstationId() {
+    	
+    	//InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("dp/dpstart.json");
+    	String str;
+		try {
+			str = IOUtils.resourceToString("/dp/dpstart.json",  Charset.forName("utf8"));
+		} catch (IOException e) {
+			str = "error";
+			e.printStackTrace();
+		}
+
+        return R.data(str);
+    }
+    
+    
+    @GetMapping({"/typelist"})
+    @ApiOperation("閲囬泦绫诲瀷鍒楄〃")
+    public R<List<CollectDeviceTypeVO>> typelist() {
+    	
+    	
+        return R.data(typeService.typeList());
+    }
+    
+    
+}
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/controller/WorkstationController.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/controller/WorkstationController.java
index b20d12e..c1245a5 100644
--- a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/controller/WorkstationController.java
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/controller/WorkstationController.java
@@ -23,21 +23,26 @@
 import com.qianwen.core.tenant.annotation.NonDS;
 import com.qianwen.core.tool.api.R;
 import com.qianwen.smartman.modules.cps.dto.WorkstationRealTimeStatusDTO;
+import com.qianwen.smartman.modules.cps.entity.WorkstationDatapoints;
 import com.qianwen.smartman.modules.cps.excel.WorkstationImport;
 import com.qianwen.smartman.modules.cps.service.IDmpVariablesService;
 import com.qianwen.smartman.modules.cps.service.IWorkstationService;
+import com.qianwen.smartman.modules.cps.service.WorkstationDatapointsService;
 import com.qianwen.smartman.modules.cps.vo.DmpVariablesVO;
 import com.qianwen.smartman.modules.cps.vo.FmsWorkstationGroupVO;
 import com.qianwen.smartman.modules.cps.vo.FmsWorkstationQueryVO;
 import com.qianwen.smartman.modules.cps.vo.MachineDmpVariablesVO;
 import com.qianwen.smartman.modules.cps.vo.WorkMachineEasyVO;
 import com.qianwen.smartman.modules.cps.vo.WorkstationChangeCalendarVO;
+import com.qianwen.smartman.modules.cps.vo.WorkstationDatapointsVO;
 import com.qianwen.smartman.modules.cps.vo.WorkstationPageQueryVO;
 import com.qianwen.smartman.modules.cps.vo.WorkstationRealTimeStatusVO;
 import com.qianwen.smartman.modules.cps.vo.WorkstationSubmitVO;
 import com.qianwen.smartman.modules.cps.vo.WorkstationVO;
 import com.qianwen.smartman.modules.resource.enums.TemplateEnum;
 import com.qianwen.smartman.modules.resource.service.ISystemResourceService;
+
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -52,15 +57,19 @@
 @NonDS
 @Validated
 public class WorkstationController extends BladeController {
-    private final IWorkstationService workstationService;
-    private final IDmpVariablesService dmpVariablesService;
-    private final ISystemResourceService systemResourceService;
+	@Autowired
+    private IWorkstationService workstationService;
+    @Autowired
+    private IDmpVariablesService dmpVariablesService;
+    @Autowired
+    private ISystemResourceService systemResourceService;
 
+    /*
     public WorkstationController(final IWorkstationService workstationService, final IDmpVariablesService dmpVariablesService, final ISystemResourceService systemResourceService) {
         this.workstationService = workstationService;
         this.dmpVariablesService = dmpVariablesService;
         this.systemResourceService = systemResourceService;
-    }
+    }*/
 
     @PreAuth
     @PostResource({"/submit"})
@@ -82,6 +91,8 @@
         return R.data(this.dmpVariablesService.listByWorkstationId(workstationId));
     }
 
+   
+    
     @GetMapping({"/get"})
     @ApiOperation("鑾峰彇宸ヤ綅淇℃伅")
     public R<WorkstationVO> get(@RequestParam Long workstationId) {
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/controller/WorkstationDpController.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/controller/WorkstationDpController.java
new file mode 100644
index 0000000..1cc6c57
--- /dev/null
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/controller/WorkstationDpController.java
@@ -0,0 +1,187 @@
+package com.qianwen.smartman.modules.cps.controller;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.commons.codec.Charsets;
+import org.apache.commons.fileupload.FileItem;
+import org.apache.commons.fileupload.disk.DiskFileItem;
+import org.apache.commons.fileupload.disk.DiskFileItemFactory;
+import java.util.Arrays;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.commons.CommonsMultipartFile;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.qianwen.core.boot.ctrl.BladeController;
+import com.qianwen.core.excel.util.ExcelUtil;
+import com.qianwen.core.mp.support.Condition;
+import com.qianwen.core.mp.support.Query;
+import com.qianwen.core.oss.model.BladeFile;
+import com.qianwen.core.scanner.modular.annotation.GetResource;
+import com.qianwen.core.scanner.modular.annotation.PostResource;
+import com.qianwen.core.scanner.modular.annotation.PutResource;
+import com.qianwen.core.scanner.modular.stereotype.ApiResource;
+import com.qianwen.core.secure.annotation.PreAuth;
+import com.qianwen.core.tenant.annotation.NonDS;
+import com.qianwen.core.tool.api.R;
+import com.qianwen.core.tool.utils.DateUtil;
+import com.qianwen.smartman.modules.cps.dto.EmployeeDTO;
+import com.qianwen.smartman.modules.cps.entity.WorkstationDatapoints;
+import com.qianwen.smartman.modules.cps.service.WorkstationDatapointsService;
+import com.qianwen.smartman.modules.cps.vo.EmployeeSelectVO;
+import com.qianwen.smartman.modules.cps.vo.WorkstationDatapointsSubmitVO;
+import com.qianwen.smartman.modules.cps.vo.WorkstationDatapointsVO;
+import com.qianwen.smartman.modules.cps.wrapper.EmployeeExcelWrapper;
+import com.qianwen.smartman.modules.resource.builder.oss.OssBuilder;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+@Api(value = "宸ヤ綅绠$悊", tags = {"宸ヤ綅绠$悊"})
+@RestController
+@ApiResource({"blade-cps/workstation"})
+@NonDS
+@Validated
+public class WorkstationDpController extends BladeController {
+    @Autowired
+    private WorkstationDatapointsService workstationDatapointsService;
+    @Autowired
+    private OssBuilder ossBuilder;
+   
+    //@PreAuth
+    @GetResource({"/listDatapointsByWorkstationId"})
+    @ApiOperation("鏍规嵁宸ヤ綅id鑾峰彇鏁版嵁鐐�")
+    public R<WorkstationDatapointsVO> listDatapointsByWorkstationId(@RequestParam Long workstationId) {
+    	WorkstationDatapointsVO v = new WorkstationDatapointsVO();
+    	v.setDpHead("myhead");
+    	//return R.data(v);
+        return R.data(workstationDatapointsService.getDatapoints(workstationId));
+    }
+    
+    @PutResource({"/saveDatapoints"})
+    @ApiOperation("淇濆瓨宸ヤ綅鏁版嵁鐐归厤缃�")
+    public R<Boolean> saveDatapoints(@RequestBody WorkstationDatapointsSubmitVO datapoints) {
+    	//return R.data(true);
+    	try {
+    		workstationDatapointsService.submit(datapoints);
+    	}catch(Exception e) {
+    		return R.data(false);
+    	}
+        return R.data(true);
+    }
+    
+    @ApiOperationSupport(order = 7)
+    @GetResource({"/export-dp"})
+    @ApiOperation("瀵煎嚭宸ヤ綅鏁版嵁鐐�")
+    @PreAuth
+    public R<BladeFile> exportDatapoints(long workstationId) {
+        //List<EmployeeExcel> list = EmployeeExcelWrapper.build().pageVO(pages).getRecords();
+        String fileName = String.format("%s-%s.xlsx", "鐐逛綅閰嶇疆", DateUtil.time());
+        
+        WorkstationDatapointsVO dpVO = workstationDatapointsService.getDatapoints(workstationId);
+        
+        
+        List<List<String>> head = new ArrayList<>();
+        head.add(Arrays.asList("鍚嶇О","鍒悕"));
+        
+        List<List<Object>> data = new ArrayList<>();
+        
+        data.add(Arrays.asList("DeviceStatus","alias"));
+        
+        MultipartFile multipartFile = exportExcel("sheet1",fileName,head(dpVO.getDpHead()),data(dpVO.getDpHead(),dpVO.getDpConfig()));
+        BladeFile bladeFile = this.ossBuilder.tempTemplate().putFile(multipartFile.getOriginalFilename(), multipartFile);
+        return R.data(bladeFile);
+        //return null;
+    }
+    
+    List<List<Object>> data(String dpHead,String dpConfig){
+    	List<List<Object>> result = new ArrayList<>();
+    	JSONArray headsJson = JSONArray.parseArray(dpHead);
+    	
+    	JSONArray dataJson = JSONArray.parseArray(dpConfig);
+    	JSONObject rowJson;
+    	JSONObject headOne ;
+    	String prop;
+    	List<Object> rowData;
+    	for(int i=0;i<dataJson.size();i++) {
+    		rowJson = dataJson.getJSONObject(i);
+    		rowData = new ArrayList<>();
+    		
+    		for(int j=0;j<headsJson.size();j++) {
+    			headOne = headsJson.getJSONObject(j);
+    			prop = headOne.getString("prop");
+    			if(rowJson.containsKey(prop)) {
+    				rowData.add(rowJson.getString(prop));
+    			}else {
+    				rowData.add("");
+    			}
+    		}
+    		
+    		result.add(rowData);
+    	}
+    	
+    	return result;
+    }
+    
+    List<List<String>> head(String dpHeadFullJsonStr){
+    	List<List<String>> head = new ArrayList<>();
+    	JSONArray headsJson = JSONArray.parseArray(dpHeadFullJsonStr);
+    	
+    	JSONObject headOne ;
+    	boolean isRequired;
+    	String title;
+    	for(int i=0;i<headsJson.size();i++) {
+    		List<String> head0 = new ArrayList<>();
+    		
+    		headOne = headsJson.getJSONObject(i);
+    		if(headOne.containsKey("isRequired")) {
+    			isRequired = headOne.getBooleanValue("isRequired");
+    		}else {
+    			isRequired = false;
+    		}
+    		title = (isRequired?"*":"") + headOne.getString("label");
+	       	head0.add(title);
+	       	 
+	       	head.add(head0);
+    	}
+    	return head;
+    }
+    
+    /**
+     * 鍔ㄦ�佽〃澶村鍑�
+     *
+     * @param response HttpServletResponse
+     * @param fileName 鏂囦欢鍚�
+     * @param Myhead   Excel琛ㄥご淇℃伅
+     * @param data     Excel鏁版嵁
+     */
+    public MultipartFile exportExcel(String sheetName,String filename, List<List<String>> myhead, List<List<Object>> data) {
+        try {
+        	
+          DiskFileItemFactory factory = new DiskFileItemFactory();
+  	      factory.setRepository(new File(System.getProperty("java.io.tmpdir")));
+  	    //factory.setRepository(new File("d:/"));
+  	      FileItem fileItem = factory.createItem("excel", "application/vnd.ms-excel", true, filename);
+  	      
+            EasyExcel.write(fileItem.getOutputStream())
+                    .head(myhead)
+                    .sheet(sheetName)
+                    .doWrite(data);
+            
+            return new CommonsMultipartFile(fileItem);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+}
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/entity/CollectDeviceType.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/entity/CollectDeviceType.java
new file mode 100644
index 0000000..89c8d2a
--- /dev/null
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/entity/CollectDeviceType.java
@@ -0,0 +1,40 @@
+package com.qianwen.smartman.modules.cps.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.qianwen.core.mp.base.BaseEntity;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * 閲囬泦璁惧绫诲瀷,瀹氫箟鐐逛綅瀛楁
+ */
+@TableName("collect_device_type")
+public class CollectDeviceType extends BaseEntity {
+    private static final long serialVersionUID = 1;
+    @ApiModelProperty("绫诲瀷鍚嶇О")
+    private String name;
+    
+    /**
+     * 姣忎釜瀛楁淇℃伅鏍煎紡锛歿"prop":"dpName","isRequired":true,"label":"鏁版嵁鐐瑰悕绉�","describe":"鏁版嵁鐐瑰悕绉帮紝鍚屼竴搴旂敤涓嬬殑鏁版嵁鐐瑰悕绉颁笉鍏佽閲嶅銆�"}
+     */
+    @ApiModelProperty("瀛楁淇℃伅锛宩son鏁扮粍")
+    private String dpHead;
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getDpHead() {
+		return dpHead;
+	}
+
+	public void setDpHead(String dpHead) {
+		this.dpHead = dpHead;
+	}
+
+    
+}
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/entity/CollectTemplate.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/entity/CollectTemplate.java
new file mode 100644
index 0000000..461c18f
--- /dev/null
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/entity/CollectTemplate.java
@@ -0,0 +1,50 @@
+package com.qianwen.smartman.modules.cps.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.qianwen.core.mp.base.BaseEntity;
+import com.qianwen.core.tenant.mp.TenantEntity;
+
+import io.swagger.annotations.ApiModelProperty;
+
+
+/**
+ * 閲囬泦妯℃澘
+ */
+@TableName("collect_template")
+public class CollectTemplate  extends BaseEntity {
+    private static final long serialVersionUID = 1;
+    @ApiModelProperty("妯℃澘鍚嶇О")
+    private String name;
+    
+    @ApiModelProperty("妯℃澘绫诲瀷")
+    private Integer type;
+    
+    @ApiModelProperty("鐐逛綅閰嶇疆(json鏁扮粍)")
+    private String dpConfig;
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Integer getType() {
+		return type;
+	}
+
+	public void setType(Integer type) {
+		this.type = type;
+	}
+
+	public String getDpConfig() {
+		return dpConfig;
+	}
+
+	public void setDpConfig(String dpConfig) {
+		this.dpConfig = dpConfig;
+	}
+
+    
+}
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/entity/WorkstationDatapoints.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/entity/WorkstationDatapoints.java
new file mode 100644
index 0000000..03e7deb
--- /dev/null
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/entity/WorkstationDatapoints.java
@@ -0,0 +1,54 @@
+package com.qianwen.smartman.modules.cps.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.qianwen.core.mp.base.BaseEntity;
+import com.qianwen.core.tenant.mp.TenantEntity;
+
+import io.swagger.annotations.ApiModelProperty;
+
+
+/**
+ * 宸ヤ綅閲囬泦鏁版嵁鐐�
+ */
+@TableName("workstation_datapoints")
+public class WorkstationDatapoints  extends BaseEntity {
+    private static final long serialVersionUID = 1;
+    
+    @ApiModelProperty("妯℃澘绫诲瀷")
+    private Integer type;
+    
+    @ApiModelProperty("鐐逛綅閰嶇疆(json鏁扮粍)")
+    private String dpConfig;
+    
+    /**
+     * 宸ヤ綅id
+     */
+    private long workstationId;
+   
+
+	public Integer getType() {
+		return type;
+	}
+
+	public void setType(Integer type) {
+		this.type = type;
+	}
+
+	public String getDpConfig() {
+		return dpConfig;
+	}
+
+	public void setDpConfig(String dpConfig) {
+		this.dpConfig = dpConfig;
+	}
+
+	public long getWorkstationId() {
+		return workstationId;
+	}
+
+	public void setWorkstationId(long workstationId) {
+		this.workstationId = workstationId;
+	}
+
+    
+}
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/mapper/CollectDeviceTypeMapper.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/mapper/CollectDeviceTypeMapper.java
new file mode 100644
index 0000000..0663165
--- /dev/null
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/mapper/CollectDeviceTypeMapper.java
@@ -0,0 +1,9 @@
+package com.qianwen.smartman.modules.cps.mapper;
+
+import com.qianwen.core.mp.mapper.BladeMapper;
+import com.qianwen.smartman.modules.cps.entity.CollectDeviceType;
+
+
+public interface CollectDeviceTypeMapper extends BladeMapper<CollectDeviceType> {
+    
+}
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/mapper/CollectTemplateMapper.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/mapper/CollectTemplateMapper.java
new file mode 100644
index 0000000..70bd473
--- /dev/null
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/mapper/CollectTemplateMapper.java
@@ -0,0 +1,18 @@
+package com.qianwen.smartman.modules.cps.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.qianwen.core.mp.mapper.BladeMapper;
+import com.qianwen.smartman.modules.cps.entity.CollectDeviceType;
+import com.qianwen.smartman.modules.cps.entity.CollectTemplate;
+import com.qianwen.smartman.modules.system.entity.User;
+
+
+public interface CollectTemplateMapper extends BladeMapper<CollectTemplate> {
+
+	List<CollectTemplate> selectPage(@Param("page")IPage<CollectTemplate> page,@Param("template") CollectTemplate tpl);
+    
+}
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/mapper/WorkstationDatapointsMapper.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/mapper/WorkstationDatapointsMapper.java
new file mode 100644
index 0000000..ceafdc4
--- /dev/null
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/mapper/WorkstationDatapointsMapper.java
@@ -0,0 +1,19 @@
+package com.qianwen.smartman.modules.cps.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.qianwen.core.mp.mapper.BladeMapper;
+import com.qianwen.smartman.modules.cps.entity.CollectDeviceType;
+import com.qianwen.smartman.modules.cps.entity.CollectTemplate;
+import com.qianwen.smartman.modules.cps.entity.WorkstationDatapoints;
+import com.qianwen.smartman.modules.system.entity.User;
+
+
+public interface WorkstationDatapointsMapper extends BladeMapper<WorkstationDatapoints> {
+
+	
+    
+}
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/CollectDeviceTypeService.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/CollectDeviceTypeService.java
new file mode 100644
index 0000000..5136ed9
--- /dev/null
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/CollectDeviceTypeService.java
@@ -0,0 +1,66 @@
+package com.qianwen.smartman.modules.cps.service;
+
+import java.io.IOException;
+import java.nio.charset.Charset;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.apache.commons.io.IOUtils;
+import org.springframework.stereotype.Service;
+
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.qianwen.core.mp.base.BaseServiceImpl;
+import com.qianwen.smartman.modules.cps.entity.CollectDeviceType;
+import com.qianwen.smartman.modules.cps.mapper.CollectDeviceTypeMapper;
+import com.qianwen.smartman.modules.cps.vo.CollectDeviceTypeVO;
+
+@Service
+public class CollectDeviceTypeService extends BaseServiceImpl<CollectDeviceTypeMapper, CollectDeviceType> {
+
+
+    /**
+     * 鏂板鎴栬�呮洿鏂版ā鏉�
+     * @param tpl
+     */
+    public List<CollectDeviceTypeVO> typeList() {
+    	
+    	List<CollectDeviceType> list = this.baseMapper.selectList(Wrappers.emptyWrapper());
+    	Charset utf8charset = Charset.forName("utf8");
+    	String startJsonStr= "[]";
+    	String endJsonStr = "[]";
+		try {
+			startJsonStr = IOUtils.resourceToString("/dp/dpstart.json",  utf8charset);
+			endJsonStr = IOUtils.resourceToString("/dp/dpend.json",  utf8charset);
+		} catch (IOException e) {
+			log.error("璇诲彇榛樿dpHead寮傚父",e);
+		}
+		final String startStr = startJsonStr;
+		final String endStr = endJsonStr;
+    	List<CollectDeviceTypeVO> voList =  list.stream().map(t -> {
+    		
+    		CollectDeviceTypeVO vo = new CollectDeviceTypeVO();
+    		vo.setId(t.getId());
+    		vo.setDpHead(t.getDpHead());
+    		vo.setName(t.getName());
+    		
+    		vo.setDpHeadFull(mergeJson(startStr,t.getDpHead(),endStr));
+    		
+    		return vo;
+    	}).collect(Collectors.toList());
+       
+    	return voList;
+    }
+    
+    public static String mergeJson(String start,String dpHead,String end) {
+    	JSONArray s = JSONArray.parseArray(start);
+    	JSONArray h = JSONArray.parseArray(dpHead);
+    	JSONArray e = JSONArray.parseArray(end);
+    	
+    	s.addAll(h);
+    	s.addAll(e);
+    	
+    	return s.toJSONString();
+    }
+
+}
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/CollectTemplateService.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/CollectTemplateService.java
new file mode 100644
index 0000000..e6ce16c
--- /dev/null
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/CollectTemplateService.java
@@ -0,0 +1,68 @@
+package com.qianwen.smartman.modules.cps.service;
+
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.qianwen.core.log.exception.ServiceException;
+import com.qianwen.core.mp.base.BaseServiceImpl;
+import com.qianwen.core.tool.utils.Func;
+import com.qianwen.core.tool.utils.StringUtil;
+import com.qianwen.smartman.modules.cps.entity.CollectTemplate;
+import com.qianwen.smartman.modules.cps.mapper.CollectTemplateMapper;
+import com.qianwen.smartman.modules.cps.vo.CollectTemplateVO;
+import com.qianwen.smartman.modules.cps.wrapper.CollectTemplateWrapper;
+
+import cn.hutool.core.util.ObjectUtil;
+
+@Service
+public class CollectTemplateService extends BaseServiceImpl<CollectTemplateMapper, CollectTemplate> {
+
+
+    /**
+     * 鏂板鎴栬�呮洿鏂版ā鏉�
+     * @param tpl
+     */
+    @Transactional(rollbackFor = {Exception.class})
+    public void submit(CollectTemplateVO tplVO) {
+      
+        Long userCount = this.baseMapper.selectCount(Wrappers.<CollectTemplate>query().lambda().eq(CollectTemplate::getName, tplVO.getName()));
+       
+        if (userCount > 0 && ObjectUtil.isEmpty(tplVO.getId())) {
+            throw new ServiceException(StringUtil.format("妯℃澘鍚嶇О [{}] 宸插瓨鍦�!", new Object[]{tplVO.getName()}));
+        }
+        CollectTemplate tpl = new CollectTemplate();
+        tpl.setId(tplVO.getId());
+        tpl.setDpConfig(tplVO.getDpConfig());
+        tpl.setName(tplVO.getName());
+        tpl.setType(tplVO.getType());
+        tpl.setIsDeleted(0);
+        
+        saveOrUpdate(tpl);
+    }
+    
+    /**
+     * 鍒犻櫎妯℃澘锛堥�昏緫鍒犻櫎)
+     * @param ids
+     * @return
+     */
+    @Transactional(rollbackFor = {Exception.class})
+    public boolean removeTemplate(String ids) {
+	   
+	    return deleteLogic(Func.toLongList(ids));
+    }
+    
+    public CollectTemplateVO detail(long id) {
+    	CollectTemplate tpl = this.getById(id);
+    	CollectTemplateVO result = CollectTemplateWrapper.build().entityVO(tpl);
+       
+        return result;
+    }
+    
+    public IPage<CollectTemplate> selectPage(IPage<CollectTemplate> page, CollectTemplate tpl) {
+        
+        return page.setRecords(this.baseMapper.selectPage(page, tpl));
+    }
+
+}
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/IWorkstationService.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/IWorkstationService.java
index bf0b1ca..84f310c 100644
--- a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/IWorkstationService.java
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/IWorkstationService.java
@@ -36,6 +36,11 @@
 
     List<DmpVariablesVO> queryDmpList(String workstationId);
 
+    /**
+     * 鏂板鎴栨洿鏀瑰伐浣嶄俊鎭�
+     * @param workstationSubmitVO
+     * @return
+     */
     WorkstationVO submit(WorkstationSubmitVO workstationSubmitVO);
 
     Boolean changeCollectSwitch(Long workstationId, Integer collectSwitch);
@@ -50,6 +55,9 @@
 
     Boolean changeCalendarCode(WorkstationChangeCalendarVO workstationChangeCalendarVO);
 
+    /**
+     * 鏇存柊鎵�鏈夊伐浣嶇殑鐢熶骇鏃ュ巻瀛楁锛岀敤calendarCodeWaiting鏇存柊calendarCode銆傚湪瀹氭椂浠诲姟鏃惰皟鐢�
+     */
     void updateWorkstationCalendar();
 
     Boolean changeWorkstationGroup(Long groupId, List<Long> workstationIdList);
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/WorkstationDatapointsService.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/WorkstationDatapointsService.java
new file mode 100644
index 0000000..53cf091
--- /dev/null
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/WorkstationDatapointsService.java
@@ -0,0 +1,91 @@
+package com.qianwen.smartman.modules.cps.service;
+
+import java.io.IOException;
+import java.nio.charset.Charset;
+
+import org.apache.commons.io.IOUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.qianwen.core.mp.base.BaseServiceImpl;
+import com.qianwen.smartman.modules.cps.entity.CollectDeviceType;
+import com.qianwen.smartman.modules.cps.entity.WorkstationDatapoints;
+import com.qianwen.smartman.modules.cps.mapper.CollectDeviceTypeMapper;
+import com.qianwen.smartman.modules.cps.mapper.WorkstationDatapointsMapper;
+import com.qianwen.smartman.modules.cps.vo.WorkstationDatapointsSubmitVO;
+import com.qianwen.smartman.modules.cps.vo.WorkstationDatapointsVO;
+
+@Service
+public class WorkstationDatapointsService extends BaseServiceImpl<WorkstationDatapointsMapper, WorkstationDatapoints> {
+	private Logger log = LoggerFactory.getLogger(this.getClass());
+	@Autowired
+	private CollectDeviceTypeMapper typeMapper;
+	
+	/**
+	 * 鏂板鎴栬�呬慨鏀瑰伐浣嶇偣浣嶉厤缃�
+	 * @param tplVO
+	 */
+	@Transactional
+    public void submit(WorkstationDatapointsSubmitVO dpVO) {
+      
+		WorkstationDatapoints dp = this.baseMapper.selectOne(Wrappers.<WorkstationDatapoints>lambdaQuery().eq(WorkstationDatapoints::getWorkstationId, dpVO.getWorkstationId()));
+       
+        if (dp == null) {
+        	//鏂板
+            //throw new ServiceException(StringUtil.format("妯℃澘鍚嶇О [{}] 宸插瓨鍦�!", new Object[]{tplVO.getName()}));
+        	dp = new WorkstationDatapoints();
+        	dp.setDpConfig(dpVO.getDpConfig());
+        	dp.setIsDeleted(0);
+        	dp.setWorkstationId(dpVO.getWorkstationId());
+        	dp.setType(dpVO.getType());
+        }else {
+        	dp.setDpConfig(dpVO.getDpConfig());
+        	dp.setIsDeleted(0);
+        	dp.setWorkstationId(dpVO.getWorkstationId());
+        	dp.setType(dpVO.getType());
+        }
+        
+        saveOrUpdate(dp);
+    }
+	
+	/**
+	 * 鑾峰彇宸ヤ綅鏁版嵁鐐归厤缃�
+	 * @param workstationId
+	 * @return
+	 */
+	public WorkstationDatapointsVO getDatapoints(Long workstationId) {
+		log.info("woid={}",workstationId);
+		WorkstationDatapoints dp = baseMapper.selectOne(Wrappers.<WorkstationDatapoints>lambdaQuery().eq(WorkstationDatapoints::getWorkstationId, workstationId));
+		
+		log.info("dp={}",dp);
+		
+		WorkstationDatapointsVO dpVO = new WorkstationDatapointsVO();
+		dpVO.setWorkstationId(workstationId);
+		if(dp != null) {
+			
+			dpVO.setDpConfig(dp.getDpConfig());
+			dpVO.setType(dp.getType());
+			
+			Charset utf8charset = Charset.forName("utf8");
+			String startJsonStr= "[]";
+	    	String endJsonStr = "[]";
+			try {
+				startJsonStr = IOUtils.resourceToString("/dp/dpstart.json",  utf8charset);
+				endJsonStr = IOUtils.resourceToString("/dp/dpend.json",  utf8charset);
+			} catch (IOException e) {
+				log.error("璇诲彇榛樿dpHead寮傚父",e);
+			}
+
+			CollectDeviceType collectType = typeMapper.selectById(dp.getType());
+			String fullHead = CollectDeviceTypeService.mergeJson(startJsonStr,collectType.getDpHead(),endJsonStr);
+			dpVO.setDpHead(fullHead);
+			
+		}
+		return dpVO;
+	}
+
+}
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/impl/CalendarServiceImpl.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/impl/CalendarServiceImpl.java
index 6533d83..197b3c7 100644
--- a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/impl/CalendarServiceImpl.java
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/impl/CalendarServiceImpl.java
@@ -134,7 +134,7 @@
     public ProductionCalendar updateCalendar(CalendarUpdateVO calendarUpdateVO) {
         this.calendarDayService.deleteByCalendarId(calendarUpdateVO.getId());
         this.calendarDaytimeService.deleteByCalendarId(calendarUpdateVO.getId());
-        ProductionCalendar calendar = (ProductionCalendar) getById(calendarUpdateVO.getId());
+        ProductionCalendar calendar = getById(calendarUpdateVO.getId());
         updateCalendarDayTime(calendarUpdateVO.getDateDTOList(), calendar);
         return calendar;
     }
@@ -267,14 +267,7 @@
                 .eq(ProductionCalendarDaytime::getCalendarId, calendarId)
                 .orderByAsc(ProductionCalendarDaytime::getStartTime));
         
-        /*
-        List<ProductionCalendarDaytime> todayDateTimeList = this.calendarDaytimeService.list((Wrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) new QueryWrapper().lambda().eq((v0) -> {
-            return v0.getCalendarDate();
-        }, LocalDate.now())).eq((v0) -> {
-            return v0.getCalendarId();
-        }, calendarId)).orderByAsc((v0) -> {
-            return v0.getStartTime();
-        }));*/
+        
         List<ProductionCalendarDaytime> curProductionCalendarDayTimeList = new ArrayList<>();
         LocalDate lastDayOfYear = LocalDateTimeUtils.getLastDayOfYear(LocalDate.now());
         long difference = year.intValue() == LocalDate.now().getYear() ? LocalDateTimeUtils.getDifference(LocalDate.now(), lastDayOfYear).intValue() : LocalDateTimeUtils.getDayOfYear(year).intValue() - 1;
@@ -1283,10 +1276,13 @@
     }
 
     @Override
+    @Transactional
     public Boolean associateWorkstation(CalendarAssociateWorkstationVO calendarAssociateWorkstationVO) {
-    	return this.workstationService.update(Wrappers.<Workstation>lambdaUpdate()
+    	boolean result = this.workstationService.update(Wrappers.<Workstation>lambdaUpdate()
     	          .set(Workstation::getCalendarCodeWaiting, calendarAssociateWorkstationVO.getCalendarCode())
     	          .in(Workstation::getId, calendarAssociateWorkstationVO.getWorkstationIdList()));
+    	
+    	return result;
     	/*
         return Boolean.valueOf(this.workstationService.update((Wrapper) ((LambdaUpdateWrapper) Wrappers.lambdaUpdate().set((v0) -> {
             return v0.getCalendarCodeWaiting();
@@ -1295,6 +1291,7 @@
         }, calendarAssociateWorkstationVO.getWorkstationIdList())));*/
     }
 
+    
     @Override
     public List<ShiftIndexNameDTO> queryShiftIndexName(String calendarCode, Integer year, String day) {
         Integer maxShiftIndex;
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/impl/EmployeeServiceImpl.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/impl/EmployeeServiceImpl.java
index f2a9fde..98d3312 100644
--- a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/impl/EmployeeServiceImpl.java
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/impl/EmployeeServiceImpl.java
@@ -468,6 +468,12 @@
         }
     }
 
+    /**
+     * 鏇存柊鍛樺伐涓庡矖浣嶅搴斿叧绯昏〃
+     * @param update
+     * @param employeeId
+     * @param postId
+     */
     private void submitEmployeePost(Boolean update, Long employeeId, String postId) {
         if (update.booleanValue()) {
         	this.employeePostService.remove(Wrappers.<EmployeePost>lambdaQuery().eq(EmployeePost::getEmployeeId, employeeId)); 
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/impl/WorkstationServiceImpl.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/impl/WorkstationServiceImpl.java
index 1fa8afe..284deaf 100644
--- a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/impl/WorkstationServiceImpl.java
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/service/impl/WorkstationServiceImpl.java
@@ -476,7 +476,7 @@
 
     @Override 
     public Boolean changeCalendarCode(WorkstationChangeCalendarVO workstationChangeCalendarVO) {
-        Workstation workstation = (Workstation) getById(workstationChangeCalendarVO.getWorkstationId());
+        Workstation workstation = getById(workstationChangeCalendarVO.getWorkstationId());
         workstation.setCalendarCodeWaiting(workstationChangeCalendarVO.getCalendarCodeWaiting());
         return Boolean.valueOf(updateById(workstation));
     }
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/vo/CollectDeviceTypeVO.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/vo/CollectDeviceTypeVO.java
new file mode 100644
index 0000000..c6abf35
--- /dev/null
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/vo/CollectDeviceTypeVO.java
@@ -0,0 +1,56 @@
+package com.qianwen.smartman.modules.cps.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * 閲囬泦璁惧绫诲瀷,瀹氫箟鐐逛綅瀛楁
+ */
+public class CollectDeviceTypeVO{
+	private long id;
+    @ApiModelProperty("绫诲瀷鍚嶇О")
+    private String name;
+    
+    /**
+     * 姣忎釜瀛楁淇℃伅鏍煎紡锛歿"prop":"dpName","isRequired":true,"label":"鏁版嵁鐐瑰悕绉�","describe":"鏁版嵁鐐瑰悕绉帮紝鍚屼竴搴旂敤涓嬬殑鏁版嵁鐐瑰悕绉颁笉鍏佽閲嶅銆�"}
+     */
+    @ApiModelProperty("瀛楁淇℃伅锛宩son鏁扮粍")
+    private String dpHead;
+
+    @ApiModelProperty("鍏ㄩ儴瀛楁淇℃伅锛宩son鏁扮粍")
+    private String dpHeadFull;
+    
+    
+	public long getId() {
+		return id;
+	}
+
+	public void setId(long id) {
+		this.id = id;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getDpHead() {
+		return dpHead;
+	}
+
+	public void setDpHead(String dpHead) {
+		this.dpHead = dpHead;
+	}
+
+	public String getDpHeadFull() {
+		return dpHeadFull;
+	}
+
+	public void setDpHeadFull(String dpHeadFull) {
+		this.dpHeadFull = dpHeadFull;
+	}
+
+    
+}
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/vo/CollectTemplateVO.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/vo/CollectTemplateVO.java
new file mode 100644
index 0000000..8bbad88
--- /dev/null
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/vo/CollectTemplateVO.java
@@ -0,0 +1,70 @@
+package com.qianwen.smartman.modules.cps.vo;
+
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.qianwen.core.tenant.mp.TenantEntity;
+import com.qianwen.core.tool.utils.ObjectUtil;
+
+import io.swagger.annotations.ApiModelProperty;
+
+
+/**
+ * 閲囬泦妯℃澘
+ */
+
+public class CollectTemplateVO {
+    private static final long serialVersionUID = 1;
+    private long id;
+    
+    @ApiModelProperty("妯℃澘鍚嶇О")
+    private String name;
+    
+    @ApiModelProperty("妯℃澘绫诲瀷")
+    private Integer type;
+    
+    @ApiModelProperty("鐐逛綅閰嶇疆(json鏁扮粍)")
+    private String dpConfig;
+
+	public long getId() {
+		return id;
+	}
+
+	public void setId(long id) {
+		this.id = id;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Integer getType() {
+		return type;
+	}
+
+	public void setType(Integer type) {
+		this.type = type;
+	}
+
+	public String getDpConfig() {
+		return dpConfig;
+	}
+
+	public void setDpConfig(String dpConfig) {
+		this.dpConfig = dpConfig;
+	}
+    
+    public JSONArray getDpConfigJson() {
+    	//JSONValidator
+    	if(ObjectUtil.isNotEmpty(this.dpConfig)) {
+    		return JSONArray.parseArray(dpConfig);
+    	}else {
+    		return JSONArray.parseArray("[]");
+    	}
+    		
+    }
+
+}
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/vo/WorkstationDatapointsSubmitVO.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/vo/WorkstationDatapointsSubmitVO.java
new file mode 100644
index 0000000..b3ad883
--- /dev/null
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/vo/WorkstationDatapointsSubmitVO.java
@@ -0,0 +1,49 @@
+package com.qianwen.smartman.modules.cps.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+
+
+/**
+ * 宸ヤ綅閲囬泦鏁版嵁鐐逛繚瀛榁O
+ */
+public class WorkstationDatapointsSubmitVO {
+    private static final long serialVersionUID = 1;
+    
+    @ApiModelProperty("妯℃澘绫诲瀷")
+    private Integer type;
+    
+    
+    @ApiModelProperty("鐐逛綅閰嶇疆(json鏁扮粍)")
+    private String dpConfig;
+    
+    /**
+     * 宸ヤ綅id
+     */
+    private long workstationId;
+   
+
+	public Integer getType() {
+		return type;
+	}
+
+	public void setType(Integer type) {
+		this.type = type;
+	}
+
+	public String getDpConfig() {
+		return dpConfig;
+	}
+
+	public void setDpConfig(String dpConfig) {
+		this.dpConfig = dpConfig;
+	}
+
+	public long getWorkstationId() {
+		return workstationId;
+	}
+
+	public void setWorkstationId(long workstationId) {
+		this.workstationId = workstationId;
+	}
+
+}
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/vo/WorkstationDatapointsVO.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/vo/WorkstationDatapointsVO.java
new file mode 100644
index 0000000..abce50d
--- /dev/null
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/vo/WorkstationDatapointsVO.java
@@ -0,0 +1,60 @@
+package com.qianwen.smartman.modules.cps.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+
+
+/**
+ * 宸ヤ綅閲囬泦鏁版嵁鐐筕O
+ */
+public class WorkstationDatapointsVO {
+    private static final long serialVersionUID = 1;
+    
+    @ApiModelProperty("妯℃澘绫诲瀷")
+    private Integer type;
+    
+    @ApiModelProperty("鐐逛綅琛ㄥご(json鏁扮粍)")
+    private String dpHead;
+    
+    @ApiModelProperty("鐐逛綅閰嶇疆(json鏁扮粍)")
+    private String dpConfig;
+    
+    /**
+     * 宸ヤ綅id
+     */
+    private long workstationId;
+   
+
+	public Integer getType() {
+		return type;
+	}
+
+	public void setType(Integer type) {
+		this.type = type;
+	}
+
+	public String getDpConfig() {
+		return dpConfig;
+	}
+
+	public void setDpConfig(String dpConfig) {
+		this.dpConfig = dpConfig;
+	}
+
+	public long getWorkstationId() {
+		return workstationId;
+	}
+
+	public void setWorkstationId(long workstationId) {
+		this.workstationId = workstationId;
+	}
+
+	public String getDpHead() {
+		return dpHead;
+	}
+
+	public void setDpHead(String dpHead) {
+		this.dpHead = dpHead;
+	}
+
+    
+}
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/wrapper/CollectTemplateWrapper.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/wrapper/CollectTemplateWrapper.java
new file mode 100644
index 0000000..351cb1c
--- /dev/null
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/cps/wrapper/CollectTemplateWrapper.java
@@ -0,0 +1,24 @@
+package com.qianwen.smartman.modules.cps.wrapper;
+
+import java.util.Objects;
+
+import com.qianwen.core.mp.support.BaseEntityWrapper;
+import com.qianwen.core.tool.utils.BeanUtil;
+import com.qianwen.smartman.modules.cps.entity.CollectTemplate;
+import com.qianwen.smartman.modules.cps.vo.CollectTemplateVO;
+
+public class CollectTemplateWrapper extends BaseEntityWrapper<CollectTemplate, CollectTemplateVO> {
+    public static CollectTemplateWrapper build() {
+        return new CollectTemplateWrapper();
+    }
+
+    /**
+     * 瀹炰綋杞崲涓篤O
+     */
+    public CollectTemplateVO entityVO(CollectTemplate tpl) {
+    	CollectTemplateVO tplVO = Objects.requireNonNull(BeanUtil.copy(tpl, CollectTemplateVO.class));
+        
+      
+        return tplVO;
+    }
+}
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/mdc/service/impl/OutputStatisticsServiceImpl.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/mdc/service/impl/OutputStatisticsServiceImpl.java
index a150d14..48b82b4 100644
--- a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/mdc/service/impl/OutputStatisticsServiceImpl.java
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/mdc/service/impl/OutputStatisticsServiceImpl.java
@@ -103,6 +103,7 @@
         }).collect(Collectors.toList());
         List<IntervalDateDto> intervalDates = LocalDateTimeUtils.getIntervalDate(statisticsAnalysisQueryVO.getStartDate(), statisticsAnalysisQueryVO.getEndDate());
         List<SuperAggregateOutput> superAggregateOutputByNaturalDate = this.superAggregateOutputService.getOutputData(workstationIds, statisticsAnalysisQueryVO.getStatisticalMethod(), statisticsAnalysisQueryVO.getStartDate(), statisticsAnalysisQueryVO.getEndDate());
+        
         List<SuperAggregateOutput> superAggregateList = FilterOffUtils.filterOffDay(superAggregateOutputByNaturalDate, OpenTypeEnums.OUT_PUT);
         StatisticsWrapperDto statisticsWrapperDto = new StatisticsWrapperDto(superAggregateList, statisticsAnalysisQueryVO, intervalDates, workstationPage, MdcConstant.OUTPUT);
         return this.wrapper.entityVO(statisticsWrapperDto);
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/mdc/utils/FilterOffUtils.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/mdc/utils/FilterOffUtils.java
index 16f31f6..28414bf 100644
--- a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/mdc/utils/FilterOffUtils.java
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/mdc/utils/FilterOffUtils.java
@@ -22,11 +22,11 @@
         if (Func.isEmpty(data)) {
             return data;
         }
-        //boolean filterType = whetherToFilter(OpenTypeEnums.PARAM_KEY_TYPE, openTypeEnums);//mdc_open_type锛屾槸鍚﹁繃婊よ绫诲瀷
-        //boolean filterShift = whetherToFilter(OpenTypeEnums.PARAM_KEY_SHIFT, openTypeEnums);//mdc_open_shift锛屾槸鍚﹁繃婊ょ彮鍒�
+        boolean filterType = whetherToFilter(OpenTypeEnums.PARAM_KEY_TYPE, openTypeEnums);//mdc_open_type锛屾槸鍚﹁繃婊よ绫诲瀷
+        boolean filterShift = whetherToFilter(OpenTypeEnums.PARAM_KEY_SHIFT, openTypeEnums);//mdc_open_shift锛屾槸鍚﹁繃婊ょ彮鍒�
         //杩欓噷绠�鍖栵紝涓嶈繃婊や簡锛屾暟鎹湪win鏈嶅姟鍣ㄦ湁锛宐lade_boot_blade_param-0418bak.sql鏈夛紝鏄釜json鏁扮粍
-        boolean filterType = false;
-        boolean filterShift = false; 
+        //boolean filterType = false;
+       // boolean filterShift = false; 
         if (!filterType && !filterShift) {
             return data;
         }
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/system/controller/DataScopeManagerController.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/system/controller/DataScopeManagerController.java
index f04b6ab..54a8e38 100644
--- a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/system/controller/DataScopeManagerController.java
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/system/controller/DataScopeManagerController.java
@@ -152,10 +152,7 @@
     @PreAuth("permitAll()")
     public R<List<Dept>> select(String deptId) {
     	List<Dept> list = this.dataScopeManagerService.list(Wrappers.<Dept>lambdaQuery().in(Dept::getId, Func.toLongList(deptId)));
-    	/*
-        List<Dept> list = this.dataScopeManagerService.list((Wrapper) Wrappers.lambdaQuery().in((v0) -> {
-            return v0.getId();
-        }, Func.toLongList(deptId)));*/
+
         return R.data(list);
     }
 
@@ -170,7 +167,6 @@
     public R<Boolean> grant(@RequestBody DataScopeGrantVO grantVO) {
         CacheUtil.clear("blade:sys");
         CacheUtil.clear("blade:sys", Boolean.FALSE);
-        this.dataScopeManagerService.grant(grantVO);
-        return R.status(true);
+        return R.status(this.dataScopeManagerService.grant(grantVO));
     }
 }
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/system/service/IDataScopeManagerService.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/system/service/IDataScopeManagerService.java
index 1a65ebd..6e37d6e 100644
--- a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/system/service/IDataScopeManagerService.java
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/system/service/IDataScopeManagerService.java
@@ -28,6 +28,11 @@
 
     List<DeptVO> search(String deptName, Long parentId);
 
+    /**
+     * 鏁版嵁鏉冮檺鎺堟潈
+     * @param grantVO
+     * @return
+     */
     boolean grant(DataScopeGrantVO grantVO);
 
     List<String> grantSelect(String deptId);
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/system/service/impl/DataScopeManagerServiceImpl.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/system/service/impl/DataScopeManagerServiceImpl.java
index c5beab3..e3863ee 100644
--- a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/system/service/impl/DataScopeManagerServiceImpl.java
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/system/service/impl/DataScopeManagerServiceImpl.java
@@ -229,9 +229,8 @@
     @Override
     @Transactional
     public boolean grant(final DataScopeGrantVO grantVO) {
-        this.deptScopeService.remove(Lambda.eq((v0) -> {
-            return v0.getDeptId();
-        }, grantVO.getDeptId()));
+        this.deptScopeService.remove(Lambda.eq(DeptScope::getDeptId, grantVO.getDeptId()));
+        
         List<DeptScope> deptScopeList = grantVO.getDataScopeIds().stream().map(scopeId -> {
             DeptScope scope = new DeptScope();
             scope.setScopeId(scopeId);
diff --git a/smart-man-boot/src/main/resources/application-dev.yml b/smart-man-boot/src/main/resources/application-dev.yml
index 9b4c60b..9ce968f 100644
--- a/smart-man-boot/src/main/resources/application-dev.yml
+++ b/smart-man-boot/src/main/resources/application-dev.yml
@@ -45,7 +45,7 @@
 
 iotdb:
   driver: org.apache.iotdb.jdbc.IoTDBDriver
-  host: localhost
+  host: 120.46.212.231
   port: 6667
   maxSize: 10
   username: root
diff --git a/smart-man-boot/src/main/resources/application.yml b/smart-man-boot/src/main/resources/application.yml
index ecf587b..87bcb55 100644
--- a/smart-man-boot/src/main/resources/application.yml
+++ b/smart-man-boot/src/main/resources/application.yml
@@ -272,6 +272,7 @@
       - /blade-cps/workstation/page
       - /blade-cps/group/groupWorkstation/jimu
       - /blade-fms/order/process/issued
+      - /blade-cps/test/**
     #鎺堟潈璁よ瘉閰嶇疆
     auth:
       - method: ALL
diff --git a/smart-man-boot/src/main/resources/com/qianwen/smartman/modules/cps/mapper/CollectDeviceTypeMapper.xml b/smart-man-boot/src/main/resources/com/qianwen/smartman/modules/cps/mapper/CollectDeviceTypeMapper.xml
new file mode 100644
index 0000000..0dfb387
--- /dev/null
+++ b/smart-man-boot/src/main/resources/com/qianwen/smartman/modules/cps/mapper/CollectDeviceTypeMapper.xml
@@ -0,0 +1,14 @@
+<?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.qianwen.smartman.modules.cps.mapper.CollectDeviceTypeMapper">
+
+    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+    <resultMap id="BaseResultMap" type="com.qianwen.smartman.modules.cps.entity.CollectDeviceType">
+        <result column="id" property="id"/>
+        
+        <result column="name" property="name"/>
+        <result column="dp_head" property="dpHead"/>
+    </resultMap>
+
+</mapper>
+
diff --git a/smart-man-boot/src/main/resources/com/qianwen/smartman/modules/cps/mapper/CollectTemplateMapper.xml b/smart-man-boot/src/main/resources/com/qianwen/smartman/modules/cps/mapper/CollectTemplateMapper.xml
new file mode 100644
index 0000000..7f6cb46
--- /dev/null
+++ b/smart-man-boot/src/main/resources/com/qianwen/smartman/modules/cps/mapper/CollectTemplateMapper.xml
@@ -0,0 +1,29 @@
+<?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.qianwen.smartman.modules.cps.mapper.CollectTemplateMapper">
+
+    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+    <resultMap id="BaseResultMap" type="com.qianwen.smartman.modules.cps.entity.CollectTemplate">
+        <result column="id" property="id"/>
+        <result column="tenant_id" property="tenantId"/>
+        
+        <result column="type" property="type"/>
+        <result column="dp_config" property="dpConfig"/>
+    </resultMap>
+
+    <select id="selectPage" resultMap="BaseResultMap">
+        select * from collect_template where is_deleted=0
+       
+        <if test="template.name!=null and template.name != ''">
+            and (name like CONCAT(#{template.name},'%') OR name like CONCAT(#{template.name},'%'))
+        </if>
+        <if test="template.type!=null and template.type != ''">
+            and type = #{user.type}
+        </if>
+       
+        ORDER BY id
+    </select>
+
+
+</mapper>
+
diff --git a/smart-man-boot/src/main/resources/dp/dpend.json b/smart-man-boot/src/main/resources/dp/dpend.json
new file mode 100644
index 0000000..8753569
--- /dev/null
+++ b/smart-man-boot/src/main/resources/dp/dpend.json
@@ -0,0 +1 @@
+[{"prop":"dpUnit","label":"鍗曚綅"},{"prop":"ruleContent","label":"璁$畻瑙勫垯","describe":"璁$畻瑙勫垯鏉ユ簮浜嶽瑙勫垯绠$悊-璁$畻瑙勫垯]锛岄�氳繃lua鑴氭湰缂栧啓璁$畻瑙勫垯锛屽鏁版嵁鐐圭殑鍘熷鏁版嵁杩涜璁$畻锛岀敓鎴愭柊鐨勬暟鎹偣鍙婃暟鎹偣鍊笺��","sendCode":1,"isReqOptions":true,"type":"option","options":[]},{"prop":"ruleArgs","label":"璁$畻鍙傛暟","describe":"鏍规嵁璁$畻瑙勫垯锛屽~鍐欒绠楀弬鏁帮紝澶氫釜璁$畻鍙傛暟鐢ㄨ嫳鏂団�滐紝鈥濋殧寮�锛涙敞鎰�:dpValue涓洪噰闆嗗埌鐨勫�间笉闇�瑕佸~鍐欍��","sendCode":1},{"prop":"access","isRequired":true,"sendCode":1,"label":"鏉冮檺","describe":"璇诲啓鏉冮檺\\n RO(鍙)锛氬彧鍏佽璇诲彇鐐逛綅鏁版嵁銆乗\nRW(璇�/鍐�)锛氭棦鑳借鍙栨暟鎹篃鑳藉啓鍏ユ暟鎹��","default":"RO","type":"option","options":["RO","RW"]},{"prop":"pollingInterval","isRequired":true,"label":"杞闂撮殧锛坢s锛�","describe":"杞闂撮殧锛坢s锛�","default":1000},{"prop":"keepOriginalValue","isRequired":true,"sendCode":1,"label":"淇濈暀鍘熷鍊�","describe":"淇濈暀鍘熷鍊�","default":true,"type":"boolean"},{"prop":"isSave","isRequired":true,"sendCode":1,"label":"鏄惁瀛樺偍","describe":"鏄惁瀛樺偍","default":true,"type":"boolean"}]
\ No newline at end of file
diff --git a/smart-man-boot/src/main/resources/dp/dpstart.json b/smart-man-boot/src/main/resources/dp/dpstart.json
new file mode 100644
index 0000000..ebe3e72
--- /dev/null
+++ b/smart-man-boot/src/main/resources/dp/dpstart.json
@@ -0,0 +1 @@
+[{"prop":"dpName","isRequired":true,"label":"鏁版嵁鐐瑰悕绉�","describe":"鏁版嵁鐐瑰悕绉帮紝鍚屼竴搴旂敤涓嬬殑鏁版嵁鐐瑰悕绉颁笉鍏佽閲嶅銆�"},{"prop":"dpAlias","label":"鏁版嵁鐐瑰埆鍚�","describe":"鏁版嵁鐐瑰埆鍚嶃��"}]
\ No newline at end of file

--
Gitblit v1.9.3