班组查询慢的问题

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.util.ExcelExtUtil;
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.pojo.entity.User;
import org.springframework.http.ResponseEntity;
@ -250,65 +251,122 @@ public class TeamSetController extends BladeController {
// page
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);
List<TeamSetVO> records = pagesVO.getRecords();
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<>();
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());
List<TeamSetVO> teamSetVOS = service.getUserAll(teamSetVO.getDispatcher(),teamSetVO.getPlanner(),teamSetVO.getTeamLeader());
if(null != teamSetVOS && teamSetVOS.size() > 0){
for(TeamSetVO teamSetVO1:teamSetVOS){
if(null != teamSetVO1.getDispatcherRealName() && !"".equals(teamSetVO1.getDispatcherRealName())){
teamSetVO.setDispatcherRealName(teamSetVO1.getDispatcherRealName());
}
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()
.map(Object::toString) // 或者直接使用String::valueOf,效果相同
.collect(Collectors.joining(","));
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<>();
QueryWrapper<TeamTime> queryWrapperspec = new QueryWrapper<>();
queryWrapperspec.in("ts_id",teamSetVO.getId());
queryWrapperspec.in("special",1);
List<TeamTime> teamTimespecs = teamTimeService.list(queryWrapperspec);
for(TeamTime teamTime:teamTimespecs){
specDayPutDueTimes.add(teamTime.getStartTime()+"~"+teamTime.getEndTime());
}
// List<TeamTime> teamTimespecs = teamTimeService.getTimes(teamSetVO.getId(), 1);
//// List<String> specDayPutDueTimes = new ArrayList<>();
//// QueryWrapper<TeamTime> queryWrapperspec = new QueryWrapper<>();
//// queryWrapperspec.in("ts_id",teamSetVO.getId());
//// queryWrapperspec.in("special",1);
//// List<TeamTime> teamTimespecs = teamTimeService.list(queryWrapperspec);
// for(TeamTime teamTime:teamTimespecs){
// specDayPutDueTimes.add(teamTime.getStartTime()+"~"+teamTime.getEndTime());
// }
String specDayPutDueTime = specDayPutDueTimes.stream()
.map(Object::toString) // 或者直接使用String::valueOf,效果相同
.collect(Collectors.joining(","));
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<>();
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());
}
// List<TeamTime> teamTimeexchanges = teamTimeService.getTimes(teamSetVO.getId(), 2);
//
//
// List<String> exChangeTimes = new ArrayList<>();
//// QueryWrapper<TeamTime> queryWrapperchange = new QueryWrapper<>();
//// 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()
.map(Object::toString) // 或者直接使用String::valueOf,效果相同
.collect(Collectors.joining(","));
teamSetVO.setExChangeTime(changeDayPutDueTime);
}
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.pojo.entity.TeamSet;
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;
@ -37,4 +40,9 @@ public interface TeamSetMapper extends BaseMapper<TeamSet> {
* @return List<TeamSetExcel>
*/
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
</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 *
FROM BA_TEAM_SET ${ew.customSqlSegment}
</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>

@ -21,5 +21,6 @@ import java.util.List;
* @since 2025-12-16
*/
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"/>
</resultMap>
<select id="selectTeamSetPage" resultMap="teamSetResultMap">
<select id="getTimes" resultMap="teamSetResultMap">
SELECT *
FROM BA_TEAM_TIME
WHERE is_deleted = 0
FROM BS_TEAM_TIME
WHERE is_deleted = 0 and TS_ID = #{id} and SPECIAL = #{special}
</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 *
FROM BA_TEAM_TIME ${ew.customSqlSegment}
FROM BS_TEAM_TIME ${ew.customSqlSegment}
</select>
</mapper>

@ -10,6 +10,8 @@ import org.springblade.core.tool.api.R;
import org.springblade.desk.basic.excel.TeamSetExcel;
import org.springblade.desk.basic.pojo.entity.TeamSet;
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;
@ -101,4 +103,9 @@ public interface ITeamSetService extends BaseService<TeamSet> {
* @return
*/
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
*/
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.ITeamSetService;
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.pojo.entity.User;
import org.springframework.stereotype.Service;
@ -119,4 +120,22 @@ public class TeamSetServiceImpl extends BaseServiceImpl<TeamSetMapper, TeamSet>
// return f.getTeamLeader();
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
@EqualsAndHashCode(callSuper = true)
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