diff --git a/mes-module-system/mes-module-system-biz/src/main/java/com/chanko/yunxi/mes/module/system/dal/mysql/user/AdminUserMapper.java b/mes-module-system/mes-module-system-biz/src/main/java/com/chanko/yunxi/mes/module/system/dal/mysql/user/AdminUserMapper.java index 92a18e52..46929aff 100644 --- a/mes-module-system/mes-module-system-biz/src/main/java/com/chanko/yunxi/mes/module/system/dal/mysql/user/AdminUserMapper.java +++ b/mes-module-system/mes-module-system-biz/src/main/java/com/chanko/yunxi/mes/module/system/dal/mysql/user/AdminUserMapper.java @@ -9,6 +9,8 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; import org.springframework.util.StringUtils; +import java.time.LocalDate; +import java.time.temporal.ChronoUnit; import java.util.Collection; import java.util.List; @@ -61,7 +63,12 @@ public interface AdminUserMapper extends BaseMapperX { String span = "0"; if(reqVO.getYearMonth()!=null){ - + LocalDate date1 = LocalDate.of(new Integer(reqVO.getYearMonth().substring(0,3)), new Integer(reqVO.getYearMonth().substring(4,5)), 1); + LocalDate date2 = LocalDate.of(LocalDate.now().getYear(), LocalDate.now().getMonth(), 1); + long monthsBetween = ChronoUnit.MONTHS.between( + date1.withDayOfMonth(1), + date2.withDayOfMonth(1) + ); } query.selectAll(AdminUserDO.class) @@ -75,24 +82,24 @@ public interface AdminUserMapper extends BaseMapperX { "then (select standard_labour_price from base_procedure where id=b.procedure_id and salary_type='HourWage' limit 1)*b.workTime " + "when exists(select id from base_procedure where id=b.procedure_id and salary_type='PieceRateWage') " + "then (select standard_labour_price from base_procedure where id=b.procedure_id and salary_type='PieceRateWage' limit 1)*b.amount " + - "else 0 end" + - "),0) salary") + "else 0 end " + + "),0) salary ") .leftJoin("(select * from system_users as a,(SELECT DATE_FORMAT(DATE_SUB(CURRENT_DATE(),INTERVAL "+span+" MONTH) , '%Y%m') year_mont) as b " + ") as a on t.id=a.id") .leftJoin("(" + - "select ptr.owner,DATE_FORMAT(ptr.report_time, '%Y%m') as year_mont,pso.code as projectCode,pso.business_dept_id,ptr.procedure_id,pso.external_code,sum(ptr.amount) amount,sum(ptr.work_time) workTime from pro_task_report as ptr" + - "left join pro_task_dispatch as ptd on ptd.id=ptr.dispatch_id" + - "left join project_sale_order as pso on pso.id= ptd.project_id" + - "group by ptr.owner,DATE_FORMAT(ptr.report_time, '%Y%m'),pso.code,pso.business_dept_id,ptr.procedure_id,pso.external_code" + - ") b on t.id=b.owner and a.id=b.owner and a.year_mont=b.year_mont") - .leftJoin("system_dept as sd on b.business_dept_id= sd.id") - .leftJoin("base_workshop as c on c.id=b.workshop_id") - .groupBy("t.id,t.username,t.nickname,a.year_mont,b.projectCode,b.external_code,sd.name") + "select ptr.owner,DATE_FORMAT(ptr.report_time, '%Y%m') as year_mont,pso.code as projectCode,pso.business_dept_id,ptr.procedure_id,pso.external_code,sum(ptr.amount) amount,sum(ptr.work_time) workTime from pro_task_report as ptr " + + "left join pro_task_dispatch as ptd on ptd.id=ptr.dispatch_id " + + "left join project_sale_order as pso on pso.id= ptd.project_id " + + "group by ptr.owner,DATE_FORMAT(ptr.report_time, '%Y%m'),pso.code,pso.business_dept_id,ptr.procedure_id,pso.external_code " + + ") b on t.id=b.owner and a.id=b.owner and a.year_mont=b.year_mont ") + .leftJoin("system_dept as sd on b.business_dept_id= sd.id ") + .leftJoin("base_workshop as c on c.id=b.workshop_id ") + .groupBy("t.id,t.username,t.nickname,a.year_mont,b.projectCode,b.external_code,sd.name ") ; - query.like(reqVO.getNickname()!=null,AdminUserDO::getNickname,reqVO.getNickname()) - .like(!StringUtils.isEmpty(reqVO.getProjectCode()),"b.projectCode",reqVO.getProjectCode()) + query.like(!StringUtils.isEmpty(reqVO.getProjectCode()),"b.projectCode",reqVO.getProjectCode()) .like(!StringUtils.isEmpty(reqVO.getExternalCode()),"b.external_code",reqVO.getExternalCode()) .eq(!StringUtils.isEmpty(reqVO.getYearMonth()),"a.year_mont",reqVO.getYearMonth()) + .apply(!StringUtils.isEmpty(reqVO.getNickname()),"(t.nickname like {0} or t.username like {0})","%"+reqVO.getNickname()+"%") ; return selectPage(reqVO,query);