| 
					
				 | 
			
			
				@@ -0,0 +1,212 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * Copyright © 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+package com.jeeplus.modules.constructionunit.web; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.HashMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import javax.servlet.http.HttpServletRequest; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import javax.servlet.http.HttpServletResponse; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import javax.validation.ConstraintViolationException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.jeeplus.modules.constructionunit.entity.ConstructionExportUnit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.apache.poi.ss.usermodel.Row; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.apache.shiro.authz.annotation.Logical; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.apache.shiro.authz.annotation.RequiresPermissions; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.ui.Model; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.bind.annotation.ModelAttribute; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.bind.annotation.RequestMapping; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.bind.annotation.GetMapping; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.bind.annotation.DeleteMapping; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.bind.annotation.PostMapping; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.bind.annotation.RequestParam; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.bind.annotation.RestController; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.multipart.MultipartFile; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.google.common.collect.Lists; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.jeeplus.common.utils.DateUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.jeeplus.common.json.AjaxJson; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.jeeplus.core.persistence.Page; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.jeeplus.core.web.BaseController; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.jeeplus.common.utils.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.jeeplus.common.utils.excel.ExportExcel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.jeeplus.common.utils.excel.ImportExcel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.jeeplus.modules.constructionunit.entity.ConstructionUnit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.jeeplus.modules.constructionunit.service.ConstructionUnitService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * ConstructionUnitController 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @author 邱悦 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @version 2021-12-29 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@RestController 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@RequestMapping(value = "/constructionUnit/constructionUnit") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+public class ConstructionUnitController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	@Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private ConstructionUnitService constructionUnitService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	@ModelAttribute 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public ConstructionUnit get(@RequestParam(required=false) String id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		ConstructionUnit entity = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if (StringUtils.isNotBlank(id)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			entity = constructionUnitService.get(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if (entity == null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			entity = new ConstructionUnit(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return entity; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 施工单位列表数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	@RequiresPermissions("constructionUnit:constructionUnit:list") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	@GetMapping("list") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public AjaxJson list(ConstructionUnit constructionUnit, HttpServletRequest request, HttpServletResponse response) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Page<ConstructionUnit> page = constructionUnitService.findPage(new Page<ConstructionUnit>(request, response), constructionUnit); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return AjaxJson.success().put("page",page); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 根据Id获取施工单位数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	@RequiresPermissions(value={"constructionUnit:constructionUnit:view","constructionUnit:constructionUnit:add","constructionUnit:constructionUnit:edit"},logical=Logical.OR) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	@GetMapping("queryById") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public AjaxJson queryById(ConstructionUnit constructionUnit) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return AjaxJson.success().put("constructionUnit", constructionUnit); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 保存施工单位 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	@RequiresPermissions(value={"constructionUnit:constructionUnit:add","constructionUnit:constructionUnit:edit"},logical=Logical.OR) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	@PostMapping("save") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public AjaxJson save(ConstructionUnit constructionUnit, Model model) throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 * 后台hibernate-validation插件校验 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		String errMsg = beanValidator(constructionUnit); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if (StringUtils.isNotBlank(errMsg)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return AjaxJson.error(errMsg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		//新增验证,年份加名称是否纯在,存在提是不予修改,不存在修改 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Boolean aBoolean = constructionUnitService.saveName(constructionUnit);//保存 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if (aBoolean) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return AjaxJson.success("保存施工单位成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return AjaxJson.error("当前年度施工单位已存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 保存施工单位 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	@RequiresPermissions(value={"constructionUnit:constructionUnit:add","constructionUnit:constructionUnit:edit"},logical=Logical.OR) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	@PostMapping("update") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public AjaxJson update(ConstructionUnit constructionUnit, Model model) throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 * 后台hibernate-validation插件校验 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		String errMsg = beanValidator(constructionUnit); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if (StringUtils.isNotBlank(errMsg)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return AjaxJson.error(errMsg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		//新增或编辑表单保存 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Boolean update = constructionUnitService.update(constructionUnit);//保存 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if (update) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return AjaxJson.success("保存施工单位成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return AjaxJson.error("施工单位已存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 批量删除施工单位 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	@RequiresPermissions("constructionUnit:constructionUnit:del") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	@DeleteMapping("delete") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public AjaxJson delete(String ids) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		String idArray[] =ids.split(","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		for(String id : idArray){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			constructionUnitService.delete(constructionUnitService.get(id)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return AjaxJson.success("删除施工单位成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 导出excel文件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	@RequiresPermissions("constructionUnit:constructionUnit:export") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping("export") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public AjaxJson exportFile(ConstructionUnit constructionUnit, HttpServletRequest request, HttpServletResponse response) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String fileName = "施工单位"+DateUtils.getDate("yyyyMMddHHmmss")+".xlsx"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Page<ConstructionUnit> page = constructionUnitService.findPage(new Page<ConstructionUnit>(request, response, -1), constructionUnit); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    		new ExportExcel("施工单位", ConstructionExportUnit.class).setDataList(page.getList()).write(response, fileName).dispose(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    		return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return AjaxJson.error("导出施工单位记录失败!失败信息:"+e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 导入Excel数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	@RequiresPermissions("constructionUnit:constructionUnit:import") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping("import") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   	public AjaxJson importFile(@RequestParam("file")MultipartFile file,String yearOfEvaluation, HttpServletResponse response, HttpServletRequest request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			ImportExcel ei = new ImportExcel(file, 1, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			int lastDataRowNum = ei.getLastDataRowNum(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			List<ConstructionUnit> list = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			for (int i = 1; i < lastDataRowNum; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				ConstructionUnit constructionUnit = new ConstructionUnit(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				Row row = ei.getRow(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				String cellValue = (String) ei.getCellValue(row, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				constructionUnit.setUnitName(cellValue); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				list.add(constructionUnit); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//			list = ei.getDataList(ConstructionUnit.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (null != list && list.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				HashMap<String,String> StringMsg = constructionUnitService.insertList(list,yearOfEvaluation); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				String insertFlag = StringMsg.get("insertFlag"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				String builder = StringMsg.get("builder"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if ("true".equals(insertFlag)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					return AjaxJson.success(builder); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					return AjaxJson.error(builder); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				return AjaxJson.error("导入数据为空"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return AjaxJson.error("导入施工单位失败!失败信息:"+e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 下载导入施工单位数据模板 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	@RequiresPermissions("constructionUnit:constructionUnit:import") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping("import/template") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     public AjaxJson importFileTemplate(HttpServletResponse response) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String fileName = "施工单位数据导入模板.xlsx"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    		List<String> list = Lists.newArrayList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    		new ExportExcel("", ConstructionUnit.class, 2).setDataList(list).write(response, fileName).dispose(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    		return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return AjaxJson.error( "导入模板下载失败!失败信息:"+e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |