班组查询慢的问题

liweidong
pangyang 3 weeks ago
parent 5b4ac45a92
commit 7acd286224
  1. 134
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/TeamSetController.java
  2. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/TeamSetMapper.java
  3. 44
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/TeamSetMapper.xml
  4. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/TeamTimeMapper.java
  5. 36
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/TeamTimeMapper.xml
  6. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/ITeamSetService.java
  7. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/ITeamTimeService.java
  8. 19
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/TeamSetServiceImpl.java
  9. 9
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/TeamTimeServiceImpl.java

@ -36,6 +36,7 @@ import org.springblade.desk.basic.service.ITeamSetService;
import org.springblade.desk.basic.service.ITeamTimeService; import org.springblade.desk.basic.service.ITeamTimeService;
import org.springblade.desk.basic.util.ExcelExtUtil; import org.springblade.desk.basic.util.ExcelExtUtil;
import org.springblade.desk.basic.wrapper.TeamSetWrapper; import org.springblade.desk.basic.wrapper.TeamSetWrapper;
import org.springblade.desk.quality.pojo.vo.InspectionTaskListVO;
import org.springblade.system.feign.IUserClient; import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.User; import org.springblade.system.pojo.entity.User;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
@ -250,65 +251,122 @@ public class TeamSetController extends BladeController {
// page // page
IPage<TeamSet> pages = service.page(Condition.getPage(query), qw); IPage<TeamSet> pages = service.page(Condition.getPage(query), qw);
TeamSet search = new TeamSet();
// IPage<TeamSetVO> pagesVOs = service.listSearch(Condition.getPage(query), search);
IPage<TeamSetVO> pagesVO = TeamSetWrapper.build().pageVO(pages); IPage<TeamSetVO> pagesVO = TeamSetWrapper.build().pageVO(pages);
List<TeamSetVO> records = pagesVO.getRecords(); List<TeamSetVO> records = pagesVO.getRecords();
for(TeamSetVO teamSetVO:records){ for(TeamSetVO teamSetVO:records){
R<User> user= iUserClient.userInfoById(teamSetVO.getDispatcher());
if(null != user && null != user.getData()){
teamSetVO.setDispatcherRealName(user.getData().getRealName());
}
R<User> userplan= iUserClient.userInfoById(teamSetVO.getPlanner());
if(null != userplan && null != userplan.getData()){
teamSetVO.setPlannerRealName(userplan.getData().getRealName());
}
R<User> userleader= iUserClient.userInfoById(teamSetVO.getTeamLeader());
if(null != userleader && null != userleader.getData()){
teamSetVO.setTeamLeaderRealName(userleader.getData().getRealName());
}
List<String> dayPutDueTimes = new ArrayList<>();
QueryWrapper<TeamTime> queryWrapper = new QueryWrapper<>(); List<TeamSetVO> teamSetVOS = service.getUserAll(teamSetVO.getDispatcher(),teamSetVO.getPlanner(),teamSetVO.getTeamLeader());
queryWrapper.in("ts_id",teamSetVO.getId()); if(null != teamSetVOS && teamSetVOS.size() > 0){
queryWrapper.in("special",0); for(TeamSetVO teamSetVO1:teamSetVOS){
List<TeamTime> teamTimes = teamTimeService.list(queryWrapper); if(null != teamSetVO1.getDispatcherRealName() && !"".equals(teamSetVO1.getDispatcherRealName())){
for(TeamTime teamTime:teamTimes){ teamSetVO.setDispatcherRealName(teamSetVO1.getDispatcherRealName());
dayPutDueTimes.add(teamTime.getStartTime()+"~"+teamTime.getEndTime()); }
if(null != teamSetVO1.getPlannerRealName() && !"".equals(teamSetVO1.getPlannerRealName())){
teamSetVO.setPlannerRealName(teamSetVO1.getPlannerRealName());
}
if(null != teamSetVO1.getTeamLeaderRealName() && !"".equals(teamSetVO1.getTeamLeaderRealName())){
teamSetVO.setTeamLeaderRealName(teamSetVO1.getTeamLeaderRealName());
}
}
} }
//// R<User> user= iUserClient.userInfoById(teamSetVO.getDispatcher());
//// if(null != user && null != user.getData()){
//// teamSetVO.setDispatcherRealName(user.getData().getRealName());
//// }
// User user= service.getUserById(teamSetVO.getDispatcher());
// if(null != user){
// teamSetVO.setDispatcherRealName(user.getRealName());
// }
// User userplan= service.getUserById(teamSetVO.getPlanner());
// if(null != userplan){
// teamSetVO.setPlannerRealName(userplan.getRealName());
//
// }
//// R<User> userplan= iUserClient.userInfoById(teamSetVO.getPlanner());
//// if(null != userplan && null != userplan.getData()){
//// teamSetVO.setPlannerRealName(userplan.getData().getRealName());
//// }
//// R<User> userleader= iUserClient.userInfoById(teamSetVO.getTeamLeader());
//// if(null != userleader && null != userleader.getData()){
//// teamSetVO.setTeamLeaderRealName(userleader.getData().getRealName());
//// }
//
//
// User userleader= service.getUserById(teamSetVO.getTeamLeader());
// if(null != userleader){
// teamSetVO.setTeamLeaderRealName(userleader.getRealName());
//
// }
// List<TeamSetVO> teamSetVOs = teamTimeService.getTimesAll(teamSetVO.getId());
List<TeamSetVO> teamTimes = teamTimeService.getTimesAll(teamSetVO.getId());
List<String> dayPutDueTimes = teamTimes.stream()
.filter(setvo -> (setvo.getDayPutDueTime() != null && !"".equals(setvo.getDayPutDueTime())))
.map(TeamSetVO::getDayPutDueTime)
.collect(Collectors.toList());
// List<String> dayPutDueTimes = new ArrayList<>();
//// QueryWrapper<TeamTime> queryWrapper = new QueryWrapper<>();
//// queryWrapper.in("ts_id",teamSetVO.getId());
//// queryWrapper.in("special",0);
//// List<TeamTime> teamTimes = teamTimeService.list(queryWrapper);
// for(TeamTime teamTime:teamTimes){
// dayPutDueTimes.add(teamTime.getStartTime()+"~"+teamTime.getEndTime());
// }
String dayPutDueTime = dayPutDueTimes.stream() String dayPutDueTime = dayPutDueTimes.stream()
.map(Object::toString) // 或者直接使用String::valueOf,效果相同 .map(Object::toString) // 或者直接使用String::valueOf,效果相同
.collect(Collectors.joining(",")); .collect(Collectors.joining(","));
teamSetVO.setDayPutDueTime(dayPutDueTime); teamSetVO.setDayPutDueTime(dayPutDueTime);
List<String> specDayPutDueTimes = teamTimes.stream()
.filter(setvo -> (setvo.getSpecDayPutDueTime() != null && !"".equals(setvo.getSpecDayPutDueTime())))
.map(TeamSetVO::getSpecDayPutDueTime)
.collect(Collectors.toList());
List<String> specDayPutDueTimes = new ArrayList<>(); // List<TeamTime> teamTimespecs = teamTimeService.getTimes(teamSetVO.getId(), 1);
QueryWrapper<TeamTime> queryWrapperspec = new QueryWrapper<>();
queryWrapperspec.in("ts_id",teamSetVO.getId()); //// List<String> specDayPutDueTimes = new ArrayList<>();
queryWrapperspec.in("special",1); //// QueryWrapper<TeamTime> queryWrapperspec = new QueryWrapper<>();
List<TeamTime> teamTimespecs = teamTimeService.list(queryWrapperspec); //// queryWrapperspec.in("ts_id",teamSetVO.getId());
for(TeamTime teamTime:teamTimespecs){ //// queryWrapperspec.in("special",1);
specDayPutDueTimes.add(teamTime.getStartTime()+"~"+teamTime.getEndTime()); //// List<TeamTime> teamTimespecs = teamTimeService.list(queryWrapperspec);
} // for(TeamTime teamTime:teamTimespecs){
// specDayPutDueTimes.add(teamTime.getStartTime()+"~"+teamTime.getEndTime());
// }
String specDayPutDueTime = specDayPutDueTimes.stream() String specDayPutDueTime = specDayPutDueTimes.stream()
.map(Object::toString) // 或者直接使用String::valueOf,效果相同 .map(Object::toString) // 或者直接使用String::valueOf,效果相同
.collect(Collectors.joining(",")); .collect(Collectors.joining(","));
teamSetVO.setSpecDayPutDueTime(specDayPutDueTime); teamSetVO.setSpecDayPutDueTime(specDayPutDueTime);
List<String> exChangeTimes = teamTimes.stream()
.filter(setvo -> (setvo.getExChangeTime() != null && !"".equals(setvo.getExChangeTime())))
.map(TeamSetVO::getExChangeTime)
.collect(Collectors.toList());
List<String> exChangeTimes = new ArrayList<>();
QueryWrapper<TeamTime> queryWrapperchange = new QueryWrapper<>(); // List<TeamTime> teamTimeexchanges = teamTimeService.getTimes(teamSetVO.getId(), 2);
queryWrapperchange.in("ts_id",teamSetVO.getId()); //
queryWrapperchange.in("special",2); //
List<TeamTime> teamTimeexchanges = teamTimeService.list(queryWrapperchange); // List<String> exChangeTimes = new ArrayList<>();
for(TeamTime teamTime:teamTimeexchanges){ //// QueryWrapper<TeamTime> queryWrapperchange = new QueryWrapper<>();
exChangeTimes.add(teamTime.getStartTime()+"~"+teamTime.getEndTime()); //// queryWrapperchange.in("ts_id",teamSetVO.getId());
} //// queryWrapperchange.in("special",2);
//// List<TeamTime> teamTimeexchanges = teamTimeService.list(queryWrapperchange);
// for(TeamTime teamTime:teamTimeexchanges){
// exChangeTimes.add(teamTime.getStartTime()+"~"+teamTime.getEndTime());
// }
String changeDayPutDueTime = exChangeTimes.stream() String changeDayPutDueTime = exChangeTimes.stream()
.map(Object::toString) // 或者直接使用String::valueOf,效果相同 .map(Object::toString) // 或者直接使用String::valueOf,效果相同
.collect(Collectors.joining(",")); .collect(Collectors.joining(","));
teamSetVO.setExChangeTime(changeDayPutDueTime); teamSetVO.setExChangeTime(changeDayPutDueTime);
} }
return R.data(pagesVO); return R.data(pagesVO);
} }

