Browse Source

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

cs 2 years ago
parent
commit
c891042e02
17 changed files with 152 additions and 45 deletions
  1. 6 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java
  2. 8 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TimeType.java
  3. 3 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/CompanyDingdingMapper.java
  4. 0 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ReportMapper.java
  5. 2 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/WxCorpInfoMapper.java
  6. 3 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ExpenseSheetServiceImpl.java
  7. 65 13
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/TimingTask.java
  8. 6 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/CompanyDingdingMapper.xml
  9. 2 9
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml
  10. 6 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/WxCorpInfoMapper.xml
  11. 3 0
      fhKeeper/formulahousekeeper/octopus/src/views/customer/list.vue
  12. 14 2
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/entity/TimeType.java
  13. 3 1
      fhKeeper/formulahousekeeper/ops-platform/src/main/resources/mapper/TimeTypeMapper.xml
  14. 2 1
      fhKeeper/formulahousekeeper/timesheet/src/i18n/en.json
  15. 3 2
      fhKeeper/formulahousekeeper/timesheet/src/i18n/zh.json
  16. 6 3
      fhKeeper/formulahousekeeper/timesheet/src/views/expense/expense.vue
  17. 20 5
      fhKeeper/formulahousekeeper/timesheet/src/views/settings/timetype.vue

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

