浏览代码

Merge remote-tracking branch 'origin/master'

shuzhan 2 年之前
父节点
当前提交
bb11b9a3bc

+ 4 - 0
common/src/main/java/com/jpsoft/employment/modules/base/entity/JobEnterpriseRelation.java

@@ -62,6 +62,10 @@ public class JobEnterpriseRelation {
 	@ApiModelProperty(value = "岗位信息ID")
 	private String recruitInformationId;
 
+
+	@ApiModelProperty(value = "是否已读")
+	private Boolean isRead;
+
 	@Transient
 	@ApiModelProperty(value = "岗位信息")
 	private RecruitInformationInfo recruitInformationInfo;

+ 3 - 0
common/src/main/java/com/jpsoft/employment/modules/base/entity/RecruitPersonRelation.java

@@ -48,6 +48,9 @@ public class RecruitPersonRelation {
 	@ApiModelProperty(value = "是否删除")
 	private Boolean delFlag;
 
+	@ApiModelProperty(value = "是否已读")
+	private Boolean isRead;
+
 
 	@Transient
 	@ApiModelProperty(value = "用工人员姓名")

+ 8 - 1
common/src/main/resources/mapper/base/JobEnterpriseRelation.xml

@@ -13,6 +13,8 @@
 			<result property="updateTime" column="update_time" />
 			<result property="delFlag" column="del_flag" />
 			<result property="recruitInformationId" column="recruit_information_id" />
+			<result property="isRead" column="is_read" />
+
 			</resultMap>
 	<insert id="insert" parameterType="com.jpsoft.employment.modules.base.entity.JobEnterpriseRelation">
 	<!--
@@ -22,7 +24,8 @@
 	-->
 	<![CDATA[
 		insert into base_job_enterprise_relation
-	    (id_,job_information_id,enterprise_id,create_by,create_time,update_by,update_time,del_flag,recruit_information_id)
+	    (id_,job_information_id,enterprise_id,create_by,
+	    create_time,update_by,update_time,del_flag,recruit_information_id,is_read)
 		values
 		(
 #{id,jdbcType=VARCHAR}
@@ -34,6 +37,7 @@
 ,#{updateTime,jdbcType= TIMESTAMP }
 ,#{delFlag,jdbcType= NUMERIC }
 ,#{recruitInformationId,jdbcType=VARCHAR}
+,#{isRead,jdbcType= NUMERIC }
 		)
 	]]>
 	</insert>
@@ -67,6 +71,9 @@
 			<if test="recruitInformationId!=null">
 				recruit_information_id=#{recruitInformationId,jdbcType=VARCHAR},
 			</if>
+			<if test="isRead!=null">
+				is_read=#{isRead,jdbcType= NUMERIC },
+			</if>
 		</set>
 	where id_=#{id}
 	</update>

+ 7 - 1
common/src/main/resources/mapper/base/RecruitPersonRelation.xml

@@ -13,6 +13,7 @@
 			<result property="updateTime" column="update_time" />
 			<result property="delFlag" column="del_flag" />
 			<result property="jobInformationId" column="job_information_id" />
+			<result property="isRead" column="is_read" />
 			</resultMap>
 	<insert id="insert"  parameterType="com.jpsoft.employment.modules.base.entity.RecruitPersonRelation">
 	<!--
@@ -22,7 +23,8 @@
 	-->
 	<![CDATA[
 		insert into base_recruit_person_relation
-	    (id_,work_person_id,recruit_information_id,create_by,create_time,update_by,update_time,del_flag,job_information_id)
+	    (id_,work_person_id,recruit_information_id,
+	    create_by,create_time,update_by,update_time,del_flag,job_information_id,is_read)
 		values
 		(
 #{id,jdbcType=VARCHAR}
@@ -34,6 +36,7 @@
 ,#{updateTime,jdbcType= TIMESTAMP }
 ,#{delFlag,jdbcType= NUMERIC }
 ,#{jobInformationId,jdbcType=VARCHAR}
+,#{isRead,jdbcType= NUMERIC }
 		)
 	]]>
 	</insert>
@@ -67,6 +70,9 @@
 			<if test="jobInformationId!=null">
 				job_information_id=#{jobInformationId,jdbcType=VARCHAR},
 			</if>
+			<if test="isRead!=null">
+				is_read=#{isRead,jdbcType= NUMERIC },
+			</if>
 		</set>
 	where id_=#{id}
 	</update>

+ 145 - 55
web/src/main/java/com/jpsoft/employment/modules/base/controller/EnterpriseInfoController.java

@@ -1,20 +1,31 @@
 package com.jpsoft.employment.modules.base.controller;
 
 import com.github.pagehelper.Page;
+import com.jpsoft.employment.config.OSSConfig;
 import com.jpsoft.employment.modules.common.dto.MessageResult;
+import com.jpsoft.employment.modules.common.utils.OSSUtil;
+import com.jpsoft.employment.modules.common.utils.POIUtils;
 import com.jpsoft.employment.modules.common.utils.PojoUtils;
 import com.jpsoft.employment.modules.common.dto.Sort;
 import com.jpsoft.employment.modules.base.entity.EnterpriseInfo;
 import com.jpsoft.employment.modules.base.service.EnterpriseInfoService;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.ibatis.mapping.ResultMap;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -25,11 +36,14 @@ public class EnterpriseInfoController {
 
     @Autowired
     private EnterpriseInfoService enterpriseInfoService;
-	
-	
-	@ApiOperation(value="创建空记录")
+
+    @Autowired
+    private OSSConfig ossConfig;
+
+
+    @ApiOperation(value = "创建空记录")
     @GetMapping("create")
-    public MessageResult<EnterpriseInfo> create(){
+    public MessageResult<EnterpriseInfo> create() {
         MessageResult<EnterpriseInfo> msgResult = new MessageResult<>();
 
         EnterpriseInfo enterpriseInfo = new EnterpriseInfo();
@@ -40,14 +54,14 @@ public class EnterpriseInfoController {
         return msgResult;
     }
 
-    @ApiOperation(value="添加信息")
+    @ApiOperation(value = "添加信息")
     @PostMapping("add")
-    public MessageResult<EnterpriseInfo> add(@RequestBody EnterpriseInfo enterpriseInfo,@RequestAttribute String subject){
+    public MessageResult<EnterpriseInfo> add(@RequestBody EnterpriseInfo enterpriseInfo, @RequestAttribute String subject) {
         MessageResult<EnterpriseInfo> msgResult = new MessageResult<>();
 
         try {
             enterpriseInfo.setId(UUID.randomUUID().toString());
-			enterpriseInfo.setDelFlag(false);
+            enterpriseInfo.setDelFlag(false);
             enterpriseInfo.setCreateBy(subject);
             enterpriseInfo.setCreateTime(new Date());
             enterpriseInfo.setStatus("0");
@@ -61,9 +75,8 @@ public class EnterpriseInfoController {
                 msgResult.setResult(false);
                 msgResult.setMessage("数据库添加失败");
             }
-        }
-        catch(Exception ex){
-            logger.error(ex.getMessage(),ex);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
 
             msgResult.setResult(false);
             msgResult.setMessage(ex.getMessage());
@@ -72,9 +85,9 @@ public class EnterpriseInfoController {
         return msgResult;
     }
 
-    @ApiOperation(value="获取信息")
+    @ApiOperation(value = "获取信息")
     @GetMapping("edit/{id}")
-    public MessageResult<EnterpriseInfo> edit(@PathVariable("id") String id){
+    public MessageResult<EnterpriseInfo> edit(@PathVariable("id") String id) {
         MessageResult<EnterpriseInfo> msgResult = new MessageResult<>();
 
         try {
@@ -87,9 +100,8 @@ public class EnterpriseInfoController {
                 msgResult.setResult(false);
                 msgResult.setMessage("数据库不存在该记录!");
             }
-        }
-        catch(Exception ex){
-            logger.error(ex.getMessage(),ex);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
 
             msgResult.setResult(false);
             msgResult.setMessage(ex.getMessage());
@@ -98,15 +110,15 @@ public class EnterpriseInfoController {
         return msgResult;
     }
 
-    @ApiOperation(value="更新用户")
+    @ApiOperation(value = "更新用户")
     @PostMapping("update")
-    public MessageResult<EnterpriseInfo> update(@RequestBody EnterpriseInfo enterpriseInfo,@RequestAttribute String subject){
+    public MessageResult<EnterpriseInfo> update(@RequestBody EnterpriseInfo enterpriseInfo, @RequestAttribute String subject) {
         MessageResult<EnterpriseInfo> msgResult = new MessageResult<>();
 
         try {
-		    enterpriseInfo.setUpdateBy(subject);
+            enterpriseInfo.setUpdateBy(subject);
             enterpriseInfo.setUpdateTime(new Date());
-		
+
             int affectCount = enterpriseInfoService.update(enterpriseInfo);
 
             if (affectCount > 0) {
@@ -116,9 +128,8 @@ public class EnterpriseInfoController {
                 msgResult.setResult(false);
                 msgResult.setMessage("数据库更新失败");
             }
-        }
-        catch(Exception ex){
-            logger.error(ex.getMessage(),ex);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
 
             msgResult.setResult(false);
             msgResult.setMessage(ex.getMessage());
@@ -127,19 +138,19 @@ public class EnterpriseInfoController {
         return msgResult;
     }
 
-    @ApiOperation(value="删除用户")
+    @ApiOperation(value = "删除用户")
     @PostMapping("delete/{id}")
-    public MessageResult<EnterpriseInfo> delete(@PathVariable("id") String id,@RequestAttribute String subject){
+    public MessageResult<EnterpriseInfo> delete(@PathVariable("id") String id, @RequestAttribute String subject) {
         MessageResult<EnterpriseInfo> msgResult = new MessageResult<>();
 
         try {
-			
-			EnterpriseInfo enterpriseInfo = enterpriseInfoService.get(id);
+
+            EnterpriseInfo enterpriseInfo = enterpriseInfoService.get(id);
             enterpriseInfo.setDelFlag(true);
             enterpriseInfo.setUpdateBy(subject);
             enterpriseInfo.setUpdateTime(new Date());
-			
-			int affectCount = enterpriseInfoService.update(enterpriseInfo);
+
+            int affectCount = enterpriseInfoService.update(enterpriseInfo);
 
             if (affectCount > 0) {
                 msgResult.setResult(true);
@@ -147,9 +158,8 @@ public class EnterpriseInfoController {
                 msgResult.setResult(false);
                 msgResult.setMessage("数据库删除失败");
             }
-        }
-        catch(Exception ex){
-            logger.error(ex.getMessage(),ex);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
 
             msgResult.setResult(false);
             msgResult.setMessage(ex.getMessage());
@@ -159,9 +169,9 @@ public class EnterpriseInfoController {
     }
 
 
-    @ApiOperation(value="批量删除")
+    @ApiOperation(value = "批量删除")
     @PostMapping("batchDelete")
-    public MessageResult<Integer> batchDelete(@RequestBody List<String> idList,@RequestAttribute String subject){
+    public MessageResult<Integer> batchDelete(@RequestBody List<String> idList, @RequestAttribute String subject) {
         MessageResult<Integer> msgResult = new MessageResult<>();
 
         try {
@@ -183,9 +193,8 @@ public class EnterpriseInfoController {
                 msgResult.setResult(false);
                 msgResult.setMessage("删除失败");
             }
-        }
-        catch(Exception ex){
-            logger.error(ex.getMessage(),ex);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
 
             msgResult.setResult(false);
             msgResult.setMessage(ex.getMessage());
@@ -194,31 +203,31 @@ public class EnterpriseInfoController {
         return msgResult;
     }
 
-    @ApiOperation(value="列表")
-    @RequestMapping(value = "pageList",method = RequestMethod.POST)
+    @ApiOperation(value = "列表")
+    @RequestMapping(value = "pageList", method = RequestMethod.POST)
     public MessageResult<Map> pageList(
             String name,
-            @RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
-            @RequestParam(value="pageSize",defaultValue="20") int pageSize,
-            HttpServletRequest request){
-        String subject = (String)request.getAttribute("subject");
+            @RequestParam(value = "pageIndex", defaultValue = "1") int pageIndex,
+            @RequestParam(value = "pageSize", defaultValue = "20") int pageSize,
+            HttpServletRequest request) {
+        String subject = (String) request.getAttribute("subject");
 
         //当前用户ID
         System.out.println(subject);
 
         MessageResult<Map> msgResult = new MessageResult<>();
 
-        Map<String,Object> searchParams = new HashMap<>();
+        Map<String, Object> searchParams = new HashMap<>();
 
         List<Sort> sortList = new ArrayList<>();
-        sortList.add(new Sort("create_time","desc"));
+        sortList.add(new Sort("create_time", "desc"));
 
         if (StringUtils.isNotEmpty(name)) {
-            searchParams.put("name","%" + name + "%");
+            searchParams.put("name", "%" + name + "%");
         }
 
 
-        Page<EnterpriseInfo> page = enterpriseInfoService.pageSearch(searchParams,pageIndex,pageSize,true,sortList);
+        Page<EnterpriseInfo> page = enterpriseInfoService.pageSearch(searchParams, pageIndex, pageSize, true, sortList);
 
 
         msgResult.setResult(true);
@@ -228,12 +237,11 @@ public class EnterpriseInfoController {
     }
 
 
-
-    @ApiOperation(value="列表")
-    @RequestMapping(value = "list",method = RequestMethod.POST)
+    @ApiOperation(value = "列表")
+    @RequestMapping(value = "list", method = RequestMethod.POST)
     public MessageResult<List<EnterpriseInfo>> list(
-            HttpServletRequest request){
-        String subject = (String)request.getAttribute("subject");
+            HttpServletRequest request) {
+        String subject = (String) request.getAttribute("subject");
 
         //当前用户ID
         System.out.println(subject);
@@ -249,9 +257,9 @@ public class EnterpriseInfoController {
     }
 
 
-    @ApiOperation(value="审核信息")
+    @ApiOperation(value = "审核信息")
     @PostMapping("check/{id}")
-    public MessageResult<EnterpriseInfo> check(@PathVariable("id") String id,@RequestAttribute String subject){
+    public MessageResult<EnterpriseInfo> check(@PathVariable("id") String id, @RequestAttribute String subject) {
         MessageResult<EnterpriseInfo> msgResult = new MessageResult<>();
 
         try {
@@ -269,9 +277,91 @@ public class EnterpriseInfoController {
                 msgResult.setResult(false);
                 msgResult.setMessage("数据库认证失败");
             }
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
         }
-        catch(Exception ex){
-            logger.error(ex.getMessage(),ex);
+
+        return msgResult;
+    }
+
+
+    @ApiOperation(value = "导入企业")
+    @PostMapping("importXls")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "uploadFile", value = "上传文件", required = true, paramType = "form", dataType = "__file")
+    })
+    public MessageResult<String> importXls(MultipartFile uploadFile, @RequestAttribute String subject) {
+        MessageResult<String> msgResult = new MessageResult<>();
+
+        try {
+            POIUtils poiUtils = new POIUtils(uploadFile.getInputStream());
+            int sheetIndex = 0;
+            Sheet sheet1 = poiUtils.getSheetAt(sheetIndex);
+
+            int affectCount = 0;
+            int failCount = 0;
+            int validateColIndex = 4;
+
+            int count = sheet1.getLastRowNum();
+
+            for (int rowIndex = 1; rowIndex <= count; rowIndex++) {
+                try {
+
+                    String name = poiUtils.getCellValue(sheetIndex, rowIndex, 0).toString().replace(" ", "");
+                    String address = poiUtils.getCellValue(sheetIndex, rowIndex, 1).toString().replace(" ", "");
+
+                    if (StringUtils.isEmpty(name)) {
+                        sheet1.getRow(rowIndex).createCell(validateColIndex).setCellValue("未填写企业名称!");
+                        failCount++;
+                        continue;
+                    }
+
+                    //企业
+                    EnterpriseInfo enterpriseInfo = new EnterpriseInfo();
+                    enterpriseInfo.setId(UUID.randomUUID().toString());
+                    enterpriseInfo.setName(name);
+                    enterpriseInfo.setAddress(address);
+                    enterpriseInfo.setStatus("0");
+                    enterpriseInfo.setCreateBy(subject);
+                    enterpriseInfo.setCreateTime(new Date());
+                    enterpriseInfo.setDelFlag(false);
+
+                    //保存新企业
+                    enterpriseInfoService.insert(enterpriseInfo);
+                    affectCount++;
+                } catch (Exception innerEx) {
+                    logger.error(innerEx.getMessage(), innerEx);
+                }
+            }
+
+            if (failCount > 0) {
+                //有导入失败的记录
+                msgResult.setResult(false);
+                msgResult.setMessage("数据成功导入" + affectCount + "条,有" + failCount + "条数据未导入成功,错误原因请查看报表。");
+
+                //todo 只保留错误数据的sheet
+                Workbook wb = poiUtils.exportErrorXls(sheetIndex, validateColIndex, 1 + affectCount + failCount);
+
+                //todo 将wb保存到oss
+                ByteArrayOutputStream output = new ByteArrayOutputStream();
+                wb.write(output);
+
+                byte[] buffer = output.toByteArray();
+                ByteArrayInputStream input = new ByteArrayInputStream(buffer);
+
+                String downloadUrl = OSSUtil.upload(ossConfig, "import", "error.xls", input);
+
+                //todo 返回导入失败报表下载链接
+                msgResult.setData(downloadUrl);
+            } else {
+                msgResult.setResult(true);
+                msgResult.setMessage("数据成功导入" + affectCount + "条");
+            }
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
 
             msgResult.setResult(false);
             msgResult.setMessage(ex.getMessage());

+ 5 - 48
web/src/main/java/com/jpsoft/employment/modules/base/controller/PersonInfoController.java

@@ -273,56 +273,22 @@ public class PersonInfoController {
             int sheetIndex = 0;
             Sheet sheet1 = poiUtils.getSheetAt(sheetIndex);
 
-            String[] colNames = new String[]{"用户名","真实姓名","联系电话","身份证号"};
-            Map<String,Integer> headerMap = new HashMap<>();
-
-            Row headerRow = sheet1.getRow(0);
-
-            for (int i=0;i<colNames.length;i++) {
-                String colName = colNames[i];
-
-                for (int j = 0; j < headerRow.getLastCellNum(); j++) {
-                    String title = headerRow.getCell(j).getStringCellValue();
-
-                    if (title.indexOf(colName)!=-1){
-                        headerMap.put(colName, j);
-                        break;
-                    }
-                }
-            }
-
             int affectCount = 0;
             int failCount = 0;
-            int validateColIndex = 4;
+            int validateColIndex = 5;
 
             int count = sheet1.getLastRowNum();
 
             for(int rowIndex=1 ; rowIndex<=count; rowIndex++){
                 try {
 
-                    String userName = "";
-
-                    if(headerMap.containsKey("用户名")) {
-                        userName = poiUtils.getCellValue(sheetIndex, rowIndex, headerMap.get("用户名")).toString().replace(" ", "");
-                    }
+                    String userName = poiUtils.getCellValue(sheetIndex, rowIndex, 0).toString().replace(" ", "");
 
-                    String realName = "";
+                    String realName = poiUtils.getCellValue(sheetIndex, rowIndex, 1).toString().replace(" ", "");
 
-                    if(headerMap.containsKey("真实姓名")) {
-                        realName = poiUtils.getCellValue(sheetIndex, rowIndex, headerMap.get("真实姓名")).toString().replace(" ", "");
-                    }
+                    String phone = poiUtils.getCellValue(sheetIndex, rowIndex, 2).toString().replace(" ", "");
 
-                    String phone = "";
-
-                    if(headerMap.containsKey("联系电话")) {
-                        phone = poiUtils.getCellValue(sheetIndex, rowIndex, headerMap.get("联系电话")).toString().replace(" ", "");
-                    }
-
-                    String idCard = "";
-
-                    if(headerMap.containsKey("身份证号")){
-                        idCard = poiUtils.getCellValue(sheetIndex,rowIndex,headerMap.get("身份证号")).toString().replace(" ","");
-                    }
+                    String idCard = poiUtils.getCellValue(sheetIndex,rowIndex,3).toString().replace(" ","");
 
 
                     if(StringUtils.isEmpty(userName)){
@@ -351,15 +317,6 @@ public class PersonInfoController {
                         continue;
                     }
 
-
-//                    String platform = "";
-//
-//                    if(StringUtils.isEmpty(platform)){
-//                        sheet1.getRow(rowIndex).createCell(validateColIndex).setCellValue("填写的平台在系统中不存在!");
-//                        failCount++;
-//                        continue;
-//                    }
-
                     //用户身份
                     PersonInfo personInfo = new PersonInfo();
                     personInfo.setId(UUID.randomUUID().toString());