瀏覽代碼

批量审核通过增加按部门选择,修复费用报销审核时的500错误

seyason 1 年之前
父節點
當前提交
ab0a656c58
共有 26 個文件被更改,包括 70 次插入509 次删除
  1. 2 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java
  2. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ReportService.java
  3. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ExpenseSheetServiceImpl.java
  4. 13 4
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  5. 二進制
      fhKeeper/formulahousekeeper/management-workshop/20230302项目导入模板.xlsx
  6. 0 116
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/application-bkserver.yml
  7. 0 105
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/application-dev2.yml
  8. 0 144
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/application-meenyi.yml
  9. 0 114
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/application-sgai.yml
  10. 0 10
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/novel_words.data
  11. 二進制
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/Contract Management Import Template.xlsx
  12. 二進制
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/Employee project allocation proportion import Template.xlsx
  13. 二進制
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/Employee hours import Template.xlsx
  14. 二進制
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/Employee hours statistics Template.xlsx
  15. 二進制
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/Expense Reimbursement import Template.xlsx
  16. 二進制
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/New customer import Template.xlsx
  17. 二進制
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/Personnel import Template.xlsx
  18. 二進制
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/Project import Template.xlsx
  19. 二進制
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/Project task import Template.xlsx
  20. 二進制
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/Research center import Template.xlsx
  21. 二進制
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/Resource demand import Template.xlsx
  22. 二進制
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/Salary Import Template.xlsx
  23. 二進制
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/Supplier import Template.xlsx
  24. 1 1
      fhKeeper/formulahousekeeper/timesheet/src/views/project/list.vue
  25. 51 10
      fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue
  26. 1 1
      fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/index.vue

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

@@ -1571,8 +1571,8 @@ public class ReportController {
     }
 
     @RequestMapping("/batchApproveByDate")
