|
|
|
|
@ -15,7 +15,11 @@ import org.springblade.core.secure.BladeUser; |
|
|
|
|
import org.springblade.core.secure.utils.AuthUtil; |
|
|
|
|
import org.springblade.desk.basic.mapper.CraftAbilityMapper; |
|
|
|
|
import org.springblade.desk.basic.pojo.entity.RelTeamSetUser; |
|
|
|
|
import org.springblade.desk.basic.pojo.entity.TeamSet; |
|
|
|
|
import org.springblade.desk.basic.pojo.entity.WorkCenter; |
|
|
|
|
import org.springblade.desk.basic.service.IRelTeamSetUserService; |
|
|
|
|
import org.springblade.desk.basic.service.ITeamSetService; |
|
|
|
|
import org.springblade.desk.basic.service.IUserRightService; |
|
|
|
|
import org.springblade.desk.dashboard.pojo.entity.*; |
|
|
|
|
import org.springblade.desk.dashboard.service.*; |
|
|
|
|
import org.springblade.desk.device.pojo.entity.FeiBaSetEntity; |
|
|
|
|
@ -101,16 +105,23 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan |
|
|
|
|
|
|
|
|
|
private final WorkPlanMapper workPlanMapper; |
|
|
|
|
|
|
|
|
|
private final IWorkPlanService workPlanService; |
|
|
|
|
|
|
|
|
|
private final IUserRightService userRightService; |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public WorkPlan loadBindData(BladeUser user, String cardNo) { |
|
|
|
|
WorkPlan prWorkPlan = this.getCurrentWorkPlan(cardNo, user, false, false); |
|
|
|
|
public WorkPlan loadBindData(Long userId, String cardNo) { |
|
|
|
|
WorkPlan prWorkPlan = this.getCurrentWorkPlan(cardNo, userId, false, false); |
|
|
|
|
return prWorkPlan; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public RackSetEntity getBsRackSetByCode(String rsCode) { |
|
|
|
|
return rackSetService.getOne(Wrappers.lambdaQuery(RackSetEntity.class) |
|
|
|
|
.eq(RackSetEntity::getRsCode, rsCode)); |
|
|
|
|
RackSetEntity rackSet = rackSetService.getBsRackSetByCode(rsCode); |
|
|
|
|
if (rackSet == null) { |
|
|
|
|
throw new ServiceException("此挂具不存在!"); |
|
|
|
|
} |
|
|
|
|
return rackSet; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
@ -172,7 +183,7 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan |
|
|
|
|
.woCode(prWorkOrder.getWoCode()) |
|
|
|
|
.batchNo(prWorkOrder.getBatchNo()) |
|
|
|
|
.partCode(prWorkOrder.getPartCode()) |
|
|
|
|
.partName(part.getPartName()) |
|
|
|
|
.partName(part != null ? part.getPartName() : null) |
|
|
|
|
.frontOrders(frontWorkPlan.getOrders()) |
|
|
|
|
.frontPpsName(processSetMap.get(frontWorkPlan.getPpsId()).getName()) |
|
|
|
|
.wpId(prWorkPlan.getId()) |
|
|
|
|
@ -206,42 +217,36 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private WorkPlan getCurrentWorkPlan(String cardNo, BladeUser user, boolean checkCurrentProcess, boolean checkAfterPlating) { |
|
|
|
|
private WorkPlan getCurrentWorkPlan(String cardNo, Long userId, boolean checkCurrentProcess, boolean checkAfterPlating) { |
|
|
|
|
//获取并验证车间订单
|
|
|
|
|
WorkOrder prWorkOrder = this.checkPrWorkOrder(cardNo); |
|
|
|
|
//获取当前登录人班组
|
|
|
|
|
List<Long> tsIds = relTeamSetUserService. |
|
|
|
|
list(Wrappers.lambdaQuery(RelTeamSetUser.class) |
|
|
|
|
.eq(RelTeamSetUser::getUserId, user.getUserId())) |
|
|
|
|
.stream().map(RelTeamSetUser::getUserId).collect(Collectors.toList()); |
|
|
|
|
List<Long> tsIds = userRightService.getTeamId(userId); |
|
|
|
|
//获取作业计划
|
|
|
|
|
WorkPlan prWorkPlan = this.getOne(Wrappers.lambdaQuery(WorkPlan.class) |
|
|
|
|
.eq(WorkPlan::getId, prWorkOrder.getWpId())); |
|
|
|
|
WorkPlan workPlan = workPlanService.getById(prWorkOrder.getWpId()); |
|
|
|
|
//获取当前工序的下序
|
|
|
|
|
WorkPlan nextPrWorkPlan = this.getOne(Wrappers.lambdaQuery(WorkPlan.class) |
|
|
|
|
.eq(WorkPlan::getId, prWorkPlan.getNextWpId())); |
|
|
|
|
WorkPlan nextPrWorkPlan = workPlanService.getById(workPlan.getNextWpId()); |
|
|
|
|
//获取当前工序的上序
|
|
|
|
|
WorkPlan frontPrWorkPlan = this.getOne(Wrappers.lambdaQuery(WorkPlan.class) |
|
|
|
|
.eq(WorkPlan::getId, prWorkPlan.getFrontWpId())); |
|
|
|
|
WorkPlan frontPrWorkPlan = workPlanService.getById(workPlan.getFrontWpId()); |
|
|
|
|
//如果是最后一道工序(当前序下序为空或者下序的下序为空)
|
|
|
|
|
if (nextPrWorkPlan == null || nextPrWorkPlan.getNextWpId() == null) { |
|
|
|
|
//如果是镀后入库则不验证
|
|
|
|
|
if (checkAfterPlating) { |
|
|
|
|
throw new ServiceException("pda.nextWorkPlan.noNext"); |
|
|
|
|
throw new ServiceException("工序已是最后一道!"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
//验证作业中心
|
|
|
|
|
//this.checkWorkCenter(checkCurrentProcess, frontPrWorkPlan, prWorkPlan, nextPrWorkPlan, tsIds, checkAfterPlating);
|
|
|
|
|
this.checkWorkCenter(checkCurrentProcess, frontPrWorkPlan, workPlan, nextPrWorkPlan, tsIds, checkAfterPlating); |
|
|
|
|
//状态是false或者上序为空,并且当前序(首道)状态未未开工时,获取当前序;
|
|
|
|
|
if (!checkCurrentProcess || (frontPrWorkPlan == null && prWorkPlan.getStatus().equals(WorkPlan.STATUS_NO_START))) { |
|
|
|
|
return prWorkPlan; |
|
|
|
|
if (!checkCurrentProcess || (frontPrWorkPlan == null && workPlan.getStatus().equals(WorkPlan.STATUS_NO_START))) { |
|
|
|
|
return workPlan; |
|
|
|
|
} |
|
|
|
|
//如果是镀后入库则不验证
|
|
|
|
|
if (checkAfterPlating) { |
|
|
|
|
if (prWorkPlan != null) { |
|
|
|
|
if (workPlan != null) { |
|
|
|
|
//验证上道工序是否报工完成
|
|
|
|
|
if (!WorkPlan.STATUS_WORK_OK.equals(prWorkPlan.getStatus())) { |
|
|
|
|
throw new ServiceException("product.frontWpNotWork"); |
|
|
|
|
if (!WorkPlan.STATUS_WORK_OK.equals(workPlan.getStatus())) { |
|
|
|
|
throw new ServiceException("上序未报工完成,请联系相关人员处理!"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
@ -249,9 +254,47 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void checkWorkCenter(boolean checkCurrentProcess, WorkPlan frontPrWorkPlan, WorkPlan prWorkPlan, WorkPlan nextPrWorkPlan, List<Long> tsIds, boolean checkAfterPlating) { |
|
|
|
|
|
|
|
|
|
// todo 等待关联表开发完成
|
|
|
|
|
// WorkCenter bsWorkCenter = null;
|
|
|
|
|
// BsTeamSetEntity teamSet;
|
|
|
|
|
// if (!checkCurrentProcess || (frontPrWorkPlan == null && prWorkPlan.getStatus().equals(WorkPlan.STATUS_NO_START)) || nextPrWorkPlan == null) {
|
|
|
|
|
// if (prWorkPlan.getMakeTeam() == null) {
|
|
|
|
|
// throw new ServiceException("当前工序无加工班组");
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// // 根据当前工序班组查询作业中心
|
|
|
|
|
// teamSet = bsTeamSetService.getById(prWorkPlan.getMakeTeam());
|
|
|
|
|
// if (teamSet != null) {
|
|
|
|
|
// bsWorkCenter = centerTeam.getBsWorkCenter();
|
|
|
|
|
// }
|
|
|
|
|
// // 验证当前登录人和当前工序的班组是否一致
|
|
|
|
|
// this.checkMakeTeamOne(prWorkPlan, tsIds);
|
|
|
|
|
// if (checkAfterPlating) {
|
|
|
|
|
// prWorkPlanService.verifyMakeUnit(prWorkPlan);
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
//
|
|
|
|
|
// if (nextPrWorkPlan.getMakeTeam() == null) {
|
|
|
|
|
// throw new ServiceException("当前工序无加工班组");
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// // 根据当前工序班组查询作业中心
|
|
|
|
|
// centerTeam = bsCenterTeamService.getByTsId(nextPrWorkPlan.getMakeTeam().getTsId());
|
|
|
|
|
// if (centerTeam != null) {
|
|
|
|
|
// bsWorkCenter = centerTeam.getBsWorkCenter();
|
|
|
|
|
// }
|
|
|
|
|
// //验证当前登录人和当前工序的班组是否一致
|
|
|
|
|
// this.checkMakeTeamOne(nextPrWorkPlan, tsIds);
|
|
|
|
|
// if (checkAfterPlating) {
|
|
|
|
|
// prWorkPlanService.verifyMakeUnit(nextPrWorkPlan);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// if (bsWorkCenter == null) {
|
|
|
|
|
// throw new ServiceException("当前工序无作业中心!");
|
|
|
|
|
// }
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public WorkOrder checkPrWorkOrder(String cardNo) { |
|
|
|
|
WorkOrder prWorkOrder = this.checkWo(cardNo); |
|
|
|
|
//车间订单状态小于已下达并且大于加工中的情况下,不允许下序接收
|
|
|
|
|
@ -307,10 +350,10 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private WorkOrder checkWo(String cardNo) { |
|
|
|
|
WorkOrder prWorkOrder = workOrderService.getOne(Wrappers.lambdaQuery(WorkOrder.class).eq(WorkOrder::getCardNo, cardNo)); |
|
|
|
|
if (prWorkOrder == null) { |
|
|
|
|
throw new ServiceException("pda.prWorkOrder.absent" + null); |
|
|
|
|
WorkOrder workOrder = workOrderService.getWorkOrderByCardNo(cardNo); |
|
|
|
|
if (workOrder == null) { |
|
|
|
|
throw new ServiceException("车间订单不存在!"); |
|
|
|
|
} |
|
|
|
|
return prWorkOrder; |
|
|
|
|
return workOrder; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|