@ -10,6 +10,9 @@ import org.apache.ibatis.annotations.Param;
import org.springblade.desk.basic.excel.TeamSetExcel; import org.springblade.desk.basic.excel.TeamSetExcel;
import org.springblade.desk.basic.pojo.entity.TeamSet; import org.springblade.desk.basic.pojo.entity.TeamSet;
import org.springblade.desk.basic.pojo.vo.TeamSetVO; import org.springblade.desk.basic.pojo.vo.TeamSetVO;
import org.springblade.desk.quality.pojo.request.InspectionTaskSearch;
import org.springblade.desk.quality.pojo.vo.InspectionTaskListVO;
import org.springblade.system.pojo.entity.User;
import java.util.List; import java.util.List;
@ -37,4 +40,9 @@ public interface TeamSetMapper extends BaseMapper<TeamSet> {
* @return List<TeamSetExcel> * @return List<TeamSetExcel>
*/ */
List<TeamSetExcel> exportTeamSet(@Param("ew") Wrapper<TeamSet> queryWrapper); List<TeamSetExcel> exportTeamSet(@Param("ew") Wrapper<TeamSet> queryWrapper);
User getUserById(Long id);
List<TeamSetVO> listSearch(IPage<TeamSetVO> page, @Param("q") TeamSet search);
List<TeamSetVO> getUserAll(Long disId,Long planId,Long teamId);
} }

