parent
c5ff144da1
commit
fb2e2d0d97
@ -0,0 +1,95 @@
|
||||
package com.chanko.yunxi.mes.module.biz.dal.mysql.taskdispatch;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.chanko.yunxi.mes.module.biz.controller.admin.taskdispatch.vo.TaskDispatchDetailPageReqVO;
|
||||
import com.chanko.yunxi.mes.module.biz.dal.dataobject.material.MaterialDO;
|
||||
import com.chanko.yunxi.mes.module.biz.dal.dataobject.procedure.ProcedureDO;
|
||||
import com.chanko.yunxi.mes.module.biz.dal.dataobject.projectorder.ProjectOrderDO;
|
||||
import com.chanko.yunxi.mes.module.biz.dal.dataobject.projectorder.ProjectOrderSubDO;
|
||||
import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskdispatch.TaskDispatchDO;
|
||||
import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskdispatch.TaskDispatchDetailOwnerDO;
|
||||
import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskreport.TaskReportDO;
|
||||
import com.chanko.yunxi.mes.module.biz.dal.dataobject.workshop.WorkshopDO;
|
||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 派工明细 Mapper
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
@Mapper
|
||||
public interface TaskDispatchDetailOwnerMapper extends BaseMapperX<TaskDispatchDetailOwnerDO> {
|
||||
|
||||
default PageResult<TaskDispatchDetailOwnerDO> selectPage(TaskDispatchDetailPageReqVO reqVO) {
|
||||
MPJLambdaWrapper<TaskDispatchDetailOwnerDO> query = new MPJLambdaWrapper<>();
|
||||
query.selectAll(TaskDispatchDetailOwnerDO.class)
|
||||
.select("a.code as dispatchCode")
|
||||
.select("b.code as projectCode")
|
||||
.select("e.name as procedureName")
|
||||
.select("COALESCE(sum(f.amount),0) as totalReportAmount")
|
||||
.select("COALESCE(sum(f.work_time),0) as totalWorkTime")
|
||||
.select("d.unit","d.spec", "d.name as projectSubName", "d.code as projectSubCode", "c.production_id, c.production_detail_id")
|
||||
.select("g.name as workshopName")
|
||||
.leftJoin(TaskDispatchDO.class, "a", TaskDispatchDO::getId, TaskDispatchDetailOwnerDO::getDispatchId)
|
||||
.leftJoin(ProjectOrderDO.class, "b", ProjectOrderDO::getId, TaskDispatchDO::getProjectId)
|
||||
.leftJoin(ProjectOrderSubDO.class, "c", ProjectOrderSubDO::getId, TaskDispatchDO::getProjectSubId)
|
||||
.leftJoin(MaterialDO.class, "d", MaterialDO::getId, ProjectOrderSubDO::getMaterialId)
|
||||
.leftJoin(ProcedureDO.class, "e", ProcedureDO::getId, TaskDispatchDetailOwnerDO::getProcedureId)
|
||||
.leftJoin(TaskReportDO.class, "f", TaskReportDO::getDispatchDetailId, TaskDispatchDetailOwnerDO::getId)
|
||||
.leftJoin(WorkshopDO.class, "g", WorkshopDO::getId, TaskDispatchDO::getWorkshopId)
|
||||
.groupBy(TaskDispatchDetailOwnerDO::getId)
|
||||
.orderByDesc(TaskDispatchDetailOwnerDO::getId)
|
||||
.disableSubLogicDel();
|
||||
|
||||
query.in(CollUtil.isNotEmpty(reqVO.getProcedureStatusList()), TaskDispatchDetailOwnerDO::getProcedureStatus, reqVO.getProcedureStatusList())
|
||||
.eq(reqVO.getIsReport() != null, ProcedureDO::getIsReport, reqVO.getIsReport())
|
||||
.eq(!StringUtils.isEmpty(reqVO.getDispatchType()), TaskDispatchDO::getDispatchType, reqVO.getDispatchType())
|
||||
.eq(reqVO.getTaskId() != null, TaskDispatchDO::getTaskId, reqVO.getTaskId())
|
||||
.eq(reqVO.getBomDetailId() != null, TaskDispatchDO::getBomDetailId, reqVO.getBomDetailId())
|
||||
.eq(reqVO.getDispatchStatus() != null, TaskDispatchDO::getDispatchStatus, reqVO.getDispatchStatus())
|
||||
.apply(reqVO.getOwner() != null,"(t.owner={0} or INSTR(t.owner_ids,{0})>0)",reqVO.getOwner())
|
||||
;
|
||||
|
||||
return selectPage(reqVO, query);
|
||||
}
|
||||
|
||||
default List<TaskDispatchDetailOwnerDO> selectListByDispatchId(Long dispatchId) {
|
||||
return selectList(TaskDispatchDetailOwnerDO::getDispatchId, dispatchId);
|
||||
}
|
||||
|
||||
default int deleteByDispatchId(Long dispatchId) {
|
||||
return delete(TaskDispatchDetailOwnerDO::getId, dispatchId);
|
||||
}
|
||||
|
||||
default TaskDispatchDetailOwnerDO getTaskDispatchDetail(Long dispatchDetailId){
|
||||
MPJLambdaWrapper<TaskDispatchDetailOwnerDO> query = new MPJLambdaWrapper<>();
|
||||
query.selectAll(TaskDispatchDetailOwnerDO.class)
|
||||
.select("a.code as dispatchCode")
|
||||
.select("b.code as projectCode")
|
||||
.select("e.name as procedureName")
|
||||
.select("COALESCE(sum(f.amount),0) as totalReportAmount")
|
||||
.select("COALESCE(sum(f.work_time),0) as totalWorkTime")
|
||||
.select("d.unit","d.spec", "d.name as projectSubName", "d.code as projectSubCode", "c.production_id, c.production_detail_id")
|
||||
.select("g.name as workshopName", "g.code as workshopCode")
|
||||
.leftJoin(TaskDispatchDO.class, "a", TaskDispatchDO::getId, TaskDispatchDetailOwnerDO::getDispatchId)
|
||||
.leftJoin(ProjectOrderDO.class, "b", ProjectOrderDO::getId, TaskDispatchDO::getProjectId)
|
||||
.leftJoin(ProjectOrderSubDO.class, "c", ProjectOrderSubDO::getId, TaskDispatchDO::getProjectSubId)
|
||||
.leftJoin(MaterialDO.class, "d", MaterialDO::getId, ProjectOrderSubDO::getMaterialId)
|
||||
.leftJoin(ProcedureDO.class, "e", ProcedureDO::getId, TaskDispatchDetailOwnerDO::getProcedureId)
|
||||
.leftJoin(TaskReportDO.class, "f", TaskReportDO::getDispatchDetailId, TaskDispatchDetailOwnerDO::getId)
|
||||
.leftJoin(WorkshopDO.class, "g", WorkshopDO::getId, TaskDispatchDO::getWorkshopId)
|
||||
.groupBy(TaskDispatchDetailOwnerDO::getId)
|
||||
.eq(TaskDispatchDetailOwnerDO::getId, dispatchDetailId)
|
||||
.disableSubLogicDel()
|
||||
.last("LIMIT 1")
|
||||
;
|
||||
return selectOne(query);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in new issue