Compare commits

..

No commits in common. 'a5644d9805de490ab3749d43a5d3f121e53b0fb5' and '52584b897063ab59a4dc394309ed5bbc3baaa7e8' have entirely different histories.

  1. 254
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/logistics/pojo/entity/PrWorkPlan.java
  2. 8
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/logistics/pojo/entity/PrYieldOrder.java
  3. 70
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/IOrderBoxServiceImpl.java

@ -24,29 +24,61 @@ public class PrWorkPlan implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
// /**
// * ID主键
// */
// @Schema(description = "ID主键")
// private Long id;
@Schema(description = "工单计划ID") @Schema(description = "工单计划ID")
@TableField("WP_ID") @TableField("WP_ID")
private Long wpId; private Long wpId;
@Schema(description = "工单ID") @Schema(description = "工序计划ID")
@TableField("WO_ID") @TableField("WPP_ID")
private Long woId; private Long wppId;
@Schema(description = "PPSID") @Schema(description = "产品ID")
@TableField("PPS_ID") @TableField("PID")
private Long ppsId; private Long pid;
@Schema(description = "排序") @Schema(description = "排序")
@TableField("ORDERS") @TableField("ORDERS")
private Integer orders; private Integer orders;
@Schema(description = "是否需要检验")
@TableField("NEED_CHECK")
private Integer needCheck;
@Schema(description = "准备工时")
@TableField("PREPARE_HOUR")
private BigDecimal prepareHour;
@Schema(description = "加工工时")
@TableField("MAKE_HOUR")
private BigDecimal makeHour;
@Schema(description = "面积数量")
@TableField("AREA_QUANTITY")
private BigDecimal areaQuantity;
@Schema(description = "加工备注") @Schema(description = "加工备注")
@TableField("MAKE_MEMO") @TableField("MAKE_MEMO")
private String makeMemo; private String makeMemo;
@Schema(description = "工时定额") @Schema(description = "报工工时")
@TableField("HOUR_QUOTA") @TableField("PS_HOUR")
private BigDecimal hourQuota; private BigDecimal psHour;
@Schema(description = "设备ID")
@TableField("MAC_ID")
private Long macId;
@Schema(description = "外协标识")
@TableField("OEM")
private String oem;
@Schema(description = "计划开始时间") @Schema(description = "计划开始时间")
@TableField("START_TIME") @TableField("START_TIME")
@ -56,111 +88,155 @@ public class PrWorkPlan implements Serializable {
@TableField("END_TIME") @TableField("END_TIME")
private Date endTime; private Date endTime;
@Schema(description = "加工班组") @Schema(description = "实际开始时间")
@TableField("MAKE_TEAM") @TableField("FACT_START_TIME")
private String makeTeam; private Date factStartTime;
@Schema(description = "外协标识")
@TableField("OEM")
private String oem;
@Schema(description = "OCID")
@TableField("OC_ID")
private Long ocId;
@Schema(description = "上一工单ID") @Schema(description = "实际结束时间")
@TableField("FRONT_WP_ID") @TableField("FACT_END_TIME")
private Long frontWpId; private Date factEndTime;
@Schema(description = "下一工单ID") @Schema(description = "效率")
@TableField("NEXT_WP_ID") @TableField("RATE")
private Long nextWpId; private BigDecimal rate;
@Schema(description = "状态") @Schema(description = "当前状态")
@TableField("STATUS") @TableField("CUR_STATUS")
private Integer status; private Integer curStatus;
@Schema(description = "检验数量") @Schema(description = "是否锁定")
@TableField("TEST_QTY") @TableField("LOCKED")
private BigDecimal testQty; private Integer locked;
@Schema(description = "合格数量") @Schema(description = "外协工单ID")
@TableField("QUALIFIED_QTY") @TableField("OT_ID")
private BigDecimal qualifiedQty; private Long otId;
@Schema(description = "报废数量") @Schema(description = "报工设备")
@TableField("SCRAP_QTY") @TableField("REC_MAC")
private BigDecimal scrapQty; private String recMac;
@Schema(description = "不合格数量") @Schema(description = "报工时间")
@TableField("UNQUALIFIED_QTY") @TableField("REC_TIME")
private BigDecimal unqualifiedQty; private Date recTime;
@Schema(description = "实际开始时间") @Schema(description = "报工人")
@TableField("FACT_START_TIME") @TableField("REC_MAN")
private Date factStartTime; private String recMan;
@Schema(description = "实际结束时间") @Schema(description = "报工状态")
@TableField("FACT_END_TIME") @TableField("REC_STATUS")
private Date factEndTime; private Integer recStatus;
@Schema(description = "绑定状态") @Schema(description = "报工排序")
@TableField("BIND_STATUS") @TableField("REC_ORDERS")
private Integer bindStatus; private Integer recOrders;
@Schema(description = "加工数量") @Schema(description = "下单时间")
@TableField("WORK_QTY") @TableField("ORDER_TIME")
private BigDecimal workQty; private Date orderTime;
@Schema(description = "接收人") @Schema(description = "备注")
@TableField("RECEIVE_MAN") @TableField("MEMO")
private String receiveMan; private String memo;
@Schema(description = "工时") @Schema(description = "单位工时")
@TableField("HOURS") @TableField("UNIT_HOUR")
private BigDecimal hours; private BigDecimal unitHour;
@Schema(description = "CAID") @Schema(description = "报工输出")
@TableField("CA_ID") @TableField("REC_OUT")
private Long caId; private String recOut;
@Schema(description = "打印类型") @Schema(description = "预览工单ID")
@TableField("PRINT_TYPE") @TableField("PREVIEW_WP_ID")
private Integer printType; private Long previewWpId;
@Schema(description = "辅助班组") @Schema(description = "下一个工单ID")
@TableField("SUBSIDIARY_TEAM") @TableField("NEXT_WP_ID")
private String subsidiaryTeam; private Long nextWpId;
@Schema(description = "辅助类型") @Schema(description = "计划工时")
@TableField("SUB_TYPE") @TableField("PLAN_TIME")
private String subType; private BigDecimal planTime;
@Schema(description = "关键工序") @Schema(description = "子项物料号")
@TableField("CRUX_PROCESS") @TableField("SUB_PI_NO")
private Integer cruxProcess; private String subPiNo;
@Schema(description = "损耗数量") @Schema(description = "外协状态")
@TableField("LOSS_QTY") @TableField("OEM_STATUS")
private BigDecimal lossQty; private Integer oemStatus;
@Schema(description = "工单金额") @Schema(description = "来源")
@TableField("WP_MONEY") @TableField("COME_FROM")
private BigDecimal wpMoney; private String comeFrom;
@Schema(description = "图纸") @Schema(description = "工作中心ID")
@TableField("PAPERS") @TableField("WC_ID")
private String papers; private Long wcId;
@Schema(description = "参考文件") @Schema(description = "物料编号")
@TableField("REFERENCE_FILE") @TableField("PI_NO")
private String referenceFile; private String piNo;
@Schema(description = "创建时间") @Schema(description = "创建时间")
@TableField("CREATE_TIME") @TableField("CREATE_TIME")
private Date createTime; private Date createTime;
@Schema(description = "维修编号") @Schema(description = "更新时间")
@TableField("WX_NO") @TableField("UPDATE_TIME")
private String wxNo; private Date updateTime;
@Schema(description = "旧状态")
@TableField("OLD_STATUS")
private Integer oldStatus;
@Schema(description = "检验工序")
@TableField("CHECK_PROCESS")
private Integer checkProcess;
@Schema(description = "超交数量")
@TableField("OVER_QUANTITY")
private BigDecimal overQuantity;
@Schema(description = "TOOL库工序计划ID")
@TableField("TOOL_WPP_ID")
private Long toolWppId;
@Schema(description = "实际报工工时")
@TableField("ACTURAL_PS_HOUR")
private BigDecimal acturalPsHour;
@Schema(description = "退回原因")
@TableField("BACK_REASON")
private String backReason;
@Schema(description = "是否跳过")
@TableField("SKIP")
private Integer skip;
@Schema(description = "待排标识")
@TableField("WAITING_FLAG")
private Integer waitingFlag;
@Schema(description = "待排操作人")
@TableField("WAITING_FLAG_MAN")
private String waitingFlagMan;
@Schema(description = "调整排产人")
@TableField("ADJUST_SCHEDULE_MAN")
private String adjustScheduleMan;
@Schema(description = "调整排产时间")
@TableField("ADJUST_SCHEDULE_DATE")
private Date adjustScheduleDate;
@Schema(description = "自动生产标识")
@TableField("AUTO_PRODUCTION")
private Integer autoProduction;
@Schema(description = "设备面")
@TableField("MAC_SURFACE")
private String macSurface;
} }