@ -29,8 +29,52 @@
WHERE is_deleted = 0 WHERE is_deleted = 0
</select> </select>
<select id="listSearch" resultMap="teamSetResultMap">
SELECT *
FROM BA_TEAM_SET
left join BS_TEAM_TIME
WHERE is_deleted = 0
</select>
<select id="exportTeamSet" resultType="org.springblade.desk.basic.excel.TeamSetExcel"> <select id="exportTeamSet" resultType="org.springblade.desk.basic.excel.TeamSetExcel">
SELECT * SELECT *
FROM BA_TEAM_SET ${ew.customSqlSegment} FROM BA_TEAM_SET ${ew.customSqlSegment}
</select> </select>
<select id="getUserById" resultType="org.springblade.system.pojo.entity.User">
SELECT *
FROM blade_user where id = #{id} and is_deleted = 0
</select>
<select id="getUserAll" resultType="org.springblade.desk.basic.pojo.vo.TeamSetVO">
SELECT
tim.real_name AS dispatcherRealName,
TO_NCHAR('') AS plannerRealName,
TO_NCHAR('') AS teamLeaderRealName
FROM blade_user tim
WHERE tim.is_deleted = 0 AND tim.id = #{disId}
UNION ALL
SELECT
TO_NCHAR('') AS dispatcherRealName,
tim.real_name AS plannerRealName,
TO_NCHAR('') AS teamLeaderRealName
FROM blade_user tim
WHERE tim.is_deleted = 0 AND tim.id = #{planId}
UNION ALL
SELECT
TO_NCHAR('') AS dispatcherRealName,
TO_NCHAR('') AS plannerRealName,
tim.real_name AS teamLeaderRealName
FROM blade_user tim
WHERE tim.is_deleted = 0 AND tim.id = #{teamId}
</select>
</mapper> </mapper>

