Browse Source

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

Min 1 year ago
parent
commit
7a7c782e36

+ 5 - 4
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/tasks/index.vue

@@ -53,7 +53,7 @@
       <div class="bg-white w-full h-full p-3 shadow-md rounded-md flex flex-col">
         <div class="ml-auto p-3">
           <el-button type="primary" @click="createTasks()">创建任务</el-Button>
-          <el-button type="primary" :loading="btnLoading" @click="deleteTasks()">批量删除</el-Button>
+          <el-button type="primary" :disabled="len == 0" :loading="btnLoading" @click="deleteTasks()">批量删除</el-Button>
           <el-button type="primary" @click="openImportModal()">导入</el-Button>
           <el-button type="primary" :loading="btnLoading" @click="exportTasks()">导出</el-Button>
         </div>
@@ -155,7 +155,7 @@
 </template>
 
 <script lang="ts" setup>
-import { inject, onBeforeMount, onMounted, ref, } from 'vue';
+import { computed, inject, onBeforeMount, onMounted, ref, } from 'vue';
 import { useRouter } from 'vue-router';
 import { useStore } from '@/store';
 import { MOD, PRIORITY, STATUS, defaultSearchForm, PAGE_LIST, ADD_TASK, DELETE_TASKS, UPDATE_TASK, UPDATE_TASK_STATUS, IMPORT_DATA, EXPORT_DATA, EXPORT_DATA_BY_TASK_ID } from './api';
@@ -173,7 +173,9 @@ const pagePermission = ref<any[]>();
 const taskModalVisible = ref(false);
 const taskForm = ref<any>();
 const isEdit = ref(false);
