From 3858c775f565df000a45afd9a0c38c7b6bb39069 Mon Sep 17 00:00:00 2001
From: qushaowei <qushaowei@163.com>
Date: 星期六, 07 十月 2023 15:07:58 +0800
Subject: [PATCH] 工厂模型  设备ABC修改

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/MaintenanceStandardDetailController.java    |   16 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/ProductionLine.java                             |   54 ++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/wrapper/SiteAreaLineTreeWrapper.java                   |   88 +++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/ProductionLineMapper.java                       |    8 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IAreaService.java                              |   20 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IProductionLineService.java                    |   31 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/MaintenanceCycle.java                           |    7 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IMaintenanceStandardDetailService.java         |    4 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/ProductionLineController.java               |  112 ++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/AreaMapper.java                                 |    8 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/AreaServiceImpl.java                      |   75 +++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/AreaController.java                         |   96 ++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/MaintenanceStandardDetailServiceImpl.java |   21 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/MaintenanceCycleMapper.xml                  |    4 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/ProductionLineServiceImpl.java            |  128 +++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/SiteController.java                         |  200 ++++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/MaintenanceStandardDetailMapper.java            |    3 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/SiteServiceImpl.java                      |  182 +++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/Site.java                                       |   44 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/MaintenanceStandardController.java          |   23 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/ISiteService.java                              |   34 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/CommonCascade.java                                  |   42 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/Area.java                                       |   52 ++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/SiteMapper.java                                 |    8 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/wrapper/SiteAreaCascadeWrapper.java                    |  109 ++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/wrapper/SiteAreaProductLineWrapper.java                |   71 ++
 26 files changed, 1,415 insertions(+), 25 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/AreaController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/AreaController.java
new file mode 100644
index 0000000..72b7834
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/AreaController.java
@@ -0,0 +1,96 @@
+package org.jeecg.modules.eam.controller;
+
+import java.util.Arrays;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.eam.entity.Area;
+import org.jeecg.modules.eam.service.IAreaService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+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.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+@Api(tags = "杞﹂棿 鍓嶇鎺у埗鍣�")
+@RestController
+@RequestMapping("/base/area")
+public class AreaController {
+
+	@Autowired
+	private IAreaService areaService;
+
+	@AutoLog(value = "杞﹂棿-鍒嗛〉鏌ヨ")
+	@ApiOperation(value = "杞﹂棿-鍒嗛〉鏌ヨ", notes = "杞﹂棿-鍒嗛〉鏌ヨ")
+	@GetMapping(value = "/list")
+	public Result<?> list(Area area, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+						  @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
+		QueryWrapper<Area> queryWrapper = QueryGenerator.initQueryWrapper(area, req.getParameterMap());
+		Page<Area> page = new Page<Area>(pageNo, pageSize);
+		IPage<Area> pageList = areaService.page(page, queryWrapper);
+		return Result.ok(pageList);
+	}
+
+	@AutoLog(value = "杞﹂棿-鏂板")
+	@ApiOperation(value = "杞﹂棿-鏂板", notes = "杞﹂棿-鏂板")
+	@PostMapping("/add")
+	public Result<?> add(@RequestBody Area area) {
+		area.setStatus(CommonConstant.STATUS_1);
+		areaService.save(area);
+		return Result.ok("鏂板鎴愬姛");
+	}
+
+	@AutoLog(value = "杞﹂棿-缂栬緫")
+	@ApiOperation(value = "杞﹂棿-缂栬緫", notes = "杞﹂棿-缂栬緫")
+	@PutMapping("/edit")
+	public Result<?> edit(@RequestBody Area area) {
+		areaService.updateById(area);
+		return Result.ok("缂栬緫鎴愬姛");
+	}
+
+	@AutoLog(value = "杞﹂棿-閫氳繃id鍒犻櫎")
+	@ApiOperation(value = "杞﹂棿-閫氳繃id鍒犻櫎", notes = "杞﹂棿-閫氳繃id鍒犻櫎")
+	@DeleteMapping("/delete")
+	public Result<?> delete(@RequestParam("id") String id) {
+		areaService.removeById(id);
+		return Result.ok("鍒犻櫎鎴愬姛");
+	}
+
+	@AutoLog(value = "杞﹂棿-鎵归噺鍒犻櫎")
+	@ApiOperation(value = "杞﹂棿-鎵归噺鍒犻櫎", notes = "杞﹂棿-鎵归噺鍒犻櫎")
+	@DeleteMapping("/deleteBatch")
+	public Result<?> deleteBatch(@RequestParam("ids") String ids) {
+		areaService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.ok("鎵归噺鍒犻櫎鎴愬姛锛�");
+	}
+
+	@AutoLog(value = "杞﹂棿-鍚敤&绂佺敤")
+	@ApiOperation(value = "杞﹂棿-鍚敤&绂佺敤", notes = "杞﹂棿-鍚敤&绂佺敤")
+	@PutMapping("/active")
+	public Result<?> active(@RequestParam("id") String id) {
+		Area area = areaService.getById(id);
+		if (CommonConstant.STATUS_1.equals(area.getStatus())) {
+			area.setStatus(CommonConstant.STATUS_0);
+		} else {
+			area.setStatus(CommonConstant.STATUS_1);
+		}
+		areaService.updateById(area);
+		return Result.ok("鏇存柊鎴愬姛锛�");
+	}
+
+}
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/MaintenanceStandardController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/MaintenanceStandardController.java
index 5522fdf..6e29d15 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/MaintenanceStandardController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/MaintenanceStandardController.java
@@ -104,27 +104,8 @@
         List<Map<String, Object>> records = maintenanceStandardList.getRecords();
         for (Map<String, Object> record : records) {
             String maintenanceStandardId = (String) record.get("id");
-            List<Map<String, Object>> maintenanceStandardDetaillist = maintenanceStandardDetailService.getMaintenanceStandardDetailList(maintenanceStandardId);
-//            for (Map<String, Object> detail : maintenanceStandardDetaillist) {
-//                //鑾峰彇鏄惁鏈夋棤寮傚父鐓х墖鏁版嵁
-////                List<SysUploadRela> sysUploadRelas = uploadRelaService.lambdaQuery().eq(SysUploadRela::getBusId, (String)detail.get("id")).eq(SysUploadRela::getDelFlag, 0).list();
-//                List<SysUploadRela> sysUploadRelas = sysBaseApi.listByBusIdAndBusType((String) detail.get("id"), null);
-//                if (sysUploadRelas.size() > 0) {
-//                    detail.put("isNoPhotoFlag", true);
-////                    List<SysUploadRela> uploadRelas = uploadRelaService.listByBusIdAndBusType((String)detail.get("id"), "daily_maintenance_standard_photo");
-//                    List<SysUploadRela> uploadRelas = sysBaseApi.listByBusIdAndBusType((String) detail.get("id"), "daily_maintenance_standard_photo");
-//                    SysUpload upload = new SysUpload();
-//                    if (CollectionUtils.isNotEmpty(uploadRelas)) {
-////                        upload = uploadService.getById(uploadRelas.get(0).getUploadId());
-//                        upload = sysBaseApi.getUploadById(uploadRelas.get(0).getUploadId());
-//                    }
-//                    detail.put("upload", upload);
-//                } else {
-//                    detail.put("isNoPhotoFlag", false);
-//                    SysUpload upload = new SysUpload();
-//                    detail.put("upload", upload);
-//                }
-//            }
+            String equipmentId = (String) record.get("equipmentId");
+            List<Map<String, Object>> maintenanceStandardDetaillist = maintenanceStandardDetailService.getMaintenanceStandardDetailList(maintenanceStandardId,equipmentId);
             record.put("maintenanceStandardDetaillist", maintenanceStandardDetaillist);
         }
         return Result.ok(maintenanceStandardList);
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/MaintenanceStandardDetailController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/MaintenanceStandardDetailController.java
index 52c547e..01e6f77 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/MaintenanceStandardDetailController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/MaintenanceStandardDetailController.java
@@ -16,9 +16,11 @@
 import org.jeecg.common.system.base.entity.SysUploadRela;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.util.StrUtils;
+import org.jeecg.modules.eam.entity.Equipment;
 import org.jeecg.modules.eam.entity.MaintenanceStandardDetail;
 import org.jeecg.modules.eam.model.MaintenanceCycleVo;
 import org.jeecg.modules.eam.model.MaintenanceModeVo;
