hdy
2025-01-03 ab4dc47f398b2b605679d497d018af21263a8f63
工单bom下发接口
已删除2个文件
已添加11个文件
已修改5个文件
368 ■■■■■ 文件已修改
.vscode/settings.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/api/RestfulAPI.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/api/domain/ApiResponse.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/api/domain/OutPutParameters.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/api/domain/OutPutParametersChild.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/api/domain/Result.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/api/domain/WorkOrdersInfo.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/api/domain/WorkOrdersInfoChild.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/api/service/IWorkOrdersInfoService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/api/service/impl/WorkOrdersInfoServiceImpl.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/domain/BsBomInfo.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/om/domain/OmProductionOrderInfo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
controller/RestfulAPI.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entity/ApiResponse.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entity/WorkOrdersInfo.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entity/WorkOrdersInfoChild.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/WorkOrderService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/impl/WorkOrderServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vscode/settings.json
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,3 @@
{
    "java.configuration.updateBuildConfiguration": "interactive"
}
billion-main/src/main/java/com/billion/main/api/RestfulAPI.java
@@ -1,16 +1,8 @@
package com.billion.main.api;
import cn.hutool.core.collection.CollUtil;
import com.billion.main.api.domain.OutPutParameters;
import com.billion.main.api.domain.OutPutParametersChild;
import com.billion.main.api.domain.ApiResponse;
import com.billion.main.api.domain.WorkOrdersInfo;
import com.billion.main.api.domain.WorkOrdersInfoChild;
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 com.billion.main.api.service.IWorkOrdersInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -20,17 +12,14 @@
import java.util.ArrayList;
import java.util.List;
@RestController
//@Component
@RequestMapping("/dmMes")
public class RestfulAPI {
    @Autowired
    private IOmProductionOrderInfoService OmProductionOrderInfoService;
    @Autowired
    private IBsBomInfoService bsBomInfoService;
    @Autowired
    private IBsBomChildInfoService bsBomChildInfoService;
    private IWorkOrdersInfoService iWorkOrdersInfoService;
    public static final String getQualityData = "IP地址/CollectQualityData";
    /**
@@ -39,62 +28,45 @@
     * 2、产线MES将接收到的工单信息存入到工单表和BOM表
     */
    @PostMapping("/receiveWorkOrdersInfo")
    public  OutPutParameters receiveWorkOrdersInfo(@RequestBody WorkOrdersInfo workOrdersInfo) {
        //保存参数
        List<OmProductionOrderInfo> productionOrderInfoList = new ArrayList<>();
        List<BsBomInfo> bomInfoList = new ArrayList<>();
        List<BsBomChildInfo> bomChildInfoList = new ArrayList<>();
        List<WorkOrdersInfoChild> data = workOrdersInfo.getData();
        for (WorkOrdersInfoChild workOrdersInfoChild : data) {
            OmProductionOrderInfo omProductionOrderInfo = new OmProductionOrderInfo();
            BsBomInfo bsBomInfo = new BsBomInfo();
            BsBomChildInfo bsBomChildInfo = new BsBomChildInfo();
            //保存工单信息
            omProductionOrderInfo.setWorkOrderNo(workOrdersInfo.getOrderNumber());
            omProductionOrderInfo.setSalesOrderCode(workOrdersInfo.getBatchNumber());
            omProductionOrderInfo.setProductCode(workOrdersInfo.getMaterialNumber());
            omProductionOrderInfo.setEngineTye(workOrdersInfo.getEngineType());
            omProductionOrderInfo.setEngineName(workOrdersInfo.getEngineName());
            omProductionOrderInfo.setPlanQty(Long.valueOf(workOrdersInfo.getProduction_Plan()));
            omProductionOrderInfo.setPlanStartTime(workOrdersInfo.getStartTime());
            omProductionOrderInfo.setRemarks(workOrdersInfo.getDescription());
            omProductionOrderInfo.setOrderStatus(workOrdersInfo.getState());
            omProductionOrderInfo.setFlag(workOrdersInfo.getFLAG());
            //保存BOM主表信息
            bsBomInfo.setBomCode(workOrdersInfo.getBomName());
            bsBomInfo.setBomName(workOrdersInfo.getBomName());
            bsBomInfo.setProductCode(workOrdersInfo.getMaterialNumber());
            bsBomInfo.setProductName(workOrdersInfo.getMaterialNumber());
            //保存BOM子表信息
            bsBomChildInfo.setProductCode(workOrdersInfo.getMaterialNumber());
            bsBomChildInfo.setProductName(workOrdersInfo.getMaterialNumber());
            bsBomChildInfo.setBomCode(workOrdersInfo.getBomName());
            bsBomChildInfo.setLocationCode(workOrdersInfoChild.getStationName());
            bsBomChildInfo.setLocationName(workOrdersInfoChild.getStationName());
            bsBomChildInfo.setMaterialCode(workOrdersInfoChild.getMaterial());
            bsBomChildInfo.setCostQty(workOrdersInfoChild.getCount());
            bsBomChildInfo.setChecked(workOrdersInfoChild.getChecked());
            bsBomChildInfo.setMaterialName(workOrdersInfoChild.getMaterialName());
            //
        }
        OutPutParameters outputParams = new OutPutParameters();
        //判断保存的三个list是否为空
        if (CollUtil.isNotEmpty(productionOrderInfoList) && CollUtil.isNotEmpty(bomInfoList) && CollUtil.isNotEmpty(bomChildInfoList)) {
            //插入数据库
            OmProductionOrderInfoService.insertBatch(productionOrderInfoList);
            bsBomInfoService.insertBatch(bomInfoList);
            bsBomChildInfoService.insertBatch(bomChildInfoList);
            //出参
            OutPutParametersChild child = new OutPutParametersChild(workOrdersInfo.getMaterialNumber(), "S", "采集完成");
            outputParams.addData(child);
            outputParams.toJson();
        } else {
            OutPutParametersChild child = new OutPutParametersChild(workOrdersInfo.getMaterialNumber(), "F", "采集失败");
            outputParams.addData(child);
            outputParams.toJson();
        }
    public ApiResponse receiveWorkOrdersInfo(@RequestBody WorkOrdersInfo workOrdersInfo) {
        try {
            // è°ƒç”¨service层保存数据
            boolean saveResult = iWorkOrdersInfoService.saveWorkOrders(workOrdersInfo);
        return outputParams;
            // æž„建响应数据
            ApiResponse response = new ApiResponse();
            List<ApiResponse.ResponseData> dataList = new ArrayList<>();
            ApiResponse.ResponseData responseData = new ApiResponse.ResponseData();
            if (saveResult) {
                response.setCode("success");
                response.setMessage("API调用成功");
                responseData.setProductionID(workOrdersInfo.getProductionID());
                responseData.setResultCode("S");
                responseData.setResultText("采集完成");
            } else {
                response.setCode("fail");
                response.setMessage("API调用失败");
                responseData.setProductionID(workOrdersInfo.getProductionID());
                responseData.setResultCode("F");
                responseData.setResultText("采集失败");
            }
            dataList.add(responseData);
            response.setData(dataList);
            return response;
        } catch (Exception e) {
            // å¼‚常处理
            ApiResponse response = new ApiResponse();
            response.setCode("fail");
            response.setMessage("API调用失败");
            List<ApiResponse.ResponseData> dataList = new ArrayList<>();
            ApiResponse.ResponseData responseData = new ApiResponse.ResponseData();
            responseData.setProductionID(workOrdersInfo.getProductionID());
            responseData.setResultCode("F");
            responseData.setResultText("采集失败");
            dataList.add(responseData);
            response.setData(dataList);
            return response;
        }
    }
billion-main/src/main/java/com/billion/main/api/domain/ApiResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.billion.main.api.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ApiResponse {
    private String code;
    private String message;
    private List<ResponseData> data;
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class ResponseData {
        private String ProductionID;
        private String resultCode;
        private String resultText;
    }
}
billion-main/src/main/java/com/billion/main/api/domain/OutPutParameters.java
ÎļþÒÑɾ³ý
billion-main/src/main/java/com/billion/main/api/domain/OutPutParametersChild.java
ÎļþÒÑɾ³ý
billion-main/src/main/java/com/billion/main/api/domain/Result.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.billion.main.api.domain;
import lombok.Data;
import java.util.List;
@Data
public class Result<T> {
    private String code;
    private String message;
    private List<T> data;
    public static <T> Result<T> success(List<T> data) {
        Result<T> result = new Result<>();
        result.setCode("success");
        result.setMessage("API调用成功");
        result.setData(data);
        return result;
    }
}
billion-main/src/main/java/com/billion/main/api/domain/WorkOrdersInfo.java
@@ -8,18 +8,18 @@
public class WorkOrdersInfo {
    private String ProductionID;
    private String OrderNumber;
    private String BatchNumber;
    private String MaterialNumber;
    private String EngineType;
    private String EngineName;
    private String Production_Plan;
    private String StartTime;
    private String Description;
    private String State;
    private String FLAG;
    private String BomName;
    private String productionID;
    private String orderNumber;
    private String batchNumber;
    private String materialNumber;
    private String engineType;
    private String engineName;
    private String productionPlan;
    private String startTime;
    private String description;
    private String state;
    private String fLAG;
    private String bomName;
    private List<WorkOrdersInfoChild> data;
}
billion-main/src/main/java/com/billion/main/api/domain/WorkOrdersInfoChild.java
@@ -4,9 +4,10 @@
@Data
public class WorkOrdersInfoChild {
    private String StationName;
    private String Material;
    private String Count;
    private String Checked;
    private String MaterialName;
    private String BomName;  // æ·»åŠ BomName字段用于关联
    private String stationName;
    private String material;
    private String count;
    private String checked;
    private String materialName;
}
billion-main/src/main/java/com/billion/main/api/service/IWorkOrdersInfoService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
package com.billion.main.api.service;
import com.billion.main.api.domain.WorkOrdersInfo;
public interface IWorkOrdersInfoService {
    boolean saveWorkOrders(WorkOrdersInfo workOrdersInfo);
}
billion-main/src/main/java/com/billion/main/api/service/impl/WorkOrdersInfoServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,86 @@
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.Component;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
 * ç‰©æ–™é‡‡é›†Service业务层处理
 *
 * @author Billion-Yi
 * @date 2024-11-22
 */
@Service
@Component
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 {
            BsBomInfo bsBomInfo = new BsBomInfo();
            Long l = 1002L;
            bsBomInfo.setId(l);
            bsBomInfo.setBomCode(workOrdersInfo.getBomName());
            bsBomInfo.setBomName(workOrdersInfo.getBomName());
            bsBomInfo.setProductCode(workOrdersInfo.getMaterialNumber());
            bsBomInfo.setProductName(workOrdersInfo.getMaterialNumber());
            bsBomInfoService.insertBsBomInfo(bsBomInfo);
            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()));
            omProductionOrderInfo.setPlanStartTime(workOrdersInfo.getStartTime());
            omProductionOrderInfo.setRemarks(workOrdersInfo.getDescription());
            omProductionOrderInfo.setOrderStatus(workOrdersInfo.getState());
            omProductionOrderInfo.setFlag(workOrdersInfo.getFLAG());
            omProductionOrderInfoService.insertOmProductionOrderInfo(omProductionOrderInfo);
            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.save(bsBomChildInfo);
            }
            return true;
        } catch (Exception e) {
            throw new RuntimeException("保存工单信息失败", e);
        }
    }
}
billion-main/src/main/java/com/billion/main/bs/domain/BsBomInfo.java
@@ -1,5 +1,6 @@
package com.billion.main.bs.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.billion.common.annotation.Excel;
import com.billion.main.common.BaseEntity;
import lombok.Data;
@@ -15,6 +16,7 @@
{
    private static final long serialVersionUID = 1L;
    @TableId
    /** ä¸»é”®id */
    private Long id;
billion-main/src/main/java/com/billion/main/om/domain/OmProductionOrderInfo.java
@@ -56,7 +56,7 @@
    /** å‘动机型号 */
    @Excel(name = "发动机型号")
    private String engineTye;
    private String engineType;
    /** æœºåž‹ */
    @Excel(name = "机型")
controller/RestfulAPI.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@
entity/ApiResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@
entity/WorkOrdersInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@
entity/WorkOrdersInfoChild.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@
service/WorkOrderService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@
service/impl/WorkOrderServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@