Parcourir la source

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

ggooalice il y a 2 ans
Parent
commit
e95cb6390e

+ 3 - 3
fhKeeper/formulahousekeeper/inva_4_tivo/index.html

@@ -3,9 +3,9 @@
 <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <meta name="keywords" content="工时管理,项目成本管理,工时统计,项目成本统计,工时记录表,工时统计表," />
-    <meta name="description" content="工时管家是专业的工时管理软件,提供专业的工时填报,审核和统计功能。引进现代工时管理和项目管理的理念,核算项目投入成本准确便捷,企业IPO利器"/>
-    <title>工时管理|工时记录表|项目成本管理-工时管家是强大易用的工时管理系统。工时填报|工时统计|手机移动填报|核算项目成本|企业IPO利器!</title>
+    <meta name="keywords" content="工时管理,项目工时管理,项目成本管理,工时统计,项目成本统计,工时记录表,工时统计表" />
+    <meta name="description" content="工时管家是专业的工时管理和项目管理软件。提供工时填报,审核和工时统计功能。引进现代工时管理和项目管理的理念,核算项目投入成本准确便捷,企业IPO项目成本分摊好帮手"/>
+    <title>工时管理|工时记录表|项目成本管理-工时管家是强大易用的项目工时管理系统。工时填报|工时统计|手机移动填报|核算项目成本|企业IPO利器!</title>
 	<link href="css/styles.css" rel="stylesheet">
     <!-- <link href="css/bootstrap.css" rel="stylesheet"> -->
     <link rel="stylesheet" href="./css/reset.css">

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

@@ -170,6 +170,15 @@ public class ProjectController {
         return projectService.deleteProject(id, force);
     }
 
+    /**
+     * 删除项目
+     * id 要删除的项目的id
+     */
+    @RequestMapping("/batchDeleteProject")
+    public HttpRespMsg batchDeleteProject(@RequestParam String projectIdArray, HttpServletRequest request) {
+        return projectService.batchDeleteProject(projectIdArray, request);
+    }
+
     /**
      * 获取查询者所在公司每个项目的工时成本
      */

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