+import org.jeecg.modules.eam.service.IEamEquipmentService;
 import org.jeecg.modules.eam.service.IMaintenanceStandardDetailService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -55,6 +57,9 @@
 
     @Autowired
     private ISysBaseAPI sysBaseApi;
+
+    @Autowired
+    private IEamEquipmentService equipmentService;
 
     /**
      * 鍒嗛〉鍒楄〃鏌ヨ
@@ -148,6 +153,17 @@
     }
 
     /**
+     * 鍛ㄦ湡鎬т繚鍏�  鏍规嵁璁惧鍙拌处ABC鏍囪瘑鑾峰彇涓変繚淇濆吇鍛ㄦ湡
+     * @return
+     */
+    @GetMapping("getPeriodicMaintenanceCycle")
+    public Result<?> getPeriodicMaintenanceCycle(@RequestParam("equipmentId") String equipmentId) {
+            Equipment equipment = equipmentService.getById(equipmentId);
+        List<MaintenanceCycleVo> maintenanceCycles = maintenanceStandardDetailService.getPeriodicMaintenanceCycle(equipment.getEquipmentImportanceId());
+        return Result.ok(maintenanceCycles);
+    }
+
+    /**
      * 淇濆吇鏂瑰紡
      * qsw 2023-5-5
      */
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/ProductionLineController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/ProductionLineController.java
new file mode 100644
index 0000000..e3ba6f6
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/ProductionLineController.java
@@ -0,0 +1,112 @@
+package org.jeecg.modules.eam.controller;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.StrUtils;
+import org.jeecg.modules.eam.entity.ProductionLine;
+import org.jeecg.modules.eam.service.IProductionLineService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+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.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+@Api(tags = "浜х嚎 鍓嶇鎺у埗鍣�")
+@RestController
+@RequestMapping("/base/productionLine")
+public class ProductionLineController extends JeecgController<ProductionLine, IProductionLineService> {
+
+	@Autowired
+	private IProductionLineService productionLineService;
+
+	@AutoLog(value = "浜х嚎-鍒嗛〉鏌ヨ")
+	@ApiOperation(value = "浜х嚎-鍒嗛〉鏌ヨ", notes = "浜х嚎-鍒嗛〉鏌ヨ")
+	@GetMapping(value = "/list")
+	public Result<?> list(ProductionLine productionLine,
+			@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+			@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
+		QueryWrapper<ProductionLine> queryWrapper = QueryGenerator.initQueryWrapper(productionLine,
+				req.getParameterMap());
+		Page<ProductionLine> page = new Page<ProductionLine>(pageNo, pageSize);
+		IPage<ProductionLine> pageList = productionLineService.page(page, queryWrapper);
+		return Result.ok(pageList);
+	}
+
+	@AutoLog(value = "浜х嚎-鏂板")
+	@ApiOperation(value = "浜х嚎-鏂板", notes = "浜х嚎-鏂板")
+	@PostMapping("/add")
+	public Result<?> add(@RequestBody ProductionLine productionLine) {
+		productionLine.setStatus(CommonConstant.STATUS_1);
+		productionLineService.save(productionLine);
+		return Result.ok("鏂板鎴愬姛");
+	}
+
+	@AutoLog(value = "浜х嚎-缂栬緫")
+	@ApiOperation(value = "浜х嚎-缂栬緫", notes = "浜х嚎-缂栬緫")
+	@PutMapping("/edit")
+	public Result<?> edit(@RequestBody ProductionLine productionLine) {
+		if (StrUtils.isBlankOrNull(productionLine.getShiftCategoryId())) {
+			productionLine.setShiftCategoryId("");
+		}
+		productionLineService.updateById(productionLine);
+		return Result.ok("缂栬緫鎴愬姛");
+	}
+
+	@AutoLog(value = "浜х嚎-閫氳繃id鍒犻櫎")
+	@ApiOperation(value = "浜х嚎-閫氳繃id鍒犻櫎", notes = "浜х嚎-閫氳繃id鍒犻櫎")
+	@DeleteMapping("/delete")
+	public Result<?> delete(@RequestParam("id") String id) {
+		productionLineService.removeById(id);
+		return Result.ok("鍒犻櫎鎴愬姛");
+	}
+
+	@AutoLog(value = "浜х嚎-鎵归噺鍒犻櫎")
+	@ApiOperation(value = "浜х嚎-鎵归噺鍒犻櫎", notes = "浜х嚎-鎵归噺鍒犻櫎")
+	@DeleteMapping("/deleteBatch")
+	public Result<?> deleteBatch(@RequestParam("ids") String ids) {
+		productionLineService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.ok("鎵归噺鍒犻櫎鎴愬姛锛�");
+	}
+
+	@AutoLog(value = "浜х嚎-鍚敤&绂佺敤")
+	@ApiOperation(value = "浜х嚎-鍚敤&绂佺敤", notes = "浜х嚎-鍚敤&绂佺敤")
+	@PutMapping("/active")
+	public Result<?> active(@RequestParam("id") String id) {
+		ProductionLine productionLine = productionLineService.getById(id);
+		if (CommonConstant.STATUS_1.equals(productionLine.getStatus())) {
+			productionLine.setStatus(CommonConstant.STATUS_0);
+		} else {
+			productionLine.setStatus(CommonConstant.STATUS_1);
+		}
+		productionLineService.updateById(productionLine);
+		return Result.ok("鏇存柊鎴愬姛锛�");
+	}
+
+	@AutoLog(value = "鏍规嵁杞﹂棿鏌ヨ浜х嚎")
+	@ApiOperation(value = "鏍规嵁杞﹂棿鏌ヨ浜х嚎", notes = "鏍规嵁杞﹂棿鏌ヨ浜х嚎")
+	@GetMapping("/listByAreaId")
+	public Result<?> listByAreaId(@RequestParam("areaId") String areaId) {
+		List<ProductionLine> list = productionLineService.listByAreaId(areaId);
+		return Result.ok(list);
+	}
+
+}
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/SiteController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/SiteController.java
new file mode 100644
index 0000000..585a658
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/SiteController.java
@@ -0,0 +1,200 @@
+package org.jeecg.modules.eam.controller;
+
+import java.util.Arrays;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.jeecg.modules.eam.entity.Site;
+import org.jeecg.modules.eam.service.ISiteService;
+import org.jeecg.modules.eam.vo.CommonCascade;
+import org.jeecg.common.api.vo.CommonGenericTree;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.system.model.TreeSelectModel;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+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.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+@SuppressWarnings("rawtypes")
+@Api(tags = "宸ュ巶 鍓嶇鎺у埗鍣�")
+@RestController
+@RequestMapping("/base/site")
+public class SiteController {
+
+	@Autowired
+	private ISiteService siteService;
+
+	@AutoLog(value = "鍒嗛〉鏌ヨ")
+	@ApiOperation(value = "鍒嗛〉鏌ヨ", notes = "鍒嗛〉鏌ヨ")
+	@GetMapping(value = "/list")
+	public Result<?> list(Site site, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+						  @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
+		QueryWrapper<Site> queryWrapper = QueryGenerator.initQueryWrapper(site, req.getParameterMap());
+		Page<Site> page = new Page<Site>(pageNo, pageSize);
+		IPage<Site> pageList = siteService.page(page, queryWrapper);
+		return Result.ok(pageList);
+	}
+
+	@AutoLog(value = "鑾峰彇鍏ㄩ儴宸ュ巶")
+	@ApiOperation(value = "鑾峰彇鍏ㄩ儴宸ュ巶", notes = "鑾峰彇鍏ㄩ儴宸ュ巶")
+	@GetMapping(value = "/getAllList")
+	public Result<?> getAllList() {
+		return Result.ok(siteService.list());
+	}
+
+	@AutoLog(value = "鏂板")
+	@ApiOperation(value = "鏂板", notes = "鏂板")
+	@PostMapping("/add")
+	public Result<?> add(@RequestBody Site site) {
+		site.setStatus(CommonConstant.STATUS_1);
+		siteService.save(site);
+		return Result.ok("鏂板鎴愬姛");
+	}
+
+	@AutoLog(value = "缂栬緫")
+	@ApiOperation(value = "缂栬緫", notes = "缂栬緫")
+	@PutMapping("/edit")
+	public Result<?> edit(@RequestBody Site site) {
+		siteService.updateById(site);
+		return Result.ok("缂栬緫鎴愬姛");
+	}
+
+	@AutoLog(value = "閫氳繃id鍒犻櫎")
+	@ApiOperation(value = "閫氳繃id鍒犻櫎", notes = "閫氳繃id鍒犻櫎")
+	@DeleteMapping("/delete")
+	public Result<?> delete(@RequestParam("id") String id) {
+		siteService.removeById(id);
+		return Result.ok("鍒犻櫎鎴愬姛");
+	}
+
+	@AutoLog(value = "鎵归噺鍒犻櫎")
+	@ApiOperation(value = "鎵归噺鍒犻櫎", notes = "鎵归噺鍒犻櫎")
+	@DeleteMapping("/deleteBatch")
+	public Result<?> deleteBatch(@RequestParam("ids") String ids) {
+		siteService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.ok("鎵归噺鍒犻櫎鎴愬姛锛�");
+	}
+
+	@AutoLog(value = "鍚敤&绂佺敤")
+	@ApiOperation(value = "鍚敤&绂佺敤", notes = "鍚敤&绂佺敤")
+	@PutMapping("/active")
+	public Result<?> active(@RequestParam("id") String id) {
+		Site site = siteService.getById(id);
+		if (CommonConstant.STATUS_1.equals(site.getStatus())) {
+			site.setStatus(CommonConstant.STATUS_0);
+		} else {
+			site.setStatus(CommonConstant.STATUS_1);
+		}
+		siteService.updateById(site);
+		return Result.ok("鏇存柊鎴愬姛锛�");
+	}
+
+	@AutoLog(value = "宸ュ巶杞﹂棿浜х嚎鏍�")
+	@ApiOperation(value = "宸ュ巶杞﹂棿浜х嚎鏍�", notes = "宸ュ巶杞﹂棿浜х嚎鏍�")
+	@GetMapping("/loadTree")
+	public Result<?> loadTree(HttpServletRequest httpServletRequest) {
+		String tenantId = httpServletRequest.getHeader(CommonConstant.TENANT_ID);
+		List<CommonGenericTree> list = siteService.loadTree(tenantId);
+		return Result.ok(list);
+	}
+
+//	@AutoLog(value = "宸ュ巶/杞﹂棿/浜х嚎-鐝粍 鏍�")
+//	@ApiOperation(value = "宸ュ巶/杞﹂棿/浜х嚎-鐝粍 鏍�", notes = "宸ュ巶/杞﹂棿/浜х嚎-鐝粍 鏍�")
+//	@GetMapping("/loadSiteAreaLineTeamTree")
+//	public Result<?> loadSiteAreaLineTeamTree(HttpServletRequest httpServletRequest) {
+//		String tenantId = httpServletRequest.getHeader(CommonConstant.TENANT_ID);
+//		List<CommonGenericTree> list = siteService.loadSiteAreaLineTeamTree(tenantId);
+//		return Result.ok(list);
+//	}
+
+//	@AutoLog(value = "宸ュ巶/杞﹂棿/浜х嚎-宸ヤ綔涓績 鏍�")
+//	@ApiOperation(value = "宸ュ巶/杞﹂棿/浜х嚎-宸ヤ綔涓績 鏍�", notes = "宸ュ巶/杞﹂棿/浜х嚎-宸ヤ綔涓績 鏍�")
+//	@GetMapping("/loadSiteAreaLineWorkCenterTree")
+//	public Result<?> loadSiteAreaLineWorkCenterTree(HttpServletRequest httpServletRequest) {
+//		String tenantId = httpServletRequest.getHeader(CommonConstant.TENANT_ID);
+//		List<CommonGenericTree> list = siteService.loadSiteAreaLineWorkCenterTree(tenantId);
+//		return Result.ok(list);
+//	}
+
+//	@AutoLog(value = "宸ュ巶/杞﹂棿/浜х嚎/宸ヤ綔涓績-璁惧 鏍�")
+//	@ApiOperation(value = "宸ュ巶/杞﹂棿/浜х嚎/宸ヤ綔涓績-璁惧 鏍�", notes = "宸ュ巶/杞﹂棿/浜х嚎/宸ヤ綔涓績-璁惧 鏍�")
+//	@GetMapping("/loadSiteAreaLineWorkCenterEquipmentTree")
+//	public Result<?> loadSiteAreaLineWorkCenterEquipmentTree(HttpServletRequest httpServletRequest) {
+//		String tenantId = httpServletRequest.getHeader(CommonConstant.TENANT_ID);
+//		List<CommonGenericTree> list = siteService.loadSiteAreaLineWorkCenterEquipmentTree(tenantId);
+//		return Result.ok(list);
+//	}
+
+//	@AutoLog(value = "宸ュ巶/杞﹂棿/浜х嚎-浜哄憳 鏍�")
+//	@ApiOperation(value = "宸ュ巶/杞﹂棿/浜х嚎-浜哄憳 鏍�", notes = "宸ュ巶/杞﹂棿/浜х嚎-浜哄憳 鏍�")
+//	@GetMapping("/loadSiteAreaLineStuffTree")
+//	public Result<?> loadSiteAreaLineStuffTree() {
+//		List<CommonGenericTree> list = siteService.loadSiteAreaLineStuffTree();
+//		return Result.ok(list);
+//	}
+
+//	@AutoLog(value = "閫氳繃鏈堣鍒抜d鍙婂勾鏈堜唤宸ュ巶/杞﹂棿/浜х嚎-浜哄憳 鏍�")
+//	@ApiOperation(value = "閫氳繃鏈堣鍒抜d鍙婂勾鏈堜唤宸ュ巶/杞﹂棿/浜х嚎-浜哄憳 鏍�", notes = "閫氳繃鏈堣鍒抜d鍙婂勾鏈堜唤宸ュ巶/杞﹂棿/浜х嚎-浜哄憳 鏍�")
+//	@GetMapping("/stuffTreeByTeamMonthIdAndMonthStamp")
+//	public Result<?> stuffTreeByTeamMonthIdAndMonthStamp(String teamMonthId, String monthStamp) {
+//		List<CommonGenericTree> list = siteService.stuffTreeByTeamMonthIdAndMonthStamp(teamMonthId, monthStamp);
+//		return Result.ok(list);
+//	}
+
+	@AutoLog(value = "宸ュ巶/杞﹂棿鏍�")
+	@ApiOperation(value = "宸ュ巶/杞﹂棿鏍�", notes = "宸ュ巶/杞﹂棿鏍�")
+	@GetMapping("/loadSubTree")
+	public Result<?> loadSubTree() {
+		List<CommonGenericTree> list = siteService.loadSubTree();
+		return Result.ok(list);
+	}
+
+	@AutoLog(value = "宸ュ巶/杞﹂棿涓ょ骇鑱斿姩鏁版嵁")
+	@ApiOperation(value = "宸ュ巶/杞﹂棿涓ょ骇鑱斿姩鏁版嵁", notes = "宸ュ巶/杞﹂棿涓ょ骇鑱斿姩鏁版嵁")
+	@GetMapping("/siteAreaCascadeData")
+	public Result<?> siteAreaCascadeData() {
+		List<CommonCascade> list = siteService.siteAreaCascadeData();
+		return Result.ok(list);
+	}
+
+//	@AutoLog(value = "宸ュ巶/宸ヤ綔涓績涓ょ骇鑱斿姩鏁版嵁")
+//	@ApiOperation(value = "宸ュ巶/宸ヤ綔涓績涓ょ骇鑱斿姩鏁版嵁", notes = "宸ュ巶/宸ヤ綔涓績涓ょ骇鑱斿姩鏁版嵁")
+//	@GetMapping("/siteWorkCenterCascadeData")
+//	public Result<?> siteWorkCenterCascadeData() {
+//		List<CommonCascade> list = siteService.siteWorkCenterCascadeData();
+//		return Result.ok(list);
+//	}
+
+	@AutoLog(value = "宸ュ巶/杞﹂棿/浜х嚎涓夌骇鑱斿姩鏁版嵁")
+	@ApiOperation(value = "宸ュ巶/杞﹂棿/浜х嚎涓夌骇鑱斿姩鏁版嵁", notes = "宸ュ巶/杞﹂棿/浜х嚎涓夌骇鑱斿姩鏁版嵁")
+	@GetMapping("/siteAreaLineCascadeData")
+	public Result<?> siteAreaLineCascadeData() {
+		List<CommonCascade> list = siteService.siteAreaLineCascadeData();
+		return Result.ok(list);
+	}
+
+	@AutoLog(value = "鍦扮偣閫夋嫨鍣�")
+	@ApiOperation(value = "鍦扮偣閫夋嫨鍣�", notes = "鍦扮偣閫夋嫨鍣�")
+	@GetMapping("/siteSelect")
+	public Result<?> siteSelect() {
+		List<TreeSelectModel> siteSelect = siteService.siteSelect();
+		return Result.ok(siteSelect);
+	}
+
+}
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/Area.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/Area.java
new file mode 100644
index 0000000..f6476d4
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/Area.java
@@ -0,0 +1,52 @@
+package org.jeecg.modules.eam.entity;
+
+import java.io.Serializable;
+
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.system.base.entity.JeecgEntity;
+
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("mom_base_area")
+@ApiModel(value = "杞﹂棿")
+public class Area extends JeecgEntity implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty(value = "杞﹂棿缂栧彿")
+	private String num;
+
+	@ApiModelProperty(value = "杞﹂棿鍚嶇О")
+	private String name;
+
+	@ApiModelProperty(value = "宸ュ巶ID")
+	private String siteId;
+
+	@ApiModelProperty(value = "閮ㄩ棬ID")
+	@Dict(dicCode = "dept")
+	private String deptId;
+
+	@ApiModelProperty(value = "澶囨敞")
+	private String remark;
+
+	@ApiModelProperty(value = "鍚�/鍋滅敤鐘舵��(0- 绂佺敤 ,1- 鍚敤)", hidden = true)
+	private String status;
+
+	@JsonIgnore
+	@ApiModelProperty(value = "鍒犻櫎鐘舵��(0-姝e父,1-宸插垹闄�)", hidden = true)
+	@TableLogic
+	private Integer delFlag = CommonConstant.DEL_FLAG_0;
+
+}
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/MaintenanceCycle.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/MaintenanceCycle.java
index 8baeb80..48470cc 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/MaintenanceCycle.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/MaintenanceCycle.java
@@ -140,4 +140,11 @@
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private java.util.Date loseEfficacyTime;
 
