From 059c6a5058295cd93741cf04c0a52a4a53e2c284 Mon Sep 17 00:00:00 2001
From: cuijian <cuijian@xalxzn.com>
Date: 星期一, 30 十月 2023 18:29:28 +0800
Subject: [PATCH] 操作证导入功能,创建工种表

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/OperationCertificateController.java |  176 +++++++++++++---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/Profession.java                         |  101 ++++++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/ProfessionMapper.xml                |    5 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IProfessionService.java                |   14 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/OperationCertificateImportVo.java           |   48 ++++
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java      |    2 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificate.java               |   10 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/ProfessionController.java           |  177 +++++++++++++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/ProfessionServiceImpl.java        |   19 +
 lxzn-boot-base-core/src/main/java/org/jeecg/common/util/ImportExcelUtil.java                       |   25 ++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/ProfessionMapper.java                   |   17 +
 11 files changed, 557 insertions(+), 37 deletions(-)

diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/ImportExcelUtil.java b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/ImportExcelUtil.java
index ead7ee6..66849a1 100644
--- a/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/ImportExcelUtil.java
+++ b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/ImportExcelUtil.java
@@ -39,6 +39,31 @@
         }
     }
 
+    public static Result<?> imporReturnOperationCertificate(int totalLines,int partSuccessLines,int errorLines,int successLines,List<String> errorMessage) throws IOException {
+        if (errorLines == 0 && partSuccessLines == 0) {
+            return Result.ok("鍏�" + successLines + "琛屾暟鎹叏閮ㄥ鍏ユ垚鍔燂紒");
+        } else {
+            JSONObject result = new JSONObject(5);
+            int totalCount = successLines + errorLines;
+            int fullSuccessLines = successLines - partSuccessLines;
+            result.put("totalCount", totalCount);
+            result.put("errorCount", errorLines);
+            result.put("fullSuccessLines", fullSuccessLines);
+            result.put("totalLines",totalLines);
+            result.put("partSuccessLines",partSuccessLines);
+            result.put("msg", "鎬讳笂浼犺鏁帮細" + totalLines + "锛屽畬鍏ㄥ鍏ユ垚鍔熻鏁帮細" + fullSuccessLines + "锛岄儴鍒嗗鍏ユ垚鍔熻鏁帮細"+partSuccessLines+"锛屽鍏ュけ璐ヨ鏁帮細" + errorLines);
+            String fileUrl = PmsUtil.saveErrorTxtByList(errorMessage, "userImportExcelErrorLog");
+            int lastIndex = fileUrl.lastIndexOf(File.separator);
+            String fileName = fileUrl.substring(lastIndex + 1);
+            result.put("fileUrl", "/sys/common/static/" + fileUrl);
+            result.put("fileName", fileName);
+            Result res = Result.ok(result);
+            res.setCode(201);
+            res.setMessage("鏂囦欢瀵煎叆鎴愬姛锛屼絾鏈夐敊璇��");
+            return res;
+        }
+    }
+
     public static List<String> importDateSave(List<?> list, Class serviceClass, List<String> errorMessage, String errorFlag)  {
         IService bean =(IService) SpringContextUtils.getBean(serviceClass);
         for (int i = 0; i < list.size(); i++) {
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/OperationCertificateController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/OperationCertificateController.java
index a7628da..8b4c619 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/OperationCertificateController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/OperationCertificateController.java
@@ -3,6 +3,7 @@
 import java.io.UnsupportedEncodingException;
 import java.io.IOException;
 import java.net.URLDecoder;
+import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -10,9 +11,20 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import org.apache.poi.hssf.usermodel.HSSFDateUtil;
+import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.util.DateUtils;
-import org.jeecg.modules.eam.entity.OperationCertificateApplyDetail;
-import org.jeecg.modules.eam.service.IdentityService;
+import org.jeecg.common.util.ImportExcelUtil;
+import org.jeecg.modules.eam.entity.*;
+import org.jeecg.modules.eam.service.*;
+import org.jeecg.modules.eam.vo.OperationCertificateImportVo;
+import org.jeecg.modules.system.entity.SysDict;
+import org.jeecg.modules.system.entity.SysDictItem;
+import org.jeecg.modules.system.entity.SysUser;
+import org.jeecg.modules.system.service.ISysDictItemService;
+import org.jeecg.modules.system.service.ISysDictService;
+import org.jeecg.modules.system.service.ISysUserService;
 import org.jeecg.modules.system.service.SysIdentityService;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
@@ -24,11 +36,7 @@
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.util.oConvertUtils;
-import org.jeecg.modules.eam.entity.OperationCertificateDetail;
-import org.jeecg.modules.eam.entity.OperationCertificate;
 import org.jeecg.modules.eam.vo.OperationCertificatePage;
-import org.jeecg.modules.eam.service.IOperationCertificateService;
-import org.jeecg.modules.eam.service.IOperationCertificateDetailService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -62,6 +70,16 @@
 
 	 @Autowired
 	 private IdentityService identityService;
+	 @Autowired
+	 private ISysUserService userService;
+	 @Autowired
+	 private IEamEquipmentService equipmentService;
+	 @Autowired
+	 private IProfessionService professionService;
+	 @Autowired
+	 private ISysDictService sysDictService;
+	 @Autowired
+	 private ISysDictItemService sysDictItemService;
 	
 	/**
 	 * 鍒嗛〉鍒楄〃鏌ヨ
@@ -259,37 +277,121 @@
     */
     //@RequiresPermissions("org.jeecg.modules.mdc:mom_eam_operation_certificate:importExcel")
     @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-      MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
-      Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
-      for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
-          // 鑾峰彇涓婁紶鏂囦欢瀵硅薄
-          MultipartFile file = entity.getValue();
-          ImportParams params = new ImportParams();
-          params.setTitleRows(2);
-          params.setHeadRows(1);
-          params.setNeedSave(true);
-          try {
-              List<OperationCertificatePage> list = ExcelImportUtil.importExcel(file.getInputStream(), OperationCertificatePage.class, params);
-              for (OperationCertificatePage page : list) {
-                  OperationCertificate po = new OperationCertificate();
-                  BeanUtils.copyProperties(page, po);
-                  operationCertificateService.saveMain(po, page.getOperationCertificateDetailList());
-              }
-              return Result.OK("鏂囦欢瀵煎叆鎴愬姛锛佹暟鎹鏁�:" + list.size());
-          } catch (Exception e) {
-              log.error(e.getMessage(),e);
-              return Result.error("鏂囦欢瀵煎叆澶辫触:"+e.getMessage());
-          } finally {
-              try {
-                  file.getInputStream().close();
-              } catch (IOException e) {
-                  e.printStackTrace();
-              }
-          }
-      }
-      return Result.OK("鏂囦欢瀵煎叆澶辫触锛�");
-    }
+	public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) throws IOException  {
+		MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+		Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+		// 閿欒淇℃伅
+		List<String> errorMessage = new ArrayList<>();
+		int successLines = 0, errorLines = 0,totalLines = 0,partSuccessLines = 0;
+		for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+			// 鑾峰彇涓婁紶鏂囦欢瀵硅薄
+			MultipartFile file = entity.getValue();
+			ImportParams params = new ImportParams();
+			params.setNeedSave(true);
+			try {
+					List<OperationCertificateImportVo> list = ExcelImportUtil.importExcel(file.getInputStream(), OperationCertificateImportVo.class, params);
+					totalLines = list.size();
+					for (int i = 0; i < list.size(); i++) {
+					OperationCertificateImportVo operationCertificateImportVo = list.get(i);
+					OperationCertificate operationCertificate = new OperationCertificate();
+					operationCertificate.setNum(identityService.getNumByTypeAndLength("OperationCertificate",4));
+					//鏍规嵁浜哄憳濮撳悕鏌ヨ浜哄憳id
+					List<SysUser> userList = userService.lambdaQuery().eq(SysUser::getRealname,operationCertificateImportVo.getName().trim())
+							.eq(SysUser::getWorkNo,operationCertificateImportVo.getWorkNo().trim()).eq(SysUser::getDelFlag, CommonConstant.DEL_FLAG_0).list();
+					if(CollectionUtils.isEmpty(userList)){
+						errorMessage.add("绗�" + (i + 1) + "琛屽鍏ュけ璐�,鍘熷洜:浜哄憳涓嶅瓨鍦ㄦ垨宸ヤ綔璇佸彿涓庝汉鍛樺鍚嶄笉鍖归厤,璇峰厛缁存姢浜哄憳淇℃伅;");
+						errorLines++;
+						continue;
+					}else{
+						operationCertificate.setUserId(userList.get(0).getUsername());
+					}
+					//宸ョ鏌ヨ
+					Profession profession = professionService.lambdaQuery().eq(Profession::getName,operationCertificateImportVo.getProfession().trim()).eq(Profession::getDelFlag,CommonConstant.DEL_FLAG_0).one();
+					if(profession == null){
+						Profession profession1 = new Profession();
+						profession1.setNum(identityService.getNumByTypeAndLength("Profession",4));
+						profession1.setName(operationCertificateImportVo.getProfession().trim());
+						professionService.save(profession1);
+						operationCertificate.setProfession(profession1.getId());
+					}else {
+						operationCertificate.setProfession(profession.getId());
+					}
+					//鎶�鑳界瓑绾у垽鏂�
+					if(CollectionUtils.isEmpty(sysDictItemService.lambdaQuery().eq(SysDictItem::getDictId,sysDictService.lambdaQuery().eq(SysDict::getDictCode,"technical_level").one().getId()).eq(SysDictItem::getItemText,operationCertificateImportVo.getTechnicalLevel().trim()).list())){
+						errorMessage.add("绗�" + (i + 1) + "琛屽鍏ュけ璐�,鍘熷洜:鎶�鑳界瓑绾т笉瀛樺湪,璇峰厛缁存姢鎶�鑳界瓑绾�;");
+						errorLines++;
+						continue;
+					}else{
+						operationCertificate.setTechnicalLevel(sysDictItemService.lambdaQuery().eq(SysDictItem::getDictId,sysDictService.lambdaQuery().eq(SysDict::getDictCode,"technical_level").one().getId()).eq(SysDictItem::getItemText,operationCertificateImportVo.getTechnicalLevel().trim()).one().getItemValue());
+					}
+					SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+					operationCertificate.setIssueDate(operationCertificateImportVo.getIssueDate());
+					operationCertificate.setStartTime(operationCertificateImportVo.getIssueDate());
+					Date currentDate = operationCertificateImportVo.getIssueDate();
+					Calendar c = Calendar.getInstance();
+					c.setTime(currentDate);
+					c.add(Calendar.YEAR, 1);
+					currentDate = c.getTime();
+					operationCertificate.setEndTime(currentDate);
+					operationCertificate.setCurrentCycleScore(12);
+					operationCertificate.setRemark(operationCertificateImportVo.getRemark());
+					List<String> equipments  = Arrays.asList(operationCertificateImportVo.getEquipmentNum().split("/"));
+					List<String> equipmentIds = new ArrayList<>();
+					int a = 0;
+					for(int j = 0; j<equipments.size();j++){
+						List<Equipment> equipmentList = equipmentService.lambdaQuery().eq(Equipment::getNum,equipments.get(j)).eq(Equipment::getDelFlag,CommonConstant.DEL_FLAG_0).list();
+						if(CollectionUtils.isNotEmpty(equipmentList)){
+							equipmentIds.add(equipmentList.get(0).getId());
+						}else {
+							errorMessage.add("绗�" + (i + 1) + "琛岀粺涓�缂栧彿涓�"+equipments.get(j)+"鐨勮澶囧鍏ュけ璐�,鍘熷洜:璁惧鍙拌处涓笉瀛樺湪璇ヨ澶�,璇峰厛缁存姢璁惧淇℃伅;");
+							a++;
+							continue;
+						}
+					}
+					if(a == equipments.size()){
+						errorLines++;
+						a = 0;
+						continue;
+					}else if(a > 0 && a < equipments.size()){
+						partSuccessLines++;
+						a = 0;
+					}
+					if(CollectionUtils.isEmpty(equipmentIds)){
+						errorMessage.add("绗�" + (i + 1) + "琛屽鍏ュけ璐�,鍘熷洜:璁惧涓嶅瓨鍦�,璇峰厛缁存姢璁惧淇℃伅;");
+						errorLines++;
+						continue;
+					}else{
+						operationCertificate.setEquipmentIds(equipmentIds.stream().map(String::toString).collect(Collectors.joining(",")));
+					}
+					operationCertificate.setStatus("1");
+					//鏌ヨ褰撳墠浜哄憳鏄惁宸叉湁鎿嶄綔璇�
+					List<OperationCertificate> operationCertificateList = operationCertificateService.lambdaQuery().eq(OperationCertificate::getUserId,userList.get(0).getUsername()).eq(OperationCertificate::getDelFlag,CommonConstant.DEL_FLAG_0).list();
+					if(CollectionUtils.isEmpty(operationCertificateList)){
+						operationCertificateService.save(operationCertificate);
+					}else {
+						//灏嗚澶囧鍔犲埌鎿嶄綔璇�
+						String newEquipmentIds = operationCertificateList.get(0).getEquipmentIds().concat(",").concat(operationCertificate.getEquipmentIds());
+						operationCertificate.setId(operationCertificateList.get(0).getId());
+						HashSet<String> set = new HashSet<String>(Arrays.asList(newEquipmentIds.split(",")));
+						operationCertificate.setEquipmentIds(set.stream().collect(Collectors.joining(",")));
+						operationCertificateService.updateById(operationCertificate);
+					}
+					successLines++;
+				}
+			} catch (Exception e) {
+				errorMessage.add("鍙戠敓寮傚父锛�" + e.getMessage());
+				log.error(e.getMessage(), e);
+				return (Result<?>) errorMessage;
+			} finally {
+				try {
+					file.getInputStream().close();
+				} catch (IOException e) {
+					log.error(e.getMessage(), e);
+				}
+			}
+		}
+		return ImportExcelUtil.imporReturnOperationCertificate(totalLines,partSuccessLines,errorLines, successLines, errorMessage);
+	}
 	 /**
 	  * 閫氳繃涓昏〃ID鏌ヨ
 	  * @return
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/ProfessionController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/ProfessionController.java
new file mode 100644
index 0000000..8b78784
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/ProfessionController.java
@@ -0,0 +1,177 @@
+package org.jeecg.modules.eam.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.eam.entity.Profession;
+import org.jeecg.modules.eam.service.IProfessionService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+
+ /**
+ * @Description: mom_eam_profession
+ * @Author: jeecg-boot
+ * @Date:   2023-10-30
+ * @Version: V1.0
+ */
+@Api(tags="mom_eam_profession")
+@RestController
+@RequestMapping("/eam/profession")
+@Slf4j
+public class ProfessionController extends JeecgController<Profession, IProfessionService> {
+	@Autowired
+	private IProfessionService professionService;
+	
+	/**
+	 * 鍒嗛〉鍒楄〃鏌ヨ
+	 *
+	 * @param profession
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "mom_eam_profession-鍒嗛〉鍒楄〃鏌ヨ")
+	@ApiOperation(value="mom_eam_profession-鍒嗛〉鍒楄〃鏌ヨ", notes="mom_eam_profession-鍒嗛〉鍒楄〃鏌ヨ")
+	@GetMapping(value = "/list")
+	public Result<IPage<Profession>> queryPageList(Profession profession,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<Profession> queryWrapper = QueryGenerator.initQueryWrapper(profession, req.getParameterMap());
+		Page<Profession> page = new Page<Profession>(pageNo, pageSize);
+		IPage<Profession> pageList = professionService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   娣诲姞
+	 *
+	 * @param profession
+	 * @return
+	 */
+	@AutoLog(value = "mom_eam_profession-娣诲姞")
+	@ApiOperation(value="mom_eam_profession-娣诲姞", notes="mom_eam_profession-娣诲姞")
+	//@RequiresPermissions("org.jeecg.modules.mdc:mom_eam_profession:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody Profession profession) {
+		professionService.save(profession);
+		return Result.OK("娣诲姞鎴愬姛锛�");
+	}
+	
+	/**
+	 *  缂栬緫
+	 *
+	 * @param profession
+	 * @return
+	 */
+	@AutoLog(value = "mom_eam_profession-缂栬緫")
+	@ApiOperation(value="mom_eam_profession-缂栬緫", notes="mom_eam_profession-缂栬緫")
+	//@RequiresPermissions("org.jeecg.modules.mdc:mom_eam_profession:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody Profession profession) {
+		professionService.updateById(profession);
+		return Result.OK("缂栬緫鎴愬姛!");
+	}
+	
+	/**
+	 *   閫氳繃id鍒犻櫎
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "mom_eam_profession-閫氳繃id鍒犻櫎")
+	@ApiOperation(value="mom_eam_profession-閫氳繃id鍒犻櫎", notes="mom_eam_profession-閫氳繃id鍒犻櫎")
+	//@RequiresPermissions("org.jeecg.modules.mdc:mom_eam_profession:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		professionService.removeById(id);
+		return Result.OK("鍒犻櫎鎴愬姛!");
+	}
+	
+	/**
+	 *  鎵归噺鍒犻櫎
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "mom_eam_profession-鎵归噺鍒犻櫎")
+	@ApiOperation(value="mom_eam_profession-鎵归噺鍒犻櫎", notes="mom_eam_profession-鎵归噺鍒犻櫎")
+	//@RequiresPermissions("org.jeecg.modules.mdc:mom_eam_profession:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.professionService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
+	}
+	
+	/**
+	 * 閫氳繃id鏌ヨ
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "mom_eam_profession-閫氳繃id鏌ヨ")
+	@ApiOperation(value="mom_eam_profession-閫氳繃id鏌ヨ", notes="mom_eam_profession-閫氳繃id鏌ヨ")
+	@GetMapping(value = "/queryById")
+	public Result<Profession> queryById(@RequestParam(name="id",required=true) String id) {
+		Profession profession = professionService.getById(id);
+		if(profession==null) {
+			return Result.error("鏈壘鍒板搴旀暟鎹�");
+		}
+		return Result.OK(profession);
+	}
+
+    /**
+    * 瀵煎嚭excel
+    *
+    * @param request
+    * @param profession
+    */
+    //@RequiresPermissions("org.jeecg.modules.mdc:mom_eam_profession:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, Profession profession) {
+        return super.exportXls(request, profession, Profession.class, "mom_eam_profession");
+    }
+
+    /**
+      * 閫氳繃excel瀵煎叆鏁版嵁
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("mom_eam_profession:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, Profession.class);
+    }
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificate.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificate.java
index b1f80de..ae73112 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificate.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificate.java
@@ -109,4 +109,14 @@
 	@Excel(name = "灞炴�у瓧娈�5", width = 15)
     @ApiModelProperty(value = "灞炴�у瓧娈�5")
     private String uda5;
+
+    /**宸ョ*/
+    @Excel(name = "宸ョ", width = 15)
+    @ApiModelProperty(value = "宸ョ")
+    private String profession;
+
+    /**鎶�鑳界瓑绾�*/
+    @Excel(name = "鎶�鑳界瓑绾�", width = 15)
+    @ApiModelProperty(value = "鎶�鑳界瓑绾�")
+    private String technicalLevel;
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/Profession.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/Profession.java
new file mode 100644
index 0000000..0985ce9
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/Profession.java
@@ -0,0 +1,101 @@
+package org.jeecg.modules.eam.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.jeecg.common.constant.CommonConstant;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: mom_eam_profession
+ * @Author: jeecg-boot
+ * @Date:   2023-10-30
+ * @Version: V1.0
+ */
+@Data
+@TableName("mom_eam_profession")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="mom_eam_profession瀵硅薄", description="mom_eam_profession")
+public class Profession implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**id*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "id")
+    private String id;
+	/**num*/
+	@Excel(name = "num", width = 15)
+    @ApiModelProperty(value = "num")
+    private String num;
+	/**name*/
+	@Excel(name = "name", width = 15)
+    @ApiModelProperty(value = "name")
+    private String name;
+	/**remark*/
+	@Excel(name = "remark", width = 15)
+    @ApiModelProperty(value = "remark")
+    private String remark;
+	/**createBy*/
+    @ApiModelProperty(value = "createBy")
+    private String createBy;
+	/**createTime*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "createTime")
+    private Date createTime;
+	/**updateBy*/
+    @ApiModelProperty(value = "updateBy")
+    private String updateBy;
+	/**updateTime*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "updateTime")
+    private Date updateTime;
+	/**tenantId*/
+	@Excel(name = "tenantId", width = 15)
+    @ApiModelProperty(value = "tenantId")
+    private String tenantId;
+	/**delFlag*/
+	@Excel(name = "delFlag", width = 15)
+    @ApiModelProperty(value = "delFlag")
+    @TableLogic
+    private Integer delFlag = CommonConstant.DEL_FLAG_0;
+	/**status*/
+	@Excel(name = "status", width = 15)
+    @ApiModelProperty(value = "status")
+    private String status;
+	/**uda1*/
+	@Excel(name = "uda1", width = 15)
+    @ApiModelProperty(value = "uda1")
+    private String uda1;
+	/**uda2*/
+	@Excel(name = "uda2", width = 15)
+    @ApiModelProperty(value = "uda2")
+    private String uda2;
+	/**uda3*/
+	@Excel(name = "uda3", width = 15)
+    @ApiModelProperty(value = "uda3")
+    private String uda3;
+	/**uda4*/
+	@Excel(name = "uda4", width = 15)
+    @ApiModelProperty(value = "uda4")
+    private String uda4;
+	/**uda5*/
+	@Excel(name = "uda5", width = 15)
+    @ApiModelProperty(value = "uda5")
+    private String uda5;
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/ProfessionMapper.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/ProfessionMapper.java
new file mode 100644
index 0000000..1e8dffd
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/ProfessionMapper.java
@@ -0,0 +1,17 @@
+package org.jeecg.modules.eam.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.eam.entity.Profession;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: mom_eam_profession
+ * @Author: jeecg-boot
+ * @Date:   2023-10-30
+ * @Version: V1.0
+ */
+public interface ProfessionMapper extends BaseMapper<Profession> {
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/ProfessionMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/ProfessionMapper.xml
new file mode 100644
index 0000000..dc9255f
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/ProfessionMapper.xml
@@ -0,0 +1,5 @@
+<?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="org.jeecg.modules.eam.mapper.ProfessionMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IProfessionService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IProfessionService.java
new file mode 100644
index 0000000..e924aef
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IProfessionService.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.eam.service;
+
+import org.jeecg.modules.eam.entity.Profession;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: mom_eam_profession
+ * @Author: jeecg-boot
+ * @Date:   2023-10-30
+ * @Version: V1.0
+ */
+public interface IProfessionService extends IService<Profession> {
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/ProfessionServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/ProfessionServiceImpl.java
new file mode 100644
index 0000000..e5e8366
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/ProfessionServiceImpl.java
@@ -0,0 +1,19 @@
+package org.jeecg.modules.eam.service.impl;
+
+import org.jeecg.modules.eam.entity.Profession;
+import org.jeecg.modules.eam.mapper.ProfessionMapper;
+import org.jeecg.modules.eam.service.IProfessionService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: mom_eam_profession
+ * @Author: jeecg-boot
+ * @Date:   2023-10-30
+ * @Version: V1.0
+ */
+@Service
+public class ProfessionServiceImpl extends ServiceImpl<ProfessionMapper, Profession> implements IProfessionService {
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/OperationCertificateImportVo.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/OperationCertificateImportVo.java
new file mode 100644
index 0000000..7d76e4c
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/OperationCertificateImportVo.java
@@ -0,0 +1,48 @@
+package org.jeecg.modules.eam.vo;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+@Data
+@Accessors(chain = true)
+public class OperationCertificateImportVo {
+
+    @Excel(name= "濮撳悕")
+    private String name;
+
+    @Excel(name="鎬у埆")
+    private String sex;
+
+    @Excel(name = "宸ョ")
+    private String profession;
+
+    @Excel(name = "鎶�鑳界瓑绾�")
+    private String technicalLevel;
+
+    @Excel(name = "宸ヤ綔璇佸彿")
+    private String workNo;
+
+    @Excel(name = "涓婂矖璇佸彿")
+    private String appointmentCardNum;
+
+    @Excel(name = "缁熶竴缂栧彿")
+    private String equipmentNum;
+
+    @Excel(name = "璁惧鍚嶇О")
+    private String equipmentName;
+
+    @Excel(name = "璁惧鍨嬪彿")
+    private String equipmentModel;
+
+    @Excel(name = "鍙戣瘉鏃ユ湡")
+    private Date issueDate;
+
+    @Excel(name = "澶囨敞")
+    private String remark;
+
+}
diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java
index 35eea80..d5ac493 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java
@@ -197,4 +197,6 @@
     private String homePath;
     @Dict(dicCode = "id",dictTable = "mom_base_team",dicText = "name")
     private String teamId;
+
+
 }

--
Gitblit v1.9.3