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.setBodyQty(Long.valueOf("0"));
|
omProductionOrderInfo.setHeadQty(Long.valueOf("0"));
|
omProductionOrderInfo.setPreQty(Long.valueOf("0"));
|
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.insertOmProductionOrderInfo(omProductionOrderInfo);
|
//保存BOM主表信息
|
BsBomInfo bsBomInfo = new BsBomInfo();
|
bsBomInfo.setBomCode(workOrdersInfo.getBomName());
|
bsBomInfo.setProductCode(workOrdersInfo.getMaterialNumber());
|
bsBomInfo.setProductName(workOrdersInfo.getMaterialNumber());
|
bsBomInfoService.insertBsBomInfo(bsBomInfo);
|
//保存BOM子表信息
|
List<WorkOrdersInfoChild> 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.insertBsBomChildInfo(bsBomChildInfo);
|
}
|
return true;
|
} catch (Exception e) {
|
throw new RuntimeException("保存工单信息失败", e);
|
}
|
}
|
}
|