+    @ApiModelProperty(value = "ABC鏍囪瘑")
+    private String equipmentImportanceId;
+
+    @ApiModelProperty(value = "缁翠繚绫诲瀷")
+    private String maintenanceType;
+
+
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/ProductionLine.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/ProductionLine.java
new file mode 100644
index 0000000..1b87598
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/ProductionLine.java
@@ -0,0 +1,54 @@
+package org.jeecg.modules.eam.entity;
+
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.system.base.entity.JeecgEntity;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("mom_base_production_line")
+@ApiModel(value = "浜х嚎")
+public class ProductionLine extends JeecgEntity implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty(value = "宸ュ巶缂栧彿")
+	private String num;
+
+	@ApiModelProperty(value = "宸ュ巶鍚嶇О")
+	private String name;
+
+	@ApiModelProperty(value = "宸ュ巶ID")
+	private String siteId;
+
+	@ApiModelProperty(value = "杞﹂棿ID")
+	private String areaId;
+
+	@ApiModelProperty(value = "鐝埗ID")
+	@Dict(dictTable = "mes_base_shift_category", dicCode = "id", dicText = "name")
+	private String shiftCategoryId;
+
+	@ApiModelProperty(value = "澶囨敞")
+	private String remark;
+
+	@ApiModelProperty(value = "鍚�/鍋滅敤鐘舵��(0- 绂佺敤 ,1-鍚敤)", hidden = true)
+	private String status;
+
+	@JsonIgnore
+	@ApiModelProperty(value = "鍒犻櫎鐘舵��(0-姝e父,1-宸插垹闄�)", hidden = true)
+	@TableLogic
+	private Integer delFlag = CommonConstant.DEL_FLAG_0;
+
+}
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/Site.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/Site.java
new file mode 100644
index 0000000..e437227
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/Site.java
@@ -0,0 +1,44 @@
+package org.jeecg.modules.eam.entity;
+
+import java.io.Serializable;
+
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.system.base.entity.JeecgEntity;
+
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("mom_base_site")
+@ApiModel(value = "宸ュ巶")
+public class Site extends JeecgEntity implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty(value = "宸ュ巶缂栧彿")
+	private String num;
+
+	@ApiModelProperty(value = "宸ュ巶鍚嶇О")
+	private String name;
+
+	@ApiModelProperty(value = "澶囨敞")
+	private String remark;
+
+	@ApiModelProperty(value = "鍚�/鍋滅敤鐘舵��(0- 绂佺敤 ,1- 鍚敤)", hidden = true)
+	private String status;
+
+	@JsonIgnore
+	@ApiModelProperty(value = "鍒犻櫎鐘舵��(0-姝e父,1-宸插垹闄�)", hidden = true)
+	@TableLogic
+	private Integer delFlag = CommonConstant.DEL_FLAG_0;
+
+}
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/AreaMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/AreaMapper.java
new file mode 100644
index 0000000..148f28b
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/AreaMapper.java
@@ -0,0 +1,8 @@
+package org.jeecg.modules.eam.mapper;
+
+import org.jeecg.modules.eam.entity.Area;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+public interface AreaMapper extends BaseMapper<Area> {
+
+}
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/MaintenanceStandardDetailMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/MaintenanceStandardDetailMapper.java
index 4628b75..4825b14 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/MaintenanceStandardDetailMapper.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/MaintenanceStandardDetailMapper.java
@@ -31,6 +31,9 @@
     @Select("select t1.id as value,concat(t1.code, '/', t1.name) as text,concat(t1.code, '/', t1.name) as title from mom_eam_maintenance_cycle t1 where t1.del_flag = '0' and t1.version_status = '2'")
     List<MaintenanceCycleVo> getMaintenanceCycle();
 
