|
@@ -10,6 +10,7 @@ import com.ruoyi.common.core.domain.BaseIdPo;
|
|
|
import com.ruoyi.common.exception.ServiceException;
|
|
|
import com.sd.business.entity.order.po.OrderSku;
|
|
|
import com.sd.business.entity.sku.po.SkuSpec;
|
|
|
+import com.sd.business.entity.work.constant.MaterialsConstant;
|
|
|
import com.sd.business.entity.work.dto.WorkOrderSelectDto;
|
|
|
import com.sd.business.entity.work.enums.WorkOrderFixationSpecEnum;
|
|
|
import com.sd.business.entity.work.po.WorkOrder;
|
|
@@ -51,9 +52,6 @@ import java.util.stream.Collectors;
|
|
|
public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder> implements WorkOrderService {
|
|
|
|
|
|
private static final ReentrantLock schedulingLock = new ReentrantLock();
|
|
|
- private static final double reserve = 5.5;
|
|
|
- private static final int master_length = 4300;
|
|
|
- private static final int master_width = 163;
|
|
|
|
|
|
@Autowired
|
|
|
private SkuSpecService skuSpecService;
|
|
@@ -235,8 +233,8 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
|
|
|
List<Item> itemList = new ArrayList<>();
|
|
|
for (int i = 0; i < schedulingNum; i++) {
|
|
|
Long orderSkuId = item.getId();
|
|
|
- double length = skuSpec.getLength().doubleValue() + reserve;
|
|
|
- double width = skuSpec.getWidth().doubleValue() + reserve;
|
|
|
+ double length = skuSpec.getLength().doubleValue() + MaterialsConstant.RESERVE;
|
|
|
+ double width = skuSpec.getWidth().doubleValue() + MaterialsConstant.RESERVE;
|
|
|
|
|
|
itemList.add(new Item(orderSkuId, length, width));
|
|
|
}
|
|
@@ -244,7 +242,7 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
|
|
|
return itemList.stream();
|
|
|
}).toArray(Item[]::new);
|
|
|
|
|
|
- Solution solve = GA.solve(master_length, master_width, items);
|
|
|
+ Solution solve = GA.solve(MaterialsConstant.MASTER_LENGTH, MaterialsConstant.MASTER_WIDTH, items);
|
|
|
|
|
|
List<PlaceItem> placeItemList = solve.getPlaceItemList();
|
|
|
if (placeItemList.size() == list.size()) {
|
|
@@ -257,12 +255,11 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
|
|
|
WorkOrder workOrder = new WorkOrder();
|
|
|
workOrder.setId(IdWorker.getId());
|
|
|
workOrder.setCode(CodeEnum.WORK_ORDER_CODE.getCode());
|
|
|
- workOrder.setProductionBatchNumber(1);
|
|
|
workOrder.setType(2);
|
|
|
workOrder.setMasterBomSpecId(bomSpecId);
|
|
|
workOrder.setPrintingPaperBomSpecId(printingPaperBomSpecId);
|
|
|
workOrder.setSchedulingNum(new BigDecimal(placeItemList.size()));
|
|
|
- workOrder.setUseRatio(BigDecimal.valueOf(solve.getRate() * 100));
|
|
|
+ workOrder.setUseRatio(BigDecimal.valueOf(solve.getUseRatio() * 100));
|
|
|
workOrder.setMaxLength(BigDecimal.valueOf(solve.getMaxLength()));
|
|
|
workOrder.setSyncProduction(StatusConstant.NO);
|
|
|
workOrder.setIntegrity(StatusConstant.YES);
|
|
@@ -273,12 +270,15 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
|
|
|
orderSku.setSchedulingNum(orderSku.getSchedulingNum().add(BigDecimal.ONE));
|
|
|
|
|
|
WorkOrderDetail workOrderDetail = new WorkOrderDetail();
|
|
|
- workOrderDetail.setProductionBatchNumber(1);
|
|
|
workOrderDetail.setWorkOrderId(workOrder.getId());
|
|
|
workOrderDetail.setOrderInfoId(orderSku.getOrderId());
|
|
|
workOrderDetail.setOrderSkuId(item.getId());
|
|
|
workOrderDetail.setX(BigDecimal.valueOf(item.getX()));
|
|
|
workOrderDetail.setY(BigDecimal.valueOf(item.getY()));
|
|
|
+ workOrderDetail.setBleedingLength(BigDecimal.valueOf(item.getLength()));
|
|
|
+ workOrderDetail.setBleedingWidth(BigDecimal.valueOf(item.getLength()));
|
|
|
+ workOrderDetail.setLength(BigDecimal.valueOf(item.getLength() - MaterialsConstant.RESERVE));
|
|
|
+ workOrderDetail.setWidth(BigDecimal.valueOf(item.getWidth() - MaterialsConstant.RESERVE));
|
|
|
workOrderDetail.setRotate(item.isRotate() ? StatusConstant.YES : StatusConstant.NO);
|
|
|
return workOrderDetail;
|
|
|
}).collect(Collectors.toList());
|
|
@@ -316,13 +316,14 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
|
|
|
WorkOrder workOrder = new WorkOrder();
|
|
|
workOrder.setId(IdWorker.getId());
|
|
|
workOrder.setCode(CodeEnum.WORK_ORDER_CODE.getCode());
|
|
|
- workOrder.setProductionBatchNumber(1);
|
|
|
workOrder.setType(1);
|
|
|
- workOrder.setFixationMaxNum(new BigDecimal(schedulingNum));
|
|
|
workOrder.setFixationSpec(workOrderFixationSpecEnum.getLength() + "*" + workOrderFixationSpecEnum.getWidth());
|
|
|
workOrder.setMasterBomSpecId(bomSpecId);
|
|
|
workOrder.setPrintingPaperBomSpecId(printingPaperBomSpecId);
|
|
|
- workOrder.setSchedulingNum(new BigDecimal(schedulingNum));
|
|
|
+
|
|
|
+ // todo 利用率 最大长度 排单数量赋值
|
|
|
+ //workOrder.setSchedulingNum(new BigDecimal(schedulingNum));
|
|
|
+
|
|
|
workOrder.setSyncProduction(StatusConstant.NO);
|
|
|
workOrder.setIntegrity(StatusConstant.YES);
|
|
|
|
|
@@ -375,14 +376,14 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
|
|
|
|
|
|
private void addWorkOrderDetail(WorkOrder workOrder, List<WorkOrderDetail> workOrderDetailList, OrderSku orderSku) {
|
|
|
WorkOrderDetail workOrderDetail = new WorkOrderDetail();
|
|
|
- workOrderDetail.setProductionBatchNumber(1);
|
|
|
workOrderDetail.setWorkOrderId(workOrder.getId());
|
|
|
workOrderDetail.setOrderInfoId(orderSku.getOrderId());
|
|
|
workOrderDetail.setOrderSkuId(orderSku.getId());
|
|
|
|
|
|
- // todo 赋值 x,y轴
|
|
|
+ // todo 赋值 x,y轴 长 宽 出血长 出现宽
|
|
|
|
|
|
workOrderDetailList.add(workOrderDetail);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
}
|