|
|
@ -2,6 +2,7 @@ package com.win.module.mes.service.mesworkschedulingdetail; |
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray; |
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
import com.win.framework.common.exception.ErrorCode; |
|
|
|
import com.win.framework.common.pojo.CustomConditions; |
|
|
|
import com.win.framework.common.pojo.PageResult; |
|
|
|
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; |
|
|
@ -17,7 +18,12 @@ import com.win.module.mes.dal.mysql.mesorderdaybom.MesOrderDayBomMapper; |
|
|
|
import com.win.module.mes.dal.mysql.mesreportpstore.MesReportpStoreMapper; |
|
|
|
import com.win.module.mes.dal.mysql.mesworkscheduling.MesWorkSchedulingMapper; |
|
|
|
import com.win.module.mes.dal.mysql.mesworkschedulingdetail.MesWorkSchedulingDetailMapper; |
|
|
|
import com.win.module.mes.enums.ErrorCodeConstants; |
|
|
|
import com.win.module.mes.enums.WorkStatusEnum; |
|
|
|
import com.win.module.mes.enums.WorkingScheduleEnum; |
|
|
|
import com.win.module.mes.service.mesorderdayworker.MesOrderDayWorkerService; |
|
|
|
import com.win.module.system.api.user.AdminUserApi; |
|
|
|
import com.win.module.system.util.StringUtils; |
|
|
|
import com.win.module.wms.api.team.TeamServiceAPI; |
|
|
|
import com.win.module.wms.api.team.dto.TeamDTO; |
|
|
|
import org.apache.calcite.util.Util; |
|
|
@ -34,6 +40,7 @@ import java.time.format.DateTimeFormatter; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Objects; |
|
|
|
import java.util.Optional; |
|
|
|
|
|
|
|
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; |
|
|
|
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; |
|
|
@ -62,6 +69,7 @@ public class MesWorkSchedulingDetailServiceImpl implements MesWorkSchedulingDeta |
|
|
|
private MesReportpStoreMapper reportpStoreMapper; |
|
|
|
@Resource |
|
|
|
private MesOrderDayBomMapper orderDayBomMapper; |
|
|
|
|
|
|
|
@Override |
|
|
|
public Long createWorkSchedulingDetail(MesWorkSchedulingDetailCreateReqVO createReqVO) { |
|
|
|
// 插入
|
|
|
@ -247,4 +255,38 @@ public class MesWorkSchedulingDetailServiceImpl implements MesWorkSchedulingDeta |
|
|
|
})); |
|
|
|
return result; |
|
|
|
} |
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public Integer processFinished(Long id){ |
|
|
|
//更新工序状态
|
|
|
|
//updateReqVO.setStatus(WorkStatusEnum.FINISHED.getCode());
|
|
|
|
MesWorkSchedulingDetailDO detailDO = workSchedulingDetailMapper.selectById(id); |
|
|
|
|
|
|
|
String nextNodeCode = detailDO.getNextNodeCode(); |
|
|
|
|
|
|
|
MesWorkSchedulingDO mesWorkSchedulingDO = workSchedulingMapper.selectOne("scheduling_code", detailDO.getSchedulingCode(), "plan_master_code", detailDO.getPlanNoDay()); |
|
|
|
if("endNode".equalsIgnoreCase(nextNodeCode)){ |
|
|
|
//检验其他工单是否也完成
|
|
|
|
List<MesWorkSchedulingDetailDO> scheduling_code = workSchedulingDetailMapper.selectList("scheduling_code", detailDO.getSchedulingCode()); |
|
|
|
String code=detailDO.getNodeCode(); |
|
|
|
Optional<MesWorkSchedulingDetailDO> any = scheduling_code.stream().filter(item -> item.getStatus().equals(WorkStatusEnum.WAITING.getCode())&& !item.getNodeCode().equals(code)).findAny(); |
|
|
|
if(!any.isEmpty() ){ |
|
|
|
throw exception(ErrorCodeConstants.HAVING_UNFINISHED_PRE_TASK); |
|
|
|
} |
|
|
|
mesWorkSchedulingDO.setStatus(WorkingScheduleEnum.FINISHED.getCode()); |
|
|
|
}else{ |
|
|
|
MesWorkSchedulingDetailDO detailDOpre = workSchedulingDetailMapper.selectOne("scheduling_code", detailDO.getSchedulingCode(), "node_code", detailDO.getPreNodeCode()); |
|
|
|
if(StringUtils.isNotNull(detailDOpre) && detailDOpre.getStatus().equals(WorkStatusEnum.WAITING.getCode())){ |
|
|
|
throw exception(ErrorCodeConstants.HAVING_UNFINISHED_PRE_TASK); |
|
|
|
} |
|
|
|
} |
|
|
|
mesWorkSchedulingDO.setWorkingNode(nextNodeCode); |
|
|
|
mesWorkSchedulingDO.setWorkSort(detailDO.getTaskSort()); |
|
|
|
detailDO.setStatus(WorkStatusEnum.FINISHED.getCode()); |
|
|
|
//更新工单的工序
|
|
|
|
int ret = workSchedulingDetailMapper.updateById(detailDO); |
|
|
|
ret=ret+workSchedulingMapper.updateById(mesWorkSchedulingDO); |
|
|
|
return ret; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|