@@ -474,6 +474,7 @@ public class WeiXinCorpController {
                         Department department = new Department();
                         department.setCompanyId(companyId);
                         department.setCorpwxDeptid(deptId);
+                        department.setCorpwxDeptpid(parentDeptId);
                         JSONObject deptJson = remoteGetDeptDetail(remoteCorpConcactAccessToken, deptId);
                         if (deptJson != null) {
                             //成功获取到了
@@ -481,7 +482,7 @@ public class WeiXinCorpController {
                             department.setDepartmentName(name);
                             Department parentDept = department.selectOne(new QueryWrapper<Department>().eq("company_id", companyId).eq("corpwx_deptid", parentDeptId));
                             if (parentDept != null) {
-                                department.setSuperiorId(parentDeptId);
+                                department.setSuperiorId(parentDept.getDepartmentId());
                             }
                             departmentMapper.insert(department);
                         }

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

@@ -150,6 +150,6 @@ public interface ProjectService extends IService<Project> {
     HttpRespMsg batchSetParticipation(HttpServletRequest request,String projectIdArray , String userIds);
 
     HttpRespMsg suspendProject(Integer id);
+	HttpRespMsg getUserWorkingTimeStatic(String startDate, String endDate, Integer pageIndex, Integer pageSize, HttpServletRequest request,String userId,Integer departmentId);
 
-    HttpRespMsg getUserWorkingTimeStatic(String startDate, String endDate, Integer pageIndex, Integer pageSize, HttpServletRequest request,String userId,Integer departmentId);
-}
+	HttpRespMsg batchDeleteProject(String projectIdArray, HttpServletRequest request);}

+ 35 - 9
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -260,6 +260,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     String[] providerIdString = project.getProviderIds().split(",");
                     List<String> providerIdList = Arrays.asList(providerIdString);
                     for (String s : providerIdList) {
+                        if (StringUtils.isEmpty(s)) continue;
                         Map<String,Object> map=new HashMap<>();
                         Optional<ProviderInfo> providerInfo = providerInfoList.stream().filter(pi -> pi.getId().equals(Integer.parseInt(s))).findFirst();
                         if(providerInfo.isPresent()){
@@ -2594,17 +2595,20 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             String idSb = "";
                             providerCell=row.getCell(8+i);
                             HSSFCell cell = row.getCell(10);
+                            System.out.println("当前分类:"+providerCategoryList.get(j).getProviderCategoryName()+", categoryId="+providerCategoryList.get(j).getId());
+                            String categoryName = providerCategoryList.get(j).getProviderCategoryName();
+                            Integer categoryId = providerCategoryList.get(j).getId();
                             if(providerCell!=null){
                                 providerCell.setCellType(CellType.STRING);
-                                String stringCellValue = providerCell.getStringCellValue();
+                                String stringCellValue = providerCell.getStringCellValue().trim();
                                 if(!StringUtils.isEmpty(stringCellValue)){
                                     String[] split = stringCellValue.split(",");
+
                                     for (int i1 = 0; i1 < split.length; i1++) {
-                                        int finalJ = j;
-                                        int finalI = i1;
-                                        Optional<ProviderInfo> first = providerInfoList.stream().filter(pd -> pd.getProviderName().equals(split[finalI])&&pd.getProviderCategoryId().equals(providerCategoryList.get(finalJ).getId())).findFirst();
+                                        String curProviderName = split[i1].trim();
+                                        Optional<ProviderInfo> first = providerInfoList.stream().filter(pd -> pd.getProviderName().equals(curProviderName)&&pd.getProviderCategoryId().equals(categoryId)).findFirst();
                                         if(!first.isPresent()){
-                                            msg.setError("供应商["+split[i1]+"]在供应商分类["+providerCategoryList.get(j).getProviderCategoryName()+"]不存在");
+                                            msg.setError("供应商["+curProviderName+"]在供应商分类["+providerCategoryList.get(j).getProviderCategoryName()+"]不存在");
                                             return msg;
                                         }else {
                                             if(i1==split.length-1){
@@ -2637,10 +2641,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     if (startDateCell !=null && !StringUtils.isEmpty(startDateCell.getDateCellValue())) {
                         project.setPlanStartDate(LocalDate.parse(sdf.format(startDateCell.getDateCellValue()), DateTimeFormatter.ofPattern("yyyy-MM-dd")));
                     }
-                    if (endDateCell !=null && !StringUtils.isEmpty(endDateCell.getDateCellValue())) {
+                    if (endDateCell !=null && endDateCell.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(endDateCell.getDateCellValue())) {
                         project.setPlanEndDate(LocalDate.parse(sdf.format(endDateCell.getDateCellValue()), DateTimeFormatter.ofPattern("yyyy-MM-dd")));
                     }
-                    if (amountCell !=null && !StringUtils.isEmpty(amountCell.getStringCellValue())) {
+                    if (amountCell !=null && endDateCell.getCellTypeEnum() == CellType.NUMERIC && !StringUtils.isEmpty(amountCell.getStringCellValue())) {
                         project.setContractAmount(Double.parseDouble(amountCell.getStringCellValue()));
                     }
                     if (isPublicCell != null && !StringUtils.isEmpty(isPublicCell.getStringCellValue())) {
@@ -4052,7 +4056,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         return new HttpRespMsg();
     }
 
-    @Override
+	@Override
     public HttpRespMsg getUserWorkingTimeStatic(String startDate, String endDate, Integer pageIndex, Integer pageSize, HttpServletRequest request,String userId,Integer departmentId) {
         User targetUser = userMapper.selectById(request.getHeader("token"));
         List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "查看全部人员工时统计");
@@ -4082,7 +4086,29 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
 
-    private List<Department> getSubDepts(Department dp, List<Department> list) {
+
+	@Override
+    public HttpRespMsg batchDeleteProject(String projectIdArray, HttpServletRequest request) {
+        String token = request.getHeader("TOKEN");
+        User user = userMapper.selectById(token);
+        HttpRespMsg httpRespMsg = new HttpRespMsg();
+        List<Integer> array = JSONArray.parseArray(projectIdArray, Integer.class);
+        Integer integer = array.get(0);
+        //校验项目归属
+        Integer companyId = projectMapper.selectById(integer).getCompanyId();
+        if (companyId.intValue() != user.getCompanyId().intValue()) {
+            httpRespMsg.setError("无权操作");
+        } else {
+            for (Integer id : array) {
+                System.out.println("删除项目id=="+id);
+                deleteProData(id);
+            }
+        }
+        return httpRespMsg;
+    }
+
+
+	private List<Department> getSubDepts(Department dp, List<Department> list) {
         List<Department> collect = list.stream().filter(l -> dp.getDepartmentId().equals(l.getSuperiorId())).collect(Collectors.toList());
         List<Department> allList = new ArrayList<>();
         allList.addAll(collect);

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

@@ -93,7 +93,7 @@ public class ProviderInfoServiceImpl extends ServiceImpl<ProviderInfoMapper, Pro
                 }
                 nameList.add(row.getCell(1).toString());
                 ProviderInfo customerInfo=new ProviderInfo();
-                List<ProviderInfo> collect = allCustomerInfo.stream().filter(sv -> sv.getProviderName().equals(row.getCell(1).toString())).collect(Collectors.toList());
+                List<ProviderInfo> collect = allCustomerInfo.stream().filter(sv -> !StringUtils.isEmpty(sv.getProviderCode()) && sv.getProviderCode().equals(row.getCell(0).toString())).collect(Collectors.toList());
                 customerInfo.setProviderCode(StringUtils.isEmpty(row.getCell(0))?"":row.getCell(0).toString());
                 customerInfo.setProviderName(StringUtils.isEmpty(row.getCell(1))?"":row.getCell(1).toString());
                 customerInfo.setContactName(StringUtils.isEmpty(row.getCell(2))?"":row.getCell(2).toString());

BIN
fhKeeper/formulahousekeeper/management-platform/项目导入模板.xlsx


+ 10 - 10
fhKeeper/formulahousekeeper/timesheet/config/index.js

@@ -2,17 +2,17 @@ var path = require('path')
 
 //  var ip = '127.0.0.1'
 // var ip = '47.101.180.183'
-var ip = '192.168.2.7'
+// var ip = '192.168.2.7'
 
-// var os = require('os'), ip = '', ifaces = os.networkInterfaces() // 获取本机ip
-// for (var i in ifaces) {
-//     for (var j in ifaces[i]) {
-//         var val = ifaces[i][j]
-//         if (val.family === 'IPv4' && val.address !== '127.0.0.1') {
-//             ip = val.address
-//         }
-//     }
-// }
+var os = require('os'), ip = '', ifaces = os.networkInterfaces() // 获取本机ip
+for (var i in ifaces) {
+    for (var j in ifaces[i]) {
+        var val = ifaces[i][j]
+        if (val.family === 'IPv4' && val.address !== '127.0.0.1') {
+            ip = val.address
+        }
+    }
+}
 
 module.exports = {
   build: {

+ 33 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/project/list.vue

@@ -1419,6 +1419,39 @@ a {
                     })
                 })
             },
+            batchDelete(){
+                if(this.checkedProjectArr.length == 0){
+                    this.$message('请选择项目')
+                    return
+                }
+                let proArr = []
+                for(let i=0;i<this.checkedProjectArr.length;i++){
+                    proArr.push(this.checkedProjectArr[i].id)
+                    // proArr += this.checkedProjectArr[i].id + ','
+                }
+                // proArr = proArr.substring(0,proArr.length - 1)
+                this.http.post('/project/batchDeleteProject',{
+                    projectIdArray: JSON.stringify(proArr)
+                },res => {
+                    if(res.code == 'ok'){
+                        this.$message({
+                            message: '删除成功',
+                            type: 'success'
+                        })
+                        this.getList()
+                    }else {
+                        this.$message({
+                            message: res.msg,
+                            type: 'error'
+                        })
+                    }
+                },err => {
+                    this.$message({
+                        message: err,
+                        type: 'error'
+                    })
+                })
+            },
 
             // 批量添加项目参与人
             addProPreson(){