From 33dbc6a161554f3a897f9e9273feb4f2c1b47381 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期一, 15 十二月 2025 17:04:27 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override

---
 north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java |  357 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 316 insertions(+), 41 deletions(-)

diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java b/north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java
index 6d839ca..0ff4649 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/pp/GlassOptimizeController.java
@@ -1,6 +1,6 @@
 package com.example.erp.controller.pp;
 
-import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.springframework.core.io.InputStreamResource;
 import com.example.erp.common.Constants;
 import com.example.erp.common.Result;
 import com.example.erp.entity.pp.LayoutsData;
@@ -10,7 +10,6 @@
 import com.example.erp.service.pp.JsonToOptConverter;
 import com.example.erp.service.userInfo.UserService;
 import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -19,8 +18,13 @@
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
+import java.io.File;
+import java.io.FileInputStream;
 import java.io.IOException;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.sql.Date;
+import java.util.HashMap;
 import java.util.Map;
 
 @RestController
@@ -33,10 +37,18 @@
     private UserService userService;
     //宸ョ▼淇℃伅
     @ApiOperation("宸ョ▼淇℃伅鎺ュ彛")
-    @PostMapping  ("/projectInfo/{projectNo}")
+    @PostMapping  ("/projectInfo/{projectNo}/{username}")
     public Result projectInfo(
-            @PathVariable String projectNo){
-        return Result.seccess(glassOptimizeService.projectInfoSv(projectNo));
+            @PathVariable String projectNo,@PathVariable String username){
+        return Result.success(glassOptimizeService.projectInfoSv(projectNo,username));
+    }
+
+
+    // 浼樺寲淇℃伅浼犲叆
+    @ApiOperation("浼樺寲浼犲叆淇℃伅鎺ュ彛")
+    @PostMapping  ("/optimizeInfo/{projectNo}/{username}")
+    public Result optimizeInfo(@PathVariable String projectNo,@PathVariable String username){
+        return Result.success(glassOptimizeService.optimizeInfoSv(projectNo,username));
     }
 
     //宸ョ▼淇℃伅娴佺▼鍗�
@@ -44,16 +56,24 @@
     @PostMapping  ("/getProcessCard/{projectNo}")
     public Result getProcessCard(
             @PathVariable String projectNo){
-        return Result.seccess(glassOptimizeService.getProcessCardSv(projectNo));
+        return Result.success(glassOptimizeService.getProcessCardSv(projectNo));
+    }
+
+    @ApiOperation("宸ョ▼淇℃伅鏌ヨ鎺ュ彛")
+    @PostMapping  ("/getProjectState/{projectNo}")
+    public Result getProjectState(
+            @PathVariable String projectNo){
+        return Result.success(glassOptimizeService.getProjectState(projectNo));
     }
 
     //搴撳瓨淇℃伅
     @ApiOperation("搴撳瓨淇℃伅鎺ュ彛")
-    @PostMapping  ("/materialStore/{thickness}/{model}")
+    @GetMapping  ("/materialStore/{thickness}/{model}/{projectNumber}")
     public Result materialStore(
             @PathVariable  String thickness,
-            @PathVariable  String model ){
-        return Result.seccess(glassOptimizeService.materialStoreSv(thickness,model));
+            @PathVariable  String model,@PathVariable  String projectNumber,
+            @RequestParam(name = "type", required = false) Integer type,@RequestParam(name = "username", required = false) String username  ){
+        return Result.success(glassOptimizeService.materialStoreSv(thickness,model,projectNumber,type,username));
     }
 
 
@@ -63,15 +83,34 @@
     public Result getFlowCardList(
             @PathVariable String optionVal,
             @PathVariable Integer radio){
-        return Result.seccess(glassOptimizeService.getFlowCardList(optionVal,radio));
+        return Result.success(glassOptimizeService.getFlowCardList(optionVal,radio));
+    }
+
+    //宸ョ▼鏌ヨ娴佺▼鍗�
+    @ApiOperation("淇敼宸ョ▼鏌ヨ娴佺▼鍗℃帴鍙�")
+    @PostMapping  ("/getUpdateFlowCardList/{type}/{thickness}/{radio}/{projectNo}")
+    public Result getUpdateFlowCardList(
+            @PathVariable String type,@PathVariable String thickness,
+            @PathVariable Integer radio,@PathVariable String projectNo){
+        return Result.success(glassOptimizeService.getUpdateFlowCardList(type,thickness,radio,projectNo));
     }
 
     //宸ョ▼鏌ヨ娴佺▼鍗�
     @ApiOperation("宸ョ▼鏌ヨ娴佺▼鍗�")
     @PostMapping  ("/getProjectList")
     public Result getProjectList(){
-        return Result.seccess(glassOptimizeService.getProjectListSv());
+        return Result.success(glassOptimizeService.getProjectListSv());
     }
