浏览代码

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

QuYueTing 7 月之前
父节点
当前提交
0aff6f5dfa

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

@@ -49,8 +49,8 @@ public class ContractController {
     /**
     /**
      * 导出合同
      * 导出合同
      */
      */
-    @RequestMapping("/ExportContract")
-    public HttpRespMsg ExportContract (HttpServletRequest request, String number,String name,String typeName,Integer status,String startDate,String endDate, String paymentStartDate, String paymentEndDate, Integer secTypeId){
+    @RequestMapping("/exportContract")
+    public HttpRespMsg exportContract (HttpServletRequest request, String number,String name,String typeName,Integer status,String startDate,String endDate, String paymentStartDate, String paymentEndDate, Integer secTypeId){
         return contractService.ExportContract(request,number,name,typeName,status,startDate,endDate, paymentStartDate, paymentEndDate, secTypeId);
         return contractService.ExportContract(request,number,name,typeName,status,startDate,endDate, paymentStartDate, paymentEndDate, secTypeId);
     }
     }
 
 

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

@@ -2988,5 +2988,13 @@ public class ReportController {
     public HttpRespMsg getCurAuditNode(String date, String userId) {
     public HttpRespMsg getCurAuditNode(String date, String userId) {
         return reportService.getCurAuditNode(date,userId);
         return reportService.getCurAuditNode(date,userId);
     }
     }
+
+    @RequestMapping("/getReportTimeLessThanCardTimeList")
+    public HttpRespMsg getReportTimeLessThanCardTimeList(String date) {
+        return reportService.getReportTimeLessThanCardTimeList(date);
+    }
+
+
+
 }
 }
 
 

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

@@ -171,4 +171,6 @@ public interface ReportService extends IService<Report> {
     HttpRespMsg exportListByState(Integer state, Integer departmentId, Integer projectId, String date, String startDate, String endDate, String userId, String auditUserId, HttpServletRequest request) throws Exception;
     HttpRespMsg exportListByState(Integer state, Integer departmentId, Integer projectId, String date, String startDate, String endDate, String userId, String auditUserId, HttpServletRequest request) throws Exception;
 
 
     HttpRespMsg getCurAuditNode(String date, String userId);
     HttpRespMsg getCurAuditNode(String date, String userId);
+
+    HttpRespMsg getReportTimeLessThanCardTimeList(String date);
 }
 }

+ 8 - 13
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ContractServiceImpl.java

