From 97147c3155ef75e344cfbfc9752d08228cbabc64 Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期二, 25 三月 2025 08:26:38 +0800
Subject: [PATCH] 提交后端报工转移程序

---
 north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java       |  243 +++++++++++++++++++++++++++++++---
 north-glass-erp/src/main/java/com/example/erp/entity/pp/ReportingWorkTransfer.java       |   28 ++++
 north-glass-erp/src/main/java/com/example/erp/dto/pp/OrderNumberTransferDTO.java         |   45 ++++++
 north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkTransferMapper.java |    9 +
 north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderDetail.java                 |    2 
 north-glass-erp/src/main/java/com/example/erp/config/AppConfig.java                      |   13 +
 north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java |    6 
 north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java         |    7 +
 north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java                    |    4 
 north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml                           |    4 
 10 files changed, 333 insertions(+), 28 deletions(-)

diff --git a/north-glass-erp/src/main/java/com/example/erp/config/AppConfig.java b/north-glass-erp/src/main/java/com/example/erp/config/AppConfig.java
new file mode 100644
index 0000000..5369bd7
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/config/AppConfig.java
@@ -0,0 +1,13 @@
+package com.example.erp.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.client.RestTemplate;
+
+@Configuration
+public class AppConfig {
+    @Bean
+    public RestTemplate restTemplate() {
+        return new RestTemplate();
+    }
+}
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java
index 3be1e02..d27b7fe 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java
@@ -157,4 +157,10 @@
         return  Result.seccess(reportingWorkService.SaveReportingWorkSv(reportingWork));
     }
 
+    @ApiOperation("鎶ュ伐杞Щ")
+    @PostMapping  ("/reportingWorkTransfer")
+    public Result reportingWorkTransfer(@RequestBody Map<String,String> reportingWork)  {
+        return  Result.seccess(reportingWorkService.reportingWorkTransferSv(reportingWork));
+    }
+
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java b/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java
index 99cdc19..f048d79 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java
@@ -255,8 +255,15 @@
     @ApiOperation("鎵嬫満鎵爜鐜荤拑淇℃伅")
     @PostMapping("/scannerGlassInfo/{projectNo}")
     public Result scannerGlassInfo(@PathVariable String projectNo)  {
+        System.out.println("123123");
         return  Result.seccess(orderService.scannerGlassInfo(projectNo));
     }
 
+    @PostMapping("/test")
+    public Result scannerGlassInfo()  {
+        System.out.println("123123");
+        return  Result.seccess(null);
+    }
+
 
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/dto/pp/OrderNumberTransferDTO.java b/north-glass-erp/src/main/java/com/example/erp/dto/pp/OrderNumberTransferDTO.java
new file mode 100644
index 0000000..0dc2533
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/dto/pp/OrderNumberTransferDTO.java
@@ -0,0 +1,45 @@
+package com.example.erp.dto.pp;
+
+import lombok.Data;
+
+/**
+ * 璁㈠崟搴忓彿鎶ュ伐杞崲鍙樻洿浼犺緭绫�
+ */
+
+@Data
+public class OrderNumberTransferDTO {
+    /**
+     * 鏃ф祦绋嬪崱鍙�
+     */
+    private String oldProcessId;
+
+    /**
+     * 鏃у簭鍙�
+     */
+    private String oldOrderNumber;
+
+    /**
+     * 鏃у眰鍙�
+     */
+    private Integer oldTechnologyNumber;
+
+    /**
+     * 淇℃祦绋嬪崱鍙�
+     */
+    private String newProcessId;
+
+    /**
+     * 鏂板簭鍙�
+     */
+    private String newOrderNumber;
+
+    /**
+     * 鏂板眰鍙�
+     */
+    private Integer newTechnologyNumber;
+
+    /**
+     * 鍙樻洿鏁伴噺
+     */
+    private Integer changeNumber;
+}
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java b/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java
index a23d832..48ffb43 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/pp/FlowCard.java
@@ -62,6 +62,10 @@
     private Integer sort;
     //鏋跺彿
     private String rack;