+    @Select("select t1.id as value,concat(t1.code, '/', t1.name) as text,concat(t1.code, '/', t1.name) as title from mom_eam_maintenance_cycle t1 where t1.del_flag = '0' and t1.version_status = '2' and t1.equipment_importance_id like concat('%',#{importanceFlag},'%')")
+    List<MaintenanceCycleVo> getPeriodicMaintenanceCycle(String importanceFlag);
+
     @Select(" SELECT item_value as value, item_text as text,item_text as title FROM v_sys_dict WHERE dict_code = 'maintenance_method'")
     List<MaintenanceModeVo> getMaintenanceMode();
 
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/ProductionLineMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/ProductionLineMapper.java
new file mode 100644
index 0000000..3d69b86
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/ProductionLineMapper.java
@@ -0,0 +1,8 @@
+package org.jeecg.modules.eam.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.eam.entity.ProductionLine;
+
+public interface ProductionLineMapper extends BaseMapper<ProductionLine> {
+
+}
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/SiteMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/SiteMapper.java
new file mode 100644
index 0000000..2ad7887
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/SiteMapper.java
@@ -0,0 +1,8 @@
+package org.jeecg.modules.eam.mapper;
+
+import org.jeecg.modules.eam.entity.Site;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+public interface SiteMapper extends BaseMapper<Site> {
+
+}
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/MaintenanceCycleMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/MaintenanceCycleMapper.xml
index 0781696..1231877 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/MaintenanceCycleMapper.xml
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/MaintenanceCycleMapper.xml
@@ -32,7 +32,9 @@
         t1.overdue_dispose_mode as overdueDisposeMode,
         t1.according_calendar as accordingCalendar,
         t8.item_text overdueDisposeModeName,
-        t9.item_text accordingCalendarName
+        t9.item_text accordingCalendarName,
+        t1.equipment_importance_id as equipmentImportanceId,
+        t1.maintenance_type as maintenanceType
         from mom_eam_maintenance_cycle t1
         left join (select * from v_sys_dict where dict_code = 'maintenance_cycle_unit') t2 on t1.cycle_unit=t2.item_value
         left join (select * from v_sys_dict where dict_code = 'cycle_time_unit') t3 on t1.unit=t3.item_value
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IAreaService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IAreaService.java
new file mode 100644
index 0000000..6b70ec0
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IAreaService.java
@@ -0,0 +1,20 @@
+package org.jeecg.modules.eam.service;
+import org.jeecg.modules.eam.entity.Area;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+/**
+ * 
+ * @ClassName: IAreaService
+ * @Description: 杞﹂棿涓氬姟鎺ュ彛
+ * @author Wang Mingchao
+ * @date 2020-10-20 09:43:20
+ */
+public interface IAreaService extends IService<Area> {
+	
+    boolean removeBySiteId(String siteId);
+    
+    boolean removeBySiteIds(String[] siteIds);
+    
+    boolean activeBySiteId(String siteId, String status);
+    
+}
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IMaintenanceStandardDetailService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IMaintenanceStandardDetailService.java
index 866f221..c86e1d8 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IMaintenanceStandardDetailService.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IMaintenanceStandardDetailService.java
@@ -19,12 +19,14 @@
 
     IPage<Map<String, Object>> getMaintenanceStandardDetailById(Integer pageNo, Integer pageSize, Map<String, Object> params);
 