@ -21,5 +21,6 @@ import java.util.List;
* @since 2025-12-16 * @since 2025-12-16
*/ */
public interface TeamTimeMapper extends BaseMapper<TeamTime> { public interface TeamTimeMapper extends BaseMapper<TeamTime> {
List<TeamTime> getTimes(Long id, Integer special);
List<TeamSetVO> getTimesAll(Long id);
} }

@ -12,14 +12,42 @@
<result column="SPECIAL" property="special"/> <result column="SPECIAL" property="special"/>
</resultMap> </resultMap>
<select id="selectTeamSetPage" resultMap="teamSetResultMap"> <select id="getTimes" resultMap="teamSetResultMap">
SELECT * SELECT *
FROM BA_TEAM_TIME FROM BS_TEAM_TIME
WHERE is_deleted = 0 WHERE is_deleted = 0 and TS_ID = #{id} and SPECIAL = #{special}
</select> </select>
<select id="getTimesAll" resultType="org.springblade.desk.basic.pojo.vo.TeamSetVO">
SELECT
TO_NCHAR(tim.START_TIME || '~' || tim.END_TIME) AS dayPutDueTime,
TO_NCHAR('') AS specDayPutDueTime,
TO_NCHAR('') AS exChangeTime
FROM BS_TEAM_TIME tim
WHERE tim.is_deleted = 0 AND tim.SPECIAL = 0 AND tim.TS_ID = #{id}
UNION ALL
SELECT
TO_NCHAR('') AS dayPutDueTime,
TO_NCHAR(tim.START_TIME || '~' || tim.END_TIME) AS specDayPutDueTime,
TO_NCHAR('') AS exChangeTime
FROM BS_TEAM_TIME tim
WHERE tim.is_deleted = 0 AND tim.SPECIAL = 1 AND tim.TS_ID = #{id}
UNION ALL
SELECT
TO_NCHAR('') AS dayPutDueTime,
TO_NCHAR('') AS specDayPutDueTime,
TO_NCHAR(tim.START_TIME || '~' || tim.END_TIME) AS exChangeTime
FROM BS_TEAM_TIME tim
WHERE tim.is_deleted = 0 AND tim.SPECIAL = 2 AND tim.TS_ID = #{id}
</select>
<select id="exportTeamSet" resultType="org.springblade.desk.basic.excel.TeamSetExcel"> <select id="exportTeamSet" resultType="org.springblade.desk.basic.excel.TeamSetExcel">
SELECT * SELECT *
FROM BA_TEAM_TIME ${ew.customSqlSegment} FROM BS_TEAM_TIME ${ew.customSqlSegment}
</select> </select>
</mapper> </mapper>