+    //璁㈠崟杞Щ瀵煎叆鏁伴噺
+    private Integer importNumber;
+    //璁㈠崟杞Щ瀵煎嚭鏁伴噺
+    private Integer exportNumber;
     //寤虹珛鏃堕棿
     private LocalDate createTime;
     //淇敼鏃堕棿
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/pp/ReportingWorkTransfer.java b/north-glass-erp/src/main/java/com/example/erp/entity/pp/ReportingWorkTransfer.java
new file mode 100644
index 0000000..42a82a6
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/pp/ReportingWorkTransfer.java
@@ -0,0 +1,28 @@
+package com.example.erp.entity.pp;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+@Data
+public class ReportingWorkTransfer {
+    @TableId(type = IdType.AUTO)
+    private Long  id;
+    //琚浆绉昏鍗曞彿
+    private String  oldOrder;
+    //琚浆绉诲簭鍙�
+    private Integer  oldOrderNumber;
+    //琚浆绉诲唴瀹癸紙sd鎶ュ伐娴佺▼琛級
+    private String  oldReportContent;
+
+    //鏂拌鍗�
+    private String  newOrder;
+    //鏂拌鍗曞簭鍙�
+    private Integer  newOrderNumber;
+    //鏂拌浆绉诲唴瀹�
+    private String  newReportContent;
+    //寤虹珛鏃堕棿
+    private LocalDate createTime;
+}
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderDetail.java b/north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderDetail.java
index b60d7df..f9c1ced 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderDetail.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderDetail.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.example.erp.entity.mm.FinishedGoodsInventory;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -13,6 +14,7 @@
 import java.util.List;
 
 @Data