@ -154,6 +154,14 @@ public class PrYieldOrder implements Serializable {
@TableField("RECSEQNO") @TableField("RECSEQNO")
private String recseqno; private String recseqno;
@Schema(description = "推车ID")
@TableField("CART_ID")
private Long cartId;
@Schema(description = "工艺ID")
@TableField("CRAFTID")
private Long craftid;
@Schema(description = "工艺ID") @Schema(description = "工艺ID")
@TableField("CRAFT_ID") @TableField("CRAFT_ID")
private Long craftId; private Long craftId;

@ -12,8 +12,6 @@ import lombok.extern.slf4j.Slf4j;
import org.springblade.common.exception.BusinessException; import org.springblade.common.exception.BusinessException;
import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.desk.basic.pojo.entity.CenterTeam;
import org.springblade.desk.basic.service.ICenterTeamService;
import org.springblade.desk.dashboard.pojo.entity.BsWorkCenterEntity; import org.springblade.desk.dashboard.pojo.entity.BsWorkCenterEntity;
import org.springblade.desk.dashboard.service.IBsWorkCenterService; import org.springblade.desk.dashboard.service.IBsWorkCenterService;
import org.springblade.desk.logistics.enums.DistinguishRegionsEnum; import org.springblade.desk.logistics.enums.DistinguishRegionsEnum;
@ -117,7 +115,6 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
* 工位服务提供工位基础信息查询 * 工位服务提供工位基础信息查询
*/ */
private final IBsWorkCenterService bsWorkCenterService; private final IBsWorkCenterService bsWorkCenterService;
private final ICenterTeamService iCenterTeamService;
/** /**
* 任务执行记录服务处理AGV调度任务的生成与执行 * 任务执行记录服务处理AGV调度任务的生成与执行
@ -151,7 +148,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
IStationService stationService, IStationService stationService,
ILocationService locationService, ILocationService locationService,
AgvTaskTypeUtil agvTaskTypeUtil, AgvTaskTypeUtil agvTaskTypeUtil,
IBsWorkCenterService bsWorkCenterService, ICenterTeamService iCenterTeamService, IBsWorkCenterService bsWorkCenterService,
ITaskExecuteRecordService taskExecuteRecordService, IWorkOrderService workOrderService, IWorkPlanService workPlanService, IPrWorkPlanService prWorkPlanService, IPrWorkOrderService prWorkOrderService, IStationCenterService stationCenterService, IPrYieldOrderService prYieldOrderService) { ITaskExecuteRecordService taskExecuteRecordService, IWorkOrderService workOrderService, IWorkPlanService workPlanService, IPrWorkPlanService prWorkPlanService, IPrWorkOrderService prWorkOrderService, IStationCenterService stationCenterService, IPrYieldOrderService prYieldOrderService) {
this.yieldOrderService = yieldOrderService; this.yieldOrderService = yieldOrderService;
this.taskService = taskService; this.taskService = taskService;
@ -160,7 +157,6 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
this.locationService = locationService; this.locationService = locationService;
this.agvTaskTypeUtil = agvTaskTypeUtil; this.agvTaskTypeUtil = agvTaskTypeUtil;
this.bsWorkCenterService = bsWorkCenterService; this.bsWorkCenterService = bsWorkCenterService;
this.iCenterTeamService = iCenterTeamService;
this.taskExecuteRecordService = taskExecuteRecordService; this.taskExecuteRecordService = taskExecuteRecordService;
this.workOrderService = workOrderService; this.workOrderService = workOrderService;
this.workPlanService = workPlanService; this.workPlanService = workPlanService;
@ -1214,6 +1210,8 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
} }
@Override @Override
/** /**
* 箱条码绑定主入口 * 箱条码绑定主入口
@ -1313,16 +1311,15 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
private R<?> checkOrderWorkCenterConsistency(String orderCardNo, Long currentWcId) { private R<?> checkOrderWorkCenterConsistency(String orderCardNo, Long currentWcId) {
// ====================== 处理标准工单 ====================== // ====================== 处理标准工单 ======================
List<WorkOrder> workOrderList = workOrderService.lambdaQuery() List<WorkOrder> workOrderList = workOrderService.lambdaQuery()
.select(WorkOrder::getId)
.eq(WorkOrder::getCardNo, orderCardNo) .eq(WorkOrder::getCardNo, orderCardNo)
.list(); .list();
if (workOrderList != null && !workOrderList.isEmpty()) { if (workOrderList != null && !workOrderList.isEmpty()) {
WorkOrder workOrder = workOrderList.get(0); WorkOrder workOrder = workOrderList.get(0);
List<WorkPlan> workPlanList = workPlanService.lambdaQuery() List<WorkPlan> workPlanList = workPlanService.lambdaQuery()
.select(WorkPlan::getStatus, WorkPlan::getNextWpId, WorkPlan::getWoId, WorkPlan::getMakeTeam)
.eq(WorkPlan::getWoId, workOrder.getId()) .eq(WorkPlan::getWoId, workOrder.getId())
.list(); .list();
if (workPlanList == null || workPlanList.isEmpty()) { if (workPlanList == null || workPlanList.isEmpty()) {
log.info("workPlanList"); log.info("workPlanList");
return R.fail(orderCardNo + "车间订单异常"); return R.fail(orderCardNo + "车间订单异常");
@ -1333,40 +1330,17 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
// 根据工序状态判断使用当前工序还是下一道工序 // 根据工序状态判断使用当前工序还是下一道工序
if (workPlan.getStatus() < 3) { if (workPlan.getStatus() < 3) {
// workCenterId = workPlan.getWorkCenterId(); workCenterId = workPlan.getWorkCenterId();
if (workPlan.getMakeTeam() == null) {
return R.fail(orderCardNo + "车间订单班次异常");
} else {
List<CenterTeam> list = iCenterTeamService.list(new LambdaQueryWrapper<CenterTeam>()
.select(CenterTeam::getWcId, CenterTeam::getTsId)
.eq(CenterTeam::getTsId, (workPlan.getMakeTeam())));
if (list == null || list.size() == 0) {
return R.fail(orderCardNo + "车间订单班次查询作业中心异常");
} else {
workCenterId = list.get(0).getWcId();
}
}
} else { } else {
List<WorkPlan> nextWorkPlanList = workPlanService.lambdaQuery() List<WorkPlan> nextWorkPlanList = workPlanService.lambdaQuery()
.select(WorkPlan::getStatus, WorkPlan::getNextWpId, WorkPlan::getWoId, WorkPlan::getMakeTeam)
.eq(WorkPlan::getId, workPlan.getNextWpId()) .eq(WorkPlan::getId, workPlan.getNextWpId())
.list(); .list();
if (nextWorkPlanList == null || nextWorkPlanList.isEmpty()) { if (nextWorkPlanList == null || nextWorkPlanList.isEmpty()) {
return R.fail(orderCardNo + "车间下一工序订单异常"); return R.fail(orderCardNo + "车间下一工序订单异常");
} }
if (nextWorkPlanList.get(0).getMakeTeam() == null) { workCenterId = nextWorkPlanList.get(0).getWorkCenterId();
return R.fail(orderCardNo + "车间订单班次异常");
}
List<CenterTeam> list = iCenterTeamService.list(new LambdaQueryWrapper<CenterTeam>()
.select(CenterTeam::getWcId, CenterTeam::getTsId)
.eq(CenterTeam::getTsId, (workPlan.getMakeTeam())));
if (list == null || list.size() == 0) {
return R.fail(orderCardNo + "车间订单班次查询作业中心异常");
} else {
workCenterId = list.get(0).getWcId();
}
} }
return validateWorkCenter(orderCardNo, currentWcId, workCenterId); return validateWorkCenter(orderCardNo, currentWcId, workCenterId);
@ -1374,14 +1348,12 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
// ====================== 处理PR工单 ====================== // ====================== 处理PR工单 ======================
List<PrWorkOrder> prWorkOrderList = prWorkOrderService.lambdaQuery() List<PrWorkOrder> prWorkOrderList = prWorkOrderService.lambdaQuery()
.select(PrWorkOrder::getWpId)
.eq(PrWorkOrder::getCardNo, orderCardNo) .eq(PrWorkOrder::getCardNo, orderCardNo)
.list(); .list();
if (prWorkOrderList != null && !prWorkOrderList.isEmpty()) { if (prWorkOrderList != null && !prWorkOrderList.isEmpty()) {
PrWorkOrder prWorkOrder = prWorkOrderList.get(0); PrWorkOrder prWorkOrder = prWorkOrderList.get(0);
List<PrWorkPlan> workPlanList = prWorkPlanService.lambdaQuery() List<PrWorkPlan> workPlanList = prWorkPlanService.lambdaQuery()
.select(PrWorkPlan::getStatus, PrWorkPlan::getNextWpId, PrWorkPlan::getWpId, PrWorkPlan::getMakeTeam)
.eq(PrWorkPlan::getWpId, prWorkOrder.getWpId()) .eq(PrWorkPlan::getWpId, prWorkOrder.getWpId())
.list(); .list();
@ -1392,41 +1364,17 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
PrWorkPlan workPlan = workPlanList.get(0); PrWorkPlan workPlan = workPlanList.get(0);
Long workCenterId; Long workCenterId;
if (workPlan.getStatus() < 3) { if (workPlan.getCurStatus() < 3) {
if (workPlan.getMakeTeam() == null) { workCenterId = workPlan.getWcId();
return R.fail(orderCardNo + "车间订单班次异常");
} else {
List<CenterTeam> list = iCenterTeamService.list(new LambdaQueryWrapper<CenterTeam>()
.select(CenterTeam::getWcId, CenterTeam::getTsId)
.eq(CenterTeam::getTsId, (workPlan.getMakeTeam())));
if (list == null || list.size() == 0) {
return R.fail(orderCardNo + "车间订单班次查询作业中心异常");
} else {
workCenterId = list.get(0).getWcId();
}
}
} else { } else {
List<PrWorkPlan> nextWorkPlanList = prWorkPlanService.lambdaQuery() List<PrWorkPlan> nextWorkPlanList = prWorkPlanService.lambdaQuery()
.select(PrWorkPlan::getStatus, PrWorkPlan::getNextWpId, PrWorkPlan::getWpId, PrWorkPlan::getMakeTeam)
.eq(PrWorkPlan::getWpId, workPlan.getNextWpId()) .eq(PrWorkPlan::getWpId, workPlan.getNextWpId())
.list(); .list();
if (nextWorkPlanList == null || nextWorkPlanList.isEmpty()) { if (nextWorkPlanList == null || nextWorkPlanList.isEmpty()) {
return R.fail(orderCardNo + "车间订单异常"); return R.fail(orderCardNo + "车间订单异常");
} }
workPlan = nextWorkPlanList.get(0); workCenterId = nextWorkPlanList.get(0).getWcId();
if (workPlan.getMakeTeam() == null) {
return R.fail(orderCardNo + "车间订单班次异常");
} else {
List<CenterTeam> list = iCenterTeamService.list(new LambdaQueryWrapper<CenterTeam>()
.select(CenterTeam::getWcId, CenterTeam::getTsId)
.eq(CenterTeam::getTsId, (workPlan.getMakeTeam())));
if (list == null || list.size() == 0) {
return R.fail(orderCardNo + "车间订单班次查询作业中心异常");
} else {
workCenterId = list.get(0).getWcId();
}
}
} }
return validateWorkCenter(orderCardNo, currentWcId, workCenterId); return validateWorkCenter(orderCardNo, currentWcId, workCenterId);

Loading…
Cancel
Save