@ -10,6 +10,8 @@ import org.springblade.core.tool.api.R;
import org.springblade.desk.basic.excel.TeamSetExcel; import org.springblade.desk.basic.excel.TeamSetExcel;
import org.springblade.desk.basic.pojo.entity.TeamSet; import org.springblade.desk.basic.pojo.entity.TeamSet;
import org.springblade.desk.basic.pojo.vo.TeamSetVO; import org.springblade.desk.basic.pojo.vo.TeamSetVO;
import org.springblade.desk.quality.pojo.request.InspectionTaskSearch;
import org.springblade.desk.quality.pojo.vo.InspectionTaskListVO;
import org.springblade.system.pojo.entity.User; import org.springblade.system.pojo.entity.User;
import java.util.List; import java.util.List;
@ -101,4 +103,9 @@ public interface ITeamSetService extends BaseService<TeamSet> {
* @return * @return
*/ */
Long getTeamSetLeader(Long id); Long getTeamSetLeader(Long id);
User getUserById(Long id);
IPage<TeamSetVO> listSearch(IPage<TeamSetVO> page, TeamSet search);
List<TeamSetVO> getUserAll(Long disId,Long planId,Long teamId);
} }

@ -22,5 +22,7 @@ import java.util.List;
* @since 2025-12-16 * @since 2025-12-16
*/ */
public interface ITeamTimeService extends BaseService<TeamTime> { public interface ITeamTimeService extends BaseService<TeamTime> {
List<TeamTime> getTimes(Long id, Integer special);
List<TeamSetVO> getTimesAll(Long id);
} }

@ -24,6 +24,7 @@ import org.springblade.desk.basic.pojo.vo.TeamSetVO;
import org.springblade.desk.basic.service.IRelTeamSetUserService; import org.springblade.desk.basic.service.IRelTeamSetUserService;
import org.springblade.desk.basic.service.ITeamSetService; import org.springblade.desk.basic.service.ITeamSetService;
import org.springblade.desk.order.pojo.entity.YieldPlan; import org.springblade.desk.order.pojo.entity.YieldPlan;
import org.springblade.desk.quality.pojo.vo.InspectionTaskListVO;
import org.springblade.system.feign.IUserClient; import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.User; import org.springblade.system.pojo.entity.User;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -119,4 +120,22 @@ public class TeamSetServiceImpl extends BaseServiceImpl<TeamSetMapper, TeamSet>
// return f.getTeamLeader(); // return f.getTeamLeader();
return 2004027390417698818L; return 2004027390417698818L;
} }
@Override
public User getUserById(Long id) {
return baseMapper.getUserById(id);
}
@Override
public IPage<TeamSetVO> listSearch(IPage<TeamSetVO> page, TeamSet search) {
List<TeamSetVO> listVO = baseMapper.listSearch(page, search);
return page.setRecords(listVO);
}
@Override
public List<TeamSetVO> getUserAll(Long disId, Long planId, Long teamId) {
return baseMapper.getUserAll(disId, planId, teamId);
}
} }

@ -41,4 +41,13 @@ import java.util.List;
@AllArgsConstructor @AllArgsConstructor
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class TeamTimeServiceImpl extends BaseServiceImpl<TeamTimeMapper, TeamTime> implements ITeamTimeService { public class TeamTimeServiceImpl extends BaseServiceImpl<TeamTimeMapper, TeamTime> implements ITeamTimeService {
@Override
public List<TeamTime> getTimes(Long id, Integer special) {
return baseMapper.getTimes(id, special);
}
@Override
public List<TeamSetVO> getTimesAll(Long id) {
return baseMapper.getTimesAll( id);
}
} }

Loading…
Cancel
Save