浏览代码

Merge branch 'master' of http://47.100.37.243:10080/wutt/manHourHousekeeper into master

seyason 2 年之前
父节点
当前提交
c6064f3427

+ 2 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java

@@ -442,8 +442,8 @@ public class ProjectController {
     }
 
     @RequestMapping("/importData")
-    public HttpRespMsg importData(String userId, MultipartFile file, HttpServletRequest request) {
-        return projectService.importData(userId, file, request);
+    public HttpRespMsg importData(String userId, MultipartFile file,@RequestParam(defaultValue = "0") Integer key,HttpServletRequest request) {
+        return projectService.importData(userId, file,key, request);
     }
 
     @RequestMapping("/getGanttData")

+ 7 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserController.java

@@ -36,8 +36,13 @@ public class UserController {
      * password 密码
      */
     @RequestMapping("/loginAdmin")
-    public HttpRespMsg loginAdmin(@RequestParam String username, @RequestParam String password) {
-        return userService.loginAdmin(username, password);
+    public HttpRespMsg loginAdmin(@RequestParam String username, @RequestParam String password ,@RequestParam(defaultValue = "0") Integer key) {
+        return userService.loginAdmin(username, password,key);
+    }
+
+    @RequestMapping("/loginAdminByThirdParty")
+    public HttpRespMsg loginAdminByThirdParty(@RequestParam String jobNumber,@RequestParam String token){
+        return userService.loginAdminByThirdParty(jobNumber,token);
     }
 
     @RequestMapping("/loginByUserId")

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectService.java

@@ -89,7 +89,7 @@ public interface ProjectService extends IService<Project> {
 
     HttpRespMsg exportProjectInAndOut(HttpServletRequest request);
 
-    HttpRespMsg importData(String userId, MultipartFile file, HttpServletRequest request);
+    HttpRespMsg importData(String userId, MultipartFile file,Integer key, HttpServletRequest request);
 
     HttpRespMsg getCustomerProjectInAndOut(Integer pageIndex, Integer pageSize, HttpServletRequest request,Integer customerId,Integer projectId);
 

+ 3 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/UserService.java

@@ -19,7 +19,7 @@ import javax.servlet.http.HttpServletRequest;
 public interface UserService extends IService<User> {
     public void setUserRoleMenu(UserVO user);
 
-    HttpRespMsg loginAdmin(String username, String password);
+    HttpRespMsg loginAdmin(String username, String password,Integer key);
 
     HttpRespMsg getUserInfo(String id);
 
@@ -71,4 +71,6 @@ public interface UserService extends IService<User> {
     HttpRespMsg getSimpleActiveUserList(Integer departmentId, HttpServletRequest request);
 
     HttpRespMsg getUserListByRole(HttpServletRequest request);
+
+    HttpRespMsg loginAdminByThirdParty(String jobNumber, String token);
 }

+ 13 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -2893,7 +2893,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
 
 
     @Override
-    public HttpRespMsg importData(String userId, MultipartFile multipartFile, HttpServletRequest request) {
+    public HttpRespMsg importData(String userId, MultipartFile multipartFile,Integer key, HttpServletRequest request) {
         HttpRespMsg msg = new HttpRespMsg();
         User user = userMapper.selectById(userId);
         //然后处理文件
@@ -3001,6 +3001,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         if (!StringUtils.isEmpty(code)) {
                             int cnt = projectMapper.selectCount(new QueryWrapper<Project>().eq("project_code", code).eq("company_id", user.getCompanyId()));
                             if (cnt > 0) {
+                                if(key==0){
+                                    continue;
+                                }
 //                            throw new Exception("项目编号存在重复: " + code);
                                 existCodeList.add(code);
                                 //跳过编号重复的数据
@@ -3132,7 +3135,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 msg.data = "成功导入"+importCount+"条数据。";
                 if (existCodeList.size() > 0) {
                     String collect = existCodeList.stream().collect(Collectors.joining(","));
-                    msg.data += "自动更新"+existCodeList.size()+"条已存在项目编码:"+collect;
+                    if(key==1){
+                        msg.data += "自动更新"+existCodeList.size()+"条已存在项目编码:"+collect;
+                    }else msg.data += "自动跳过"+existCodeList.size()+"条已存在项目编码:"+collect;
                 }
                 OperationRecord operationRecord=new OperationRecord();
                 operationRecord.setCompanyId(user.getCompanyId());
@@ -3416,6 +3421,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         if (!StringUtils.isEmpty(code)) {
                             int cnt = projectMapper.selectCount(new QueryWrapper<Project>().eq("project_code", code).eq("company_id", user.getCompanyId()));
                             if (cnt > 0) {
+                                if(key==0){
+                                    continue;
+                                }
 //                            throw new Exception("项目编号存在重复: " + code);
                                 existCodeList.add(code);
                                 //跳过编号重复的数据
@@ -3982,7 +3990,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 msg.data = "成功导入"+importCount+"条数据。";
                 if (existCodeList.size() > 0) {
                     String collect = existCodeList.stream().collect(Collectors.joining(","));
-                    msg.data += "自动更新"+existCodeList.size()+"条已存在项目编码:"+collect;
+                    if(key==1){
+                        msg.data += "自动更新"+existCodeList.size()+"条已存在项目编码:"+collect;
+                    }else msg.data += "自动跳过"+existCodeList.size()+"条已存在项目编码:"+collect;
                 }
                 OperationRecord operationRecord=new OperationRecord();
                 operationRecord.setCompanyId(user.getCompanyId());

+ 32 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserServiceImpl.java

@@ -141,9 +141,11 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     private LocaleInformationMapper localeInformationMapper;
     @Resource
     private CompanyReportMapper companyReportMapper;
+    @Resource
+    private ThirdPartyInterfaceMapper thirdPartyInterfaceMapper;
     //登录网页端
     @Override
-    public HttpRespMsg loginAdmin(String username, String password) {
+    public HttpRespMsg loginAdmin(String username, String password,Integer key) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         //根据电话号码获取账号信息
         List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("phone", username));
@@ -157,7 +159,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
             httpRespMsg.setError(MessageUtils.message("user.duplicate"));
         } else if (userList.get(0).getIsActive() == 0) {
             httpRespMsg.setError(MessageUtils.message("user.inactive"));
-        } else if (MD5Util.getPassword(password).equals(userList.get(0).getPassword())) {
+        } else if ((key==0?MD5Util.getPassword(password):password).equals(userList.get(0).getPassword())) {
             //查看该公司非会员公司,只能允许试用三天,超时不可登录
             Company company = companyMapper.selectOne(new QueryWrapper<Company>().eq("id", userList.get(0).getCompanyId()));
             //公司未办理会员
@@ -209,6 +211,34 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         return httpRespMsg;
     }
 
+    @Override
+    public HttpRespMsg loginAdminByThirdParty(String jobNumber, String token) {
+        HttpRespMsg httpRespMsg;
+        List<ThirdPartyInterface> thirdPartyInterfaceList = thirdPartyInterfaceMapper.selectList(new QueryWrapper<ThirdPartyInterface>().eq("token", token));
+        if(thirdPartyInterfaceList!=null&&thirdPartyInterfaceList.size()>0){
+            ThirdPartyInterface thirdPartyInterface = thirdPartyInterfaceList.get(0);
+            if(thirdPartyInterface.getExpireTime().isBefore(LocalDateTime.now())){
+                httpRespMsg=new HttpRespMsg();
+                httpRespMsg.setError("token失效");
+                return httpRespMsg;
+            }
+            Integer companyId = thirdPartyInterface.getCompanyId();
+            User user = userMapper.selectOne(new QueryWrapper<User>().eq("job_number", jobNumber).eq("company_id", companyId));
+            if(user!=null){
+                httpRespMsg=loginAdmin(user.getPhone(),user.getPassword(),1);
+            }else{
+                httpRespMsg=new HttpRespMsg();
+                httpRespMsg.setError("工号为"+jobNumber+"的员工在工时系统中不存在");
+                return httpRespMsg;
+            }
+        }else{
+            httpRespMsg=new HttpRespMsg();
+            httpRespMsg.setError("token错误");
+            return httpRespMsg;
+        }
+        return httpRespMsg;
+    }
+
 
     public void setUserRoleMenu(UserVO user) {
         Integer roleId = user.getRoleId();

+ 46 - 27
fhKeeper/formulahousekeeper/timesheet/src/views/Login.vue

@@ -69,19 +69,16 @@
         created() {
             if (localStorage.userInfo != null) {
                 var user = JSON.parse(localStorage.userInfo);
-                // if (user.role == 3 ) {
-                //     //公司高层
-                //     this.$router.push({ path: '/cost' });
-                // } else if (user.role == 4) {
-                //     //财务管理员
-                //     this.$router.push({ path: '/team' });
-                // } else {
-                //     this.$router.push({ path: '/daily' });
-                // }
                 if(user.moduleList.length > 0) {
                     this.$router.push({ path: user.moduleList[0].path })
                 }
             }
+            let windowHerf = window.location.href
+            if(windowHerf.indexOf('?jobNumber') != '-1') {
+                let jobNumber = windowHerf.split('jobNumber=')[1].split('&token=')[0]
+                let token = windowHerf.split('&token=')[1]
+                this.automaticLogin(jobNumber, token)
+            }
         },
         mounted() {
             var ua = navigator.userAgent.toLowerCase();
@@ -210,15 +207,6 @@
                                 localStorage.user = JSON.stringify(res.data);
                                 sessionStorage.setItem('user', JSON.stringify(res.data));
                                 this.permissionsList(res.data)
-                                // if (user.role == 3) {
-                                //     //公司高层
-                                //     this.$router.push({ path: '/cost' });
-                                // } else if (user.role == 4) {
-                                //     //财务管理员
-                                //     this.$router.push({ path: '/team' });
-                                // } else {
-                                //     this.$router.push({ path: '/daily' });
-                                // }
                                 if(user.moduleList.length > 0) {
                                     this.$router.push({ path: user.moduleList[0].path })
                                 }
@@ -243,15 +231,6 @@
                                 localStorage.user = JSON.stringify(res.data);
                                 sessionStorage.setItem('user', JSON.stringify(res.data));
                                 this.permissionsList(res.data)
-                                // if (user.role == 3) {
-                                //     //公司高层
-                                //     this.$router.push({ path: '/cost' });
-                                // } else if (user.role == 4) {
-                                //     //财务管理员
-                                //     this.$router.push({ path: '/team' });
-                                // } else {
-                                //     this.$router.push({ path: '/daily' });
-                                // }
                                 if(jumpurl){
                                     this.$router.push({ path: jumpurl })
                                 }else if(user.moduleList.length > 0) {
@@ -330,6 +309,46 @@
                     }
                 });
             },
+            // 米莱得用工号登录
+            automaticLogin(jobNumber, token) {
+                this.http.post('/user/loginAdminByThirdParty', {
+                    jobNumber: jobNumber,
+                    token: token
+                } , res => {
+                    if (res.code == "ok") {
+                        if(res.data.moduleList.length == 0){
+                            this.$message({
+                                message: '请联系管理员为\u3000' + res.data.roleName + '\u3000分配权限',
+                                type: 'error'
+                            })
+                            return
+                        }
+                        var user = res.data;
+                        sessionStorage.setItem('user', JSON.stringify(res.data));
+                        this.permissionsList(res.data)
+                        if (user.company.packageSimple == 1) {
+                            //简易模式,直接进入工时统计表
+                            this.$router.push({ path: '/simple' });
+                            sessionStorage.setItem('autoRoute','/simple')
+                        } else {
+                            if(user.moduleList.length > 0) {
+                                this.$router.push({ path: user.moduleList[0].path })
+                                sessionStorage.setItem('autoRoute',user.moduleList[0].path)
+                            }
+                        }
+                    } else {
+                        this.$message({
+                            message: res.msg,
+                            type: 'error'
+                        });
+                    }
+                }, error => {
+                    this.$message({
+                        message: error,
+                        type: 'error'
+                    });
+                })
+            },
             // 权限控制
             permissionsList(item) {
                 var arr = []

+ 6 - 6
fhKeeper/formulahousekeeper/timesheet/src/views/customer/list.vue

@@ -64,22 +64,22 @@
         <!--新增界面-->
         <el-dialog :title="title" v-if="addFormVisible" :visible.sync="addFormVisible" :close-on-click-modal="false" customClass="customWidth" width="800px">
             <el-form ref="form1" :model="addForm" :rules="rules" label-width="120px">
-                <el-form-item label="$t('ustomernumber')" >
+                <el-form-item :label="$t('ustomernumber')" >
                     <el-input v-model="addForm.customerCode" :max="20" :placeholder="$t('peaseenterthe')" clearable></el-input>
                 </el-form-item>
-                <el-form-item label="$t('customername')" prop="customerName">
+                <el-form-item :label="$t('customername')" prop="customerName">
                     <el-input v-model="addForm.customerName" :max="20" :placeholder="$t('peaseenterthe')" clearable></el-input>
                 </el-form-item>
-                <el-form-item label="$t('contact')" prop="contactName">
+                <el-form-item :label="$t('contact')" prop="contactName">
                     <el-input v-model="addForm.contactName" :max="20" :placeholder="$t('peaseenterthe')" clearable></el-input>
                 </el-form-item>
-                <el-form-item label="$t('contactphonenumber')" prop="contactPhone">
+                <el-form-item :label="$t('contactphonenumber')" prop="contactPhone">
                     <el-input v-model="addForm.contactPhone" :max="20" :placeholder="$t('peaseenterthe')" clearable></el-input>
                 </el-form-item>
-                <el-form-item label="$t('email')" prop="email">
+                <el-form-item :label="$t('email')" prop="email">
                     <el-input v-model="addForm.email" :max="25" :placeholder="$t('peaseenterthe')" clearable></el-input>
                 </el-form-item>
-                <el-form-item label="$t('address')" prop="address">
+                <el-form-item :label="$t('address')" prop="address">
                     <el-input v-model="addForm.address" :max="50"  :placeholder="$t('peaseenterthe')" clearable></el-input>
                 </el-form-item>