+
+    @ApiOperation("鏍规嵁宸ョ▼鍗″彿宸ョ▼鏌ヨ娴佺▼鍗�")
+    @PostMapping  ("/getProjectByProjectNo/{projectNo}")
+    public Result getProjectByProjectNo(
+            @PathVariable String projectNo
+    ){
+        return Result.success(glassOptimizeService.getProjectByProjectNoSv(projectNo));
+    }
+
+
 
     //宸ョ▼绠$悊鏌ヨ
     @ApiOperation("宸ョ▼绠$悊鏌ヨ鎺ュ彛")
@@ -80,21 +119,26 @@
             @PathVariable Date startSelectTime,
             @PathVariable Date endSelectTime,
             @RequestBody OptimizeProjectMange optimizeProjectMange) {
-        return Result.seccess(glassOptimizeService.OptimizeProjectMange(startSelectTime,endSelectTime,optimizeProjectMange));
+        return Result.success(glassOptimizeService.OptimizeProjectMange(startSelectTime,endSelectTime,optimizeProjectMange));
     }
 
     //淇敼宸ョ▼鐘舵��
     @ApiOperation("淇敼宸ョ▼鐘舵�佹帴鍙�")
-    @PostMapping("/updateProjectState/{projectNumber}/{state}")
+    @PostMapping("/updateProjectState/{projectNumber}/{state}/{states}/{code}")
     public Result updateProjectState(
             @PathVariable String projectNumber,
-            @PathVariable Integer state
-    ) {
-        if (glassOptimizeService.updateProjectState(projectNumber, state)) {
-            return Result.seccess();
-        } else {
-            throw new ServiceException(Constants.Code_500, "淇敼澶辫触");
-
+            @PathVariable Integer state,
+            @PathVariable Integer states,
+            @PathVariable Integer code
+    ) throws JsonProcessingException {
+        try {
+            if (glassOptimizeService.updateProjectState(projectNumber, state, states, code)) {
+                return Result.success();
+            } else {
+                throw new ServiceException(Constants.Code_500, "淇敼澶辫触");
+            }
+        } catch (Exception e) {
+            return Result.error("201", e.getMessage());
         }
     }
 
@@ -103,7 +147,7 @@
     @PostMapping("/deleteProject/{projectNumber}")
     public Result deleteProject(
             @PathVariable String projectNumber){
-        return Result.seccess(glassOptimizeService.deleteProject(projectNumber));
+        return Result.success(glassOptimizeService.deleteProject(projectNumber,1));
     }
 
     //妯℃嫙璁$畻宸ョ▼鍙锋煡璇�
@@ -111,22 +155,30 @@
     @PostMapping  ("/selectProjectCompute/{projectNumber}")
     public Result selectProjectCompute(
             @PathVariable String projectNumber){
-        return Result.seccess(glassOptimizeService.selectProjectComputeSv(projectNumber));
+        return Result.success(glassOptimizeService.selectProjectComputeSv(projectNumber));
+    }
+
+    //妯℃嫙璁$畻宸ョ▼鍙锋煡璇�
+    @ApiOperation("妯℃嫙璁$畻宸ョ▼鏁版嵁鏌ヨ")
+    @PostMapping  ("/selectProjectComputeAll/{projectNumber}")
+    public Result selectProjectComputeAll(
+            @PathVariable String projectNumber){
+        return Result.success(glassOptimizeService.selectProjectComputeAll(projectNumber));
     }
 
     //妯℃嫙璁$畻娴佺▼鍗¤鎯�
     @ApiOperation("妯℃嫙璁$畻娴佺▼鍗¤鎯�")
-    @PostMapping  ("/selectComputeDetail/{processId}")
+    @PostMapping  ("/selectComputeDetail/{processId}/{technologyNumber}/{patchState}")
     public Result selectComputeDetail(
-            @PathVariable String processId){
-        return Result.seccess(glassOptimizeService.selectComputeDetailSv(processId));
+            @PathVariable String processId, @PathVariable Integer technologyNumber,@PathVariable String patchState){
+        return Result.success(glassOptimizeService.selectComputeDetailSv(processId,technologyNumber,patchState));
     }
 
     @ApiOperation("妯℃嫙璁$畻")
     @PostMapping("/simulationCalculate")
     public Result simulationCalculate(@RequestBody Map<String, Object> object) {
         try {
-            return Result.seccess(glassOptimizeService.SimulationCalculation(object));
+            return Result.success(glassOptimizeService.SimulationCalculation(object));
         } catch (Exception e) {
             e.printStackTrace();
             return Result.error();
@@ -136,8 +188,9 @@
     @ApiOperation("妯℃嫙璁$畻淇濆瓨")
     @PostMapping("/simulationSave")
     public Result simulationSave(@RequestBody Map<String, Object> object) {
+        System.out.println("鎺ユ敹鍒扮殑妯℃嫙璁$畻淇濆瓨鏁版嵁: " + object);
         try {
-            return Result.seccess(glassOptimizeService.addSimulation(object));
+            return Result.success(glassOptimizeService.addSimulation(object));
         } catch (Exception e) {
             e.printStackTrace();
             return Result.error();
@@ -145,10 +198,10 @@
     }
 
     @ApiOperation("浼樺寲璁剧疆淇濆瓨")
-    @PostMapping("/optimizeParms")
-    public Result optimizeParmsSave(@RequestBody Map<String, Object> object) {
+    @PostMapping("/optimizeParms/{username}")
+    public Result optimizeParmsSave(@RequestBody Map<String, Object> object,@PathVariable String username) {
         try {
-            return Result.seccess(glassOptimizeService.optimizeParmsSave(object));
+            return Result.success(glassOptimizeService.optimizeParmsSave(object,username));
         } catch (Exception e) {
             e.printStackTrace();
             return Result.error();
@@ -158,7 +211,7 @@
 
     @PostMapping("/selectOptimizeParms/{username}")
     public Result getOptimizeParms(@PathVariable String username) {
-        return Result.seccess(userService.getOptimizeParms(username));
+        return Result.success(userService.getOptimizeParms(username));
     }
 
 
@@ -167,13 +220,38 @@
     @PostMapping("/selectComputeDetailmore")
     public Result selectComputeDetailmore(@RequestBody Map<String, Object> object) {
         try {
-            return Result.seccess(glassOptimizeService.SimulationCalculation(object));
+            return Result.success(glassOptimizeService.SimulationCalculation(object));
         } catch (Exception e) {
             e.printStackTrace();
             return Result.error();
         }
     }
 
+
+    @PostMapping("/calculate")
+    public ResponseEntity<Map<String, Object>> receiveOptimizeRequest(
+            @RequestBody Map<String, Object> requestData) {
+
+        Map<String, Object> response = new HashMap<>();
+
+        try {
+            // 绔嬪嵆杩斿洖鎺ユ敹鎴愬姛鐨勫搷搴�
+            response.put("code", "200");
+            response.put("msg", "success");
+            response.put("data", "");
+
+            // 寮傛澶勭悊璁$畻浠诲姟
+//            glassOptimizeService.processExternalOptimizeRequest(requestData);
+            System.out.println(requestData);
+
+            return ResponseEntity.ok(response);
+        } catch (Exception e) {
+            response.put("code", 201);
+            response.put("msg", "false: " + e.getMessage());
+            response.put("data", "");
+            return ResponseEntity.status(500).body(response);
+        }
+    }
 
 
 
@@ -184,19 +262,19 @@
     public Result getProcessCardDetail(
             @PathVariable String processId,
             @PathVariable Integer technologyNumber){
-        return Result.seccess(glassOptimizeService.getProcessCardDetailSv(processId,technologyNumber));
+        return Result.success(glassOptimizeService.getProcessCardDetailSv(processId,technologyNumber));
     }
 
     @ApiOperation("鑶滅郴鏌ヨ")
     @PostMapping  ("/selectGlassType")
     public Result selectGlassType(){
-        return Result.seccess(glassOptimizeService.selectGlassTypeSv());
+        return Result.success(glassOptimizeService.selectGlassTypeSv());
     }
 
     @ApiOperation("鏈�鏂板伐绋嬪彿鏌ヨ")
     @PostMapping  ("/getProjectId")
     public Result getProjectId(){
-        return Result.seccess(glassOptimizeService.getProjectIdSv());
+        return Result.success(glassOptimizeService.getProjectIdSv());
     }
     @ApiOperation("鍒涘缓宸ョ▼鎺ュ彛")
     @PostMapping("/addProject/{optionVal}/{projectId}/{projectNmae}")
@@ -205,23 +283,50 @@
             @PathVariable String projectId,
             @PathVariable String projectNmae,
             @RequestBody Map<String,Object> object){
-        return  Result.seccess(glassOptimizeService.addProjectSv(optionVal,projectId,projectNmae,object));
+        return  Result.success(glassOptimizeService.addProjectSv(optionVal,projectId,projectNmae,object));
     }
 
 
     @ApiOperation("淇濆瓨浼樺寲缁撴灉鎺ュ彛")
-    @PostMapping("/saveOptimizeResult")
-    public Result saveOptimizeResult(
+    @PostMapping("/saveOptimizeData/{projectId}")
+    public Result saveOptimizeResult( @PathVariable String projectId,
             @RequestBody Map<String,Object> object){
-        return  Result.seccess(glassOptimizeService.saveOptimizeResult(object));
+        return  Result.success(glassOptimizeService.saveOptimizeResult(object,projectId));
     }
 
+    @ApiOperation("鏌ヨ鎶ュ憡鏁版嵁鎺ュ彛")
+    @PostMapping("/getReportData/{processId}")
+    public Result getReportData(@PathVariable String processId){
+        return  Result.success(glassOptimizeService.getReportDataSv(processId));
+    }
+
+    @ApiOperation("鏌ヨ鐗╂枡淇℃伅鎺ュ彛")
+    @PostMapping("/materialInfo/{processId}")
+    public Result materialInfo(
+            @PathVariable String processId){
+        return  Result.success(glassOptimizeService.getMaterialInfoSv(processId));
+    }
+
+
+    @ApiOperation("鏌ヨ浜у搧鍒楄〃鎺ュ彛")
+    @PostMapping("/getProductList/{processId}")
+    public Result getProductList(
+            @PathVariable String processId){
+        return  Result.success(glassOptimizeService.getProductListSv(processId));
+    }
 
     @ApiOperation("鏌ヨ浼樺寲缁撴灉鎺ュ彛")
     @PostMapping("/selectOptimizeResult/{processId}")
     public Result selectOptimizeResult(
             @PathVariable String processId){
-        return  Result.seccess(glassOptimizeService.selectOptimizeResult(processId));
+        return  Result.success(glassOptimizeService.selectOptimizeResult(processId));
+    }
+
+    @ApiOperation("鏌ヨ浼樺寲缁撴灉淇℃伅鎺ュ彛")
+    @PostMapping("/getOptimizeInfo/{processId}")
+    public Result getOptimizeInfo(
+            @PathVariable String processId){
+        return  Result.success(glassOptimizeService.getOptimizeInfoSv(processId));
     }
 
     @ApiOperation("鏇存柊浼樺寲缁撴灉鎺ュ彛")
@@ -229,7 +334,7 @@
     public Result updateOptimizeResult(
             @PathVariable String processId,@RequestBody Map<String,Object> object){
 
-        return  Result.seccess(glassOptimizeService.updateOptimizeResult(object,processId));
+        return  Result.success(glassOptimizeService.updateOptimizeResult(object,processId));
     }
     @ApiOperation("OPT鏂囦欢涓嬭浇鎺ュ彛")
     @PostMapping("/generateOpt")
@@ -251,6 +356,176 @@
         return new ResponseEntity<>(optContent.getBytes(), headers, HttpStatus.OK);
     }
 
+    @PostMapping("/getConfiguration/{type}/{username}")
+    public Result getConfiguration(@PathVariable String type,@PathVariable String username) {
+        return Result.success(glassOptimizeService.getConfiguration(type,username));
+    }
+
+    @ApiOperation("淇墖纾ㄩ噺淇敼")
+    @PostMapping("/saveConfiguration/{type}/{username}")
+    public Result saveConfiguration(@PathVariable String type,@PathVariable String username, @RequestBody Map<String,Object>  object){
+        return Result.success(glassOptimizeService.saveConfiguration(object,type,username));
+    }
+
+    @ApiOperation("妯℃嫙鎺掔増")
+    @PostMapping("/simulatedTypesetting")
+    public Result simulatedTypesetting(@RequestBody Map<String, Object> object) {
+        return Result.success(glassOptimizeService.simulatedTypesetting1(object));
+    }
+
+
+    @CrossOrigin(origins = "*")
+    @ApiOperation("PDF鏂囦欢涓嬭浇鎺ュ彛")
+    @GetMapping("/reports/pdf")
+    public ResponseEntity<InputStreamResource> downloadPdf(@RequestParam String filePath) {
+        try {
+            String decodedPath = java.net.URLDecoder.decode(filePath, "UTF-8");
+            System.out.println("鎺ユ敹鍒扮殑鏂囦欢璺緞: " + decodedPath);
+
+            // 鏀惧楠岃瘉鏉′欢锛屼粎妫�鏌ュ繀瑕佹潯浠�
+            if (decodedPath == null || decodedPath.trim().isEmpty()) {
+                System.out.println("鏂囦欢璺緞涓虹┖");
+                return ResponseEntity.badRequest().build();
+            }
+
+            // 妫�鏌ユ槸鍚︿负PDF鏂囦欢锛堜笉涓ユ牸妫�鏌ュ紑澶达級
+            if (!decodedPath.trim().toLowerCase().endsWith(".pdf")) {
+                System.out.println("鏂囦欢涓嶆槸PDF鏍煎紡: " + decodedPath);
+                return ResponseEntity.badRequest().build();
+            }
+
+            // 澶勭悊璺緞锛屾纭鐞哤indows缃戠粶璺緞
+            String processedPath = decodedPath.trim();
+            // 纭繚缃戠粶璺緞鏍煎紡姝g‘
+            if (processedPath.startsWith("\\\\")) {
+                // 宸茬粡鏄纭殑缃戠粶璺緞鏍煎紡
+                System.out.println("妫�娴嬪埌Windows缃戠粶璺緞: " + processedPath);
+            } else if (processedPath.startsWith("\\")) {
+                // 琛ュ叏缃戠粶璺緞
+                processedPath = "\\" + processedPath;
+                System.out.println("琛ュ叏缃戠粶璺緞涓�: " + processedPath);
+            }
+
+            System.out.println("澶勭悊鍚庣殑鏂囦欢璺緞: " + processedPath);
+
+            // 鏋勯�犳枃浠惰矾寰�
+            File file = new File(processedPath);
+            System.out.println("鏋勯�犵殑鏂囦欢缁濆璺緞: " + file.getAbsolutePath());
+            System.out.println("鏂囦欢瑙勮寖璺緞: " + file.getCanonicalPath());
+
+            // 妫�鏌ユ枃浠舵槸鍚﹀瓨鍦�
+            if (!file.exists()) {
+                System.out.println("鏂囦欢涓嶅瓨鍦�: " + file.getAbsolutePath());
+                return ResponseEntity.notFound().build();
+            }
+
+            // 妫�鏌ユ槸鍚︿负鏂囦欢锛堣�岄潪鐩綍锛�
+            if (!file.isFile()) {
+                System.out.println("璺緞涓嶆槸鏂囦欢: " + file.getAbsolutePath());
+                return ResponseEntity.badRequest().build();
+            }
+
+            // 鍒涘缓Resource
+            InputStreamResource resource = new InputStreamResource(new FileInputStream(file));
+
+            // 璁剧疆鍝嶅簲澶�
+            HttpHeaders headers = new HttpHeaders();
+            headers.add(HttpHeaders.CONTENT_DISPOSITION, "inline; filename=\"" + file.getName() + "\"");
+            headers.add(HttpHeaders.CONTENT_TYPE, "application/pdf");
+            headers.add(HttpHeaders.CONTENT_LENGTH, String.valueOf(file.length()));
+            headers.add(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, HttpHeaders.CONTENT_DISPOSITION);
+
+            return ResponseEntity.ok()
+                    .headers(headers)
+                    .contentType(org.springframework.http.MediaType.APPLICATION_PDF)
+                    .body(resource);
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
+        }
+    }
+
+
+
+
+
+
+
+
+
+
+
+
+    //妯℃嫙璁$畻宸ョ▼鍙锋煡璇㈢涓夋柟
+    @ApiOperation("妯℃嫙璁$畻宸ョ▼鍙锋煡璇�")
+    @PostMapping  ("/selectProjectComputeMpThirdParty/{projectNumber}")
+    public Result selectProjectComputeMpThirdParty( @PathVariable String projectNumber){
+        return Result.success(glassOptimizeService.selectProjectComputeMpThirdParty(projectNumber));
+    }
+
+    //妯℃嫙璁$畻娴佺▼鍗¤鎯呯涓夋柟
+    @ApiOperation("妯℃嫙璁$畻娴佺▼鍗¤鎯�")
+    @PostMapping  ("/selectComputeDetailThirdParty/{processId}/{technologyNumber}")
+    public Result selectComputeDetailThirdParty(
+            @PathVariable String processId, @PathVariable Integer technologyNumber){
+        return Result.success(glassOptimizeService.selectComputeDetailThirdParty(processId,technologyNumber));
+    }
+
+    @ApiOperation("妯℃嫙璁$畻淇濆瓨")
+    @PostMapping("/simulationSaveThirdParty")
+    public Result simulationSaveThirdParty(@RequestBody Map<String, Object> object) {
+        try {
+            return Result.success(glassOptimizeService.simulationSaveThirdParty(object));
+        } catch (Exception e) {
+            e.printStackTrace();
+            return Result.error();
+        }
+    }
+
+    //鍒犻櫎宸ョ▼
+    @ApiOperation("宸ョ▼绠$悊鍒犻櫎鎺ュ彛")
+    @PostMapping("/deleteProjectThirdParty/{projectNumber}")
+    public Result deleteProjectThirdParty(
+            @PathVariable String projectNumber){
+        return Result.success(glassOptimizeService.deleteProjectThirdParty(projectNumber));
+    }
+
+    @ApiOperation("宸ョ▼淇℃伅鎺ュ彛")
+    @PostMapping  ("/projectInfoThirdParty/{projectNo}")
+    public Result projectInfoThirdParty(
+            @PathVariable String projectNo){
+        return Result.success(glassOptimizeService.projectInfoThirdParty(projectNo));
+    }
+
+    //搴撳瓨淇℃伅
+    @ApiOperation("搴撳瓨淇℃伅鎺ュ彛")
+    @GetMapping  ("/materialStoreSvThirdParty/{projectNumber}")
+    public Result materialStoreSvThirdParty(@PathVariable  String projectNumber ){
+        return Result.success(glassOptimizeService.materialStoreSvThirdParty(projectNumber));
+    }
+
+    //宸ョ▼淇℃伅娴佺▼鍗�
+    @ApiOperation("宸ョ▼淇℃伅娴佺▼鍗℃帴鍙�")
+    @PostMapping  ("/getProcessCardMpThirdParty/{projectNo}")
+    public Result getProcessCardMpThirdParty(
+            @PathVariable String projectNo){
+        return Result.success(glassOptimizeService.getProcessCardMpThirdParty(projectNo));
+    }
+
+    @ApiOperation("mes宸ョ▼浠诲姟涓嬪彂鎺ュ彛")
+    @PostMapping("/getIssuingProjects")
+    public Result issuingProjects(@RequestBody String projectNo) throws JsonProcessingException {
+        return Result.success(glassOptimizeService.issuingProjects(projectNo));
+    }
+
+
+    @ApiOperation("mes宸ョ▼鐢熶骇涓嶅彲瑙佹帴鍙�")
+    @PostMapping("/issuingCancelProject")
+    public Result issuingCancelProject(@RequestBody String projectNo){
+        return Result.success(glassOptimizeService.issuingCancelProject(projectNo));
+    }
+
 
 
 

--
Gitblit v1.8.0