Forráskód Böngészése

Merge remote-tracking branch 'origin/V1' into V1

yanliming 5 éve
szülő
commit
6ecfbc0d46

+ 6 - 0
common/src/main/java/com/jpsoft/smart/modules/base/dto/CompanyInfoDTO.java

@@ -46,4 +46,10 @@ public class CompanyInfoDTO {
     private String position4Name;
     @ApiModelProperty(value = "位置5")
     private String position5Name;
+    @ApiModelProperty(value = "上级公司")
+    private String parentId;
+    @ApiModelProperty(value = "上级公司名称")
+    private String parentName;
+    @ApiModelProperty(value = "企业编码")
+    private String code;
 }

+ 1 - 1
common/src/main/java/com/jpsoft/smart/modules/base/dto/PersonInfoDTO.java

@@ -62,7 +62,7 @@ public class PersonInfoDTO {
     @ApiModelProperty(value = "人脸相片地址")
     private String faceImageUrl;
     @ApiModelProperty(value="权限(1-个人用户,2-企业管理员)")
-    private Integer popedom;
+    private String popedom;
     @ApiModelProperty(value="设备")
     private String deviceName;
 }

+ 111 - 88
web/src/main/java/com/jpsoft/smart/modules/base/controller/PersonInfoController.java

@@ -82,9 +82,15 @@ public class PersonInfoController {
         MessageResult<PersonInfo> msgResult = new MessageResult<>();
 
         try {
-            personInfo.setName(personInfo.getName().replace(" ",""));
-            personInfo.setPhone(personInfo.getPhone().replace(" ",""));
-            personInfo.setIdCard(personInfo.getIdCard().replace(" ",""));
+            if(personInfo.getName()!= null) {
+                personInfo.setName(personInfo.getName().replace(" ", ""));
+            }
+            if(personInfo.getPhone()!= null) {
+                personInfo.setPhone(personInfo.getPhone().replace(" ", ""));
+            }
+            if(personInfo.getIdCard()!= null) {
+                personInfo.setIdCard(personInfo.getIdCard().replace(" ", ""));
+            }
 
             Map<String, Object> searchParams = new HashMap<>();
             searchParams.put("companyId", personInfo.getCompanyId());
@@ -264,8 +270,8 @@ public class PersonInfoController {
 
 	@ApiOperation(value="删除")
     @PostMapping("delete/{id}")
-    public MessageResult<Integer> delete(@PathVariable("id") Long id,@RequestAttribute String subject){
-        MessageResult<Integer> msgResult = new MessageResult<>();
+    public MessageResult<Boolean> delete(@PathVariable("id") Long id,@RequestAttribute String subject){
+        MessageResult<Boolean> msgResult = new MessageResult<>();
 
         try {
             PersonInfo personInfo = personInfoService.get(id);
@@ -277,11 +283,21 @@ public class PersonInfoController {
 
             int affectCount = personInfoService.update(personInfo);
 
-            deleteDevicePerson(id);
+            HSSFWorkbook workbook = new HSSFWorkbook();
+            HSSFSheet sheet = workbook.createSheet();
+            if(!deleteDevicePerson(id, sheet)){
+                ByteArrayOutputStream output = new ByteArrayOutputStream();
+                workbook.write(output);
+                byte[] buffer = output.toByteArray();
+                ByteArrayInputStream input = new ByteArrayInputStream(buffer);
+                String downloadUrl = OSSUtil.upload(ossConfig,"import","error.xls",input);
+
+                msgResult.setData(false);
+                msgResult.setMessage(downloadUrl);
+            }
 
             if (affectCount > 0) {
                 msgResult.setResult(true);
-                msgResult.setData(affectCount);
             } else {
                 msgResult.setResult(false);
                 msgResult.setMessage("删除失败");
@@ -299,8 +315,12 @@ public class PersonInfoController {
 
     @ApiOperation(value="批量删除")
     @PostMapping("batchDelete")
-    public MessageResult<Integer> batchDelete(@RequestBody List<Long> idList,@RequestAttribute String subject){
-        MessageResult<Integer> msgResult = new MessageResult<>();
+    public MessageResult<Boolean> batchDelete(@RequestBody List<Long> idList,@RequestAttribute String subject){
+        MessageResult<Boolean> msgResult = new MessageResult<>();
+        msgResult.setData(true);
+
+        HSSFWorkbook workbook = new HSSFWorkbook();
+        HSSFSheet sheet = workbook.createSheet();
 
         try {
             int affectCount = 0;
@@ -325,7 +345,9 @@ public class PersonInfoController {
                     }
                     cachedThreadPool.execute(new Runnable() {
                         public void run() {
-                            deleteDevicePerson(id);
+                            if(!deleteDevicePerson(id, sheet)){
+                                msgResult.setData(false);
+                            }
                         }
                     });
                 }
@@ -333,7 +355,15 @@ public class PersonInfoController {
 
             if (affectCount > 0) {
                 msgResult.setResult(true);
-                msgResult.setData(affectCount);
+                if(!msgResult.getData()) {
+                    ByteArrayOutputStream output = new ByteArrayOutputStream();
+                    workbook.write(output);
+                    byte[] buffer = output.toByteArray();
+                    ByteArrayInputStream input = new ByteArrayInputStream(buffer);
+                    String downloadUrl = OSSUtil.upload(ossConfig,"import","error.xls",input);
+
+                    msgResult.setMessage(downloadUrl);
+                }
             } else {
                 msgResult.setResult(false);
                 msgResult.setMessage("删除失败");
@@ -463,8 +493,11 @@ public class PersonInfoController {
     @ApiImplicitParams({
             @ApiImplicitParam(name = "id",value = "人员编号", required = false, paramType = "form",dataType = "String")
     })
-    public MessageResult<PersonInfo> enabledFace(@RequestParam(value="id",defaultValue="") Long id,@RequestAttribute String subject){
-        MessageResult<PersonInfo> msgResult = new MessageResult<>();
+    public MessageResult<Boolean> enabledFace(@RequestParam(value="id",defaultValue="") Long id,@RequestAttribute String subject){
+        HSSFWorkbook workbook = new HSSFWorkbook();
+        HSSFSheet sheet = workbook.createSheet();
+        MessageResult<Boolean> msgResult = new MessageResult<>();
+        msgResult.setData(true);
 
         try {
             PersonInfo personInfo = personInfoService.get(id);
@@ -474,7 +507,9 @@ public class PersonInfoController {
                     throw new Exception("人员信息不存在!");
                 }
 
-                deleteDevicePerson(id);
+                if(!deleteDevicePerson(id, sheet)){
+                    msgResult.setData(false);
+                }
 
                 personInfo.setFaceBound(false);
                 personInfo.setUpdateTime(new Date());
@@ -489,7 +524,15 @@ public class PersonInfoController {
 
             if (affectCount > 0) {
                 msgResult.setResult(true);
-                msgResult.setData(personInfo);
+                if(!msgResult.getData()){
+                    ByteArrayOutputStream output = new ByteArrayOutputStream();
+                    workbook.write(output);
+                    byte[] buffer = output.toByteArray();
+                    ByteArrayInputStream input = new ByteArrayInputStream(buffer);
+                    String downloadUrl = OSSUtil.upload(ossConfig,"import","error.xls",input);
+
+                    msgResult.setMessage(downloadUrl);
+                }
             }else{
                 msgResult.setResult(false);
                 msgResult.setMessage("数据库保存失败");
@@ -968,11 +1011,15 @@ public class PersonInfoController {
 
     @ApiOperation(value="数据同步")
     @PostMapping("dataSync")
-    public MessageResult<String> dataSync(@RequestBody List<String> ids){
-        MessageResult<String> msgResult = new MessageResult<>();
+    public MessageResult<Boolean> dataSync(@RequestBody List<String> ids){
+        MessageResult<Boolean> msgResult = new MessageResult<>();
+        msgResult.setData(true);
         msgResult.setResult(true);
 
         try {
+            HSSFWorkbook workbook = new HSSFWorkbook();
+            HSSFSheet sheet = workbook.createSheet();
+
             for(String id : ids){
                 PersonInfo personInfo = personInfoService.get(Long.valueOf(id));
 
@@ -980,37 +1027,25 @@ public class PersonInfoController {
                     throw new Exception("人员信息不存在!");
                 }
 
-                //todo 同步终端
-                boolean success = true;
-                StringBuilder sb = new StringBuilder();
-                List<LapiMsgResult> msgResultList = lapiService.addPerson(Long.valueOf(id));
-                for(int i=0;i<msgResultList.size();i++) {
-                    LapiMsgResult lapiMsgResult = msgResultList.get(i);
-
-                    if (lapiMsgResult.isSuccess()){
-//                        sb.append("【" + personInfo.getName() + "】" + lapiMsgResult.getAliasName() + "绑定人脸信息成功!");
-                    }
-                    else{
-                        sb.append("【" + personInfo.getName() + "】" + lapiMsgResult.getAliasName() + "绑定人脸信息失败!" + lapiMsgResult.getMsg());
-                        msgResult.setResult(false);
-                    }
-
-                    if (i!=msgResultList.size()-1){
-                        sb.append(",");
-                    }
-                    else{
-                        sb.append("。");
-                    }
-
-                    success &= lapiMsgResult.isSuccess();
+                if(!addDevicePerson(Long.valueOf(id), sheet)){
+                    msgResult.setData(false);
+                    personInfo.setFaceBound(false);
+                }else {
+                    personInfo.setFaceBound(true);
                 }
-
-                personInfo.setFaceBound(success);
-                personInfo.setFaceEnabled(success);
+                personInfo.setFaceEnabled(true);
                 personInfo.setUpdateTime(new Date());
                 personInfoService.update(personInfo);
+            }
 
-                msgResult.setMessage(sb.toString());
+            if(!msgResult.getData()){
+                ByteArrayOutputStream output = new ByteArrayOutputStream();
+                workbook.write(output);
+                byte[] buffer = output.toByteArray();
+                ByteArrayInputStream input = new ByteArrayInputStream(buffer);
+                String downloadUrl = OSSUtil.upload(ossConfig,"import","error.xls",input);
+
+                msgResult.setMessage(downloadUrl);
             }
         }
         catch(Exception ex){
@@ -1024,80 +1059,68 @@ public class PersonInfoController {
     }
 
     @ApiOperation(value="删除设备人员图片")
-    private MessageResult deleteDevicePerson(Long  personId){
-        MessageResult msgResult = new MessageResult();
-        boolean success = true;
+    private Boolean deleteDevicePerson(Long  personId, HSSFSheet sheet){
+        boolean bl = true;
 
         try {
             PersonInfo personInfo = personInfoService.get(personId);
 
-            StringBuilder sb = new StringBuilder();
             List<LapiMsgResult> msgResultList = lapiService.deletePerson(personId);
             for (int i = 0; i < msgResultList.size(); i++) {
                 LapiMsgResult lapiMsgResult = msgResultList.get(i);
 
-                if (lapiMsgResult.isSuccess()) {
-                    sb.append("【" + personInfo.getName() + "】" + lapiMsgResult.getAliasName() + "解绑人脸信息成功!");
-                } else {
-                    sb.append("【" + personInfo.getName() + "】" + lapiMsgResult.getAliasName() + "解绑人脸信息失败!" + lapiMsgResult.getMsg());
+                if (!lapiMsgResult.isSuccess()) {
+                    HSSFRow row = sheet.createRow(sheet.getLastRowNum() + 1);
+                    HSSFCell cell1 = row.createCell(0);
+                    cell1.setCellValue(personInfo.getName());
+                    HSSFCell cell2 = row.createCell(1);
+                    cell2.setCellValue(lapiMsgResult.getAliasName());
+                    HSSFCell cell3 = row.createCell(2);
+                    cell3.setCellValue("解绑人脸信息失败!");
+                    HSSFCell cell4 = row.createCell(3);
+                    cell4.setCellValue(lapiMsgResult.getMsg());
+
+                    bl = false;
                 }
-
-                if (i != msgResultList.size() - 1) {
-                    sb.append(",");
-                } else {
-                    sb.append("。");
-                }
-
-                success &= lapiMsgResult.isSuccess();
-
-                msgResult.setResult(true);
-                msgResult.setMessage(sb.toString());
             }
         }catch(Exception ex) {
             logger.error(ex.getMessage(), ex);
-            msgResult.setResult(false);
-            msgResult.setMessage(ex.getMessage());
+            bl = false;
         }
 
-        return msgResult;
+        return bl;
     }
 
     @ApiOperation(value="添加设备人员图片")
-    private MessageResult addDevicePerson(Long  personId){
-        MessageResult msgResult = new MessageResult();
-        boolean success = true;
+    private Boolean addDevicePerson(Long  personId, HSSFSheet sheet){
+        boolean bl = true;
 
         try {
             PersonInfo personInfo = personInfoService.get(personId);
 
-            StringBuilder sb = new StringBuilder();
             List<LapiMsgResult> msgResultList = lapiService.addPerson(personId);
             for (int i = 0; i < msgResultList.size(); i++) {
                 LapiMsgResult lapiMsgResult = msgResultList.get(i);
 
-                if (lapiMsgResult.isSuccess()) {
-                    sb.append("【" + personInfo.getName() + "】" + lapiMsgResult.getAliasName() + "解绑人脸信息成功!");
-                } else {
-                    sb.append("【" + personInfo.getName() + "】" + lapiMsgResult.getAliasName() + "解绑人脸信息失败!" + lapiMsgResult.getMsg());
-                }
-
-                if (i != msgResultList.size() - 1) {
-                    sb.append(",");
-                } else {
-                    sb.append("。");
+                if (!lapiMsgResult.isSuccess()) {
+                    HSSFRow row = sheet.createRow(sheet.getLastRowNum() + 1);
+                    HSSFCell cell1 = row.createCell(0);
+                    cell1.setCellValue(personInfo.getName());
+                    HSSFCell cell2 = row.createCell(1);
+                    cell2.setCellValue(lapiMsgResult.getAliasName());
+                    HSSFCell cell3 = row.createCell(2);
+                    cell3.setCellValue("绑定人脸信息失败!");
+                    HSSFCell cell4 = row.createCell(3);
+                    cell4.setCellValue(lapiMsgResult.getMsg());
+
+                    bl = false;
                 }
-
-                success &= lapiMsgResult.isSuccess();
-
-                msgResult.setResult(true);
-                msgResult.setMessage(sb.toString());
             }
         }catch(Exception ex) {
             logger.error(ex.getMessage(), ex);
-            msgResult.setResult(false);
-            msgResult.setMessage(ex.getMessage());
+            bl = false;
         }
 
-        return msgResult;
+        return bl;
     }
 }

+ 1 - 1
web/src/main/java/com/jpsoft/smart/modules/mobile/controller/PersonDeviceLogApiController.java

@@ -252,7 +252,7 @@ public class PersonDeviceLogApiController {
 
                 Page<PersonDeviceFilterLog> page = personDeviceFilterLogService.pageSearch(searchParams,1,24,false,sortList);
 
-                SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
+                SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
 
                 List<Map> personDeviceLogs = page.stream()
                         .filter((log)->log.getTemperature().compareTo(BigDecimal.ZERO)>0)

+ 17 - 6
web/src/main/java/com/jpsoft/smart/modules/mobile/controller/PersonInfoApiController.java

@@ -379,16 +379,19 @@ public class PersonInfoApiController {
     @ApiImplicitParams({
             @ApiImplicitParam(name="name",value = "姓名",required = true,paramType = "form"),
             @ApiImplicitParam(name="phone",value = "电话",required = true,paramType = "form"),
+            @ApiImplicitParam(name="faceImageUrl",value = "照片地址",required = true,paramType = "form"),
+            @ApiImplicitParam(name="bindDevices",value = "绑定设备(,分隔)",required = true,paramType = "form"),
             @ApiImplicitParam(name="token",value = "令牌",paramType = "form"),
             @ApiImplicitParam(name="subject",value = "目标(不传)",paramType = "form")
     })
-    public MessageResult<PersonInfo> add(String name,String phone,String token,@RequestAttribute String subject){
+    public MessageResult<PersonInfo> add(String name,String phone,String faceImageUrl,String bindDevices,String token,@RequestAttribute String subject){
         MessageResult<PersonInfo> messageResult = new MessageResult<>();
 
         try {
-            User user = userService.get(subject);
+            PersonInfo admin = personInfoService.get(Long.valueOf(subject));
 
-            if (user==null){
+            if (StringUtils.isEmpty(admin.getPopedom())
+            && admin.getPopedom().indexOf("2")==-1){
                 throw new Exception("当前用户不是管理员!");
             }
 
@@ -396,12 +399,20 @@ public class PersonInfoApiController {
             personInfo.setName(name);
             personInfo.setPhone(phone);
             personInfo.setFaceEnabled(true);
-            personInfo.setCompanyId(user.getCompanyId());
+            personInfo.setCompanyId(admin.getCompanyId());
             personInfo.setDelFlag(false);
-            personInfo.setCreateBy(user.getId());
+            personInfo.setCreateBy(String.valueOf(admin.getId()));
             personInfo.setCreateTime(new Date());
 
-            personInfoService.insert(personInfo);
+            int affectCount = personInfoService.insert(personInfo);
+
+            //todo 关联设备
+
+
+            if(affectCount>0) {
+                //todo 加入到导入图片队列中
+                rabbitTemplate.convertAndSend("importImageExchange", "importImage", personInfo.getId());
+            }
 
             messageResult.setData(personInfo);
             messageResult.setResult(true);