Browse Source

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

seyason 1 year ago
parent
commit
1ea5af2d6f

+ 7 - 11
fhKeeper/formulahousekeeper/management-platform-import/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -3842,8 +3842,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             //然后解析表格
             Workbook workbook = WorkbookFactory.create(new FileInputStream(file));
 
-            DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd");
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
             //获取公司全部成员
             List<User> allUserList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
 
@@ -3942,12 +3942,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     msg.setError(MessageUtils.message("data.NullErrorByRow",dataCount));
                     return msg;
                 }
-                if(!isDateFormat){
-                    msg.setError("请确认日期列是否为日期");
-                    return msg;
-                }
                 if(!isValidDate(reportDate)){
-                    msg.setError("请确认日期列所填日期格式是否正确 示例:1999-01-01");
+                    msg.setError("请确认日期列所填日期格式是否正确 示例:1999/01/01");
                     return msg;
                 }
 //                String username = withCheckIn==null?row.getCell(1).getStringCellValue().trim():row.getCell(2).getStringCellValue().trim();
@@ -6245,7 +6241,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         Company company = companyMapper.selectById(companyId);
         List<String> exampleDataList=new ArrayList<>();
         heads.add("日期");
-        exampleDataList.add("2023-06-28");
+        exampleDataList.add("2023/06/28");
         heads.add("员工姓名");
         exampleDataList.add("张三");
         heads.add("员工工号");
@@ -6393,8 +6389,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                                     // 输入批注信息
                                     //comment.setString(new HSSFRichTextString("日期格式:yyyy-MM-dd\n" +
                                     //        "例如: 2021-01-01"));
-                                    comment.setString(new XSSFRichTextString(MessageUtils.message("excel.dateFormat")+"\n" +
-                                            MessageUtils.message("excel.forExample")));
+                                    comment.setString(new XSSFRichTextString("日期格式:yyyy/MM/dd\n" +
+                                                    "例如: 2021/01/01"));
                                     cell.setCellComment(comment);
                                     break;
                                 case "员工工号":
