物流改写

liweidong
绫Umbrella 2 weeks ago
parent 6b7f0c0b9d
commit bfc9486f69
  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. 130
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/IOrderBoxServiceImpl.java

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

@ -154,14 +154,6 @@ 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,6 +12,8 @@ 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;
@ -115,6 +117,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
* 工位服务提供工位基础信息查询 * 工位服务提供工位基础信息查询
*/ */
private final IBsWorkCenterService bsWorkCenterService; private final IBsWorkCenterService bsWorkCenterService;
private final ICenterTeamService iCenterTeamService;
/** /**
* 任务执行记录服务处理AGV调度任务的生成与执行 * 任务执行记录服务处理AGV调度任务的生成与执行
@ -148,7 +151,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
IStationService stationService, IStationService stationService,
ILocationService locationService, ILocationService locationService,
AgvTaskTypeUtil agvTaskTypeUtil, AgvTaskTypeUtil agvTaskTypeUtil,
IBsWorkCenterService bsWorkCenterService, IBsWorkCenterService bsWorkCenterService, ICenterTeamService iCenterTeamService,
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;
@ -157,6 +160,7 @@ 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;
@ -245,7 +249,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
// 1. 查询空闲状态的站点 // 1. 查询空闲状态的站点
List<StationVO> freeStationList = stationService.getStatusStationList(STATUS_FREE, true,null, CONVEYOR_LINE_RECEIVE_ONLY, false); List<StationVO> freeStationList = stationService.getStatusStationList(STATUS_FREE, true, null, CONVEYOR_LINE_RECEIVE_ONLY, false);
// 2. 构建返回列表(默认添加输送线回库选项) // 2. 构建返回列表(默认添加输送线回库选项)
List<BsWorkCenterVO> resultList = new ArrayList<>(); List<BsWorkCenterVO> resultList = new ArrayList<>();
BsWorkCenterVO conveyorVO = new BsWorkCenterVO(); BsWorkCenterVO conveyorVO = new BsWorkCenterVO();
@ -376,7 +380,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
// 5. 设置结束工位ID并处理不同回库类型 // 5. 设置结束工位ID并处理不同回库类型
Long endWcId = returnToWarehouseDto.getEndWcId(); Long endWcId = returnToWarehouseDto.getEndWcId();
task.setWcId(endWcId); task.setWcId(endWcId);
if (returnToWarehouseDto.getStationRegion()!=null) { if (returnToWarehouseDto.getStationRegion() != null) {
task.setStationRegion(returnToWarehouseDto.getStationRegion()); task.setStationRegion(returnToWarehouseDto.getStationRegion());
} }
if (endWcId == 0) { if (endWcId == 0) {
@ -462,32 +466,32 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
BsWorkCenterEntity workCenter = bsWorkCenterService.getById(wcID); BsWorkCenterEntity workCenter = bsWorkCenterService.getById(wcID);
LinkedHashMap<String, Object> map = new LinkedHashMap<>(); LinkedHashMap<String, Object> map = new LinkedHashMap<>();
map.put("wcId",wcID); map.put("wcId", wcID);
if (DistinguishRegionsEnum.includeByWcName(workCenter.getWcName())) { if (DistinguishRegionsEnum.includeByWcName(workCenter.getWcName())) {
List<YieldOrder> list = yieldOrderService.list(new LambdaQueryWrapper<YieldOrder>().eq(YieldOrder::getCardNo, orderBindList.get(0).getCardNo())); List<YieldOrder> list = yieldOrderService.list(new LambdaQueryWrapper<YieldOrder>().eq(YieldOrder::getCardNo, orderBindList.get(0).getCardNo()));
String useDept =""; String useDept = "";
if (list!=null&&list.size()!=0) { if (list != null && list.size() != 0) {
useDept= list.get(0).getUseDept(); useDept = list.get(0).getUseDept();
}else { } else {
List<PrYieldOrder> list1 = prYieldOrderService.list(new LambdaQueryWrapper<PrYieldOrder>().eq(PrYieldOrder::getCardNo, orderBindList.get(0).getCardNo())); List<PrYieldOrder> list1 = prYieldOrderService.list(new LambdaQueryWrapper<PrYieldOrder>().eq(PrYieldOrder::getCardNo, orderBindList.get(0).getCardNo()));
if (list1!=null&&list1.size()!=0) { if (list1 != null && list1.size() != 0) {
useDept= list1.get(0).getUseDept(); useDept = list1.get(0).getUseDept();
} }
} }
String code = DistinguishRegionsEnum.wcNameByCode(workCenter.getWcName()); String code = DistinguishRegionsEnum.wcNameByCode(workCenter.getWcName());
String logisticsAnagementRegion = DictCache.getValue(code, useDept); String logisticsAnagementRegion = DictCache.getValue(code, useDept);
System.out.println("logisticsAnagementRegion = " + logisticsAnagementRegion); System.out.println("logisticsAnagementRegion = " + logisticsAnagementRegion);
if (logisticsAnagementRegion!=null) { if (logisticsAnagementRegion != null) {
map.put("stationRegion",logisticsAnagementRegion); map.put("stationRegion", logisticsAnagementRegion);
}else { } else {
List<StationVO> freeStationList = stationService.getStatusStationList(null, false,wcID, STATION_RECEIVE_ONLY, false); List<StationVO> freeStationList = stationService.getStatusStationList(null, false, wcID, STATION_RECEIVE_ONLY, false);
map.put("stationRegion",freeStationList.get(0).getStationRegion()); map.put("stationRegion", freeStationList.get(0).getStationRegion());
} }
}else { } else {
List<StationVO> statusStationList = stationService.getStatusStationList(null, true,wcID, CONVEYOR_LINE_RECEIVE_ONLY, false); List<StationVO> statusStationList = stationService.getStatusStationList(null, true, wcID, CONVEYOR_LINE_RECEIVE_ONLY, false);
map.put("stationRegion",statusStationList.get(0).getStationRegion()); map.put("stationRegion", statusStationList.get(0).getStationRegion());
} }
return R.data(map); return R.data(map);
} }
@ -714,20 +718,20 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
// 1. 尝试分配空闲站点 // 1. 尝试分配空闲站点
List<StationVO> freeStationList = null; List<StationVO> freeStationList = null;
if (agvSend) { if (agvSend) {
freeStationList = stationService.getStatusStationList(STATUS_FREE, true,task.getWcId(), CONVEYOR_LINE_RECEIVE_ONLY, false); freeStationList = stationService.getStatusStationList(STATUS_FREE, true, task.getWcId(), CONVEYOR_LINE_RECEIVE_ONLY, false);
} else { } else {
freeStationList = stationService.getStatusStationList(STATUS_FREE, true,task.getWcId(), STATION_RECEIVE_ONLY, false); freeStationList = stationService.getStatusStationList(STATUS_FREE, true, task.getWcId(), STATION_RECEIVE_ONLY, false);
} }
String wcName = bsWorkCenterService.getById(task.getWcId()).getWcName(); String wcName = bsWorkCenterService.getById(task.getWcId()).getWcName();
if (freeStationList!=null&&freeStationList.size()!=0) { if (freeStationList != null && freeStationList.size() != 0) {
//判断是不是镀后库作业中心 //判断是不是镀后库作业中心
if (DistinguishRegionsEnum.includeByWcName(wcName)&&!agvSend) { if (DistinguishRegionsEnum.includeByWcName(wcName) && !agvSend) {
log.info("是读后库"); log.info("是读后库");
freeStationList=freeStationList.stream().filter(s->s.getStationRegion().equals(task.getStationRegion())).toList(); freeStationList = freeStationList.stream().filter(s -> s.getStationRegion().equals(task.getStationRegion())).toList();
} }
} }
if (freeStationList!=null&&freeStationList.size()!=0) { if (freeStationList != null && freeStationList.size() != 0) {
StationVO station = null; StationVO station = null;
station = freeStationList.get(0); station = freeStationList.get(0);
task.setStationId(station.getId()); task.setStationId(station.getId());
@ -893,7 +897,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
// 异常处理:回滚任务 // 异常处理:回滚任务
taskService.removeById(task); taskService.removeById(task);
List<Station> stationList = stationService.list(new LambdaQueryWrapper<Station>().eq(Station::getId, task.getStationId())); List<Station> stationList = stationService.list(new LambdaQueryWrapper<Station>().eq(Station::getId, task.getStationId()));
if (stationList!=null&&stationList.size()!=0) { if (stationList != null && stationList.size() != 0) {
stationList.get(0).setStationStatus(STATUS_FREE); stationList.get(0).setStationStatus(STATUS_FREE);
stationService.updateById(stationList.get(0)); stationService.updateById(stationList.get(0));
} }
@ -1068,7 +1072,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
//判断是否是镀后库作业中心 //判断是否是镀后库作业中心
if (DistinguishRegionsEnum.includeByWcName(workCenter.getWcName())) { if (DistinguishRegionsEnum.includeByWcName(workCenter.getWcName())) {
List<YieldOrder> yieldOrderList = yieldOrderService.list(new LambdaQueryWrapper<YieldOrder>().eq(YieldOrder::getCardNo, orderList.get(0).getCardNo())); List<YieldOrder> yieldOrderList = yieldOrderService.list(new LambdaQueryWrapper<YieldOrder>().eq(YieldOrder::getCardNo, orderList.get(0).getCardNo()));
if (yieldOrderList!=null&&yieldOrderList.size()!=0) { if (yieldOrderList != null && yieldOrderList.size() != 0) {
String code = DistinguishRegionsEnum.wcNameByCode(workCenter.getWcName()); String code = DistinguishRegionsEnum.wcNameByCode(workCenter.getWcName());
String logisticsAnagementRegion = DictCache.getValue(code, yieldOrderList.get(0).getUseDept()); String logisticsAnagementRegion = DictCache.getValue(code, yieldOrderList.get(0).getUseDept());
if (!logisticsAnagementRegion.isEmpty()) { if (!logisticsAnagementRegion.isEmpty()) {
@ -1078,7 +1082,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
} }
List<PrYieldOrder> yieldOrderList1 = prYieldOrderService.list(new LambdaQueryWrapper<PrYieldOrder>().eq(PrYieldOrder::getCardNo, orderList.get(0).getCardNo())); List<PrYieldOrder> yieldOrderList1 = prYieldOrderService.list(new LambdaQueryWrapper<PrYieldOrder>().eq(PrYieldOrder::getCardNo, orderList.get(0).getCardNo()));
if (yieldOrderList1!=null&&yieldOrderList1.size()!=0) { if (yieldOrderList1 != null && yieldOrderList1.size() != 0) {
String code = DistinguishRegionsEnum.wcNameByCode(workCenter.getWcName()); String code = DistinguishRegionsEnum.wcNameByCode(workCenter.getWcName());
String logisticsAnagementRegion = DictCache.getValue(code, yieldOrderList1.get(0).getUseDept()); String logisticsAnagementRegion = DictCache.getValue(code, yieldOrderList1.get(0).getUseDept());
if (!logisticsAnagementRegion.isEmpty()) { if (!logisticsAnagementRegion.isEmpty()) {
@ -1100,7 +1104,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
List<Long> stationIdList = stationCenterList.stream().map(s -> s.getStationId()).toList(); List<Long> stationIdList = stationCenterList.stream().map(s -> s.getStationId()).toList();
List<Station> stationList = stationService.list(new LambdaQueryWrapper<Station>().in(Station::getId, stationIdList)); List<Station> stationList = stationService.list(new LambdaQueryWrapper<Station>().in(Station::getId, stationIdList));
List<String> list = stationList.stream().map(s -> s.getStationRegion()).distinct().toList(); List<String> list = stationList.stream().map(s -> s.getStationRegion()).distinct().toList();
if (list.size()==1) { if (list.size() == 1) {
detailsVO.setStationRegion(stationList.get(0).getStationRegion()); detailsVO.setStationRegion(stationList.get(0).getStationRegion());
} }
@ -1191,9 +1195,9 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
@Override @Override
public R getStationRegion() { public R getStationRegion() {
List<StationVO> freeStationList = stationService.getStatusStationList(STATUS_FREE,false, null, CONVEYOR_LINE_RECEIVE_ONLY, false); List<StationVO> freeStationList = stationService.getStatusStationList(STATUS_FREE, false, null, CONVEYOR_LINE_RECEIVE_ONLY, false);
if (freeStationList==null||freeStationList.size()==0) { if (freeStationList == null || freeStationList.size() == 0) {
return R.fail("没有占用区域"); return R.fail("没有占用区域");
} }
List<String> stationRegionList = freeStationList.stream().map(StationVO::getStationRegion).distinct().toList(); List<String> stationRegionList = freeStationList.stream().map(StationVO::getStationRegion).distinct().toList();
@ -1201,7 +1205,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
for (String stationRegion : stationRegionList) { for (String stationRegion : stationRegionList) {
StationRegionVo stationRegionVo = new StationRegionVo(); StationRegionVo stationRegionVo = new StationRegionVo();
stationRegionVo.setStationRegion(stationRegion); stationRegionVo.setStationRegion(stationRegion);
List<String> stationList = freeStationList.stream().filter(s -> stationRegion!=null&&s.getStationRegion()!=null&&stationRegion.equals(s.getStationRegion())).map(StationVO::getStationCode).distinct().collect(Collectors.toUnmodifiableList()); List<String> stationList = freeStationList.stream().filter(s -> stationRegion != null && s.getStationRegion() != null && stationRegion.equals(s.getStationRegion())).map(StationVO::getStationCode).distinct().collect(Collectors.toUnmodifiableList());
stationRegionVo.setStationCodeList(stationList); stationRegionVo.setStationCodeList(stationList);
list.add(stationRegionVo); list.add(stationRegionVo);
} }
@ -1210,8 +1214,6 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
} }
@Override @Override
/** /**
* 箱条码绑定主入口 * 箱条码绑定主入口
@ -1311,15 +1313,16 @@ 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 + "车间订单异常");
@ -1330,17 +1333,40 @@ 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 + "车间下一工序订单异常");
} }
workCenterId = nextWorkPlanList.get(0).getWorkCenterId(); if (nextWorkPlanList.get(0).getMakeTeam() == null) {
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);
@ -1348,12 +1374,14 @@ 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();
@ -1364,17 +1392,41 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
PrWorkPlan workPlan = workPlanList.get(0); PrWorkPlan workPlan = workPlanList.get(0);
Long workCenterId; Long workCenterId;
if (workPlan.getCurStatus() < 3) { if (workPlan.getStatus() < 3) {
workCenterId = workPlan.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();
}
}
} 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 + "车间订单异常");
} }
workCenterId = nextWorkPlanList.get(0).getWcId(); workPlan = nextWorkPlanList.get(0);
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