-    public HttpRespMsg batchApproveByDate(String startDate, String endDate, HttpServletRequest request) {
-        return reportService.batchApproveByDate(startDate, endDate, request);
+    public HttpRespMsg batchApproveByDate(String startDate, String endDate, Integer departmentId, HttpServletRequest request) {
+        return reportService.batchApproveByDate(startDate, endDate, departmentId, request);
     }
 
     @RequestMapping("/batchDenyReport")

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

@@ -119,5 +119,5 @@ public interface ReportService extends IService<Report> {
 
     HttpRespMsg batchDelete(String userIds, String startDate, String endDate, HttpServletRequest request);
 
-    HttpRespMsg batchApproveByDate(String startDate, String endDate, HttpServletRequest request);
+    HttpRespMsg batchApproveByDate(String startDate, String endDate, Integer departmentId, HttpServletRequest request);
 }

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

@@ -411,7 +411,7 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
         Information information=new Information();
         information.setUserId(owner.getId());
         information.setTime(LocalDateTime.now());
-        information.setMsg("您"+dateTimeFormatter.format(sheet.getCreateDate()) + "费用报销申请审核"+(sheet.getStatus() == 0?"已通过":"已驳回")+", 审核人:"
+        information.setMsg("您"+(sheet.getCreateDate() == null?"":dateTimeFormatter.format(sheet.getCreateDate())) + "费用报销申请审核"+(sheet.getStatus() == 0?"已通过":"已驳回")+", 审核人:"
                 +(auditor.getCorpwxUserid() != null ? ("$userName="+auditor.getCorpwxUserid()+"$"):auditor.getName()));
         information.setType(3);//费用报销模块
         information.setContent(sheet.getId()+"");

+ 13 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -96,6 +96,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     @Resource
     private TaskGroupMapper taskGroupMapper;
     @Resource
+    private DepartmentService departmentService;
+    @Resource
     private ReportLogDetailMapper reportLogDetailMapper;
     @Resource
     private ReportLogDetailService reportLogDetailService;
@@ -158,8 +160,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     @Resource
     private TimeTypeMapper timeTypeMapper;
     @Resource
-    private DepartmentService departmentService;
-    @Resource
     private DepartmentMapper departmentMapper;
     @Resource
     private SubProjectMapper subProjectMapper;
@@ -6280,7 +6280,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     }
 
     @Override
-    public HttpRespMsg batchApproveByDate(String startDate, String endDate, HttpServletRequest request) {
+    public HttpRespMsg batchApproveByDate(String startDate, String endDate, Integer departmentId, HttpServletRequest request) {
         HttpRespMsg msg = new HttpRespMsg();
         //限制只针对赛元微电子
         String userId = request.getHeader("TOKEN");
@@ -6291,7 +6291,16 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         }
         Report r = new Report();
         r.setState(1);
-        reportMapper.update(r, new QueryWrapper<Report>().eq("company_id", 469).between("create_date", startDate, endDate));
+        QueryWrapper<Report> queryWrapper = new QueryWrapper<Report>().eq("company_id", 469).between("create_date", startDate, endDate);
+
+        if (departmentId != null) {
+            //部门以及子部门
+            List<Department> allDeptList = departmentService.list(new QueryWrapper<Department>().eq("company_id", 469));
+            List<Integer> deptIncludeSubDeptIds = departmentService.getDeptIncludeSubDeptIds(departmentId, allDeptList);
+            queryWrapper.in("dept_id", deptIncludeSubDeptIds);
+        }
+
+        reportMapper.update(r, queryWrapper);
         return msg;
 
     }

二進制
fhKeeper/formulahousekeeper/management-workshop/20230302项目导入模板.xlsx


+ 0 - 116
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/application-bkserver.yml

@@ -1,116 +0,0 @@
-server:
-  port: 10010
-  tomcat:
-    uri-encoding: utf-8
-    max-http-form-post-size: -1
-    connection-timeout: 18000000s
-spring:
-  servlet:
-    multipart:
-      # 配置上传文件的大小设置
-      # Single file max size  即单个文件大小
-      max-file-size: 100MB
-      max-request-size: 100MB
-  datasource:
-    driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://47.101.180.183:3306/man_dev?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&&useSSL=false
-    username: root
-    password: HuoshiDB@2022
-    hikari:
-      maximum-pool-size: 10
-      minimum-idle: 3
-      max-lifetime: 30000
-      connection-test-query: SELECT 1
-    #######redis配置######
-    # redis
-    redis:
-      host: 127.0.0.1
-      port: 6479
-      timeout: 3
-      # password:
-      pool:
-        minIdle: 1
-        maxIdle: 10
-        maxWait: 3
-        maxActive: 8
-    ####全局配置时间返回格式#####
-  jackson:
-    #参数意义:
-    #JsonInclude.Include.ALWAYS       默认
-    #JsonInclude.Include.NON_DEFAULT   属性为默认值不序列化
-    #JsonInclude.Include.NON_EMPTY     属性为 空(””) 或者为 NULL 都不序列化
-    #JsonInclude.Include.NON_NULL      属性为NULL  不序列化
-    default-property-inclusion: ALWAYS
-    time-zone: GMT+8
-    date-format: yyyy-MM-dd HH:mm:ss
-
-##########日志配置
-logging:
-  level:
-    root: info
-    org.mybatis: error
-    java.sql: error
-    org.springframework.web: error
-    #打印sql语句
-    com.management.platform.mapper: error
-  path: /log/
-  file: worktime.log
-##########
-mybatis-plus:
-  #  mapper-locations: classpath:mapper/*/*.xml
-  #  #实体扫描,多个package用逗号或者分号分隔
-  #  typeAliasesPackage: com.hssx.cloudmodel
-  global-config:
-    #主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
-    id-type: 0
-    #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
-    field-strategy: 2
-    db-column-underline: true
-    refresh-mapper:
-    #################插入和更新非null判断
-    db-config:
-      insert-strategy: not_null
-      update-strategy: not_null
-  configuration:
-    map-underscore-to-camel-case: true
-    cache-enabled: false
-######mybstis配置#######
-mybatis:
-  type-aliases-package: com.management.platform.entity
-  mapper-locations: mappers/*Mapper.xml
-#####配置图片上传路径####
-upload:
-  path: /www/staticproject/timesheet/upload/
-
-referer:
-  refererDomain:
-    - localhost
-    - gsmb.sgai.com.cn
-    - gspc.sgai.com.cn
-    - dev.huoshishanxin.com
-##actuator健康检查配置
-management:
-  security:
-    enabled:false:
-  server:
-    port: 10011
-  #  endpoints:
-  #    web:
-  #      exposure:
-  #        include: "*"
-
-  health:
-    redis:
-      enabled: false
-
-configEnv:
-  isDev: true
-  # 是否是私有化部署,企业内部应用
-  isPrivateDeploy: true
-
-privateDeployURL:
-  pcUrl: http://dev.huoshishanxin.com
-  mobUrl: http://dev.huoshishanxin.com
-
-# 私有化部署的企业自己的corpId
-corpId: ww0b9aafe69e506b8b

+ 0 - 105
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/application-dev2.yml

@@ -1,105 +0,0 @@
-server:
-  port: 10010
-  tomcat:
-    uri-encoding: utf-8
-    max-http-form-post-size: -1
-    connection-timeout: 18000000s
-spring:
-  servlet:
-    multipart:
-      # 配置上传文件的大小设置
-      # Single file max size  即单个文件大小
-      max-file-size: 100MB
-      max-request-size: 100MB
-  datasource:
-    driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://127.0.0.1:3306/man_hour_manager?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&&useSSL=false
-    username: root
-    password: HuoshiDB@2022
-    hikari:
-      maximum-pool-size: 10
-      minimum-idle: 3
-      max-lifetime: 30000
-      connection-test-query: SELECT 1
-    #######redis配置######
-    # redis
-    redis:
-      host: 127.0.0.1
-      port: 6479
-      timeout: 3
-      # password:
-      pool:
-        minIdle: 1
-        maxIdle: 10
-        maxWait: 3
-        maxActive: 8
-    ####全局配置时间返回格式#####
-  jackson:
-    #参数意义:
-    #JsonInclude.Include.ALWAYS       默认
-    #JsonInclude.Include.NON_DEFAULT   属性为默认值不序列化
-    #JsonInclude.Include.NON_EMPTY     属性为 空(””) 或者为 NULL 都不序列化
-    #JsonInclude.Include.NON_NULL      属性为NULL  不序列化
-    default-property-inclusion: ALWAYS
-    time-zone: GMT+8
-    date-format: yyyy-MM-dd HH:mm:ss
-
-##########日志配置
-logging:
-  level:
-    root: info
-    org.mybatis: error
-    java.sql: error
-    org.springframework.web: error
-    #打印sql语句
-    com.management.platform.mapper: error
-  path: /log/
-  file: worktime.log
-##########
-mybatis-plus:
-  #  mapper-locations: classpath:mapper/*/*.xml
-  #  #实体扫描,多个package用逗号或者分号分隔
-  #  typeAliasesPackage: com.hssx.cloudmodel
-  global-config:
-    #主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
-    id-type: 0
-    #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
-    field-strategy: 2
-    db-column-underline: true
-    refresh-mapper:
-    #################插入和更新非null判断
-    db-config:
-      insert-strategy: not_null
-      update-strategy: not_null
-  configuration:
-    map-underscore-to-camel-case: true
-    cache-enabled: false
-######mybstis配置#######
-mybatis:
-  type-aliases-package: com.management.platform.entity
-  mapper-locations: mappers/*Mapper.xml
-#####配置图片上传路径####
-upload:
-  path: /www/staticproject/timesheet/upload/
-
-
-
-
-
-##actuator健康检查配置
-management:
-  security:
-    enabled:false:
-  server:
-    port: 10011
-  #  endpoints:
-  #    web:
-  #      exposure:
-  #        include: "*"
-
-  health:
-    redis:
-      enabled: false
-
-configEnv:
-  isDev: true

+ 0 - 144
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/application-meenyi.yml

@@ -1,144 +0,0 @@
-server:
-  port: 10010
-  tomcat:
-    uri-encoding: utf-8
-    max-http-form-post-size: -1
-    connection-timeout: 18000000s
-spring:
-  servlet:
-    multipart:
-      # 配置上传文件的大小设置
-
-      # Single file max size  即单个文件大小
-      max-file-size: 100MB
-      max-request-size: 100MB
-      location: C:/upload/
-  datasource:
-    driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://127.0.0.1:3306/man_mingyi?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&useSSL=false
-    username: root
-    password: meenyi@123!
-    hikari:
-      maximum-pool-size: 60
-      minimum-idle: 10
-      max-lifetime: 180000
-      # 数据库连接超时时间,默认30秒,即30000
-      connection-timeout: 60000
-      connection-test-query: SELECT 1
-    #######redis配置######
-    # redis
-    redis:
-      host: 127.0.0.1
-      port: 6379
-      timeout: 3
-      # password:
-      pool:
-        minIdle: 1
-        maxIdle: 10
-        maxWait: 3
-        maxActive: 8
-  ####全局配置时间返回格式#####
-  jackson:
-    #参数意义:
-    #JsonInclude.Include.ALWAYS       默认
-    #JsonInclude.Include.NON_DEFAULT   属性为默认值不序列化
-    #JsonInclude.Include.NON_EMPTY     属性为 空(””) 或者为 NULL 都不序列化
-    #JsonInclude.Include.NON_NULL      属性为NULL  不序列化
-    default-property-inclusion: ALWAYS
-    time-zone: GMT+8
-    date-format: yyyy-MM-dd HH:mm:ss
-  messages:
-    basename: i18n.messages #配置国际化资源文件路径
-    encoding: UTF-8
-
-  ##AD认证
-  ldap:
-    ##AD服务器IP,默认端口389
-    urls: ldap://172.10.10.180:389
-    ##登录账号
-    username: OA@my.com
-    ##密码
-    password: meenyi.com
-    #distinguishedName的部分节点
-    base:
-      dcFirst: my
-      dcSecond: com
-##########日志配置
-logging:
-  level:
-    root: info
-    org.mybatis: debug
-    java.sql: debug
-    org.springframework.web: trace
-    #打印sql语句
-    com.management.platform.mapper: debug
-  path: D:/worktime/server/log/
-  file: worktime.log
-##########
-mybatis-plus:
-  #  mapper-locations: classpath:mapper/*/*.xml
-  #  #实体扫描,多个package用逗号或者分号分隔
-  #  typeAliasesPackage: com.hssx.cloudmodel
-  global-config:
-    #主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
-    id-type: 0
-    #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
-    field-strategy: 2
-    db-column-underline: true
-    refresh-mapper:
-    #################插入和更新非null判断
-    db-config:
-      insert-strategy: not_null
-      update-strategy: not_null
-  configuration:
-    map-underscore-to-camel-case: true
-    cache-enabled: false
-######mybstis配置#######
-mybatis:
-  type-aliases-package: com.management.platform.entity
-  mapper-locations: mappers/*Mapper.xml
-#####配置图片上传路径####
-upload:
-  path: D:/staticproject/timesheet/upload/
-
-referer:
-  refererDomain:
-    - localhost
-    - mytime.ttkuaiban.com
-    - 172.10.21.185
-
-##actuator健康检查配置
-management:
-  security:
-    enabled:false:
-  server:
-    port: 10012
-  #  endpoints:
-  #    web:
-  #      exposure:
-  #        include: "*"
-
-  health:
-    redis:
-      enabled: false
-    ldap:
-      enabled: false
-
-configEnv:
-  isDev: false
-  # 是否是私有化部署,企业内部应用
-  isPrivateDeploy: true
-
-privateDeployURL:
-  pcUrl: http://dev.huoshishanxin.com/#/
-  mobUrl: http://dev.huoshishanxin.com/#/
-
-# SFTP上传配置
-sftp:
-  isEnabled: false
-  server: 101.132.166.205
-  port: 22022
-  remoteDir: /bkup/timesheet
-  user: root
-  password: Huoshi@2022
-

+ 0 - 114
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/application-sgai.yml

@@ -1,114 +0,0 @@
-server:
-  port: 10010
-  tomcat:
-    uri-encoding: utf-8
-    max-http-form-post-size: -1
-    connection-timeout: 18000000s
-spring:
-  servlet:
-    multipart:
-      max-file-size: 100MB
-      max-request-size: 100MB
-  datasource:
-    driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://10.168.54.5:3306/man_sgai?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&useSSL=false
-    username: sgaigs
-    password: gs5IP5qfsia#oq5P
-    hikari:
-      maximum-pool-size: 60
-      minimum-idle: 10
-      max-lifetime: 180000
-      connection-timeout: 60000
-      connection-test-query: SELECT 1
-    #######redis配置######
-    # redis
-    redis:
-      host: 127.0.0.1
-      port: 6379
-      timeout: 3
-      # password:
-      pool:
-        minIdle: 1
-        maxIdle: 10
-        maxWait: 3
-        maxActive: 8
-    ####全局配置时间返回格式#####
-  jackson:
-    #参数意义�?
-    #JsonInclude.Include.ALWAYS       默认
-    #JsonInclude.Include.NON_DEFAULT   属性为默认值不序列�?
-    #JsonInclude.Include.NON_EMPTY     属性为 空(””) 或者为 NULL 都不序列�?
-    #JsonInclude.Include.NON_NULL      属性为NULL  不序列化
-    default-property-inclusion: ALWAYS
-    time-zone: GMT+8
-    date-format: yyyy-MM-dd HH:mm:ss
-
-##########日志配置
-logging:
-  level:
-    root: info
-    org.mybatis: error
-    java.sql: error
-    org.springframework.web: error
-    #打印sql语句
-    com.management.platform.mapper: error
-  path: /log/
-  file: worktime.log
-##########
-mybatis-plus:
-  #  mapper-locations: classpath:mapper/*/*.xml
-  #  #实体扫描,多个package用逗号或者分号分�?
-  #  typeAliasesPackage: com.hssx.cloudmodel
-  global-config:
-    #主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
-    id-type: 0
-    #字段策略 0:"忽略判断",1:"�?NULL 判断"),2:"非空判断"
-    field-strategy: 2
-    db-column-underline: true
-    refresh-mapper:
-    #################插入和更新非null判断
-    db-config:
-      insert-strategy: not_null
-      update-strategy: not_null
-  configuration:
-    map-underscore-to-camel-case: true
-    cache-enabled: false
-######mybstis配置#######
-mybatis:
-  type-aliases-package: com.management.platform.entity
-  mapper-locations: mappers/*Mapper.xml
-#####配置图片上传路径####
-upload:
-  path: /www/staticproject/timesheet/upload/
-
-referer:
-  refererDomain:
-    - localhost
-    - gsmb.sgai.com.cn
-    - gspc.sgai.com.cn
-
-##actuator健康检查配�?
-management:
-  security:
-    enabled:false:
-  server:
-    port: 10011
-  #  endpoints:
-  #    web:
-  #      exposure:
-  #        include: "*"
-
-  health:
-    redis:
-      enabled: false
-
-configEnv:
-  isDev: false
-  isPrivateDeploy: true
-
-privateDeployURL:
-  pcUrl: http://gspc.sgai.com.cn
-  mobUrl: http://gsmb.sgai.com.cn
-
-# 私有化部署的企业自己的corpId
-corpId: ww69287a3380830fb1

+ 0 - 10
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/novel_words.data

@@ -1,10 +0,0 @@
-道:“
-道,
-道。
-我
-你
-他
-说:
-说。
-说,
-她

二進制
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/Contract Management Import Template.xlsx


二進制
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/Employee project allocation proportion import Template.xlsx


二進制
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/Employee hours import Template.xlsx


二進制
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/Employee hours statistics Template.xlsx


二進制
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/Expense Reimbursement import Template.xlsx


二進制
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/New customer import Template.xlsx


二進制
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/Personnel import Template.xlsx


二進制
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/Project import Template.xlsx


二進制
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/Project task import Template.xlsx


二進制
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/Research center import Template.xlsx


二進制
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/Resource demand import Template.xlsx


二進制
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/Salary Import Template.xlsx


二進制
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/upload/Supplier import Template.xlsx


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

@@ -551,7 +551,7 @@
                         <selectCat v-if="user.userNameNeedTranslate == 1" :size="'medium'" :subject="participator" :subjectId="addForm.inchargerId" :distinction="'3'" @selectCal="selectCal" :disabled="canOnlyModParticipator || projectManagerEdit"></selectCat>
                     </el-form-item>
                     <el-form-item :label="$t('newspaperauditor')" v-show="user.timeType.reportAuditType == 0 || user.timeType.reportAuditType == 4 || user.timeType.reportAuditType == 6">
-                        <el-select v-if="user.userNameNeedTranslate != '1'" @change="$forceUpdate()" v-model="addForm.auditUserIds"  :disabled="!(permissions.projectManagement|| user.id == addForm.inchargerId || user.id == addForm.creatorId)" filterable :placeholder="$t('defaultistheprojectleader')" style="width:100%;" >
+                        <el-select v-if="user.userNameNeedTranslate != '1'" @change="$forceUpdate()" v-model="addForm.auditUserIds"  :disabled="!(permissions.projectManagement|| user.id == addForm.inchargerId || user.id == addForm.creatorId)" filterable :placeholder="$t('defaultistheprojectleader')" style="width:100%;" :multiple="user.timeType.reportAuditType != 6" >
                             <el-option v-for="item in participator" :key="item.id" :label="item.name" :value="item.id"></el-option>
                         </el-select>
                         <selectCat v-if="user.userNameNeedTranslate == '1'" :size="'medium'" :tile="true" :widthStr="'800'" :disabled="!(permissions.projectManagement|| user.id == addForm.inchargerId || user.id == addForm.creatorId)" :subjectId="addForm.auditUserIds" :subject="participator" :clearable="false" :distinction="'10'"  :multiSelect="user.timeType.reportAuditType != 6" @selectCal="selectCal"></selectCat>

+ 51 - 10
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

@@ -475,12 +475,12 @@
                         <el-form-item :label="$t('lable.taskGrouping')" v-if="user.company.packageProject == 1"
                                           >
                             <!-- 任务分组 -->
-                            <span style="color:red;">*</span><el-select v-model="domain.groupId" :placeholder="$t('defaultText.pleaseSelectaTaskGroup')" style="width:200px;" clearable="true" 
+                            <el-select v-model="domain.groupId" :placeholder="$t('defaultText.pleaseSelectaTaskGroup')" style="width:200px;" clearable="true" 
                             :disabled="workForm.domains.length==0?true:(workForm.domains[index].state>=2?false:true)" @change="getGroupStages(domain, index)">
                                 <el-option v-for="item in domain.taskGroups" :key="item.id" :label="item.name" :value="item.id"></el-option>
                             </el-select>
                             <!-- 项目的阶段 -->
-                            <span v-if="domain.stages != null && domain.stages.length> 0" ><span style="color:red; padding:3px;margin-left:30px;">*</span>{{$t('other.inputStage')}}</span>
+                            <span v-if="domain.stages != null && domain.stages.length> 0" >{{$t('other.inputStage')}}</span>
                             <el-select v-model="domain.stage" :placeholder="$t('defaultText.pleaseChoose')" style="width:200px;margin-left:10px;" 
                             clearable="true" v-if="domain.stages != null && domain.stages.length> 0"
                             @change="changeStages(domain, index)"
@@ -936,14 +936,14 @@
                 </div>
                 <!-- 任务分组 -->
                 <div class="zhoFel" v-if="user.company.packageProject == 1">
-                    <p><span style="color:red;">*</span>{{$t('lable.taskGrouping')}}</p>
+                    <p>{{$t('lable.taskGrouping')}}</p>
                     <el-select v-model="zhoBao.groupId" :placeholder="$t('defaultText.pleaseSelectaTaskGroup')" clearable="true" style="width: 355px"
                      @change="getGroupStages(zhoBao, 0)">
                         <el-option v-for="item in zhoBao.taskGroups" :key="item.id" :label="item.name" :value="item.id"></el-option>
                     </el-select>
                 </div>
                 <div class="zhoFel" v-if="user.company.packageProject == 1 && zhoBao.stages != null && zhoBao.stages.length> 0">
-                    <p><span style="color:red;">*</span>{{$t('other.inputStage')}}</p>
+                    <p>{{$t('other.inputStage')}}</p>
                     <el-select v-model="zhoBao.stage" :placeholder="$t('defaultText.pleaseChoose')" style="width: 355px" clearable="true" >
                             <el-option v-for="item in zhoBao.stages" :key="item.id" :label="item.stagesName" :value="item.stagesName"></el-option>
                     </el-select>
@@ -1636,7 +1636,7 @@
                 <el-link v-if="active==0"  style="float:right;margin-right:100px;" type="primary" @click="downloadProjectRatio">下载填报工时占比表</el-link>
                 <el-link v-if="active==0 && user.companyId == 469 && user.roleName.indexOf('管理员') > 0"  style="float:right;margin-right:100px;" type="primary" @click="importCardTimeVisi = true">导入考勤时长</el-link>
                 <el-link v-if="active==0 && user.companyId == 469 && user.roleName == '超级管理员'"  style="float:right;margin-right:50px;" type="primary" @click="showBatchDeleteReport = true; startDeleting = false;">批量删除日报</el-link>
-                <el-link v-if="active==0 && user.companyId == 469 && user.roleName == '超级管理员'"  style="float:right;margin-right:50px;" type="primary" @click="showBatchSimpleApproveReport = true; startDeleting = false;">批量审核日报</el-link>
+                <el-link v-if="active==0 && user.companyId == 469 && user.roleName == '超级管理员'"  style="float:right;margin-right:50px;" type="primary" @click="showBatchSimpleApproveReport = true; startDeleting = false;getDepartmentForApprove();">批量审核日报</el-link>
             </div>
             
             <span slot="footer">
@@ -1693,6 +1693,16 @@
                     :end-placeholder="$t('time.endDate')"
                     ></el-date-picker>
             </div>
+            <div style="margin-top:15px;">
+                <span>选择部门:</span>
+                <el-cascader v-model="deleteReportParam.departmentId" placeholder="全部部门" style="width: 350px;margin-left:25px;"
+                    :options="deptOptionList" :props="{ checkStrictly: false,expandTrigger: 'hover' }" :show-all-levels="false" clearable
+                     size="small" v-if="user.userNameNeedTranslate != 1"
+                    ></el-cascader>
+                    <vueCascader :size="'small'" :widthStr="'191'" :clearable="true" :subject="deptOptionList" :radios="false" :distinction="'1'" @vueCasader="vueCasader" v-if="user.userNameNeedTranslate == 1"></vueCascader>
+                
+            </div>
+            
             <span slot="footer">
             <el-button @click="confirmBatchApproveReport" :loading="startDeleting" >审批通过</el-button>
             </span>
@@ -1997,6 +2007,7 @@
                 allData:{},
                 batchShowData:{},
                 option: [],
+                deptOptionList: [],
                 depData: {
                     id: -1,
                     label: this.$t('lable.allStaff'),
@@ -2261,10 +2272,17 @@
                 })
                 .then(() => {
                     this.startDeleting = true;
-                    this.http.post('/report/batchApproveByDate',{ 
+                    let obj = { 
                         startDate: this.deleteReportParam.date[0],
-                        endDate: this.deleteReportParam.date[1],
-                    },res => {
+                        endDate: this.deleteReportParam.date[1]
+                    }
+                    if(this.deleteReportParam.departmentId) {
+                        obj.departmentId = this.deleteReportParam.departmentId[this.deleteReportParam.departmentId.length - 1]
+                    } else {
+                        obj.departmentId = null
+                    }
+                    
+                    this.http.post('/report/batchApproveByDate',obj,res => {
                         if (res.code == "ok") {
                             this.$message({
                                 message: '审核通过',
@@ -4362,7 +4380,30 @@
                         });
                 }
             },
-            
+            // 获取部门列表
+            getDepartmentForApprove() {
+                this.http.post( this.port.manage.depList, {},
+                res => {
+                    if (res.code == "ok") {
+                        var list1 = JSON.parse(JSON.stringify(res.data));
+                        
+                        this.deptOptionList = this.changeArr(list1);
+                        console.log(this.deptOptionList, '部门')
+                    } else {
+                        this.$message({
+                            message: res.msg,
+                            type: "error"
+                        });
+                    }
+                },
+                error => {
+                    this.$message({
+                        message: error,
+                        type: "error"
+                    });
+                });
+            },
+
             // 获取部门列表
             getDepartment() {
                 let day = (this.choseDay+1) > 9 ? "-" + (this.choseDay + 1) : "-0" + (this.choseDay + 1);
@@ -5391,7 +5432,7 @@
             // 按周填报里内容的填写点击确定
             setWeekProItemData() {
                 //专业版模式下,任务分组和阶段必填
-                if (this.user.company.packageProject == 1) {
+                if (this.user.company.packageProject == 1 && this.user.companyId === 3917) {
                     if (!this.zhoBao.groupId || !this.zhoBao.stage) {
                         this.$message({
                             message: '任务分组和阶段必填,请检查',

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/index.vue

@@ -67,7 +67,7 @@
                             @cancel="item.showPickerSubProject = false;$forceUpdate();" />
                     </van-popup>
                     <!--任务分组 -->
-                    <van-field  readonly  name="groupId" v-if="user.timeType.reportAuditType >= 1 && (user.company.packageProject == 1 && item.taskGroups != null && item.taskGroups.length > 0)" clickable 
+                    <van-field  readonly  name="groupId" v-if="user.company.packageProject == 1 && item.taskGroups != null && item.taskGroups.length > 0" clickable 
                         :value="item.groupName" label="任务分组" placeholder="请选择任务分组" 
                     @click="clickPickTaskGroup(index, item)" />
                     <van-popup v-model="item.showPickerTaskGroup" position="bottom">