@@ -6464,7 +6460,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     public static boolean isValidDate(String s) {
 
         try {
-            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
             dateFormat.parse(s);
             return true;
 

BIN
fhKeeper/formulahousekeeper/management-platform-import/src/main/resources/upload/费用报销导入模板.xlsx


+ 13 - 6
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java

@@ -1106,12 +1106,12 @@ public class ProjectController {
         return projectService.getTimeCostByGroup(startDate,endDate,pageIndex,pageSize,groupId,projectId,request);
     }
     @RequestMapping("/getTimeCostByGroupProject")
-    public HttpRespMsg getTimeCostByGroupProject(String startDate,String endDate,Integer pageIndex,Integer pageSize,Integer groupId,Integer projectId){
-        return projectService.getTimeCostByGroupProject(startDate,endDate,pageIndex,pageSize,groupId,projectId,request);
+    public HttpRespMsg getTimeCostByGroupProject(String startDate,String endDate,Integer pageIndex,Integer pageSize,Integer groupId,Integer projectId,Integer projectMainId){
+        return projectService.getTimeCostByGroupProject(startDate,endDate,pageIndex,pageSize,groupId,projectId,projectMainId,request);
     }
     @RequestMapping("exportGroupWithProjectTimeCost")
-    public HttpRespMsg exportGroupWithProjectTimeCost(String startDate,String endDate,Integer pageIndex,Integer pageSize,Integer groupId,Integer projectId){
-        return projectService.exportGroupWithProjectTimeCost(startDate,endDate,pageIndex,pageSize,groupId,projectId,request);
+    public HttpRespMsg exportGroupWithProjectTimeCost(String startDate,String endDate,Integer pageIndex,Integer pageSize,Integer groupId,Integer projectId,Integer projectMainId){
+        return projectService.exportGroupWithProjectTimeCost(startDate,endDate,pageIndex,pageSize,groupId,projectId,projectMainId,request);
     }
     @RequestMapping("/getProjectBaseCost")
     public HttpRespMsg getProjectBaseCost(Integer projectId,HttpServletRequest request,Integer pageIndex,Integer pageSize){
@@ -1245,6 +1245,8 @@ public class ProjectController {
         List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", 876).select("job_number", "id","name"));
         int insert=0;
         int update=0;
+        StringBuilder sb=new StringBuilder();
+        sb.append("更新的项目:");
         for (Map<String, Object> map : mapList) {
             List<Participation> participationList=new ArrayList<>();
             Optional<User> first = userList.stream().filter(ul ->ul.getJobNumber()!=null&&ul.getJobNumber().equals(map.get("xmfzrplxm"))).findFirst();
@@ -1259,7 +1261,7 @@ public class ProjectController {
                     }
                     projectService.updateById(item);
                     update++;
-                    participationService.remove(new QueryWrapper<Participation>().eq("project_id",item.getId()));
+                    List<Participation> allParticipations = participationService.list(new QueryWrapper<Participation>().eq("project_id", item.getId()));
                     if(map.get("xmcygs")!=null&&!map.get("xmcygs").equals("")){
                         participationService.remove(new QueryWrapper<Participation>().eq("project_id",item.getId()));
                         String participations = String.valueOf(map.get("xmcygs"));
@@ -1273,6 +1275,10 @@ public class ProjectController {
                             }
                         }
                     }
+                    boolean equals = allParticipations.stream().map(al -> al.getUserId()).sorted().collect(Collectors.joining()).equals(participationList.stream().sorted().map(pl -> pl.getUserId()).sorted().collect(Collectors.joining()));
+                    if(!equals){
+                        sb.append("["+item.getProjectCode()+"/"+item.getProjectCode()+"]"+"\n");
+                    }
                     if(participationList.size()>0){
                         participationService.saveBatch(participationList);
                     }
@@ -1308,10 +1314,11 @@ public class ProjectController {
         }
         OperationRecord operationRecord=new OperationRecord();
         operationRecord.setCompanyId(876)
-                       .setContent("同步新增来自泛微的项目数据,共"+insert+"条数据"+"\n"+"同步更新来自泛微的项目数据,共"+update+"条数据")
+                       .setContent("同步新增来自泛微的项目数据,共"+insert+"条数据"+"\n"+"同步更新来自泛微的项目数据,共"+update+"条数据"+"\n"+sb.toString())
                        .setModuleName("项目管理").setOperationTime(LocalDateTime.now())
                        .setOperatorName(user.getName());
         operationRecordService.save(operationRecord);
+        httpRespMsg.setMsg("同步新增来自泛微的项目数据,共"+insert+"条数据"+"\n"+"同步更新来自泛微的项目数据,共"+update+"条数据");
         return httpRespMsg;
     }
 

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/ExpenseSheet.java

@@ -71,7 +71,7 @@ public class ExpenseSheet extends Model<ExpenseSheet> {
     private Integer ticketNum;
 
     /**
-     * 0-一般费用,1-差旅费,2-外包费用
+     * 费用主类型id
      */
     @TableField("type")
     private Integer type;

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

@@ -125,9 +125,9 @@ public interface ProjectMapper extends BaseMapper<Project> {
 
     long selectCountWithGroup(Integer companyId, String startDate, String endDate, Integer startIndex, Integer endIndex, Integer projectId, List<Integer> inchagerIds, Integer groupId);
 
-    List<Map<String, Object>> selectWithGroupProject(Integer companyId, String startDate, String endDate,  Integer startIndex, Integer endIndex, Integer projectId, List<Integer> inchagerIds, Integer groupId);
+    List<Map<String, Object>> selectWithGroupProject(Integer companyId, String startDate, String endDate,  Integer startIndex, Integer endIndex, Integer projectId,Integer projectMainId, List<Integer> inchagerIds, Integer groupId);
 
-    long selectCountWithGroupProject(Integer companyId, String startDate, String endDate, Integer startIndex, Integer endIndex, Integer projectId, List<Integer> inchagerIds, Integer groupId);
+    long selectCountWithGroupProject(Integer companyId, String startDate, String endDate, Integer startIndex, Integer endIndex, Integer projectId,Integer projectMainId,List<Integer> inchagerIds, Integer groupId);
 
     List<Map<String, Object>> getCostByUserCustom(String startDate, String endDate, Integer companyId, List<Integer> deptIds, Integer customId, String subCustomName,String fieldName);
 

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

@@ -187,9 +187,9 @@ public interface ProjectService extends IService<Project> {
 
     HttpRespMsg getTimeCostByGroup(String startDate, String endDate, Integer pageIndex, Integer pageSize, Integer groupId, Integer projectId,HttpServletRequest request);
 
-    HttpRespMsg getTimeCostByGroupProject(String startDate, String endDate, Integer pageIndex, Integer pageSize, Integer groupId, Integer projectId, HttpServletRequest request);
+    HttpRespMsg getTimeCostByGroupProject(String startDate, String endDate, Integer pageIndex, Integer pageSize, Integer groupId, Integer projectId,Integer projectMainId, HttpServletRequest request);
 
-    HttpRespMsg exportGroupWithProjectTimeCost(String startDate, String endDate, Integer pageIndex, Integer pageSize, Integer groupId, Integer projectId, HttpServletRequest request);
+    HttpRespMsg exportGroupWithProjectTimeCost(String startDate, String endDate, Integer pageIndex, Integer pageSize, Integer groupId, Integer projectId,Integer projectMainId, HttpServletRequest request);
 
     HttpRespMsg getProjectBaseCost(Integer projectId, HttpServletRequest request, Integer pageIndex, Integer pageSize);
 

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

@@ -720,6 +720,7 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
         WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", sheet.getCompanyId()));
         QueryWrapper<ExpenseSheet> queryWrapper = new QueryWrapper<ExpenseSheet>();
         queryWrapper.eq("company_id", sheet.getCompanyId()).orderByDesc("id");
+        List<ExpenseMainType> mainTypes = expenseMainTypeService.list(new QueryWrapper<ExpenseMainType>().eq("company_id", sheet.getCompanyId()));
         if (!StringUtils.isEmpty(sheet.getCode())) {
             queryWrapper.eq("code", sheet.getCode());
         }
@@ -768,19 +769,8 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
             }
             item.add(record.getCreateDate()==null?"":record.getCreateDate()+"");
             item.add(record.getTicketNum()==null?"0":record.getTicketNum()+"");
-            switch (record.getType()){
-                case 0:
-                    item.add("一般费用");
-                    break;
-                case 1:
-                    item.add("差旅费用");
-                    break;
-                case 2:
-                    item.add("外包费用");
-                    break;
-                default:
-                    item.add("");
-            }
+            Optional<ExpenseMainType> first = mainTypes.stream().filter(ms -> ms.getId().equals(record.getType())).findFirst();
+            item.add(first.isPresent()?first.get().getName():"");
             item.add(record.getRemark()==null?"":record.getRemark());
             switch (record.getStatus()){
                 case 0:

+ 29 - 10
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -7966,7 +7966,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
     @Override
-    public HttpRespMsg getTimeCostByGroupProject(String startDate, String endDate, Integer pageIndex, Integer pageSize, Integer groupId, Integer projectId, HttpServletRequest request) {
+    public HttpRespMsg  getTimeCostByGroupProject(String startDate, String endDate, Integer pageIndex, Integer pageSize, Integer groupId, Integer projectId,Integer projectMainId, HttpServletRequest request) {
         String token = request.getHeader("TOKEN");
         User user = userMapper.selectById(token);
         Integer companyId = user.getCompanyId();
@@ -7993,11 +7993,11 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         if(pageIndex!=null&&pageSize!=null){
             Integer startIndex = (pageIndex-1)*pageSize;
             Integer endIndex = pageSize*pageIndex;
-            record = projectMapper.selectWithGroupProject(companyId,startDate,endDate, startIndex, endIndex, projectId,inchagerIds,groupId);
+            record = projectMapper.selectWithGroupProject(companyId,startDate,endDate, startIndex, endIndex, projectId,projectMainId,inchagerIds,groupId);
         }else {
-            record=projectMapper.selectWithGroupProject(companyId,startDate,endDate, null, null, projectId,inchagerIds,groupId);
+            record=projectMapper.selectWithGroupProject(companyId,startDate,endDate, null, null, projectId,projectMainId,inchagerIds,groupId);
         }
-        total =projectMapper.selectCountWithGroupProject(companyId,startDate,endDate, null, null, projectId,inchagerIds,groupId);
+        total =projectMapper.selectCountWithGroupProject(companyId,startDate,endDate, null, null, projectId,projectMainId,inchagerIds,groupId);
         HashMap<String, Object> map = new HashMap<>();
         map.put("records", record);
         map.put("total", total);
@@ -8006,10 +8006,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
     @Override
-    public HttpRespMsg exportGroupWithProjectTimeCost(String startDate, String endDate, Integer pageIndex, Integer pageSize, Integer groupId, Integer projectId, HttpServletRequest request) {
+    public HttpRespMsg exportGroupWithProjectTimeCost(String startDate, String endDate, Integer pageIndex, Integer pageSize, Integer groupId, Integer projectId,Integer projectMainId, HttpServletRequest request) {
         HttpRespMsg httpRespMsg=new HttpRespMsg();
         HttpRespMsg timeCostByGroup = getTimeCostByGroup(startDate, endDate, null, null, groupId, projectId, request);
-        HttpRespMsg timeCostByGroupProject = getTimeCostByGroupProject(startDate, endDate, null, null, groupId, projectId, request);
+        HttpRespMsg timeCostByGroupProject = getTimeCostByGroupProject(startDate, endDate, null, null, groupId, projectId,projectMainId, request);
         HashMap<String,Object> timeCostByGroupData = (HashMap<String, Object>) timeCostByGroup.data;
         HashMap<String,Object>  timeCostByGroupProjectData =  (HashMap<String, Object>) timeCostByGroupProject.data;
         List<Map<String,Object>> timeCostByGroupList= (List<Map<String, Object>>) timeCostByGroupData.get("records");
@@ -8618,6 +8618,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             sb.append("项目同步操作,新增的项目编号:[");
             if(projectList!=null &&projectList.size()>0){
                 for (Project project : projectList) {
+                    if(project.getProjectCode()==null){
+                        continue;
+                    }
                     if(timeType.getMainProjectState()==1){
                         Optional<ProjectMain> mainOptional = projectMainList.stream().filter(pm ->pm.getName()!=null&& pm.getName().equals(project.getProjectMainName())).findFirst();
                         if(!mainOptional.isPresent()){
@@ -8641,6 +8644,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     }
                 }
                 for (Project project : projectList) {
+                    if(project.getProjectCode()==null){
+                        continue;
+                    }
                     Optional<Project> first = allProject.stream().filter(ap ->ap.getProjectCode()!=null&& ap.getProjectCode().equals(project.getProjectCode())).findFirst();
                     if(first.isPresent()){
                         message+="已存在项目["+first.get().getProjectName()+"]";
@@ -8730,6 +8736,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             sb.append("项目同步操作,更新的项目编号:[");
             if(projectList!=null &&projectList.size()>0){
                 for (Project project : projectList) {
+                    if(project.getProjectCode()==null){
+                        continue;
+                    }
                     Optional<Project> first = allProject.stream().filter(ap ->ap.getProjectCode()!=null&& ap.getProjectCode().equals(project.getProjectCode())).findFirst();
                     Optional<User> user = userList.stream().filter(ul ->ul.getJobNumber()!=null&&ul.getJobNumber().equals(project.getInchargerId())).findFirst();
                     if(user.isPresent()){
@@ -8750,6 +8759,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 List<Integer> idList = changeProjectList.stream().map(Project::getId).collect(Collectors.toList());
                 idList.add(-1);
                 List<TaskGroup> groupList = taskGroupMapper.selectList(new QueryWrapper<TaskGroup>().in("project_id", idList));
+                List<Participation> allParticipationList = participationMapper.selectList(new QueryWrapper<Participation>().in("project_id", idList));
                 List<Participation> participationList=new ArrayList<>();
                 for (Project project : changeProjectList) {
                     List<TaskGroup> taskGroupList = project.getTaskGroupList();
@@ -8773,10 +8783,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     //项目负责人要加到参与人中
                     Participation participation=new Participation();
                     if(project.getInchargerId()!=null&&project.getInchargerId().length()==19){
-                        participationMapper.delete(new QueryWrapper<Participation>().eq("project_id",project.getId()).eq("user_id",project.getId()));
-                        participation.setUserId(project.getInchargerId());
-                        participation.setProjectId(project.getId());
-                        participationMapper.insert(participation);
+                        boolean b = allParticipationList.stream().anyMatch(al -> al.getProjectId().equals(project.getId()) && al.getUserId().equals(project.getInchargerId()));
+                        if(!b){
+                            participation.setUserId(project.getInchargerId());
+                            participation.setProjectId(project.getId());
+                            participationMapper.insert(participation);
+                        }
                     }
                     //项目参与人处理 只增不减
                     List<Map<String, Object>> participations = project.getParticipations();
@@ -8786,6 +8798,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             if(map.get("participationId")!=null){
                                 Optional<User> first = userList.stream().filter(ul -> ul.getJobNumber() != null && ul.getJobNumber().equals(String.valueOf(map.get("participationId")))).findFirst();
                                 if(first.isPresent()){
+                                    boolean b = allParticipationList.stream().anyMatch(al -> al.getUserId().equals(first.get().getId()) && al.getProjectId().equals(project.getId()));
+                                    if(b){
+                                        continue;
+                                    }
                                     p.setProjectId(project.getId());
                                     p.setUserId(first.get().getId());
                                     participationList.add(p);
@@ -8801,6 +8817,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         }else if(changeType.equals("delete_project")){
             sb.append("项目同步操作,删除的项目名称:[");
             for (Project project : projectList) {
+                if(project.getProjectCode()==null){
+                    continue;
+                }
                 Optional<Project> first = allProject.stream().filter(ap ->ap.getProjectCode()!=null&& ap.getProjectCode().equals(project.getProjectCode())).findFirst();
                 if(first.isPresent()){
                     project.setId(first.get().getId());

+ 11 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/TimingTask.java

@@ -553,10 +553,10 @@ public class TimingTask {
         }
     }
     
-    @Scheduled(cron = "0 15 3 ? * *")
+    @Scheduled(cron = "0 23 17 ? * *")
     private void synFanWeiProjectDate() {
-        if (isDev) return;
-        if(!isPrivateDeploy) return;
+//        if (isDev) return;
+//        if(!isPrivateDeploy) return;
         List<TimeType> timeTypeList = timeTypeMapper.selectList(new QueryWrapper<TimeType>().eq("sync_fanwei", 1));
         List<Integer> compIds = timeTypeList.stream().map(TimeType::getCompanyId).collect(Collectors.toList());
         if(compIds.isEmpty()){
@@ -577,6 +577,8 @@ public class TimingTask {
             List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", compId).select("job_number", "id","name"));
             int insert=0;
             int update=0;
+            StringBuilder sb=new StringBuilder();
+            sb.append("更新的项目:");
             for (Map<String, Object> map : mapList) {
                 List<Participation> participationList=new ArrayList<>();
                 Optional<User> first = userList.stream().filter(ul ->ul.getJobNumber()!=null&&ul.getJobNumber().equals(map.get("xmfzrplxm"))).findFirst();
@@ -591,6 +593,7 @@ public class TimingTask {
                         }
                         projectService.updateById(item);
                         update++;
+                        List<Participation> allParticipations = participationService.list(new QueryWrapper<Participation>().eq("project_id", item.getId()));
                         if(map.get("xmcygs")!=null&&!map.get("xmcygs").equals("")){
                             participationService.remove(new QueryWrapper<Participation>().eq("project_id",item.getId()));
                             String participations = String.valueOf(map.get("xmcygs"));
@@ -604,6 +607,10 @@ public class TimingTask {
                                 }
                             }
                         }
+                        boolean equals = allParticipations.stream().map(al -> al.getUserId()).sorted().collect(Collectors.joining()).equals(participationList.stream().sorted().map(pl -> pl.getUserId()).sorted().collect(Collectors.joining()));
+                        if(!equals){
+                            sb.append("["+item.getProjectCode()+"/"+item.getProjectCode()+"]"+"\n");
+                        }
                         if(participationList.size()>0){
                             participationService.saveBatch(participationList);
                         }
@@ -639,7 +646,7 @@ public class TimingTask {
             }
             OperationRecord operationRecord=new OperationRecord();
             operationRecord.setCompanyId(compId)
-                    .setContent("同步来自泛微的项目数据,共"+insert+"条数据"+"\n"+"同步更新来自泛微的项目数据,共"+update+"条数据")
+                    .setContent("同步来自泛微的项目数据,共"+insert+"条数据"+"\n"+"同步更新来自泛微的项目数据,共"+update+"条数据"+"\n"+sb.toString())
                     .setModuleName("项目管理").setOperationTime(LocalDateTime.now());
             operationRecordService.save(operationRecord);
         }

+ 12 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml

@@ -1241,6 +1241,9 @@
         from report a
         left join task_group b on a.group_id=b.id
         left join project c on a.project_id=c.id
+        <if test="projectMainId!=null">
+            left join project_main pm on pm.id=c.project_main_id
+        </if>
         where c.company_id=#{companyId} and a.state=1
         <if test="startDate!=null and endDate!=null">
             and a.create_date &gt;=#{startDate} and a.create_date &lt;=#{endDate}
@@ -1248,6 +1251,9 @@
         <if test="projectId!=null">
             and c.id=#{projectId}
         </if>
+        <if test="projectMainId!=null">
+            and pm.id=#{projectMainId}
+        </if>
         <if test="inchagerIds!=null and inchagerIds.size()>0">
             and c.id in
             <foreach collection="inchagerIds" open="(" separator="," close=")" item="item">
@@ -1270,6 +1276,9 @@
         from report a
         left join task_group b on a.group_id=b.id
         left join project c on a.project_id=c.id
+        <if test="projectMainId!=null">
+            left join project_main pm on pm.id=c.project_main_id
+        </if>
         where c.company_id=#{companyId} and a.state=1
         <if test="startDate!=null and endDate!=null">
             and a.create_date &gt;=#{startDate} and a.create_date &lt;=#{endDate}
@@ -1277,6 +1286,9 @@
         <if test="projectId!=null">
             and c.id=#{projectId}
         </if>
+        <if test="projectMainId!=null">
+            and pm.id=#{projectMainId}
+        </if>
         <if test="inchagerIds!=null and inchagerIds.size()>0">
             and c.id in
             <foreach collection="inchagerIds" open="(" separator="," close=")" item="item">

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

@@ -94,6 +94,12 @@
             <span style="float: right;font-size: 13px;margin-left: 20px">{{ item.projectName }}</span>
           </el-option>
         </el-select>
+        <el-select v-if="ins==12 && user.companyId==936" v-model="projectMainId" :placeholder="'请选择主项目'" clearable filterable size="small" @change="selcts()" style="margin-left:10px">
+          <el-option v-for="(item) in mainProjectList" :key="item.id" :label="item.name + (item.code ? item.code : '')" :value="item.id">
+            <span style="float: left;color: #8492a6;">{{ item.code }}</span>
+            <span style="float: right;font-size: 13px;margin-left: 20px">{{ item.name }}</span>
+          </el-option>
+        </el-select>
         <!-- 月份选择 -->
         <el-date-picker v-if="ins == 14 || ins == 15 || ins == 19" value-format="yyyy-MM" v-model="monthPersonnel" type="month" :placeholder="$t('Selectmonth')" :clearable="false" @change="selcts()" size="small"></el-date-picker>
           
@@ -1181,6 +1187,7 @@ export default {
       overTimeList: [], // 项目加班情况统计列表
       proList: [],
       proJuctId: '',
+      projectMainId: '',
       createDate: '2020-01-01',
       rangeDatas: this.getCurrentRangeTime(),
       userId: '',
@@ -1243,7 +1250,9 @@ export default {
       taskRestartArr: [], // 任务重启表数据
       fTEDataList: [], // FTE数据
 
-      baobiaoList: []
+      baobiaoList: [],
+
+      mainProjectList:[],//主项目列表
     };
   },
   computed: {},
@@ -1587,6 +1596,7 @@ export default {
                   this.groupWorktimeList.right = []
                     this.getGroupWorktimeList()
                     this.getGroupWorktimeAll()
+                    this.getMainProjectList()
                 }else if(this.ins == 13){
                   this.getOutputValueList()
                 } else if(this.ins == 14) {
@@ -2482,6 +2492,9 @@ export default {
       if(this.proJuctId){
         parameter.projectId = this.proJuctId
       }
+      if(this.projectMainId){
+        parameter.projectMainId = this.projectMainId
+      }
       this.listLoading = true
       this.http.post('/project/getTimeCostByGroupProject',parameter,
         res => {
@@ -2619,6 +2632,29 @@ export default {
             });
         });
     },
+    getMainProjectList() {
+        this.http.post('/project-main/list', {
+            pageIndex: 1,
+            // pageSize: 9999,
+            pageSize: -1,
+        },
+        res => {
+            if (res.code == "ok") {
+                this.mainProjectList = res.data
+            } else {
+                this.$message({
+                message: res.msg,
+                type: "error"
+                });
+            }
+        },
+        error => {
+            this.$message({
+                message: error,
+                type: "error"
+            });
+        });
+    },
     // 获取客户列表
     getcustomerList(){
       this.http.post('/customer-info/getAll',{},

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

@@ -433,7 +433,11 @@
         <el-dialog :title="title" v-if="addFormVisible" :visible.sync="addFormVisible" :close-on-click-modal="false" customClass="customWidth" width="960px" :top="'6vh'">
             <div style="height: 72vh;overflow-y: auto;overflow-x: hidden;">
                 <el-form ref="form1" :model="addForm" :rules="rules" label-width="120px">
-                    <el-form-item :label="$t('Itemno')" :class="title == $t('newproject') && user.companyId == 936 ? 'wpgCssClass' : ''">
+                    <el-form-item :label="$t('Itemno')" :class="title == $t('newproject')" v-if="user.companyId!=936">
+                        <!-- <el-input v-model="addForm.code" :disabled="!permissions.projectManagement && addForm.creatorId != user.id" placeholder="请输入项目编号" clearable></el-input> -->
+                        <el-input v-model="addForm.code" :placeholder="$t('peaseenterthe')" clearable :disabled="canOnlyModParticipator || (!permissions.projectManagement && addForm.creatorId != user.id && !permissions.projectCodeAndName)" maxlength="50" show-word-limit="true"></el-input>
+                    </el-form-item>
+                    <el-form-item :label="$t('Itemno')" :class="title == $t('newproject') && user.companyId == 936 ? 'wpgCssClass' : ''" v-if="user.companyId==936" prop="code">
                         <!-- <el-input v-model="addForm.code" :disabled="!permissions.projectManagement && addForm.creatorId != user.id" placeholder="请输入项目编号" clearable></el-input> -->
                         <el-input v-model="addForm.code" :placeholder="$t('peaseenterthe')" clearable :disabled="canOnlyModParticipator || (!permissions.projectManagement && addForm.creatorId != user.id && !permissions.projectCodeAndName)" maxlength="50" show-word-limit="true"></el-input>
                     </el-form-item>