selectSalaryPage

dev
siontion 4 months ago
parent 3739a24c46
commit 2bd85f6960

@ -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<AdminUserDO> {
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<AdminUserDO> {
"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);

Loading…
Cancel
Save