# WorkOrderServiceImpl.java

    package com.mycim.server.workorder.service;

    import com.alipay.sofa.runtime.api.annotation.SofaService;
    import com.alipay.sofa.runtime.api.annotation.SofaServiceBinding;
    import com.mycim.framework.jdbc.Page;
    import com.mycim.server.wip.manager.UnitQueryManager;
    import com.mycim.server.workorder.manager.PackageManager;
    import com.mycim.server.workorder.manager.WorkOrderManager;
    import com.mycim.valueobject.erp.lotScrapShip.ErpPackage;
    import com.mycim.valueobject.erp.workOrder.SdsWorkOrderInfo;
    import com.mycim.valueobject.erp.workOrder.SdsWorkOrderMaterialInfo;
    import com.mycim.valueobject.erp.workOrder.WorkOrderImpSourceWaferDb;
    import com.mycim.valueobject.prp.WorkOrder;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;

    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;

    @Service
    @SofaService(interfaceType = WorkOrderService.class, bindings = {@SofaServiceBinding(bindingType = "bolt")})
    public class WorkOrderServiceImpl implements WorkOrderService {
        @Autowired
        private PackageManager packageManager;

        @Autowired
        private WorkOrderManager workOrderManager;

        @Autowired
        private UnitQueryManager unitQueryManager;

        @Override
        public WorkOrder getWorkOrderById(String workorderId) {
            return workOrderManager.getWorkOrderById(workorderId);
        }

        @Override
        public WorkOrder insertWorkOrder(WorkOrder workOrder) {
            return workOrderManager.insertWorkOrder(workOrder);
        }

        @Override
        public void updateWorkOrder(WorkOrder workOrder) {
            workOrderManager.updateWorkOrder(workOrder);
        }

        @Override
        public List<WorkOrder> getWorkOrderByIdLike(String orderId) {
            return workOrderManager.getWorkOrderByIdLike(orderId);
        }

        @Override
        public Page getWorkOrderImpDBByOrderRrn(Page page, long orderRrn) {
            return workOrderManager.getWorkOrderImpDBByOrderRrn(page, orderRrn);
        }

        @Override
        public WorkOrderImpSourceWaferDb getImportWkByImpRrn(String importRrn) {
            return workOrderManager.getImportWkByImpRrn(importRrn);
        }

        @Override
        public WorkOrder getWorkOrderByRrn(Long workOrderRrn) {
            return workOrderManager.getWorkOrderByRrn(workOrderRrn);
        }

        @Override
        public List<WorkOrder> getWorkOrderByCondition(Map<String, Object> condition) {
            return workOrderManager.getWorkOrderByCondition(condition);
        }

        @Override
        public String savePackageData(ErpPackage packageData) {
            return packageManager.savePackageData(packageData);
        }

        @Override
        public int getPackageDieCount(long workorderRrn, String packageType) {
            return packageManager.getPackageDieCount(workorderRrn, packageType);
        }

        @Override
        public int getErpPackageCount(long lotRrn) {
            return packageManager.getErpPackageCount(lotRrn);
        }

        @Override
        public void insertProductMapping(String productId, String sdsProductId, String userId) {
            workOrderManager.insertProductMapping(productId, sdsProductId, userId);
        }

        @Override
        public void mappingReceive(List<HashMap> workorderIds) {
            workOrderManager.mappingReceive(workorderIds);
        }

        @Override
        public boolean checkAreadySdsProReceive(String deleteProductMapping) {
            return workOrderManager.checkAreadySdsProReceive(deleteProductMapping);
        }

        @Override
        public void deleteProductMapping(String mesproduct, String sdsproduct) {
            workOrderManager.deleteProductMapping(mesproduct, sdsproduct);
        }

        @Override
        public List<SdsWorkOrderMaterialInfo> getSdsMaterialInfoByWorkOrderId(long workorderRrn) {
            return workOrderManager.getSdsMaterialInfoByWorkOrderId(workorderRrn);
        }

        @Override
        public List<Map> getUnpackUnitListByLot(long lotRrn) {
            return unitQueryManager.getUnpackUnitListByLot(lotRrn);
        }

        @Override
        public List<ErpPackage.UnitInfo> getPackageDetails(Long transRrn) {
            return packageManager.getPackageDetails(transRrn);
        }

        @Override
        public List<SdsWorkOrderInfo> getSdsWorkOrderInfoByWorkOrderId(String workorderId) {
            return workOrderManager.getSdsWorkOrderInfoByWorkOrderId(workorderId);
        }

        @Override
        public List<Map> getSdsMesMappingInfoByProductId(String productId) {
            return workOrderManager.getSdsMesMappingInfoByProductId(productId);
        }

        @Override
        public Page getPackage(Page page, String packageType, String lotId, String productId) {
            return packageManager.getPackage(page, packageType, lotId, productId);
        }

        @Override
        public List<String> getMesProductIdBySdsProductId(String sdsProductId) {
            return workOrderManager.getMesProductIdBySdsProductId(sdsProductId);
        }

        @Override
        public int getWorkorderAvalibleStartQty(String workorderId) {
            return workOrderManager.getWorkorderAvalibleStartQty(workorderId);
        }

    }