-
+const len = computed(() => {
+  return tableRef.value?.getSelectionRows().length
+})
 const taskLoading = ref<saveLoadingType>("1");
 function closeTaskModal() {
   taskModalVisible.value = false;
@@ -215,7 +217,6 @@ const loading = ref<boolean>(false);
 const totalCount = ref<number>(0);
 const tableData = ref<any[]>([])
 function search() {
-  console.log("pageP", pagePermission.value);
   loading.value = true;
   const { startDate, endDate } = searchForm.value;
   let params = {

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

@@ -531,7 +531,7 @@ public class ReportController {
                 }
             }
             //任务分组和阶段必填
-            if (company.getPackageEngineering() == 0 && company.getId() == 3917) {
+            if (company.getPackageEngineering() == 0 && (company.getId() == 3917 || company.getId() == 3092)) {
                 if (stage == null) {
                     stage = new String[projectId.length];
                 }

+ 7 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DingDingServiceImpl.java

@@ -497,10 +497,10 @@ public class DingDingServiceImpl implements DingDingService {
         dingding.setCorpName(corpName);
         dingding.setAgentId(agentId);
         dingding.setAuthUserId(authUserId);
-        dingding.setSyncContact(1);
-        dingding.setContactNeedTranslate(1);//上架到钉钉应用市场,通讯录为加密模式,需要转译
-
         if (oldD == null) {
+            //新开通的情况,给字段默认值
+            dingding.setSyncContact(1);
+            dingding.setContactNeedTranslate(1);//上架到钉钉应用市场,通讯录为加密模式,需要转译
             //第一次,查询对方企业的accessToken
             SysConfig config = sysConfigMapper.selectOne(new QueryWrapper<SysConfig>().eq("param_key", "dingding_suite_ticket"));
             String suiteTicket = config.getParamValue();
@@ -1708,9 +1708,12 @@ public class DingDingServiceImpl implements DingDingService {
         DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/get");
         OapiV2UserGetRequest req = new OapiV2UserGetRequest();
         req.setUserid(dingdingUserid);
+        if ("0515450852840252".equals(dingdingUserid)) {
+            System.out.println("这是张杰====================");
+        }
         req.setLanguage("zh_CN");
         OapiV2UserGetResponse rsp = client.execute(req, access_token);
-        System.out.println(rsp.getBody());
+        System.out.println("用户详情:"+rsp.getBody());
         JSONObject resp = JSONObject.parseObject(rsp.getBody());
         if (resp.getInteger("errcode") == 0) {
             JSONObject userJson = resp.getJSONObject("result");

+ 25 - 8
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -727,6 +727,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             });
             resultMap.put("report", reports);
             TimeType timeType = timeTypeMapper.selectById(companyId);
+            boolean showRefresh = false;
             if (timeType.getShowDdCardtime() == 1) {
                 List<UserDingdingTime> dingdingTimes = userDingdingTimeMapper.selectList(new QueryWrapper<UserDingdingTime>()
                         .eq("user_id", userId).eq("work_date", date));
@@ -734,6 +735,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     UserDingdingTime time = dingdingTimes.get(0);
                     resultMap.put("time", time);
                 }
+                showRefresh = true;
             }else if(timeType.getSyncFanwei()==1){
                 List<UserFvTime> userFvTimeList = userFvTimeMapper.selectList(new QueryWrapper<UserFvTime>()
                         .eq("user_id", userId).eq("work_date", date));
@@ -741,6 +743,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     UserFvTime time = userFvTimeList.get(0);
                     resultMap.put("time", time);
                 }
+                showRefresh = true;
             } else if (timeType.getShowCorpwxCardtime() == 1) {
                 User user = userMapper.selectById(userId);
                 List<UserCorpwxTime> corpwxTimes = userCorpwxTimeMapper.selectList(new QueryWrapper<UserCorpwxTime>()
@@ -749,7 +752,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     UserCorpwxTime time = corpwxTimes.get(0);
                     resultMap.put("time", time);
                 }
+                showRefresh = true;
             }
+            resultMap.put("showRefresh", showRefresh);
 
             //顺便返回公司的工作时间设置
             resultMap.put("timeType",timeType);
@@ -7135,29 +7140,41 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         //转移日报
         List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().eq("creator_id", sourceUser.getId()));
         if (reportList.size() != 0){
+            List<Report> upList = new ArrayList<>();
             for (Report report : reportList) {
-                report.setCreatorId(targetUser.getId());
-                report.setDeptId(targetUser.getDepartmentId());
+                Report upItem = new Report();
+                upItem.setId(report.getId());
+                upItem.setCreatorId(targetUser.getId());
+                upItem.setDeptId(targetUser.getDepartmentId());
+                upList.add(upItem);
             }
-            reportService.updateBatchById(reportList);
+            reportService.updateBatchById(upList);
         }
         //转移日报的log
         List<ReportLog> reportCreatorLogList = reportLogMapper.selectList(new QueryWrapper<ReportLog>().eq("creator_id", sourceUser.getId()));
         if (reportCreatorLogList.size() != 0){
+            List<ReportLog> upList = new ArrayList<>();
             for (ReportLog log : reportCreatorLogList) {
-                log.setCreatorId(targetUser.getId());
+                ReportLog upItem = new ReportLog();
+                upItem.setId(log.getId());
+                upItem.setCreatorId(targetUser.getId());
+                upList.add(upItem);
             }
-            reportLogService.updateBatchById(reportCreatorLogList);
+            reportLogService.updateBatchById(upList);
         }
 
         List<ReportLog> reportOperatorLogList = reportLogMapper.selectList(new QueryWrapper<ReportLog>().eq("operator_id", sourceUser.getId()));
         if (reportCreatorLogList.size() != 0){
+            List<ReportLog> upList = new ArrayList<>();
             for (ReportLog log : reportOperatorLogList) {
-                log.setOperatorId(targetUser.getId());
+                ReportLog upItem = new ReportLog();
+                upItem.setId(log.getId());
+                upItem.setOperatorId(targetUser.getId());
                 String msg = log.getMsg().replace(sourceUser.getName(), targetUser.getName());
-                log.setMsg(msg);
+                upItem.setMsg(msg);
+                upList.add(upItem);
             }
-            reportLogService.updateBatchById(reportOperatorLogList);
+            reportLogService.updateBatchById(upList);
         }
 
         List<ReportAlogMembdate> reportAlogMembdateList = reportAlogMembdateMapper.selectList(new QueryWrapper<ReportAlogMembdate>().eq("user_id", sourceUser.getId()));

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

@@ -133,6 +133,8 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
             System.err.println("请先初始化sys_module和sys_function表");
             return null;
         }
+        //2024-04-30以后,剔除预估工时审批的模块
+        modules = modules.stream().filter(m->!m.getName().equals("预估工时审核")).collect(Collectors.toList());
         QueryWrapper<SysFunction> functionQueryWrapper = new QueryWrapper<SysFunction>().eq("package_time", 1);
         if (company.getPackageProject() == 1) {
             functionQueryWrapper.or().eq("package_project", 1);
@@ -190,7 +192,6 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
                 List<SysFunction> filteredFunctions = functions.stream().filter(
                         m->Arrays.stream(functionMaps.get(str)).anyMatch(curModule->curModule.equals(m.getName()))
                 ).collect(Collectors.toList());
-
                 generateRole(str, company, filteredModules, filteredFunctions);
             }
         }

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

@@ -881,7 +881,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                 data.put("total",total);
             }
             return httpRespMsg;