-    List<Map<String, Object>> getMaintenanceStandardDetailList(String maintenanceStandardId);
+    List<Map<String, Object>> getMaintenanceStandardDetailList(String maintenanceStandardId,String equipmentId);
 
     List<Map<String, Object>> getMaintenanceStandardDetailListByIds(List<String> ids);
 
     List<MaintenanceCycleVo> getMaintenanceCycle();
 
+    List<MaintenanceCycleVo> getPeriodicMaintenanceCycle(String importanceFlag);
+
     List<MaintenanceModeVo> getMaintenanceMode();
 
     boolean realDelete();
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IProductionLineService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IProductionLineService.java
new file mode 100644
index 0000000..7f934ed
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IProductionLineService.java
@@ -0,0 +1,31 @@
+package org.jeecg.modules.eam.service;
+import java.util.List;
+
+import org.jeecg.modules.eam.entity.ProductionLine;
+import com.baomidou.mybatisplus.extension.service.IService;
+/**
+ * 
+ * @ClassName: IProductionLineService
+ * @Description: 浜х嚎 涓氬姟鎺ュ彛
+ * @author Wang Mingchao
+ * @date 2020-11-05 02:32:40
+ */
+public interface IProductionLineService extends IService<ProductionLine> {
+    
+    boolean removeByAreaId(String areaId);
+    
+    boolean removeByAreaIds(String[] areaIds);
+    
+    boolean removeBySiteId(String siteId);
+    
+    boolean removeBySiteIds(String[] siteIds);
+    
+    boolean activeByAreaId(String areaId, String status);
+    
+    boolean activeByAreaIds(String[] areaIds, String status);
+    
+    boolean activeBySiteId(String siteId, String status);
+    
+    List<ProductionLine> listByAreaId(String areaId);
+    
+}
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/ISiteService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/ISiteService.java
new file mode 100644
index 0000000..b7e3587
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/ISiteService.java
@@ -0,0 +1,34 @@
+package org.jeecg.modules.eam.service;
+
+import java.util.List;
+
+import org.jeecg.common.api.vo.CommonGenericTree;
+import org.jeecg.modules.eam.entity.Site;
+import org.jeecg.modules.eam.vo.CommonCascade;
+import org.jeecg.modules.system.model.TreeSelectModel;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 
+ * @ClassName: ISiteService
+ * @Description: 宸ュ巶 涓氬姟鎺ュ彛
+ * @author Wang Mingchao
+ * @date 2020-10-20 05:07:05
+ */
+@SuppressWarnings("rawtypes")
+public interface ISiteService extends IService<Site> {
+
+	List<Site> listByIds(String ids);
+
+	List<CommonGenericTree> loadTree(String tenantId);
+
+	List<CommonGenericTree> loadSubTree();
+
+	List<TreeSelectModel> siteSelect();
+
+	List<CommonCascade> siteAreaCascadeData();
+
+	List<CommonCascade> siteAreaLineCascadeData();
+
+}
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/AreaServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/AreaServiceImpl.java
new file mode 100644
index 0000000..027190d
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/AreaServiceImpl.java
@@ -0,0 +1,75 @@
+package org.jeecg.modules.eam.service.impl;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.commons.lang.StringUtils;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.modules.eam.entity.Area;
+import org.jeecg.modules.eam.mapper.AreaMapper;
+import org.jeecg.modules.eam.service.IAreaService;
+import org.jeecg.modules.eam.service.IProductionLineService;
+import org.jeecg.modules.eam.service.ISiteService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+/**
+ * 
+ * @ClassName: AreaServiceImpl
+ * @Description: 杞﹂棿淇℃伅涓氬姟鎺ュ彛瀹炵幇
+ * @author Wang Mingchao
+ * @date 2020-10-20 09:29:03
+ */
+@Service
+public class AreaServiceImpl extends ServiceImpl<AreaMapper, Area> implements IAreaService {
+	
+    @Autowired
+    @Lazy
+    private ISiteService siteService;
+    
+    @Autowired
+    @Lazy
+    private IProductionLineService productionLineService;
+    
+    @Override
+	public List<Area> list() {
+		return super.lambdaQuery().eq(Area::getStatus, CommonConstant.STATUS_1).orderByAsc(Area::getNum).list();
+	}
+    
+    @Override
+    @Transactional(rollbackFor = {Exception.class})
+    public boolean removeBySiteId(String siteId) {
+        if(StringUtils.isBlank(siteId))
+            return false;
+        LambdaQueryWrapper<Area> lambdaQueryWrapper = Wrappers.lambdaQuery();
+        lambdaQueryWrapper.eq(Area::getSiteId, siteId);
+        return super.remove(lambdaQueryWrapper);
+    }
+
+    @Override
+    @Transactional(rollbackFor = {Exception.class})
+    public boolean removeBySiteIds(String[] siteIds) {
+        if(siteIds == null || siteIds.length < 1)
+            return false;
+        LambdaQueryWrapper<Area> lambdaQueryWrapper = Wrappers.lambdaQuery();
+        lambdaQueryWrapper.in(Area::getSiteId, Arrays.asList(siteIds));
+        return super.remove(lambdaQueryWrapper);
+    }
+
+    @Override
+    @Transactional(rollbackFor = {Exception.class})
+    public boolean activeBySiteId(String siteId, String status) {
+        if(StringUtils.isBlank(siteId) || StringUtils.isBlank(status))
+            return false;
+        LambdaUpdateWrapper<Area> updateWrapper = Wrappers.lambdaUpdate();
+        updateWrapper.set(Area::getStatus, status).eq(Area::getSiteId, siteId);
+        return super.update(updateWrapper);
+    }
+    
+}
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/MaintenanceStandardDetailServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/MaintenanceStandardDetailServiceImpl.java
index 4e241a9..55c91e8 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/MaintenanceStandardDetailServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/MaintenanceStandardDetailServiceImpl.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.jeecg.modules.eam.entity.DailyInspectionStandardDetail;
+import org.jeecg.modules.eam.entity.Equipment;
 import org.jeecg.modules.eam.entity.MaintenanceStandard;
 import org.jeecg.modules.eam.entity.MaintenanceStandardDetail;
 import org.jeecg.modules.eam.mapper.DailyInspectionStandardDetailMapper;
@@ -12,7 +13,9 @@
 import org.jeecg.modules.eam.model.MaintenanceCycleVo;
 import org.jeecg.modules.eam.model.MaintenanceModeVo;
 import org.jeecg.modules.eam.service.IDailyInspectionStandardDetailService;
