【用户工资明细导出】暂存TODO

dev
siontion 3 months ago
parent c2f54b638d
commit 86c1a94c53

@ -10,7 +10,10 @@ import com.chanko.yunxi.mes.module.biz.controller.admin.taskreport.vo.*;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskdispatch.TaskDispatchDetailDO;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskreport.TaskReportDO;
import com.chanko.yunxi.mes.module.biz.dal.mysql.taskdispatch.TaskDispatchDetailMapper;
import com.chanko.yunxi.mes.module.biz.dal.mysql.taskreport.TaskReportMapper;
import com.chanko.yunxi.mes.module.biz.service.taskreport.TaskReportService;
import com.chanko.yunxi.mes.module.system.controller.admin.user.vo.user.UserPageReqVO;
import com.chanko.yunxi.mes.module.system.controller.admin.user.vo.user.UserSalaryRespVO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
@ -38,6 +41,9 @@ public class TaskReportController {
@Resource
private TaskDispatchDetailMapper taskDispatchDetailMapper;
@Resource
private TaskReportMapper taskReportMapper;
@PostMapping("/create")
@Operation(summary = "创建任务报工")
@PreAuthorize("@ss.hasPermission('biz:task-report:create')")
@ -152,4 +158,16 @@ public class TaskReportController {
return success(taskReportService.getUserReportDetail(userid,yearMonth));
}
@GetMapping("/export-salary-detail-excel")
@Operation(summary = "导出员工工资 Excel")
@PreAuthorize("@ss.hasPermission('system:user:list')")
@OperateLog(type = EXPORT)
public void exportUserSalaryDetailExcel(@Valid UserPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<TaskReportDO> list = taskReportMapper.selectUserReportDetail(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "员工工资明细.xls", "数据", UserSalaryRespVO.class,
BeanUtils.toBean(list, UserSalaryRespVO.class));
}
}

@ -14,6 +14,7 @@ import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskdispatch.TaskDispatchD
import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskreport.TaskReportDO;
import com.chanko.yunxi.mes.module.biz.dal.dataobject.warehouse.WarehouseDO;
import com.chanko.yunxi.mes.module.biz.dal.mysql.warehouse.WarehouseMapper;
import com.chanko.yunxi.mes.module.system.controller.admin.user.vo.user.UserPageReqVO;
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.ibatis.annotations.Mapper;
@ -168,5 +169,37 @@ public interface TaskReportMapper extends BaseMapperX<TaskReportDO> {
return selectList(query);
}
default PageResult<TaskReportDO> selectUserReportDetail(UserPageReqVO pageReqVO) {
MPJLambdaWrapperX<TaskReportDO> query = new MPJLambdaWrapperX<>();
query.distinct()
.select("d.code project_code,h.name dept_name,e.code material_code,e.name material_name,e.spec,f.nickname as ownerName,DATE_FORMAT(t.report_time,'%Y-%m-%d') as report_time")
.select("g.name procedure_name,sum(t.work_time) work_time,sum(t.amount) amount")
.leftJoin("pro_task_dispatch_detail as a on a.id=t.dispatch_detail_id")
.leftJoin("pro_task_dispatch as b on b.id=a.dispatch_id")
.leftJoin("project_sale_order_sub as c on c.id=b.project_sub_id")
.leftJoin("project_sale_order as d on d.id=c.project_order_id")
.leftJoin("base_material as e on e.id=c.material_id")
.leftJoin("system_users as f on f.id=t.owner")
.leftJoin("base_procedure as g on g.id=t.procedure_id")
.leftJoin("system_dept as h on h.id=f.dept_id")
.groupBy("d.code,h.name,e.code,e.name,e.spec,t.owner,DATE_FORMAT(t.report_time,'%Y-%m-%d'),t.procedure_id")
.disableSubLogicDel();
if(!StringUtils.isEmpty(pageReqVO.getUserNickName())){
query.apply(true, "(f.nickname like {0} or f.username like {0})","%"+ pageReqVO.getUserNickName()+"%");
}
if(!StringUtils.isEmpty(pageReqVO.getProjectCode())){
query.apply(true, "d.code like {0}",pageReqVO.getProjectCode());
}
if(!StringUtils.isEmpty(pageReqVO.getExternalCode())){
query.apply(true, "d.external_code like {0}",pageReqVO.getExternalCode());
}
if(!StringUtils.isEmpty(pageReqVO.getYearMonth())){
query.eq(true, "DATE_FORMAT(t.report_time,'%Y%m')",pageReqVO.getYearMonth());
}
return selectPage(pageReqVO,query);
}
}

@ -189,4 +189,6 @@ public class UserController {
ExcelUtils.write(response, "员工工资.xls", "数据", UserSalaryRespVO.class,
BeanUtils.toBean(list, UserSalaryRespVO.class));
}
}

Loading…
Cancel
Save