+@TableName("sd.`order_detail`")
 public class OrderDetail {
     @TableId(type = IdType.AUTO)
     private Long id;
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkTransferMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkTransferMapper.java
new file mode 100644
index 0000000..d5923e7
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkTransferMapper.java
@@ -0,0 +1,9 @@
+package com.example.erp.mapper.pp;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.example.erp.entity.pp.ReportingWorkTransfer;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface ReportingWorkTransferMapper extends BaseMapper<ReportingWorkTransfer> {
+}
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
index 829693b..1ab73e9 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -4,19 +4,22 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.example.erp.common.Constants;
-import com.example.erp.entity.pp.DamageDetails;
-import com.example.erp.entity.pp.FlowCard;
-import com.example.erp.entity.pp.ReportingWork;
-import com.example.erp.entity.pp.ReportingWorkDetail;
+import com.example.erp.dto.pp.OrderNumberTransferDTO;
+import com.example.erp.entity.pp.*;
 import com.example.erp.entity.sd.Order;
+import com.example.erp.entity.sd.OrderDetail;
 import com.example.erp.entity.sd.OrderProcessDetail;
 import com.example.erp.entity.userInfo.Log;
 import com.example.erp.entity.userInfo.SysError;
 import com.example.erp.exception.ServiceException;
+import com.example.erp.mapper.mm.FinishedOperateLogMapper;
 import com.example.erp.mapper.pp.*;
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.example.erp.mapper.sd.OrderDetailMapper;
 import com.example.erp.mapper.sd.OrderGlassDetailMapper;
 import com.example.erp.mapper.sd.OrderMapper;
 import com.example.erp.mapper.sd.OrderProcessDetailMapper;
@@ -25,9 +28,15 @@
 import com.example.erp.service.userInfo.LogService;
 import com.example.erp.service.userInfo.SysErrorService;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import lombok.RequiredArgsConstructor;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import org.springframework.web.client.RestTemplate;
 
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
@@ -36,36 +45,31 @@
 
 @Service
 @DS("pp")
+@RequiredArgsConstructor
 public class ReportingWorkService {
-    final
-    ReportingWorkMapper reportingWorkMapper;
-    final
-    BasicDateProduceMapper basicDateProduceMapper;
-    final
-    DamageDetailsMapper damageDetailsMapper;
-    final
-    OrderProcessDetailMapper orderProcessDetailMapper;
-    final
-    ReportingWorkDetailMapper
-            reportingWorkDetailMapper;
-    final OrderMapper
-            orderMapper;
+    private final ReportingWorkTransferMapper reportingWorkTransferMapper;
+    private final ReportingWorkMapper reportingWorkMapper;
+    private final BasicDateProduceMapper basicDateProduceMapper;
+    private final DamageDetailsMapper damageDetailsMapper;
+    private final OrderProcessDetailMapper orderProcessDetailMapper;
+    private final ReportingWorkDetailMapper reportingWorkDetailMapper;
+    private final OrderMapper  orderMapper;
+    private final OrderDetailMapper orderDetailMapper;
 
-    final
-    FlowCardMapper flowCardMapper;
+    private final FlowCardMapper flowCardMapper;
 
-    final
-    OrderProcessDetailService orderProcessDetailService;
+    private final OrderProcessDetailService orderProcessDetailService;
 
-    final
-    LogService logService;
+    private final LogService logService;
 
-    final LogMapper logMapper;
+    private final LogMapper logMapper;
     private final OrderGlassDetailMapper orderGlassDetailMapper;
     private final SysErrorService sysErrorService;
+    private final FinishedOperateLogMapper finishedOperateLogMapper;
+    private final RestTemplate restTemplate;
 
 
-    public ReportingWorkService(ReportingWorkMapper reportingWorkMapper, BasicDateProduceMapper basicDateProduceMapper, DamageDetailsMapper damageDetailsMapper, ReportingWorkDetailMapper reportingWorkDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, OrderProcessDetailService orderProcessDetailService, OrderMapper orderMapper, FlowCardMapper flowCardMapper, LogService logService, LogMapper logMapper, OrderGlassDetailMapper orderGlassDetailMapper, SysErrorService sysErrorService) {
+    /*public ReportingWorkService(ReportingWorkMapper reportingWorkMapper, BasicDateProduceMapper basicDateProduceMapper, DamageDetailsMapper damageDetailsMapper, ReportingWorkDetailMapper reportingWorkDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, OrderProcessDetailService orderProcessDetailService, OrderMapper orderMapper, FlowCardMapper flowCardMapper, LogService logService, LogMapper logMapper, OrderGlassDetailMapper orderGlassDetailMapper, SysErrorService sysErrorService, OrderDetailMapper orderDetailMapper, FinishedOperateLogMapper finishedOperateLogMapper, ReportingWorkTransferMapper reportingWorkTransferMapper) {
         this.reportingWorkMapper = reportingWorkMapper;
         this.basicDateProduceMapper = basicDateProduceMapper;
         this.damageDetailsMapper = damageDetailsMapper;
@@ -78,7 +82,10 @@
         this.logMapper = logMapper;
         this.orderGlassDetailMapper = orderGlassDetailMapper;
         this.sysErrorService = sysErrorService;
-    }
+        this.orderDetailMapper = orderDetailMapper;
+        this.finishedOperateLogMapper = finishedOperateLogMapper;
+        this.reportingWorkTransferMapper = reportingWorkTransferMapper;
+    }*/
 
     public Map<String, Object> AddSelectLastWorkSv(String processIdStr, String technologyStr, String process, String reportType) {
         Map<String, Object> map = new HashMap<>();
@@ -819,4 +826,188 @@
 
         }
     }
+
+    @Transactional(rollbackFor = Exception.class)
+    public Object reportingWorkTransferSv(Map<String, String> reportingWork) {
+        Order oldOrder = orderMapper.selectOrderId(reportingWork.get("oldOrderId"));
+        OrderDetail oldOrderDetail = orderDetailMapper.selectOne(
+                new QueryWrapper<OrderDetail>()
+                        .eq("order_id", reportingWork.get("oldOrderId"))
+                        .eq("order_number", reportingWork.get("oldOrderNumber"))
+        );
+
+        Order newOrder = orderMapper.selectOrderId(reportingWork.get("newOrderId"));
+        OrderDetail newOrderDetail = orderDetailMapper.selectOne(
+                new QueryWrapper<OrderDetail>()
+                        .eq("order_id", reportingWork.get("newOrderId"))
+                        .eq("order_number", reportingWork.get("newOrderNumber"))
+        );
+        if(!Objects.equals(oldOrder.getCustomerId(), newOrder.getCustomerId())){
+            return "鏂版棫璁㈠崟瀹㈡埛涓嶄竴鑷�";
+        }
+        if(!Objects.equals(oldOrderDetail.getProductId(), newOrderDetail.getProductId())){
+            return "鏂版棫璁㈠崟浜у搧涓嶄竴鑷�";
+        }
+        if (!Objects.equals(oldOrderDetail.getWidth(), newOrderDetail.getWidth())
+                || !Objects.equals(oldOrderDetail.getHeight(), newOrderDetail.getHeight())){
+            return "鏂版棫璁㈠崟灏哄涓嶄竴鑷�";
+        }
+
+
+        //鑾峰彇鏃ц鍗曟槸鍚︽祦绋嬪崱鏄惁瀛樺湪
+        List<OrderProcessDetail> oldOrderProcessDetailList = orderProcessDetailMapper
+                .selectList(new QueryWrapper<OrderProcessDetail>()
+                        .eq("order_id", reportingWork.get("oldOrderId"))
+                        .eq("order_number", reportingWork.get("oldOrderNumber"))
+                );
+        if(oldOrderProcessDetailList.isEmpty()){
+            return "鏃ц鍗曟湭鍒嗘祦绋嬪崱";
+        }
+        //鑾峰彇鏂拌鍗曟槸鍚︽祦绋嬪崱鏄惁瀛樺湪
+        List<OrderProcessDetail> newOrderProcessDetailList = orderProcessDetailMapper
+                .selectList(new QueryWrapper<OrderProcessDetail>()
+                        .eq("order_id", reportingWork.get("newOrderId"))
+                        .eq("order_number", reportingWork.get("newOrderNumber"))
+                );
+        if(newOrderProcessDetailList.isEmpty()){
+            return "鏂拌鍗曟湭鍒嗘祦绋嬪崱";
+        }
+        //鏂拌鍗曟槸鍚﹀瓨鍦ㄥ凡缁忔帓鐗堝簭鍙�
+        List<FlowCard> newFlowCardLayoutStatus = flowCardMapper.selectList(new QueryWrapper<FlowCard>()
+                .eq("order_id", reportingWork.get("newOrderId"))
+                .eq("order_number", reportingWork.get("newOrderNumber"))
+                .gt("layout_status",0)
+        );
+        if(!newFlowCardLayoutStatus.isEmpty()){
+            return "鏂拌鍗曟搴忓彿瀛樺湪鎺掔増";
+        }
+        //鑾峰彇鏃ц鍗曟姤宸ユ暟鎹眹鎬�
+        List<OrderProcessDetail> oldOrderProcessDetailForReport = orderProcessDetailMapper
+                .selectList(new QueryWrapper<OrderProcessDetail>()
+                        .eq( "order_id", reportingWork.get("oldOrderId"))
+                        .eq("order_number", reportingWork.get("oldOrderNumber"))
+                        .gt("reporting_work_num",0)
+        );
+
+        Map<String,Object> log = new HashMap<>();
+        log.put("oldOrderBeforeChange",oldOrderProcessDetailForReport);
+
+        Map<String,Object> newOrderLog = new HashMap<>();
+        newOrderLog.put("newOrderBeforeChange",newOrderProcessDetailList);
+
+        //浼犵粰mes娴佺▼鍗℃暟閲忛泦鍚�
+        List<OrderNumberTransferDTO> orderNumberTransferList = new ArrayList<>();
+
+        oldOrderProcessDetailForReport.forEach(oldOrderProcessDetail -> {
+            int maxNum = 0;
+            for(OrderProcessDetail newOrderProcessDetail : newOrderProcessDetailList){
+                if(oldOrderProcessDetail.getReportingWorkNum() == 0){
+                    break;
+                }
+                //鍒ゆ柇灏忕墖鏄惁涓�鑷达紝宸ュ簭鏄惁涓�鑷�
+                if(newOrderProcessDetail.getProcess().equals(oldOrderProcessDetail.getProcess()) &&
+                        Objects.equals(newOrderProcessDetail.getTechnologyNumber(), oldOrderProcessDetail.getTechnologyNumber())){
+                    //鍒ゆ柇鏄惁涓虹涓�閬撳伐搴忥紝缁欏彲杞Щ鏈�澶у�艰祴鍊�
+                    if(oldOrderProcessDetail.getProcess().equals("鍒囧壊")){
+                        FlowCard  thisFlowCard = flowCardMapper.selectOne(new QueryWrapper<FlowCard>()
+                                .eq("process_id", newOrderProcessDetail.getProcessId())
+                                .eq("order_number", newOrderProcessDetail.getOrderNumber())
+                                .eq("technology_number",newOrderProcessDetail.getTechnologyNumber())
+                        );
+                        maxNum = thisFlowCard.getQuantity();
+                    }else{
+                        //褰撲笉鏄涓�閬撳伐搴忓垯锛屾嬁涓婁竴閬撳伐搴忎綔涓烘渶澶у��
+                        maxNum = orderProcessDetailMapper.selectById(newOrderProcessDetail.getId()-1).getReportingWorkNum();
+                    }
+                    //鍒ゆ柇琚浆绉荤殑鏁伴噺鏄惁澶т簬鍙浆绉荤殑鏁伴噺鏈�澶у��
+                    int transferNum = 0;
+                    if(oldOrderProcessDetail.getReportingWorkNum() > maxNum){
+                        transferNum = maxNum;
+                        oldOrderProcessDetail.setReportingWorkNum(oldOrderProcessDetail.getReportingWorkNum()-maxNum);
+                        oldOrderProcessDetail.setReportingWorkNumCount(oldOrderProcessDetail.getReportingWorkNumCount()-maxNum);
+                    }else{
+                        transferNum = oldOrderProcessDetail.getReportingWorkNum();
+                        oldOrderProcessDetail.setReportingWorkNum(0);
+                        oldOrderProcessDetail.setReportingWorkNumCount(0);
+                    }
+                    //鏇存柊鏃ц鍗曞皬鐗囨祦绋嬭〃鐨勬姤宸ユ暟閲�
+                    orderProcessDetailMapper.update(null,new UpdateWrapper<OrderProcessDetail>()
+                            .set("reporting_work_num",oldOrderProcessDetail.getReportingWorkNum())
+                            .set("reporting_work_num_count",oldOrderProcessDetail.getReportingWorkNumCount())
+                            .eq("id",oldOrderProcessDetail.getId())
+                    );
+                    //鏇存柊鏂拌鍗曞皬鐗囨祦绋嬭〃鐨勬姤宸ユ暟閲�
+                    orderProcessDetailMapper.update(null,new UpdateWrapper<OrderProcessDetail>()
+                            .set("reporting_work_num",transferNum)
+                            .set("reporting_work_num_count",transferNum)
+                            .eq("id",newOrderProcessDetail.getId())
+                    );
+                    if(oldOrderProcessDetail.getProcess().equals("鍒囧壊")){
+                        //鏇存柊鏃ц鍗曟祦绋嬪崱杞嚭鏁伴噺
+                        flowCardMapper.update(null,new UpdateWrapper<FlowCard>()
+                                .setSql("export_number = export_number + "+transferNum)
+                                .eq("process_id", oldOrderProcessDetail.getProcessId())
+                                .eq("order_number", oldOrderProcessDetail.getOrderNumber())
+                                .eq("technology_number",oldOrderProcessDetail.getTechnologyNumber())
+                        );
+                        //鏇存柊鏂拌鍗曟祦绋嬪崱杞嚭鏁伴噺
+                        flowCardMapper.update(null,new UpdateWrapper<FlowCard>()
+                                .setSql("import_number = import_number + "+transferNum)
+                                .eq("process_id", newOrderProcessDetail.getProcessId())
+                                .eq("order_number", newOrderProcessDetail.getOrderNumber())
+                                .eq("technology_number",newOrderProcessDetail.getTechnologyNumber())
+                        );
+
+                        //浼犵粰mes鏁版嵁璧嬪��
+                        OrderNumberTransferDTO orderNumberTransfer = new OrderNumberTransferDTO();
+                        orderNumberTransfer.setChangeNumber(transferNum);
+                        orderNumberTransfer.setOldProcessId(oldOrderProcessDetail.getProcessId());
+                        orderNumberTransfer.setNewProcessId(newOrderProcessDetail.getProcessId());
+                        orderNumberTransfer.setOldOrderNumber(oldOrderProcessDetail.getOrderNumber());
+                        orderNumberTransfer.setNewOrderNumber(newOrderProcessDetail.getOrderNumber());
+                        orderNumberTransfer.setOldTechnologyNumber(oldOrderProcessDetail.getTechnologyNumber());
+                        orderNumberTransfer.setNewTechnologyNumber(newOrderProcessDetail.getTechnologyNumber());
+                        orderNumberTransferList.add(orderNumberTransfer);
+
+                    }
+
+                }
+            }
+        });
+
+
+        //鎶婃棫璁㈠崟鏁版嵁鍜屾柊璁㈠崟鏁版嵁浼犲埌鏃ュ織琛ㄥ綋涓�
+        log.put("oldOrderChange",JSON.toJSONString(oldOrderProcessDetailForReport));
+
+        newOrderLog.put("newOrderChange",orderProcessDetailMapper
+                .selectList(new QueryWrapper<OrderProcessDetail>()
+                        .eq("order_id", reportingWork.get("newOrderId"))
+                        .eq("order_number", reportingWork.get("newOrderNumber"))
+                ));
+        //鏃ц鍗曚俊鎭紶鍏ユ棩蹇�
+        ReportingWorkTransfer reportingWorkTransfer = new ReportingWorkTransfer();
+        reportingWorkTransfer.setOldOrder(reportingWork.get("oldOrderId"));
+        reportingWorkTransfer.setOldOrderNumber(Integer.valueOf(reportingWork.get("oldOrderNumber")));
+        reportingWorkTransfer.setOldReportContent(JSON.toJSONString(log));
+
+        //鏂拌鍗曚俊鎭紶鍏ユ棩蹇�
+        reportingWorkTransfer.setNewOrder(reportingWork.get("newOrderId"));
+        reportingWorkTransfer.setNewOrderNumber(Integer.valueOf(reportingWork.get("newOrderNumber")));
+        reportingWorkTransfer.setNewReportContent(JSON.toJSONString(newOrderLog));
+        reportingWorkTransferMapper.insert(reportingWorkTransfer);
+        //restTemplate.postForObject("http://localhost:8086/order/test",orderNumberTransferList,String.class);
+
+        //鍚憁es鍙戦�乭ttp璇锋眰
+        ResponseEntity<String> response =restTemplate.exchange(
+                "http://localhost:88/api/loadGlass/order/order/orderChange",
+                HttpMethod.POST,
+                new HttpEntity<>(orderNumberTransferList),
+                String.class);
+
+        if(response.getStatusCode() == HttpStatus.OK){
+            return true;
+        }else{
+            return "mes鍝嶅簲瓒呮椂";
+        }
+    }
 }
diff --git a/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml b/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
index 183eb0a..359f204 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
@@ -137,8 +137,8 @@
             ogd.child_width,
             ogd.child_height,
             if(od.shape=1,'鏅舰',if(od.shape=2,'寮傚舰','')) as shape,
-            fc.quantity + ifnull(patch.patch_num,0) -odpd.reporting_work_num -odpd.broken_num   as quantity,
-            fc.quantity + ifnull(patch.patch_num,0) -odpd.reporting_work_num -odpd.broken_num   as completedQuantity,
+            fc.quantity -fc.export_number + ifnull(patch.patch_num,0) -odpd.reporting_work_num -odpd.broken_num   as quantity,
+            fc.quantity -fc.export_number + ifnull(patch.patch_num,0) -odpd.reporting_work_num -odpd.broken_num   as completedQuantity,
             odpd.reporting_work_num as completed,
             odpd.broken_num as onceBroken,
             if(fc.quantity -odpd.reporting_work_num = 0 ,true,false) as saveFlag, -- 鍒ゆ柇鏄惁宸茬粡瀹屾垚锛屽凡缁忓畬鎴愪笉搴忓彿鍜屽悓搴忓彿鏁伴噺鐩稿悓鎵嶈兘鎻愪氦

--
Gitblit v1.8.0