From ab4dc47f398b2b605679d497d018af21263a8f63 Mon Sep 17 00:00:00 2001 From: hdy <1105738590@qq.com> Date: 星期五, 03 一月 2025 13:52:39 +0800 Subject: [PATCH] 工单bom下发接口 --- entity/WorkOrdersInfo.java | 1 .vscode/settings.json | 3 billion-main/src/main/java/com/billion/main/api/domain/WorkOrdersInfo.java | 24 ++-- entity/WorkOrdersInfoChild.java | 1 billion-main/src/main/java/com/billion/main/bs/domain/BsBomInfo.java | 2 entity/ApiResponse.java | 1 service/impl/WorkOrderServiceImpl.java | 1 controller/RestfulAPI.java | 1 billion-main/src/main/java/com/billion/main/api/domain/ApiResponse.java | 24 ++++ /dev/null | 23 --- billion-main/src/main/java/com/billion/main/api/service/IWorkOrdersInfoService.java | 7 + billion-main/src/main/java/com/billion/main/api/domain/Result.java | 20 +++ billion-main/src/main/java/com/billion/main/api/domain/WorkOrdersInfoChild.java | 11 + billion-main/src/main/java/com/billion/main/api/RestfulAPI.java | 112 +++++++----------- billion-main/src/main/java/com/billion/main/om/domain/OmProductionOrderInfo.java | 2 billion-main/src/main/java/com/billion/main/api/service/impl/WorkOrdersInfoServiceImpl.java | 86 ++++++++++++++ service/WorkOrderService.java | 1 17 files changed, 209 insertions(+), 111 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..c5f3f6b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.configuration.updateBuildConfiguration": "interactive" +} \ No newline at end of file diff --git a/billion-main/src/main/java/com/billion/main/api/RestfulAPI.java b/billion-main/src/main/java/com/billion/main/api/RestfulAPI.java index 2553861..2be3455 100644 --- a/billion-main/src/main/java/com/billion/main/api/RestfulAPI.java +++ b/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銆佷骇绾縈ES灏嗘帴鏀跺埌鐨勫伐鍗曚俊鎭瓨鍏ュ埌宸ュ崟琛ㄥ拰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(); - //鍒ゆ柇淇濆瓨鐨勪笁涓猯ist鏄惁涓虹┖ - 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; + } } diff --git a/billion-main/src/main/java/com/billion/main/api/domain/ApiResponse.java b/billion-main/src/main/java/com/billion/main/api/domain/ApiResponse.java new file mode 100644 index 0000000..7672267 --- /dev/null +++ b/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; + } +} \ No newline at end of file diff --git a/billion-main/src/main/java/com/billion/main/api/domain/OutPutParameters.java b/billion-main/src/main/java/com/billion/main/api/domain/OutPutParameters.java deleted file mode 100644 index a071075..0000000 --- a/billion-main/src/main/java/com/billion/main/api/domain/OutPutParameters.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.billion.main.api.domain; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -public class OutPutParameters extends HashMap<String, Object>{ - private String code ="success"; - private String message = "API璋冪敤鎴愬姛"; - private List<OutPutParametersChild> data; - - public OutPutParameters() { - this.data = new ArrayList<>(); - } - public void addData(OutPutParametersChild child) { - this.data.add(child); - } - public String toJson() { - StringBuilder json = new StringBuilder(); - json.append("{"); - // 娣诲姞code鍜宮essage锛堣繖閲屼娇鐢ㄩ潤鎬佸�硷紝浣嗛�氬父鎮ㄥ簲璇ラ伩鍏嶈繖鏍峰仛锛� - json.append("\"code\": \"").append(code).append("\","); - json.append("\"message\": \"").append(message).append("\","); - // 娣诲姞data - json.append("\"data\": ["); - boolean first = true; - for (OutPutParametersChild child : data) { - if (!first) { - json.append(","); - } - first = false; - json.append("{"); - json.append("\"productNum\": \"").append(child.getProductNum()).append("\","); - json.append("\"resultCode\": \"").append(child.getResultCode()).append("\","); - json.append("\"resultText\": \"").append(child.getResultText()).append("\""); - json.append("}"); - } - json.append("]"); - json.append("}"); - return json.toString(); - } - - - - -} - - diff --git a/billion-main/src/main/java/com/billion/main/api/domain/OutPutParametersChild.java b/billion-main/src/main/java/com/billion/main/api/domain/OutPutParametersChild.java deleted file mode 100644 index 3cf42d7..0000000 --- a/billion-main/src/main/java/com/billion/main/api/domain/OutPutParametersChild.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.billion.main.api.domain; - -public class OutPutParametersChild { - private String productNum; - private String resultCode; - private String resultText; - public OutPutParametersChild(String productNum, String resultCode, String resultText) { - this.productNum = productNum; - this.resultCode = resultCode; - this.resultText = resultText; - } - public String getProductNum() { - return productNum; - } - - public String getResultCode() { - return resultCode; - } - - public String getResultText() { - return resultText; - } -} diff --git a/billion-main/src/main/java/com/billion/main/api/domain/Result.java b/billion-main/src/main/java/com/billion/main/api/domain/Result.java new file mode 100644 index 0000000..9e8959c --- /dev/null +++ b/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; + } +} \ No newline at end of file diff --git a/billion-main/src/main/java/com/billion/main/api/domain/WorkOrdersInfo.java b/billion-main/src/main/java/com/billion/main/api/domain/WorkOrdersInfo.java index 00ddf11..e819d4b 100644 --- a/billion-main/src/main/java/com/billion/main/api/domain/WorkOrdersInfo.java +++ b/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; } diff --git a/billion-main/src/main/java/com/billion/main/api/domain/WorkOrdersInfoChild.java b/billion-main/src/main/java/com/billion/main/api/domain/WorkOrdersInfoChild.java index 1b68073..07e441d 100644 --- a/billion-main/src/main/java/com/billion/main/api/domain/WorkOrdersInfoChild.java +++ b/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; } diff --git a/billion-main/src/main/java/com/billion/main/api/service/IWorkOrdersInfoService.java b/billion-main/src/main/java/com/billion/main/api/service/IWorkOrdersInfoService.java new file mode 100644 index 0000000..894123a --- /dev/null +++ b/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); +} diff --git a/billion-main/src/main/java/com/billion/main/api/service/impl/WorkOrdersInfoServiceImpl.java b/billion-main/src/main/java/com/billion/main/api/service/impl/WorkOrdersInfoServiceImpl.java new file mode 100644 index 0000000..dd5be53 --- /dev/null +++ b/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); + } + } +} diff --git a/billion-main/src/main/java/com/billion/main/bs/domain/BsBomInfo.java b/billion-main/src/main/java/com/billion/main/bs/domain/BsBomInfo.java index ba27d4d..18d6bac 100644 --- a/billion-main/src/main/java/com/billion/main/bs/domain/BsBomInfo.java +++ b/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; diff --git a/billion-main/src/main/java/com/billion/main/om/domain/OmProductionOrderInfo.java b/billion-main/src/main/java/com/billion/main/om/domain/OmProductionOrderInfo.java index 82b1fb1..fc8076d 100644 --- a/billion-main/src/main/java/com/billion/main/om/domain/OmProductionOrderInfo.java +++ b/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 = "鏈哄瀷") diff --git a/controller/RestfulAPI.java b/controller/RestfulAPI.java new file mode 100644 index 0000000..0519ecb --- /dev/null +++ b/controller/RestfulAPI.java @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/entity/ApiResponse.java b/entity/ApiResponse.java new file mode 100644 index 0000000..0519ecb --- /dev/null +++ b/entity/ApiResponse.java @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/entity/WorkOrdersInfo.java b/entity/WorkOrdersInfo.java new file mode 100644 index 0000000..0519ecb --- /dev/null +++ b/entity/WorkOrdersInfo.java @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/entity/WorkOrdersInfoChild.java b/entity/WorkOrdersInfoChild.java new file mode 100644 index 0000000..0519ecb --- /dev/null +++ b/entity/WorkOrdersInfoChild.java @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/service/WorkOrderService.java b/service/WorkOrderService.java new file mode 100644 index 0000000..0519ecb --- /dev/null +++ b/service/WorkOrderService.java @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/service/impl/WorkOrderServiceImpl.java b/service/impl/WorkOrderServiceImpl.java new file mode 100644 index 0000000..0519ecb --- /dev/null +++ b/service/impl/WorkOrderServiceImpl.java @@ -0,0 +1 @@ + \ No newline at end of file -- Gitblit v1.9.3