-        }else if (org.apache.commons.lang3.StringUtils.isNotBlank(keyword) && dingding!=null && dingding.getSyncContact()==1 && matchingType == 0){
+        }else if (org.apache.commons.lang3.StringUtils.isNotBlank(keyword) && dingding!=null && dingding.getContactNeedTranslate()==1 && matchingType == 0){
             System.out.println("====================开始查询通讯录名单======================");
             HttpRespMsg searchUserInfo = companyDingdingService.getSearchUserInfo(dingding, keyword, 0);
             SearchUserResponse searchUserResponse = (SearchUserResponse) searchUserInfo.data;

+ 9 - 8
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -4761,16 +4761,17 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             ProdProcedureTeam prodProcedureTeam = prodProcedureTeamMapper.selectById(report.getUserProcedureTeamId());
             //总计划任务的工序中有总工时和总工价
             PlanProcedureTotal planProcedureTotal = planProcedureTotalMapper.selectOne(new QueryWrapper<PlanProcedureTotal>().eq("plan_id", report.getPlanId()).eq("prod_procedure_id", report.getProdProcedureId()));
-            //核算本次填报的件数是否合法
-            prodProcedureTeam.setStatus(1);//未完工
-            prodProcedureTeam.setUpdateTime(LocalDateTime.now());
-            //更新填写的钢印号
-            prodProcedureTeam.setSteelNumArray("[]");
             reportMapper.deleteById(id);
             reportSteelNumMapper.delete(new QueryWrapper<ReportSteelNum>().eq("report_id", id));
-
-            //更新自己执行的工序上的数据
-            prodProcedureTeamMapper.updateById(prodProcedureTeam);
+            if (prodProcedureTeam != null) {
+                //核算本次填报的件数是否合法
+                prodProcedureTeam.setStatus(1);//未完工
+                prodProcedureTeam.setUpdateTime(LocalDateTime.now());
+                //更新填写的钢印号
+                prodProcedureTeam.setSteelNumArray("[]");
+                //更新自己执行的工序上的数据
+                prodProcedureTeamMapper.updateById(prodProcedureTeam);
+            }
             //计算该计划工序的总完成工时和完成度
             Report curReportSumItem = reportMapper.selectOne(new QueryWrapper<Report>().select("sum(working_time) as working_time").eq("plan_id", planProcedureTotal.getPlanId()).eq("prod_procedure_id", planProcedureTotal.getProdProcedureId()));
             Double workingTime = 0.0;

+ 9 - 6
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

@@ -389,12 +389,12 @@
                         <span v-if="reportTimeType.type == 3 && user.company.companyName != mingyiName">{{$t('time.hour')}}</span>
                         <!-- <span v-if="isBatch && user.company.companyName != mingyiName">, {{$t('other.fillInTheTotal')}} {{jsTime.toFixed(1)}} {{$t('time.hour')}}</span> -->
                         <span v-if="isBatch && user.company.companyName != mingyiName">, {{$t('other.fillInTheTotal')}} <el-input v-model="jsTime" @change="onBatchTimeChange" style="width:80px;"/> {{$t('time.hour')}}</span>
-                        
+
                         <!-- AI智能填报 -->
                         <el-button type="primary" @click="getAIReport()" v-if="!hasWrittenReport" style="margin-left:5px;" >智能填报</el-button>
                     </el-form-item>
                     <!--考勤时长显示-->
-                    <el-form-item :label="$t('other.attendancePunch')" v-if="workForm.time || user.companyId == 5978">
+                    <el-form-item :label="$t('other.attendancePunch')" v-if="workForm.showRefresh || user.companyId == 5978">
                         <span v-if="workForm.time">{{workForm.time.startTime}}-{{workForm.time.endTime}}, 工作{{workForm.time.workHours}}{{$t('time.hour')}}
                         <span v-if="workForm.time.askLeaveTime">|&nbsp;请假{{ workForm.time.askLeaveTime }}小时</span>
                         </span>
@@ -551,7 +551,7 @@
                                 </el-select>
                             </template>
                             <template v-else-if="!user.timeType.hideStages"><!-- 项目的阶段 -->
-                                <span v-if="domain.stages != null && domain.stages.length> 0" style="margin-left:45px;">{{$t('other.inputStage')}}</span>
+                                <span v-if="domain.stages != null && domain.stages.length> 0" style="margin-left:45px;"><span v-if="user.companyId == 3092" style="color:red;margin-right: 4px">*</span>{{$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)"
@@ -780,7 +780,7 @@
                                 </el-select>
                                 <!-- 项目的阶段 -->
                                 <span v-if="domain.stages != null && domain.stages.length> 0" 
-                                    style="margin-left:30px;">{{$t('other.inputStage')}}</span>
+                                    style="margin-left:30px;"> {{$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)"
@@ -2246,6 +2246,7 @@
                         degreeId: null,
                         auditUserList: [],
                     }],
+                    showRefresh: false,
                 },
                 workRules: {
                     createDate: [{ required: true, message: this.$t('defaultText.pleaseselectaworkdate'), trigger: "change" }],
@@ -5944,7 +5945,8 @@
                                 domains: arr,
                                 userNames:null,
                                 userId:null,
-                                time: list.time
+                                time: list.time,
+                                showRefresh: list.showRefresh
                             }
                             console.log('workForm', this.workForm)
                         } else {
@@ -5968,7 +5970,8 @@
                                 }],
                                 userId:null,
                                 userNames:null,
-                                time: this.report.time
+                                time: this.report.time,
+                                showRefresh: list.showRefresh
                             }
                             if(this.isWeekend && this.user.timeType.lockWorktime != 1){
                                 this.$set(this.workForm.domains[0],'isOvertime',true)