@@ -207,7 +207,8 @@ public class ReportController {
                                   Double[] overtimeHours, //加班时长
                                   String[] customText,
                                   Integer[] basecostId, //成本基线项的id
-                                  String[] auditorSettingArray
+                                  String[] auditorSettingArray,
+                                  String[] picStr //图片的文件名,不含后缀的,多个用@分隔,如:["3UlRmLbTnqLPM0-xjja2dS2VAg5OFERPUZz0HRqjb8BXLq8ewaFH6NmlFm1pnVza0"@"338EniZDtXtKGSnavdgvebGGyRgoieGv2aobIq6k5jboa_DsZNIvLmzHjW69kDG6x"]
                                     ) {
         List<Report> reportList = new ArrayList<>();
         String token = request.getHeader("Token");
@@ -568,6 +569,7 @@ public class ReportController {
                             report.setState(draft==0?0:3);
                             report.setCompanyId(user.getCompanyId());
                             report.setPicAdd(pics!=null?pics[i]:null);
+                            report.setPicStr(picStr!=null?picStr[i]:null);
                             report.setStage(stage[i]);
                             report.setCreateDate(localStartDate);
                             report.setCreatorId(token);
@@ -630,6 +632,7 @@ public class ReportController {
                                         .setState(1)//代填,直接是审核通过状态
                                         .setCompanyId(user.getCompanyId())
                                         .setPicAdd(pics!=null?pics[i]:null)
+                                        .setPicStr(picStr!=null?picStr[i]:null)
                                         .setCreateDate(localStartDate)
                                         .setCreatorId(subsUser.getId())
                                         .setDeptId(subsUser.getDepartmentId())
@@ -693,6 +696,7 @@ public class ReportController {
                         report.setState(draft==0?0:3);
                         report.setCompanyId(user.getCompanyId());
                         report.setPicAdd(pics!=null && pics.length>0?pics[i]:null);
+                        report.setPicStr(picStr!=null?picStr[i]:null);
                         report.setCreateDate(LocalDate.parse(createDate[i], DateTimeFormatter.ofPattern("yyyy-MM-dd")));
                         report.setCreatorId(token);
                         report.setDeptId(user.getDepartmentId());
@@ -760,6 +764,7 @@ public class ReportController {
 //                                    .setState(auditWorkflowList.size() == 0?1:0)//代填的如果没有自定义审核流程就直接审核通过了
                                     .setCompanyId(user.getCompanyId())
                                     .setPicAdd(pics!=null?pics[i]:null)
+                                    .setPicStr(picStr!=null?picStr[i]:null)
                                     .setCreateDate(LocalDate.parse(createDate[i], DateTimeFormatter.ofPattern("yyyy-MM-dd")))
                                     .setCreatorId(subsUser.getId())
                                     .setDeptId(subsUser.getDepartmentId())

+ 8 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TimeType.java

@@ -17,7 +17,7 @@ import lombok.experimental.Accessors;
  * </p>
  *
  * @author Seyason
- * @since 2023-03-21
+ * @since 2023-04-12
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -87,7 +87,7 @@ public class TimeType extends Model<TimeType> {
     private Boolean payOvertime;
 
     /**
-     * 提醒时间
+     * 填报提醒时间
      */
     @TableField("alert_time")
     private String alertTime;
@@ -456,6 +456,12 @@ public class TimeType extends Model<TimeType> {
     @TableField("project_custom")
     private Integer projectCustom;
 
+    /**
+     * 待审核提醒时间
+     */
+    @TableField("wait_check_alert_time")
+    private String waitCheckAlertTime;
+
 
     @Override
     protected Serializable pkVal() {

+ 3 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/CompanyDingdingMapper.java

@@ -2,7 +2,9 @@ package com.management.platform.mapper;
 
 import com.management.platform.entity.CompanyDingding;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
+import org.springframework.web.bind.annotation.PathVariable;
 
 import java.util.List;
 
@@ -19,5 +21,5 @@ public interface CompanyDingdingMapper extends BaseMapper<CompanyDingding> {
     @Select("select corpid, corp_name, company_id from company_dingding left join company on company.id = company_dingding.company_id where company.set_meal = 1 and company.expiration_date > now()")
     public List<CompanyDingding> getServicedDingdingCompanyList();
 
-    List<CompanyDingding> getDingdingCompanyList();
+    List<CompanyDingding> getDingdingCompanyList(@Param("companyIds") List<Integer> companyIds);
 }

+ 0 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ReportMapper.java

@@ -121,8 +121,6 @@ public interface ReportMapper extends BaseMapper<Report> {
 
     double getMyOvertime(String userId);
 
-    List<Map<String, Object>> getWaitingApproveCnt(Integer companyId);
-
     List<Map<String, Object>> getProWaitingApproveCnt(Integer companyId);
 
     List<Map<String, Object>> getDeptWaitingApproveCnt(Integer companyId);

+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/WxCorpInfoMapper.java

@@ -2,6 +2,7 @@ package com.management.platform.mapper;
 
 import com.management.platform.entity.WxCorpInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -15,5 +16,5 @@ import java.util.List;
  */
 public interface WxCorpInfoMapper extends BaseMapper<WxCorpInfo> {
 
-    List<WxCorpInfo> getWxCompanyList();
+    List<WxCorpInfo> getWxCompanyList(@Param("companyIds") List<Integer> companyIds);
 }

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

@@ -87,7 +87,7 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
     private ExcelExportService excelExportService;
     @Resource
     private ExpenseMainTypeService expenseMainTypeService;
-    public static final String[] sheetTypes = {"一般费用","差旅费","外包费用"};
+
     @Override
     public HttpRespMsg add(ExpenseSheet sheet, String items, String userId) {
         HttpRespMsg msg = new HttpRespMsg();
@@ -140,6 +140,7 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
                     List<User> targetUserList = userMapper.selectList(new QueryWrapper<User>().in("role_id", targetRoleIds));
                     String corpUserString = targetUserList.stream().map(tl -> tl.getCorpwxUserid()).collect(Collectors.joining("|"));
                     User targetUser = userMapper.selectById(sheet.getOwnerId());
+                    ExpenseMainType mainType = expenseMainTypeService.getById(sheet.getType());
                     //推送到企业微信
                     JSONObject json=new JSONObject();
                     JSONArray dataJson=new JSONArray();
@@ -151,7 +152,7 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
                     jsonObj1.put("value",sheet.getCreateDate());
                     JSONObject jsonObj2=new JSONObject();
                     jsonObj2.put("key", "票据类型");
-                    jsonObj2.put("value",sheetTypes[sheet.getType()]);
+                    jsonObj2.put("value",mainType.getName());
                     JSONObject jsonObj3=new JSONObject();
                     jsonObj3.put("key", "金额");
                     jsonObj3.put("value",sheet.getTotalAmount());

+ 65 - 13
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/TimingTask.java

@@ -570,36 +570,64 @@ public class TimingTask {
         }
     }
 
-    //每天9点10分提醒去审核
-    @Scheduled(cron = "0 10 9 ? * *")
+    //每分钟校验是否有需要提醒待审核的内容
+    @Scheduled(fixedRate = 60 * 1000)
     private void alertWaitingApprove() {
         if (isDev) return;
-        List<CompanyDingding> list = companyDingdingMapper.getDingdingCompanyList();
+        LocalDateTime now = LocalDateTime.now();
+        DateTimeFormatter df=DateTimeFormatter.ofPattern("HH:mm");
+        List<TimeType> timeTypeList = timeTypeMapper.selectList(new QueryWrapper<TimeType>().eq("wait_check_alert_time", df.format(now.toLocalTime())));
+        List<Integer> companyIds = timeTypeList.stream().map(TimeType::getCompanyId).distinct().collect(Collectors.toList());
+        companyIds.add(-1);
+        List<CompanyDingding> list = companyDingdingMapper.getDingdingCompanyList(companyIds);
         for (CompanyDingding companyDingding : list) {
-            List<Map<String, Object>> result = reportMapper.getWaitingApproveCnt(companyDingding.getCompanyId());
+            List<Map<String, Object>> result = reportMapper.getProWaitingApproveCnt(companyDingding.getCompanyId());
+            List<Map<String, Object>> result1 = reportMapper.getDeptWaitingApproveCnt(companyDingding.getCompanyId());
+            List<Object> resultCorpwxUserIds = result.stream().map(rl -> rl.get("auditorDDId")).collect(Collectors.toList());
             for (Map<String, Object> map : result) {
-//                if (companyDingding.getCompanyId() == 434) {
+                Optional<Map<String, Object>> first = result1.stream().filter(r1 -> r1.get("auditorDDId").equals(map.get("auditorDDId"))).findFirst();
+                Long num = Long.valueOf(String.valueOf(map.get("num")));
+                BigDecimal bigDecimal=new BigDecimal(num);
+                if(first.isPresent()){
+                    bigDecimal=bigDecimal.add(new BigDecimal(String.valueOf(first.get().get("num"))));
+                }
+                companyDingdingService.sendReportWaitingApplyMsg(companyDingding.getCompanyId(), companyDingding.getAgentId(),
+                        bigDecimal.longValue(), (String)map.get("auditorDDId"));
+            }
+            for (Map<String, Object> map : result1) {
+                if(!resultCorpwxUserIds.stream().anyMatch(ol->((String)ol).equals(map.get("auditorDDId")))){
+                    Long num = Long.valueOf(String.valueOf(map.get("num")));
+                    BigDecimal bigDecimal=new BigDecimal(num);
                     companyDingdingService.sendReportWaitingApplyMsg(companyDingding.getCompanyId(), companyDingding.getAgentId(),
-                            (Long)map.get("num"), (String)map.get("auditorDDId"));
-//                }
+                            bigDecimal.longValue(), (String)map.get("auditorDDId"));
+                }
             }
         }
-        List<WxCorpInfo> wxCorpInfoList = wxCorpInfoMapper.getWxCompanyList();
+        List<WxCorpInfo> wxCorpInfoList = wxCorpInfoMapper.getWxCompanyList(companyIds);
         for (WxCorpInfo wxCorpInfo : wxCorpInfoList) {
             if (wxCorpInfo!=null) {
-            List<Map<String, Object>> result = reportMapper.getWaitingApproveCnt(wxCorpInfo.getCompanyId());
-            for (Map<String, Object> map : result) {
-                if(map.get("corpwxUserid")!=null){
+                List<Map<String, Object>> result = reportMapper.getProWaitingApproveCnt(wxCorpInfo.getCompanyId());
+                List<Map<String, Object>> result1 = reportMapper.getDeptWaitingApproveCnt(wxCorpInfo.getCompanyId());
+                List<Object> resultCorpwxUserIds = result.stream().map(rl -> rl.get("corpwxUserid")).collect(Collectors.toList());
+                for (Map<String, Object> map : result) {
+                    Optional<Map<String, Object>> first = result1.stream().filter(r1 -> r1.get("corpwxUserid").equals(map.get("corpwxUserid"))).findFirst();
+                    if(map.get("corpwxUserid")!=null){
                     String corpwxUserid = (String) map.get("corpwxUserid");
                     //推送到企业微信
                     JSONObject json=new JSONObject();
                     JSONArray dataJson=new JSONArray();
                     JSONObject jsonObj=new JSONObject();
+                    Integer num = Integer.valueOf(String.valueOf(map.get("num")));
+                    BigDecimal bigDecimal=new BigDecimal(num);
+                    if(first.isPresent()){
+                        bigDecimal=bigDecimal.add(new BigDecimal(String.valueOf(first.get().get("num"))));
+                    }
+                    System.out.println("进来了-----------------------------------------------------------");
                     jsonObj.put("key", "待审核数量");
-                    jsonObj.put("value",StringUtils.isEmpty(map.get("num"))?"":map.get("num"));
+                    jsonObj.put("value",bigDecimal.toPlainString());
                     dataJson.add(jsonObj);
                     if(isPrivateDeploy){
-                        json.put("content","待审核数量: "+(StringUtils.isEmpty(map.get("num"))?"":map.get("num"))+"\\n<a href=\\\"https://open.weixin.qq.com/connect/oauth2/authorize?appid=ww4e237fd6abb635af&redirect_uri="+pcUrl+"/api/corpWXAuth&response_type=code&scope=snsapi_base&state=0#wechat_redirect\\\">去审核</a>");
+                        json.put("content","待审核数量: "+(bigDecimal.toPlainString())+"\\n<a href=\\\"https://open.weixin.qq.com/connect/oauth2/authorize?appid=ww4e237fd6abb635af&redirect_uri="+pcUrl+"/api/corpWXAuth&response_type=code&scope=snsapi_base&state=0#wechat_redirect\\\">去审核</a>");
                     }else {
                         json.put("template_id","tty9TkCAAAuPvPjabDdQXGocnG0K24EQ");
                         json.put("url","https://open.weixin.qq.com/connect/oauth2/authorize?appid=ww4e237fd6abb635af&redirect_uri=http://worktime.ttkuaiban.com/api/corpWXAuth&response_type=code&scope=snsapi_base&state=review#wechat_redirect");
@@ -608,6 +636,30 @@ public class TimingTask {
                     wxCorpInfoService.sendWXCorpTemplateMsg(wxCorpInfo, corpwxUserid, json);
                     }
                 }
+                for (Map<String, Object> map : result1) {
+                    if(!resultCorpwxUserIds.stream().anyMatch(ol->((String)ol).equals(map.get("corpwxUserid")))){
+                        if(map.get("corpwxUserid")!=null){
+                            String corpwxUserid = (String) map.get("corpwxUserid");
+                            //推送到企业微信
+                            JSONObject json=new JSONObject();
+                            JSONArray dataJson=new JSONArray();
+                            JSONObject jsonObj=new JSONObject();
+                            Integer num = Integer.valueOf(String.valueOf(map.get("num")));
+                            BigDecimal bigDecimal=new BigDecimal(num);
+                            jsonObj.put("key", "待审核数量");
+                            jsonObj.put("value",bigDecimal.toPlainString());
+                            dataJson.add(jsonObj);
+                            if(isPrivateDeploy){
+                                json.put("content","待审核数量: "+(bigDecimal.toPlainString())+"\\n<a href=\\\"https://open.weixin.qq.com/connect/oauth2/authorize?appid=ww4e237fd6abb635af&redirect_uri="+pcUrl+"/api/corpWXAuth&response_type=code&scope=snsapi_base&state=0#wechat_redirect\\\">去审核</a>");
+                            }else {
+                                json.put("template_id","tty9TkCAAAuPvPjabDdQXGocnG0K24EQ");
+                                json.put("url","https://open.weixin.qq.com/connect/oauth2/authorize?appid=ww4e237fd6abb635af&redirect_uri=http://worktime.ttkuaiban.com/api/corpWXAuth&response_type=code&scope=snsapi_base&state=review#wechat_redirect");
+                                json.put("content_item",dataJson);
+                            }
+                            wxCorpInfoService.sendWXCorpTemplateMsg(wxCorpInfo, corpwxUserid, json);
+                        }
+                    }
+                }
             }
         }
     }

+ 6 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/CompanyDingdingMapper.xml

@@ -32,6 +32,12 @@
         left join company
         ON company_dingding.company_id = company.id
         where company.expiration_date >= now()
+        <if test="companyIds.size()>0">
+            and company.id in
+            <foreach collection="companyIds" item="item" separator="," open="(" close=")">
+                #{item}
+            </foreach>
+        </if>
     </select>
 
 </mapper>

+ 2 - 9
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml

@@ -704,14 +704,7 @@
     <select id="getMyOvertime"  resultType="java.lang.Double">
         select IFNULL(sum(overtime_hours),0) from report where creator_id=#{userId}
     </select>
-    <select id="getWaitingApproveCnt" resultType="java.util.HashMap">
-        select count(1) as num, user.dingding_userid as auditorDDId ,user.corpwx_userid as corpwxUserid from report
-         left join user on user.id = project_auditor_id
-         where state = 0 and project_audit_state = 0 and is_dept_audit = 0
-        and report.company_id = #{companyId}
-        group by project_auditor_id
-    </select>
-    <!--<select id="getProWaitingApproveCnt" resultType="java.util.HashMap">
+    <select id="getProWaitingApproveCnt" resultType="java.util.HashMap">
         select count(1) as num, user.dingding_userid as auditorDDId ,user.corpwx_userid as corpwxUserid from report
          left join user on user.id = project_auditor_id
          where state = 0 and project_audit_state = 0 and is_dept_audit = 0
@@ -724,7 +717,7 @@
          where state = 0 and department_audit_state = 0 and is_dept_audit = 1
         and report.company_id =#{companyId}
         group by audit_dept_managerid
-    </select>-->
+    </select>
     <select id="getProjectCost" resultType="java.util.HashMap">
         SELECT project_id as projectId,basecost_id as basecostId, SUM(cost) AS cost FROM report WHERE company_id=#{companyId}
         AND (state = 0 or state = 1) and basecost_id > 0 AND project_id IN

+ 6 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/WxCorpInfoMapper.xml

@@ -34,5 +34,11 @@
         left join company
         ON wx_corp_info.company_id = company.id
         where company.expiration_date >= now()
+        <if test="companyIds.size()>0">
+            and company.id in
+            <foreach collection="companyIds" item="item" separator="," open="(" close=")">
+                #{item}
+            </foreach>
+        </if>
     </select>
 </mapper>

+ 3 - 0
fhKeeper/formulahousekeeper/octopus/src/views/customer/list.vue

@@ -241,6 +241,7 @@
                     <el-form-item><el-checkbox v-model="dialogData.subProMustFill">子项目是否必填</el-checkbox></el-form-item>
                     <el-form-item><el-checkbox v-model="dialogData.projectManDay">是否开启项目人天字段</el-checkbox></el-form-item>
                     <el-form-item><el-checkbox v-model="dialogData.projectCustom">是否开启项目自定义表单</el-checkbox></el-form-item>
+                    <el-form-item><el-checkbox v-model="dialogData.easyExpense">是否开启简易费用报销</el-checkbox></el-form-item>
                 </el-form>
             </div>
             <!-- 是否开启审批流设置,是否启用主项目模式,是否秘薪模式,是否显示日报审批流程,是否CRO企业,是否仅使用导入日报审核(不要项目审核) reportAuditType-->
@@ -407,6 +408,7 @@
                             this.$set(this.dialogData,'restartTaskNeedReason',res.data.restartTaskNeedReason ? true : false)
                             this.$set(this.dialogData,'subProMustFill',res.data.subProMustFill ? true : false)
                             this.$set(this.dialogData,'projectManDay',res.data.projectManDay ? true : false)
+                            this.$set(this.dialogData,'easyExpense',res.data.easyExpense ? true : false)
                         }else{
                             this.$message({
                                 message: res.msg,
@@ -724,6 +726,7 @@
                     restartTaskNeedReason: this.dialogData.restartTaskNeedReason ? 1 : 0,
                     subProMustFill: this.dialogData.subProMustFill ? 1 : 0,
                     projectManDay: this.dialogData.projectManDay ? 1 : 0,
+                    easyExpense: this.dialogData.easyExpense ? 1 : 0,
                 },res => {
                     if(res.code == 'ok'){
                         this.editDialogG = false

+ 14 - 2
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/entity/TimeType.java

@@ -17,7 +17,7 @@ import lombok.experimental.Accessors;
  * </p>
  *
  * @author Seyason
- * @since 2023-03-21
+ * @since 2023-04-13
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -75,7 +75,7 @@ public class TimeType extends Model<TimeType> {
     private Boolean payOvertime;
 
     /**
-     * 提醒时间
+     * 填报提醒时间
      */
     @TableField("alert_time")
     private String alertTime;
@@ -443,6 +443,18 @@ public class TimeType extends Model<TimeType> {
     @TableField("project_custom")
     private Integer projectCustom;
 
+    /**
+     * 待审核提醒时间
+     */
+    @TableField("wait_check_alert_time")
+    private String waitCheckAlertTime;
+
+    /**
+     * 0-否 1-是  是否开启简易费用报销
+     */
+    @TableField("easy_expense")
+    private Integer easyExpense;
+
 
     @Override
     protected Serializable pkVal() {

File diff suppressed because it is too large
+ 3 - 1
fhKeeper/formulahousekeeper/ops-platform/src/main/resources/mapper/TimeTypeMapper.xml


+ 2 - 1
fhKeeper/formulahousekeeper/timesheet/src/i18n/en.json

@@ -935,7 +935,8 @@
   "reminderSettings": "Fill in the reminder settings",
   "remindermethod": "Please select a reminder method",
   "remindertext": "reminder text",
-  "remindertime": "reminder time",
+  "reportRemindertime": "report reminder time",
+  "checkRemindertime": "check reminder time",
   "settingrestPeriod": "Set a break time period",
   "showthesample": "Show example",
   "timeproportionally": "Prorated time",

+ 3 - 2
fhKeeper/formulahousekeeper/timesheet/src/i18n/zh.json

@@ -930,8 +930,9 @@
   "pointintime": "任意时间点",
   "settingrestPeriod": "设置休息时间段",
   "timeproportionally": "按比例分配时间",
-  "reminderSettings": "填报提醒设置",
-  "remindertime": "提醒时间",
+  "reminderSettings": "提醒设置",
+  "reportRemindertime": "填报提醒时间",
+  "checkRemindertime": "审核提醒时间",
   "remindermethod": "请选择提醒方式",
   "missingfill": "每日提醒当天漏填",
   "missingfills": "每日提醒昨天漏填",

+ 6 - 3
fhKeeper/formulahousekeeper/timesheet/src/views/expense/expense.vue

@@ -84,7 +84,7 @@
             <el-form-item :label="$t('invoicenumber')">
               <el-input v-model="addForm.ticketNum" style="width: 150px"></el-input>
             </el-form-item>
-            <!-- 费用类型 -->
+            <!-- 费用类型 -->
             <el-form-item :label="'费用主类型'">
               <el-select v-model="expenseMainTypeValue"  style="width: 150px" @change="this.getExpList">
                 <el-option
@@ -221,7 +221,7 @@
             <el-form-item :label="$t('receiptnumber')" >
               <el-input v-model="code" size="small" :placeholder="$t('receiptnumber')" clearable="true" style="width: 120px"></el-input>
             </el-form-item>
-            <!-- 费用类型 -->
+            <!-- 费用类型 -->
             <el-form-item :label="'费用主类型'">
               <el-select size="small" v-model="expenseMainTypeValue"  style="width: 150px">
                 <el-option
@@ -733,8 +733,9 @@ export default {
     this.getUsers() // 获取人员信息
     this.getList() // 获取单据列表
     this.getProjectList();
-    this.getExpList();
     this.getExpensMainTypes();
+    this.getExpList();
+    
   },
   filters: {
       numberToCurrency(value) {
@@ -1050,6 +1051,7 @@ export default {
                 this.customTypeList = res.data
                 this.addForm.type=this.expenseMainTypeValue
                 this.expenseTypeList = this.allExpList.filter(a=>a.mainType == this.expenseMainTypeValue);
+                this.invoiceList=[]
                 if(!res.data != res.data.length == 0){
                   this.http.post('/company/settingExpenseType',{},res => {
                     if(res.code == 'ok'){}else{this.$message({message: res.msg,type: 'error'})}
@@ -1079,6 +1081,7 @@ export default {
         res => {
             if (res.code == "ok") {
                 this.expenseMainTypes=res.data
+                this.expenseMainTypeValue=this.expenseMainTypes[0].id
             } else {
                 this.$message({
                 message: res.msg,

+ 20 - 5
fhKeeper/formulahousekeeper/timesheet/src/views/settings/timetype.vue

@@ -190,13 +190,13 @@
         <p style="margin-left:10px;color:#666;">{{ $t('reminderSettings') }}</p>
         <el-row :gutter="20" style="padding-top:10px;width:100%;margin:0 auto;padding-left:10px;padding-right:10px;">
             <el-col :span="24" >
-                <div class="panel" style="height:200px;">
+                <div class="panel" >
                     <el-form :inline="true" :model="timeType"  style="margin-top:10px;">
-                    <el-form-item :label="$t('remindertime') " prop="alertTime">
+                    <el-form-item :label="$t('reportRemindertime') " prop="alertTime">
                         <el-time-picker 
                                 v-model="timeType.alertTime"
-                                :placeholder="$t('remindertime')"
-                                style="width:120px;"
+                                :placeholder="$t('reportRemindertime')"
+                                style="width:150px;"
                                 format="HH:mm"
                                 value-format="HH:mm"
                                 :picker-options="{
@@ -216,7 +216,7 @@
                             <!-- <div style="display: inline-block;margin: 0 10px 0 20px" v-if="timeType.alertTime">周末节假日提醒</div> -->
                             <!-- <el-switch v-if="timeType.alertTime" v-model="timeType.alertNonWorkday" active-color="#13ce66" inactive-color="#ff4949"></el-switch> -->
                     </el-form-item>
-
+                    
                     </el-form>
                     <div class="underpanel">
                         <div class="whiteList_head">
@@ -231,6 +231,20 @@
                             </el-tag>
                         </div>
                     </div>
+                    <div style="width:100%">
+                        <span style="color: #606266;margin-right: 5px">审核提醒时间</span>
+                        <el-time-picker 
+                                v-model="timeType.waitCheckAlertTime"
+                                :placeholder="$t('checkRemindertime')"
+                                style="width:150px;"
+                                format="HH:mm"
+                                value-format="HH:mm"
+                                :picker-options="{
+                                start: '08:00',
+                                end: '23:30'
+                                }">
+                            </el-time-picker>
+                    </div>
                 </div>
             </el-col>
         </el-row>
@@ -1451,6 +1465,7 @@
 .yanjiu {
     display: flex;
     align-items: center;
+    margin-top: 10px;
     // justify-content: space-between;
     padding: 0 20px 0 0;
 }