@@ -915,7 +915,6 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract> i
                 //检查合同类型是否存在
                 //检查合同类型是否存在
                 Integer typeId = null;
                 Integer typeId = null;
                 if (StringUtils.isNotBlank(type)){
                 if (StringUtils.isNotBlank(type)){
-                    System.out.println("type========"+type);
                     for (ContractType contractType : typeList) {
                     for (ContractType contractType : typeList) {
                         if (contractType.getTypeName().equals(type)){
                         if (contractType.getTypeName().equals(type)){
                             TypeExists = true;
                             TypeExists = true;
@@ -953,11 +952,11 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract> i
                 item.setStatus(1);
                 item.setStatus(1);
                 //时间转化
                 //时间转化
                 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
                 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-                if (startDate != null){
+                if (StringUtils.isNotEmpty(startDate)){
                     LocalDate start = LocalDate.parse(startDate, dtf);
                     LocalDate start = LocalDate.parse(startDate, dtf);
                     item.setStartDate(start);
                     item.setStartDate(start);
                 }
                 }
-                if (endDate != null){
+                if (StringUtils.isNotEmpty(endDate)){
                     LocalDate end = LocalDate.parse(endDate, dtf);
                     LocalDate end = LocalDate.parse(endDate, dtf);
                     item.setEndDate(end);
                     item.setEndDate(end);
                 }
                 }
@@ -1265,7 +1264,7 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract> i
                                 item.add(customData.getCustomerContact()==null?"":customData.getCustomerContact());
                                 item.add(customData.getCustomerContact()==null?"":customData.getCustomerContact());
                                 item.add(customData.getCustomerPhone()==null?"":customData.getCustomerPhone());
                                 item.add(customData.getCustomerPhone()==null?"":customData.getCustomerPhone());
                                 item.add(customData.getUseDepartment()==null?"":customData.getUseDepartment());
                                 item.add(customData.getUseDepartment()==null?"":customData.getUseDepartment());
-                                item.add(customData.getFundsSource()==null?"":customData.getFundsSource());
+                                item.add(customData.getFundsSource()==null?"":(customData.getFundsSource().equals("1")?"科研":"其他(专项等)"));
                                 item.add(customData.getUndertaker()==null?"":customData.getUndertaker());
                                 item.add(customData.getUndertaker()==null?"":customData.getUndertaker());
                                 item.add(customData.getAgent()==null?"":customData.getAgent());
                                 item.add(customData.getAgent()==null?"":customData.getAgent());
                                 item.add(customData.getSignDate()==null?"":customData.getSignDate());
                                 item.add(customData.getSignDate()==null?"":customData.getSignDate());
@@ -1322,12 +1321,10 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract> i
 
 
                             item.add(payCustomizedList.get(j).getPayDate()==null?"":payCustomizedList.get(j).getPayDate());
                             item.add(payCustomizedList.get(j).getPayDate()==null?"":payCustomizedList.get(j).getPayDate());
                             item.add(payCustomizedList.get(j).getPayedAmount()==null?"":payCustomizedList.get(j).getPayedAmount()+"");
                             item.add(payCustomizedList.get(j).getPayedAmount()==null?"":payCustomizedList.get(j).getPayedAmount()+"");
-                            if (payCustomizedList.get(j).getPayWay()!=null&&payCustomizedList.get(j).getPayWay()==1){
+                            if (payCustomizedList.get(j).getPayType().booleanValue()){
                                 item.add("预付");
                                 item.add("预付");
-                            } else if (payCustomizedList.get(j).getPayWay()!=null&&payCustomizedList.get(j).getPayWay()==2) {
+                            } else {
                                 item.add("报账");
                                 item.add("报账");
-                            }else {
-                                item.add("");
                             }
                             }
                             item.add(payCustomizedList.get(j).getBillNumber()==null?"":payCustomizedList.get(j).getBillNumber());
                             item.add(payCustomizedList.get(j).getBillNumber()==null?"":payCustomizedList.get(j).getBillNumber());
                             item.add(payCustomizedList.get(j).getPendingAmounts()==null?"":payCustomizedList.get(j).getPendingAmounts()+"");
                             item.add(payCustomizedList.get(j).getPendingAmounts()==null?"":payCustomizedList.get(j).getPendingAmounts()+"");
@@ -1341,12 +1338,10 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract> i
 
 
                             item.add(payCustomizedList.get(j).getPayDate()==null?"":payCustomizedList.get(j).getPayDate());
                             item.add(payCustomizedList.get(j).getPayDate()==null?"":payCustomizedList.get(j).getPayDate());
                             item.add(payCustomizedList.get(j).getPayedAmount()==null?"":payCustomizedList.get(j).getPayedAmount()+"");
                             item.add(payCustomizedList.get(j).getPayedAmount()==null?"":payCustomizedList.get(j).getPayedAmount()+"");
-                            if (payCustomizedList.get(j).getPayWay()!=null&&payCustomizedList.get(j).getPayWay()==1){
+                            if (payCustomizedList.get(j).getPayType().booleanValue()){
                                 item.add("预付");
                                 item.add("预付");
-                            } else if (payCustomizedList.get(j).getPayWay()!=null&&payCustomizedList.get(j).getPayWay()==2) {
+                            } else {
                                 item.add("报账");
                                 item.add("报账");
-                            }else {
-                                item.add("");
                             }
                             }
                             item.add(payCustomizedList.get(j).getBillNumber()==null?"":payCustomizedList.get(j).getBillNumber());
                             item.add(payCustomizedList.get(j).getBillNumber()==null?"":payCustomizedList.get(j).getBillNumber());
                             item.add(payCustomizedList.get(j).getPendingAmounts()==null?"":payCustomizedList.get(j).getPendingAmounts()+"");
                             item.add(payCustomizedList.get(j).getPendingAmounts()==null?"":payCustomizedList.get(j).getPendingAmounts()+"");
@@ -1367,7 +1362,7 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract> i
                         item.add(customData.getCustomerContact()==null?"":customData.getCustomerContact());
                         item.add(customData.getCustomerContact()==null?"":customData.getCustomerContact());
                         item.add(customData.getCustomerPhone()==null?"":customData.getCustomerPhone());
                         item.add(customData.getCustomerPhone()==null?"":customData.getCustomerPhone());
                         item.add(customData.getUseDepartment()==null?"":customData.getUseDepartment());
                         item.add(customData.getUseDepartment()==null?"":customData.getUseDepartment());
-                        item.add(customData.getFundsSource()==null?"":customData.getFundsSource());
+                        item.add(customData.getFundsSource()==null?"":(customData.getFundsSource().equals("1")?"科研":"其他(专项等)"));
                         item.add(customData.getUndertaker()==null?"":customData.getUndertaker());
                         item.add(customData.getUndertaker()==null?"":customData.getUndertaker());
                         item.add(customData.getAgent()==null?"":customData.getAgent());
                         item.add(customData.getAgent()==null?"":customData.getAgent());
                         item.add(customData.getSignDate()==null?"":customData.getSignDate());
                         item.add(customData.getSignDate()==null?"":customData.getSignDate());

+ 46 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -10222,4 +10222,50 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         msg.data = curNode;
         msg.data = curNode;
         return msg;
         return msg;
     }
     }
+
+    @Override
+    public HttpRespMsg getReportTimeLessThanCardTimeList(String date) {
+        //获取自己的考勤未填满的记录
+        User user = userMapper.selectById(request.getHeader("token"));
+        Integer companyId = user.getCompanyId();
+        //获取考勤表记录
+        List<UserCorpwxTime> userCorpwxTimeList = null;
+        //date格式为2024-09, 需要获取该月的第一天和最后一天
+        LocalDate firstDay = LocalDate.parse(date + "-01");
+        LocalDate lastDay = firstDay.with(TemporalAdjusters.lastDayOfMonth());
+        if (user.getCorpwxUserid() != null) {
+            userCorpwxTimeList = userCorpwxTimeMapper.selectList(new QueryWrapper<UserCorpwxTime>().eq("company_id", companyId).eq("corpwx_userid", user.getCorpwxUserid()).between("create_date", firstDay, lastDay));
+        } else {
+            userCorpwxTimeList = userCorpwxTimeMapper.selectList(new QueryWrapper<UserCorpwxTime>().eq("company_id", companyId).eq("name", user.getName()).between("create_date", firstDay, lastDay));
+        }
+        //获取个人每日填报工时记录表
+        List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().select("creator_id,create_date, sum(working_time) as working_time").eq("creator_id", user.getId()).between("create_date", firstDay, lastDay).groupBy("create_date"));
+        //比对userCorpwxTimeList和reportList,找出工时未填满的记录
+        List<Map<String, Object>> resultList = new ArrayList<>();
+        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        for (UserCorpwxTime corpwxTime : userCorpwxTimeList) {
+            boolean isFull = false;
+            double reportTime = 0;
+            for (Report report : reportList) {
+                if (corpwxTime.getCreateDate().isEqual(report.getCreateDate())) {
+                    reportTime = report.getWorkingTime();
+                    if (corpwxTime.getWorkHours() <= report.getWorkingTime()) {
+                        isFull = true;
+                    }
+                    break;
+                }
+            }
+            if (!isFull) {
+                Map<String, Object> map = new HashMap<>();
+                map.put("name", corpwxTime.getName()==null?corpwxTime.getCorpwxUserid():corpwxTime.getName());
+                map.put("createDate", dateTimeFormatter.format(corpwxTime.getCreateDate()));
+                map.put("workHours", corpwxTime.getWorkHours());
+                map.put("reportTime", reportTime);
+                resultList.add(map);
+            }
+        }
+        HttpRespMsg msg = new HttpRespMsg();
+        msg.setData(resultList);
+        return msg;
+    }
 }
 }

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

@@ -2192,5 +2192,7 @@
   "yiXuanZe": "Selected",
   "yiXuanZe": "Selected",
   "zhuanYIGongShi": "Transfer of working hours",
   "zhuanYIGongShi": "Transfer of working hours",
   "zhuanYiChengGong": "Transfer successful",
   "zhuanYiChengGong": "Transfer successful",
-  "zhuanYiZhi": "Transfer to"
+  "zhuanYiZhi": "Transfer to",
+  "cardtimenotfull": "ReportTime less than cardTime data list",
+  "fillReportTime": "Fill report time"
 }
 }

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

