package com.billion.main.api.service.impl; import com.billion.main.api.domain.WorkOrdersInfo; import com.billion.main.api.domain.WorkOrdersInfoChild; import com.billion.main.api.service.IWorkOrdersInfoService; import com.billion.main.bs.domain.BsBomChildInfo; import com.billion.main.bs.domain.BsBomInfo; import com.billion.main.bs.service.IBsBomChildInfoService; import com.billion.main.bs.service.IBsBomInfoService; import com.billion.main.om.domain.OmProductionOrderInfo; import com.billion.main.om.service.IOmProductionOrderInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; /** * 物料采集Service业务层处理 * * @author Billion-Yi * @date 2024-11-22 */ @Service public class WorkOrdersInfoServiceImpl implements IWorkOrdersInfoService { @Autowired private IOmProductionOrderInfoService omProductionOrderInfoService; @Autowired private IBsBomInfoService bsBomInfoService; @Autowired private IBsBomChildInfoService bsBomChildInfoService; @Transactional @Override public boolean saveWorkOrders(WorkOrdersInfo workOrdersInfo) { try { //保存工单信息 OmProductionOrderInfo omProductionOrderInfo = new OmProductionOrderInfo(); omProductionOrderInfo.setWorkOrderNo(workOrdersInfo.getOrderNumber()); omProductionOrderInfo.setSalesOrderCode(workOrdersInfo.getBatchNumber()); omProductionOrderInfo.setProductCode(workOrdersInfo.getMaterialNumber()); omProductionOrderInfo.setEngineType(workOrdersInfo.getEngineType()); omProductionOrderInfo.setEngineName(workOrdersInfo.getEngineName()); omProductionOrderInfo.setPlanQty(Long.valueOf(workOrdersInfo.getProductionPlan())); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date startTime = sdf.parse(workOrdersInfo.getStartTime()); omProductionOrderInfo.setPlanStartTime(startTime); omProductionOrderInfo.setRemarks(Long.valueOf(workOrdersInfo.getDescription())); omProductionOrderInfo.setOrderStatus(workOrdersInfo.getState()); omProductionOrderInfo.setFlag(workOrdersInfo.getFLAG()); omProductionOrderInfoService.save(omProductionOrderInfo); //保存BOM主表信息 BsBomInfo bsBomInfo = new BsBomInfo(); bsBomInfo.setBomCode(workOrdersInfo.getBomName()); bsBomInfo.setBomName(workOrdersInfo.getBomName()); bsBomInfo.setProductCode(workOrdersInfo.getMaterialNumber()); bsBomInfo.setProductName(workOrdersInfo.getMaterialNumber()); bsBomInfoService.save(bsBomInfo); //保存BOM子表信息 List childList = workOrdersInfo.getData(); for (WorkOrdersInfoChild child : childList) { BsBomChildInfo bsBomChildInfo = new BsBomChildInfo(); bsBomChildInfo.setProductCode(workOrdersInfo.getMaterialNumber()); bsBomChildInfo.setProductName(workOrdersInfo.getMaterialNumber()); bsBomChildInfo.setBomCode(workOrdersInfo.getBomName()); bsBomChildInfo.setLocationCode(child.getStationName()); bsBomChildInfo.setLocationName(child.getStationName()); bsBomChildInfo.setMaterialCode(child.getMaterial()); bsBomChildInfo.setCostQty(child.getCount()); bsBomChildInfo.setChecked(child.getChecked()); bsBomChildInfo.setMaterialName(child.getMaterialName()); bsBomChildInfoService.save(bsBomChildInfo); } return true; } catch (Exception e) { throw new RuntimeException("保存工单信息失败", e); } } }