+import org.jeecg.modules.eam.service.IEamEquipmentService;
 import org.jeecg.modules.eam.service.IMaintenanceStandardDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -27,10 +30,14 @@
 @Service
 public class MaintenanceStandardDetailServiceImpl extends ServiceImpl<MaintenanceStandardDetailMapper, MaintenanceStandardDetail> implements IMaintenanceStandardDetailService {
 
+    @Autowired
+    private IEamEquipmentService equipmentService;
+
     @Override
-    public List<Map<String, Object>> getMaintenanceStandardDetailList(String maintenanceStandardId) {
+    public List<Map<String, Object>> getMaintenanceStandardDetailList(String maintenanceStandardId,String equipmentId) {
         List<Map<String, Object>> maintenanceStandardDetailList = super.baseMapper.getMaintenanceStandardDetailList(maintenanceStandardId);
-        List<MaintenanceCycleVo> maintenanceCycles = super.baseMapper.getMaintenanceCycle();
+        Equipment equipment = equipmentService.getById(equipmentId);
+        List<MaintenanceCycleVo> maintenanceCycles = super.baseMapper.getPeriodicMaintenanceCycle(equipment.getEquipmentImportanceId());
         List<MaintenanceModeVo> maintenanceModes = super.baseMapper.getMaintenanceMode();
         for (Map<String, Object> map : maintenanceStandardDetailList) {
             map.put("maintenanceCycles",maintenanceCycles);
@@ -62,6 +69,16 @@
         return super.baseMapper.getMaintenanceCycle();
     }
 
+    /**
+     * 鍛ㄦ湡鎬т繚鍏�  鏍规嵁璁惧鍙拌处ABC鏍囪瘑鑾峰彇涓変繚淇濆吇鍛ㄦ湡
+     * @return
+     */
+    @Override
+    public List<MaintenanceCycleVo> getPeriodicMaintenanceCycle(String importanceFlag) {
+        return super.baseMapper.getPeriodicMaintenanceCycle(importanceFlag);
+    }
+
+
     @Override
     public List<MaintenanceModeVo> getMaintenanceMode() {
         return super.baseMapper.getMaintenanceMode();
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/ProductionLineServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/ProductionLineServiceImpl.java
new file mode 100644
index 0000000..95a53f1
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/ProductionLineServiceImpl.java
@@ -0,0 +1,128 @@
+package org.jeecg.modules.eam.service.impl;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.commons.lang.StringUtils;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.modules.eam.entity.ProductionLine;
+import org.jeecg.modules.eam.mapper.ProductionLineMapper;
+import org.jeecg.modules.eam.service.IAreaService;
+import org.jeecg.modules.eam.service.IProductionLineService;
+import org.jeecg.modules.eam.service.ISiteService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * 
+ * @ClassName: ProductionLineServiceImpl
+ * @Description: 浜х嚎淇℃伅涓氬姟鎺ュ彛瀹炵幇
+ * @author Wang Mingchao
+ * @date 2020-10-20 09:28:16
+ */
+@Service
+public class ProductionLineServiceImpl extends ServiceImpl<ProductionLineMapper, ProductionLine>
+		implements IProductionLineService {
+
+	@Autowired
+	@Lazy
+	private ISiteService siteService;
+
+	@Autowired
+	@Lazy
+	private IAreaService areaService;
+
+	@Override
+	public List<ProductionLine> list() {
+		return super.lambdaQuery().eq(ProductionLine::getStatus, CommonConstant.STATUS_1)
+				.orderByAsc(ProductionLine::getNum).list();
+	}
+
+	@Override
+	@Transactional(rollbackFor = { Exception.class })
+	public boolean removeByAreaId(String areaId) {
+		if (StringUtils.isBlank(areaId)) {
+			return false;
+		}
+		LambdaQueryWrapper<ProductionLine> lambdaQueryWrapper = Wrappers.lambdaQuery();
+		lambdaQueryWrapper.eq(ProductionLine::getAreaId, areaId);
+		return super.remove(lambdaQueryWrapper);
+	}
+
+	@Override
+	@Transactional(rollbackFor = { Exception.class })
+	public boolean removeByAreaIds(String[] areaIds) {
+		if (areaIds == null || areaIds.length < 1) {
+			return false;
+		}
+		LambdaQueryWrapper<ProductionLine> lambdaQueryWrapper = Wrappers.lambdaQuery();
+		List<String> strings = Arrays.asList(areaIds);
+		lambdaQueryWrapper.in(ProductionLine::getAreaId, strings);
+		return super.remove(lambdaQueryWrapper);
+	}
+
+	@Override
+	@Transactional(rollbackFor = { Exception.class })
+	public boolean removeBySiteId(String siteId) {
+		if (StringUtils.isBlank(siteId)) {
+			return false;
+		}
+		LambdaQueryWrapper<ProductionLine> lambdaQueryWrapper = Wrappers.lambdaQuery();
+		lambdaQueryWrapper.eq(ProductionLine::getSiteId, siteId);
+		return super.remove(lambdaQueryWrapper);
+	}
+
+	@Override
+	@Transactional(rollbackFor = { Exception.class })
+	public boolean removeBySiteIds(String[] siteIds) {
+		if (siteIds == null || siteIds.length < 1)
+			return false;
+		LambdaQueryWrapper<ProductionLine> lambdaQueryWrapper = Wrappers.lambdaQuery();
+		lambdaQueryWrapper.in(ProductionLine::getSiteId, Arrays.asList(siteIds));
+		return super.remove(lambdaQueryWrapper);
+	}
+
+	@Override
+	@Transactional(rollbackFor = { Exception.class })
+	public boolean activeByAreaId(String areaId, String status) {
+		if (StringUtils.isBlank(areaId) || StringUtils.isBlank(status))
+			return false;
+		LambdaUpdateWrapper<ProductionLine> updateWrapper = Wrappers.lambdaUpdate();
+		updateWrapper.set(ProductionLine::getStatus, status).eq(ProductionLine::getAreaId, areaId);
+		return super.update(updateWrapper);
+	}
+
+	@Override
+	@Transactional(rollbackFor = { Exception.class })
+	public boolean activeByAreaIds(String[] areaIds, String status) {
+		if (areaIds == null || areaIds.length < 1 || StringUtils.isBlank(status))
+			return false;
+		LambdaUpdateWrapper<ProductionLine> updateWrapper = Wrappers.lambdaUpdate();
+		updateWrapper.set(ProductionLine::getStatus, status).in(ProductionLine::getAreaId, Arrays.asList(areaIds));
+		return super.update(updateWrapper);
+	}
+
+	@Override
+	@Transactional(rollbackFor = { Exception.class })
+	public boolean activeBySiteId(String siteId, String status) {
+		if (StringUtils.isBlank(siteId) || StringUtils.isBlank(status))
+			return false;
+		LambdaUpdateWrapper<ProductionLine> updateWrapper = Wrappers.lambdaUpdate();
+		updateWrapper.set(ProductionLine::getStatus, status).eq(ProductionLine::getSiteId, siteId);
+		return super.update(updateWrapper);
+	}
+
+	@Override
+	public List<ProductionLine> listByAreaId(String areaId) {
+		return super.lambdaQuery().eq(ProductionLine::getAreaId, areaId)
+				.eq(ProductionLine::getStatus, CommonConstant.STATUS_1).list();
+	}
+
+}
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/SiteServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/SiteServiceImpl.java
new file mode 100644
index 0000000..636c144
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/SiteServiceImpl.java
@@ -0,0 +1,182 @@
+package org.jeecg.modules.eam.service.impl;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.jeecg.common.api.vo.CommonGenericTree;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.modules.eam.entity.Site;
+import org.jeecg.modules.eam.mapper.SiteMapper;
+import org.jeecg.modules.eam.entity.*;
+import org.jeecg.modules.eam.service.*;
+import org.jeecg.modules.eam.vo.CommonCascade;
+import org.jeecg.modules.eam.wrapper.SiteAreaCascadeWrapper;
+import org.jeecg.modules.eam.wrapper.SiteAreaLineTreeWrapper;
+import org.jeecg.modules.system.entity.SysTenant;
+import org.jeecg.modules.system.model.TreeSelectModel;
+import org.jeecg.modules.system.service.ISysTenantService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * 
+ * @ClassName: SiteServiceImpl
+ * @Description: 宸ュ巶 涓氬姟鎺ュ彛瀹炵幇
+ * @author Wang Mingchao
+ * @date 2020-10-20 09:28:50
+ */
+@SuppressWarnings("rawtypes")
+@Service
+public class SiteServiceImpl extends ServiceImpl<SiteMapper, Site> implements ISiteService {
+
+	@Autowired
+	private ISysTenantService sysTenantService;
+
+	@Autowired
+	@Lazy
+	private IAreaService areaService;
+
+	@Autowired
+	@Lazy
+	private IProductionLineService productionLineService;
+
+	@Autowired
+	private Environment env;
+
+
+	@Override
+	public List<Site> listByIds(String ids) {
+		return super.lambdaQuery().in(Site::getId, Arrays.asList(ids.split(","))).orderByAsc(Site::getNum).list();
+	}
+
+	@Override
+	public List<Site> list() {
+		return super.lambdaQuery().eq(Site::getStatus, CommonConstant.STATUS_1).orderByAsc(Site::getNum).list();
+	}
+
+	@Override
+	public List<CommonGenericTree> loadTree(String tenantId) {
+		// 鑾峰彇鏍戠殑鏍硅妭鐐瑰悕绉�
+		LambdaQueryChainWrapper<SysTenant> wrapper = sysTenantService.lambdaQuery();
+//		wrapper.eq(SysTenant::getTenantId, tenantId);
+		List<SysTenant> sysTenantList = wrapper.list();
+//		String title = "-1";
+		String applicationEdEnterpriseName = env.getProperty("enterprise.name");
+		String title = applicationEdEnterpriseName;//鐢╝pplication涓殑浼佷笟淇℃伅锛屾浛浠g己鐪佹椂鐨�-1
+		if (sysTenantList.size() > 0) {
+			title = sysTenantList.get(0).getName();
+		}
+		List<Site> siteList = this.list();
+		List<Area> areaList = areaService.list();
+		List<ProductionLine> productionLineList = productionLineService.list();
+		return SiteAreaLineTreeWrapper.loadTree(title, siteList, areaList, productionLineList);
+	}
+
+	@Override
+	@Transactional(rollbackFor = { Exception.class })
+	public boolean removeById(Serializable id) {
+		productionLineService.removeBySiteId(String.valueOf(id));
+		areaService.removeBySiteId(String.valueOf(id));
+		return super.removeById(id);
+	}
+
+	@Override
+	public List<CommonGenericTree> loadSubTree() {
+		List<Site> siteList = list();
+		List<Area> areaList = Collections.emptyList();
+		if (siteList == null || siteList.isEmpty()) {
+			return SiteAreaLineTreeWrapper.loadTree(siteList, areaList);
+		}
+		areaList = areaService.list();
+		if (areaList == null || areaList.isEmpty()) {
+			areaList = Collections.emptyList();
+			return SiteAreaLineTreeWrapper.loadTree(siteList, areaList);
+		}
+		return SiteAreaLineTreeWrapper.loadTree(siteList, areaList);
+	}
+
+	@Override
+	public List<CommonCascade> siteAreaCascadeData() {
+		List<Site> siteList = list();
+		List<Area> areaList = areaService.list();
+
+		return SiteAreaCascadeWrapper.loadCascade(siteList, areaList);
+	}
+
+
+	@Override
+	public List<CommonCascade> siteAreaLineCascadeData() {
+		// 宸ュ巶
+		List<Site> siteList = list();
+		// 杞﹂棿
+		List<Area> areaList = areaService.list();
+		// 浜х嚎
+		List<ProductionLine> lineList = productionLineService.list();
+		return SiteAreaCascadeWrapper.loadCascadeBase(siteList, areaList, lineList);
+	}
+
+	private CommonGenericTree line2Tree(ProductionLine line, boolean b) {
+		CommonGenericTree<ProductionLine> lineNode = new CommonGenericTree<>();
+		lineNode.setKey(line.getId());
+		lineNode.setTitle(line.getName());
+		lineNode.setParentId(line.getAreaId());
+		lineNode.setIcon("");
+		lineNode.setType(3);
+		lineNode.setDisabled(b);
+		lineNode.setEntity(line);
+		lineNode.setValue(line.getId());
+		return lineNode;
+	}
+
+	private CommonGenericTree area2Tree(Area area, boolean b) {
+		CommonGenericTree<Area> areaNode = new CommonGenericTree<>();
+		areaNode = new CommonGenericTree<>();
+		areaNode.setKey(area.getId());
+		areaNode.setTitle(area.getName());
+		areaNode.setParentId(area.getSiteId());
+		areaNode.setIcon("");
+		areaNode.setDisabled(b);
+		areaNode.setType(2);
+		areaNode.setEntity(area);
+		areaNode.setValue(area.getId());
+		return areaNode;
+	}
+
+	private List<CommonGenericTree> list2Tree(List<CommonGenericTree> parentList, List<CommonGenericTree> childList) {
+		for (CommonGenericTree tree : parentList) {
+			String id = tree.getKey();
+			for (CommonGenericTree cTree : childList) {
+				if (id.equals(cTree.getParentId())) {
+					tree.addChildren(cTree);
+				}
+			}
+		}
+		return parentList;
+	}
+
+	@Override
+	public List<TreeSelectModel> siteSelect() {
+		List<TreeSelectModel> list = new ArrayList<>();
+		List<Site> siteList = super.list();
+		TreeSelectModel model;
+		for (Site site : siteList) {
+			model = new TreeSelectModel();
+			model.setKey(site.getId());
+			model.setValue(site.getId());
+			model.setTitle(site.getName());
+			list.add(model);
+		}
+		return list;
+	}
+
+}
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/CommonCascade.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/CommonCascade.java
new file mode 100644
index 0000000..5607ce9
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/CommonCascade.java
@@ -0,0 +1,42 @@
+package org.jeecg.modules.eam.vo;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description: 绾ц仈閫夋嫨妗嗛�氱敤杩斿洖瀹炰綋绫�
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+public class CommonCascade {
+
+	private String value;
+
+	private String label;
+
+	private List<CommonCascade> children = new ArrayList<>();
+
+	// 娣诲姞瀛愯妭鐐圭殑鏂规硶
+	public CommonCascade addChildren(CommonCascade node) {
+		if (this.children == null) {
+			this.children = new ArrayList<CommonCascade>();
+		}
+		this.children.add(node);
+		return node;
+	}
+
+	public boolean hasChildren() {
+		boolean bu = true;
+		if (getChildren() == null || getChildren().isEmpty()) {
+			bu = false;
+			return bu;
+		}
+		return bu;
+	}
+
+}
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/wrapper/SiteAreaCascadeWrapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/wrapper/SiteAreaCascadeWrapper.java
new file mode 100644
index 0000000..403576f
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/wrapper/SiteAreaCascadeWrapper.java
@@ -0,0 +1,109 @@
+package org.jeecg.modules.eam.wrapper;
+
+import org.jeecg.modules.eam.entity.Area;
+import org.jeecg.modules.eam.entity.ProductionLine;
+import org.jeecg.modules.eam.entity.Site;
+import org.jeecg.modules.eam.vo.CommonCascade;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import java.util.*;
+
+public class SiteAreaCascadeWrapper {
+
+	/**
+	 * 鑾峰彇宸ュ巶杞﹂棿涓ょ骇绾ц仈鏁版嵁 蹇呴』閫夋嫨鍒颁骇绾�
+	 * 
+	 * @param siteList
+	 * @param areaList
+	 * @return
+	 */
+	public static List<CommonCascade> loadCascade(List<Site> siteList, List<Area> areaList) {
+		List<CommonCascade> list = loadCascadeBase(siteList, areaList, null);
+		List<CommonCascade> result = new ArrayList<>();
+		for (CommonCascade c : list) {
+			if (c.hasChildren()) {
+				result.add(c);
+			}
+		}
+		return result;
+	}
+
+	/**
+	 * 蹇呴』瑕侀�夋嫨鍒颁骇绾夸笁绾х骇鑱旂粨鏋�
+	 * 
+	 * @param siteList
+	 * @param areaList
+	 * @return
+	 */
+	public static List<CommonCascade> loadCascade(List<Site> siteList, List<Area> areaList,
+			List<ProductionLine> lineList) {
+		List<CommonCascade> list = loadCascadeBase(siteList, areaList, lineList);
+		// 杩囨护宸ュ巶涓嬫病鏈夎溅闂� 杞﹂棿涓嬫病鏈変骇绾跨殑鏁版嵁
+		List<CommonCascade> result = new ArrayList<>();
+		for (CommonCascade c : list) {
+			if (c.hasChildren()) {
+				List<CommonCascade> children = c.getChildren();
+				List<CommonCascade> dList = new ArrayList<>();
+				for (CommonCascade d : children) {
+					if (d.hasChildren()) {
+						dList.add(d);
+					}
+				}
+				if (!dList.isEmpty()) {
+					c.setChildren(dList);
+					result.add(c);
+				}
+
+			}
+		}
+		return result;
+	}
+
+	/**
+	 * 鑾峰彇宸ュ巶杞﹂棿浜х嚎涓夌骇绾ц仈鏁版嵁 杩斿洖鍏ㄦ暟鎹� 涓嶅仛杩囨护
+	 * 
+	 * @param siteList
+	 * @param areaList
+	 * @param lineList
+	 * @return
+	 */
+	public static List<CommonCascade> loadCascadeBase(List<Site> siteList, List<Area> areaList,
+			List<ProductionLine> productionLineList) {
+		List<CommonCascade> commonCascadeList = new ArrayList<CommonCascade>();
+		if (CollectionUtils.isNotEmpty(siteList) || CollectionUtils.isNotEmpty(areaList)) {
+			Map<String, CommonCascade> siteMap = new HashMap<>();
+			Map<String, CommonCascade> areaMap = new HashMap<>();
+			CommonCascade siteNode;
+			CommonCascade areaNode;
+			CommonCascade productionLineNode;
+			for (Site site : siteList) {
+				siteNode = new CommonCascade();
+				siteNode = siteNode.setValue(site.getId()).setLabel(site.getName());
+				commonCascadeList.add(siteNode);
+				siteMap.put(site.getId(), siteNode);
+			}
+			for (Area area : areaList) {
+				if (siteMap.containsKey(area.getSiteId())) {
+					siteNode = siteMap.get(area.getSiteId());
+					areaNode = new CommonCascade();
+					areaNode = areaNode.setValue(area.getId()).setLabel(area.getName());
+					siteNode.addChildren(areaNode);
+					areaMap.put(area.getId(), areaNode);
+				}
+			}
+			// 杩斿洖涓ょ骇鏁版嵁
+			if (CollectionUtils.isNotEmpty(productionLineList)) {
+				for (ProductionLine productionLine : productionLineList) {
+					if (areaMap.containsKey(productionLine.getAreaId())) {
+						areaNode = areaMap.get(productionLine.getAreaId());
+						productionLineNode = new CommonCascade();
+						productionLineNode = productionLineNode.setValue(productionLine.getId())
+								.setLabel(productionLine.getName());
+						areaNode.addChildren(productionLineNode);
+					}
+				}
+			}
+		}
+		return commonCascadeList;
+	}
+
+}
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/wrapper/SiteAreaLineTreeWrapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/wrapper/SiteAreaLineTreeWrapper.java
new file mode 100644
index 0000000..4356f24
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/wrapper/SiteAreaLineTreeWrapper.java
@@ -0,0 +1,88 @@
+package org.jeecg.modules.eam.wrapper;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.jeecg.common.api.vo.CommonGenericTree;
+import org.jeecg.common.util.StrUtils;
+import org.jeecg.modules.eam.entity.Area;
+import org.jeecg.modules.eam.entity.ProductionLine;
+import org.jeecg.modules.eam.entity.Site;
+
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+
+@SuppressWarnings("rawtypes")
+public class SiteAreaLineTreeWrapper {
+
+	/**
+	 * 宸ュ巶/杞﹂棿鏍�
+	 */
+	public static List<CommonGenericTree> loadTree(List<Site> siteList, List<Area> areaList) {
+		//return loadTree(siteList, areaList, Collections.emptyList());
+		return null;
+	}
+
+	/**
+	 * 宸ュ巶/杞﹂棿/浜х嚎鏍�
+	 */
+	@SuppressWarnings("unchecked")
+	public static List<CommonGenericTree> loadTree(String title,List<Site> siteList, List<Area> areaList,
+			List<ProductionLine> productionLineList) {
+		List<CommonGenericTree> list = new ArrayList<>();
+		Map<String, CommonGenericTree> siteMap = new HashMap<>();
+		Map<String, CommonGenericTree> areaMap = new HashMap<>();
+		CommonGenericTree<Site> root = new CommonGenericTree<>();
+		root.setKey("-1");
+		root.setTitle("涓浗鑸彂");
+		root.setType(0);
+		list.add(root);
+		if (CollectionUtils.isNotEmpty(siteList)) {
+			CommonGenericTree<Site> siteNode;
+			CommonGenericTree<Area> areaNode;
+			CommonGenericTree<ProductionLine> lineNode;
+			for (Site site : siteList) {
+				siteNode = new CommonGenericTree<>();
+				siteNode.setKey(site.getId());
+				siteNode.setTitle(site.getName());
+				siteNode.setParentId(root.getKey());
+				siteNode.setIcon("");
+				siteNode.setType(1);
+				siteNode.setEntity(site);
+				root.addChildren(siteNode);
+				siteMap.put(site.getId(), siteNode);
+			}
+			for (Area area : areaList) {
+				if (siteMap.containsKey(area.getSiteId())) {
+					siteNode = siteMap.get(area.getSiteId());
+					areaNode = new CommonGenericTree<>();
+					areaNode.setKey(area.getId());
+					areaNode.setTitle(area.getName());
+					areaNode.setParentId(area.getSiteId());
+					areaNode.setIcon("");
+					areaNode.setType(2);
+					areaNode.setEntity(area);
+					siteNode.addChildren(areaNode);
+					areaMap.put(area.getId(), areaNode);
+				}
+			}
+			for (ProductionLine line : productionLineList) {
+				if (areaMap.containsKey(line.getAreaId())) {
+					areaNode = areaMap.get(line.getAreaId());
+					lineNode = new CommonGenericTree<>();
+					lineNode.setKey(line.getId());
+					lineNode.setTitle(line.getName());
+					lineNode.setParentId(line.getAreaId());
+					lineNode.setIcon("");
+					lineNode.setType(3);
+					lineNode.setEntity(line);
+					lineNode.setDisabled(true);
+					areaNode.addChildren(lineNode);
+				}
+			}
+		}
+		return list;
+	}
+
+}
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/wrapper/SiteAreaProductLineWrapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/wrapper/SiteAreaProductLineWrapper.java
new file mode 100644
index 0000000..d4adbef
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/wrapper/SiteAreaProductLineWrapper.java
@@ -0,0 +1,71 @@
+package org.jeecg.modules.eam.wrapper;
+
+import org.jeecg.modules.eam.entity.Area;
+import org.jeecg.modules.eam.entity.ProductionLine;
+import org.jeecg.modules.eam.entity.Site;
+import org.jeecg.modules.eam.vo.CommonCascade;
+
+import java.util.*;
+
+public class SiteAreaProductLineWrapper {
+
+	public static List<CommonCascade> loadCascadePlus(List<Site> siteList, List<Area> areaList,
+													  List<ProductionLine> productionLineList) {
+		if (siteList == null || siteList.isEmpty() || areaList == null || areaList.isEmpty()
+				|| productionLineList == null || productionLineList.isEmpty())
+			return Collections.emptyList();
+		List<CommonCascade> list = new ArrayList<>();
+		Map<String, CommonCascade> siteMap = new HashMap<>();
+		Map<String, CommonCascade> areaMap = new HashMap<>();
+		if (siteList == null || siteList.isEmpty())
+			return list;
+		CommonCascade siteNode;
+		CommonCascade areaNode;
+		CommonCascade productionLineNode;
+		for (Site site : siteList) {
+			siteNode = new CommonCascade();
+			siteNode = siteNode.setValue(site.getId()).setLabel(site.getName());
+			list.add(siteNode);
+			siteMap.put(site.getId(), siteNode);
+		}
+		for (Area area : areaList) {
+			if (siteMap.containsKey(area.getSiteId())) {
+				siteNode = siteMap.get(area.getSiteId());
+				areaNode = new CommonCascade();
+				areaNode = areaNode.setValue(area.getId()).setLabel(area.getName());
+				siteNode.addChildren(areaNode);
+				areaMap.put(area.getId(), areaNode);
+			}
+		}
+		for (ProductionLine productionLine : productionLineList) {
+			if (areaMap.containsKey(productionLine.getAreaId())) {
+				areaNode = areaMap.get(productionLine.getAreaId());
+				productionLineNode = new CommonCascade();
+				productionLineNode = productionLineNode.setValue(productionLine.getId())
+						.setLabel(productionLine.getName());
+				areaNode.addChildren(productionLineNode);
+
+			}
+		}
+		List<CommonCascade> secondList = new ArrayList<>();
+		for (CommonCascade c : list) {
+			if (c.hasChildren()) {
+				secondList.add(c);
+			}
+		}
+		List<CommonCascade> middleList = new ArrayList<>();
+		for (CommonCascade c : secondList) {
+			if (c.hasChildren()) {
+				middleList.add(c);
+			}
+		}
+		List<CommonCascade> result = new ArrayList<>();
+		for (CommonCascade c : middleList) {
+			if (c.hasChildren()) {
+				result.add(c);
+			}
+		}
+		return middleList;
+	}
+
+}
\ No newline at end of file

--
Gitblit v1.9.3