@@ -2193,5 +2193,7 @@
   "gongJiGongShi": "共计工时",
   "gongJiGongShi": "共计工时",
   "zhuanYiZhi": "转移至",
   "zhuanYiZhi": "转移至",
   "queRenZhuanYi": "确认转移",
   "queRenZhuanYi": "确认转移",
-  "zhuanYiChengGong": "转移成功"
+  "zhuanYiChengGong": "转移成功",
+  "cardtimenotfull": "考勤工时未完全填报列表",
+  "fillReportTime": "填报时长"
 }
 }

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/contract/components/contractManagement.vue

@@ -621,7 +621,7 @@ export default {
         parameter.startDate = this.dateArray[0]
         parameter.startDate = this.dateArray[0]
         parameter.endDate = this.dateArray[1]
         parameter.endDate = this.dateArray[1]
       }
       }
-      this.http.post('/contract/ExportContract',parameter,
+      this.http.post('/contract/exportContract',parameter,
       res => {
       res => {
         if(res.code == 'ok'){
         if(res.code == 'ok'){
           let filePath = res.data;
           let filePath = res.data;

+ 18 - 18
fhKeeper/formulahousekeeper/timesheet/src/views/contract/components/customContract.vue

@@ -194,67 +194,67 @@
           </el-form-item> -->
           </el-form-item> -->
 
 
           <el-form-item label="对方单位">
           <el-form-item label="对方单位">
-            <el-input v-model="contractForm.customerOrg" :placeholder="$t('peaseenterthe')" clearable></el-input>
+            <el-input v-model="contractForm.customerOrg" :disabled="contractForm.status == 0" :placeholder="$t('peaseenterthe')" clearable></el-input>
           </el-form-item>
           </el-form-item>
           <el-form-item label="对方联系人">
           <el-form-item label="对方联系人">
-            <el-input v-model="contractForm.customerContact" :placeholder="$t('peaseenterthe')" clearable></el-input>
+            <el-input v-model="contractForm.customerContact" :disabled="contractForm.status == 0" :placeholder="$t('peaseenterthe')" clearable></el-input>
           </el-form-item>
           </el-form-item>
           <el-form-item label="对方联系电话">
           <el-form-item label="对方联系电话">
-            <el-input v-model="contractForm.customerPhone" :placeholder="$t('peaseenterthe')" clearable></el-input>
+            <el-input v-model="contractForm.customerPhone" :disabled="contractForm.status == 0" :placeholder="$t('peaseenterthe')" clearable></el-input>
           </el-form-item>
           </el-form-item>
           <el-form-item label="使用部门">
           <el-form-item label="使用部门">
-            <el-input v-model="contractForm.useDepartment" :placeholder="$t('peaseenterthe')" clearable></el-input>
+            <el-input v-model="contractForm.useDepartment" :disabled="contractForm.status == 0" :placeholder="$t('peaseenterthe')" clearable></el-input>
           </el-form-item>
           </el-form-item>
           <el-form-item label="经费来源">
           <el-form-item label="经费来源">
-            <el-select v-model="contractForm.fundsSource" placeholder="请选择">
+            <el-select v-model="contractForm.fundsSource" :disabled="contractForm.status == 0" placeholder="请选择">
               <el-option label="科研" value="1"></el-option>
               <el-option label="科研" value="1"></el-option>
               <el-option label="其他(专项等)" value="2"></el-option>
               <el-option label="其他(专项等)" value="2"></el-option>
             </el-select>
             </el-select>
           </el-form-item>
           </el-form-item>
           <el-form-item label="合同承办人">
           <el-form-item label="合同承办人">
-            <el-input v-model="contractForm.undertaker" :placeholder="$t('peaseenterthe')" clearable></el-input>
+            <el-input v-model="contractForm.undertaker" :disabled="contractForm.status == 0" :placeholder="$t('peaseenterthe')" clearable></el-input>
           </el-form-item>
           </el-form-item>
           <el-form-item label="委托代理人">
           <el-form-item label="委托代理人">
-            <el-input v-model="contractForm.agent" :placeholder="$t('peaseenterthe')" clearable></el-input>
+            <el-input v-model="contractForm.agent" :disabled="contractForm.status == 0" :placeholder="$t('peaseenterthe')" clearable></el-input>
           </el-form-item>
           </el-form-item>
           <el-form-item label="签订日期">
           <el-form-item label="签订日期">
-            <el-date-picker v-model="contractForm.signDate" value-format="yyyy-MM-dd" type="date" :placeholder="$t('optiondate')"></el-date-picker>
+            <el-date-picker v-model="contractForm.signDate" :disabled="contractForm.status == 0" value-format="yyyy-MM-dd" type="date" :placeholder="$t('optiondate')"></el-date-picker>
           </el-form-item>
           </el-form-item>
           <el-form-item label="合同生效日期">
           <el-form-item label="合同生效日期">
-            <el-date-picker v-model="contractForm.startDate" value-format="yyyy-MM-dd" type="date" :placeholder="$t('optiondate')"></el-date-picker>
+            <el-date-picker v-model="contractForm.startDate" :disabled="contractForm.status == 0" value-format="yyyy-MM-dd" type="date" :placeholder="$t('optiondate')"></el-date-picker>
           </el-form-item>
           </el-form-item>
           <el-form-item label="合同终止日期">
           <el-form-item label="合同终止日期">
-            <el-date-picker v-model="contractForm.endDate" value-format="yyyy-MM-dd" type="date" :placeholder="$t('optiondate')"></el-date-picker>
+            <el-date-picker v-model="contractForm.endDate" :disabled="contractForm.status == 0" value-format="yyyy-MM-dd" type="date" :placeholder="$t('optiondate')"></el-date-picker>
           </el-form-item>
           </el-form-item>
           <el-form-item label="备案日期">
           <el-form-item label="备案日期">
-            <el-date-picker v-model="contractForm.filingsDate" value-format="yyyy-MM-dd" type="date" :placeholder="$t('optiondate')"></el-date-picker>
+            <el-date-picker v-model="contractForm.filingsDate" :disabled="contractForm.status == 0" value-format="yyyy-MM-dd" type="date" :placeholder="$t('optiondate')"></el-date-picker>
           </el-form-item>
           </el-form-item>
           <el-form-item label="合同金额(元)/含税价">
           <el-form-item label="合同金额(元)/含税价">
-            <el-input v-model="contractForm.amounts" :placeholder="$t('peaseenterthe')" @change="chgPayedAmount()" clearable>
+            <el-input v-model="contractForm.amounts" :disabled="contractForm.status == 0" :placeholder="$t('peaseenterthe')" @change="chgPayedAmount()" clearable>
               <span slot="prefix">¥</span>
               <span slot="prefix">¥</span>
             </el-input>
             </el-input>
           </el-form-item>
           </el-form-item>
           <el-form-item label="增值税税率">
           <el-form-item label="增值税税率">
-            <el-input v-model="contractForm.taxRate" :placeholder="$t('peaseenterthe')" clearable>
+            <el-input v-model="contractForm.taxRate" :disabled="contractForm.status == 0" :placeholder="$t('peaseenterthe')" clearable>
               <span slot="prefix">%</span>
               <span slot="prefix">%</span>
             </el-input>
             </el-input>
           </el-form-item>
           </el-form-item>
           <el-form-item label="合同金额(元)/不含税价">
           <el-form-item label="合同金额(元)/不含税价">
-            <el-input v-model="contractForm.amountsNoTax" :placeholder="$t('peaseenterthe')" clearable>
+            <el-input v-model="contractForm.amountsNoTax" :disabled="contractForm.status == 0" :placeholder="$t('peaseenterthe')" clearable>
               <span slot="prefix">¥</span>
               <span slot="prefix">¥</span>
             </el-input>
             </el-input>
           </el-form-item>
           </el-form-item>
           <el-form-item label="币种">
           <el-form-item label="币种">
-            <el-input v-model="contractForm.currency" :placeholder="$t('peaseenterthe')" clearable></el-input>
+            <el-input v-model="contractForm.currency" :disabled="contractForm.status == 0" :placeholder="$t('peaseenterthe')" clearable></el-input>
           </el-form-item>
           </el-form-item>
           <el-form-item label="合同状态(是否结清)">
           <el-form-item label="合同状态(是否结清)">
-            <el-select v-model="contractForm.finishStatus" placeholder="请选择">
+            <el-select v-model="contractForm.finishStatus" :disabled="contractForm.status == 0" placeholder="请选择">
               <el-option label="履约中" :value="1"></el-option>
               <el-option label="履约中" :value="1"></el-option>
               <el-option label="履约完成" :value="2"></el-option>
               <el-option label="履约完成" :value="2"></el-option>
             </el-select>
             </el-select>
           </el-form-item>
           </el-form-item>
           <el-form-item label="印花税税目">
           <el-form-item label="印花税税目">
-            <el-input v-model="contractForm.stampDutyItems" :placeholder="$t('peaseenterthe')" clearable></el-input>
+            <el-input v-model="contractForm.stampDutyItems" :disabled="contractForm.status == 0" :placeholder="$t('peaseenterthe')" clearable></el-input>
           </el-form-item>
           </el-form-item>
           <el-form-item :label="$t('bei-zhu')">
           <el-form-item :label="$t('bei-zhu')">
             <el-input v-model="contractForm.remarks" :disabled="contractForm.status == 0" :placeholder="$t('peaseenterthe')" type="textarea" :rows="3" clearable></el-input>
             <el-input v-model="contractForm.remarks" :disabled="contractForm.status == 0" :placeholder="$t('peaseenterthe')" type="textarea" :rows="3" clearable></el-input>
@@ -871,7 +871,7 @@ export default {
         parameter.startDate = this.dateArray[0]
         parameter.startDate = this.dateArray[0]
         parameter.endDate = this.dateArray[1]
         parameter.endDate = this.dateArray[1]
       }
       }
-      this.http.post('/contract/ExportContract',parameter,
+      this.http.post('/contract/exportContractOneToMany',parameter,
       res => {
       res => {
         if(res.code == 'ok'){
         if(res.code == 'ok'){
           let filePath = res.data;
           let filePath = res.data;

+ 89 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

@@ -1709,6 +1709,69 @@
           <el-alert style="position:absolute;bottom:0;z-index:10;" v-if="isFlag" :title="$t('message.loading')+'...'" type="success" center :closable="false" show-icon></el-alert>
           <el-alert style="position:absolute;bottom:0;z-index:10;" v-if="isFlag" :title="$t('message.loading')+'...'" type="success" center :closable="false" show-icon></el-alert>
           <el-alert style="position:absolute;bottom:0;z-index:10;" v-if="isMore" :title="$t('message.noMoreData')" type="success" center show-icon></el-alert>
           <el-alert style="position:absolute;bottom:0;z-index:10;" v-if="isMore" :title="$t('message.noMoreData')" type="success" center show-icon></el-alert>
         </el-tab-pane>
         </el-tab-pane>
+        <el-tab-pane :label="$t('cardtimenotfull')" name="fourth" v-if="user.timeType.syncCorpwxTime==1">
+          <div class="selectworktime_export" style="margin-top:10px">
+            <div class="selectworktime_export_l">
+              <el-date-picker
+              class="selecteworktime_datapick"
+              v-model="notfullSelectDateMonth"
+              value-format="yyyy-MM"
+              type="month"
+              align="right"
+              unlink-panels
+              size="small"
+              popper-class="selecteorktime_datapick_popper"
+              @change="showReportTimeLessThanCardTimeList()"
+            >
+              </el-date-picker>
+            </div>
+            <div>
+                <div style="margin-top:10px;">
+                    <!-- <el-link
+                        type="primary"
+                        style="float: right; vertical-align: middle;height:32px"
+                        @click="exportMembNotWorkHours()"
+                        >{{$t('export.exportData')}}</el-link> -->
+                </div>
+            </div>
+            
+          </div>
+          <el-table
+            ref="hasworkTbl4"
+            :data="notFullData"
+            border
+            :height="'70vh'"
+            highlight-current-row
+            style="width: 100%"
+            v-loading="tbload"
+            lazy
+          >
+            <el-table-column min-width="150" prop="name" :label="$t('lable.name')" >
+                <template slot-scope="scope">
+                    <span v-if="user.userNameNeedTranslate == 1"><TranslationOpenDataText type='userName' :openid='scope.row.name'></TranslationOpenDataText></span>
+                    <span v-if="user.userNameNeedTranslate != 1">{{scope.row.name}}</span>
+                </template>
+            </el-table-column>
+            <el-table-column
+              min-width="200"
+              :label="$t('weekDay.date')"
+              align="center"
+              prop="createDate"
+            >
+            </el-table-column>
+            <el-table-column
+              min-width="200"
+              :label="$t('fillReportTime')"
+              align="center"
+              prop="reportTime"
+            />
+            <el-table-column
+              min-width="200"
+              :label="$t('workAttendance')"
+              prop="workHours"
+              align="center"></el-table-column>
+          </el-table>
+        </el-tab-pane>
 
 
         <el-tab-pane v-if="user.companyId==5978" :label="$t('gongShiYiChangMingXi')" name="third">
         <el-tab-pane v-if="user.companyId==5978" :label="$t('gongShiYiChangMingXi')" name="third">
           <div class="selectworktime_export" style="margin-top:10px;">
           <div class="selectworktime_export" style="margin-top:10px;">
@@ -2314,6 +2377,7 @@
                 denyForm:null,
                 denyForm:null,
                 denyReasonDialog:false,
                 denyReasonDialog:false,
                 monthWorkTimeDialog: false,
                 monthWorkTimeDialog: false,
+                notfullSelectDateMonth:util.formatDate.format(new Date(new Date()), "yyyy-MM"),
                 isSubstitude:false,
                 isSubstitude:false,
                 isFill:false,
                 isFill:false,
                 unFillList:[],
                 unFillList:[],
@@ -2660,6 +2724,29 @@
                     
                     
                 }
                 }
             },
             },
+            showReportTimeLessThanCardTimeList() {
+                this.monthTotalPage = 0,
+                this.tbload = true,
+                this.http.post(
+                    "/report/getReportTimeLessThanCardTimeList",
+                    {
+                    date: this.notfullSelectDateMonth
+                    },
+                    (res) => {
+                    if (res.code == "ok") {
+                        this.tbload = false
+                        this.notFullData = res.data;
+                    }
+                    },
+                    (error) => {
+                        this.tbload = false
+                    this.$message({
+                        message: error,
+                        type: "error",
+                    });
+                    }
+                );
+            },
             //按选择的日期范围刷新考勤
             //按选择的日期范围刷新考勤
             refreshWXCardTimeByRange() {
             refreshWXCardTimeByRange() {
                 this.refreshingTime = true;
                 this.refreshingTime = true;
@@ -4062,6 +4149,8 @@
         this.showMonthWorkTime()
         this.showMonthWorkTime()
       }else if(t.name == "third"){
       }else if(t.name == "third"){
         this.showMonthWorkTimeReminder()
         this.showMonthWorkTimeReminder()
+      } else if (t.name == "fourth") {
+        this.showReportTimeLessThanCardTimeList();
       }
       }
     },
     },
     //导出员工每日填报工时数
     //导出员工每日填报工时数