yaozhixue 1 年之前
父节点
当前提交
cb6c5f6dc8

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/service/AddInstallBusiness.java

@@ -14,7 +14,7 @@ public interface AddInstallBusiness {
     void UpdateOrder(Map<String, List<SysDictRef>> sysDictRefDLMap, Map<String, List<SysDictRef>> sysDictRefXLMap,
                      Map<String, List<SysDictRef>> sysDictRefXiLieMap, Brand brand, ItfTblAzAssignLcLsDownload item);
 
-    Boolean addOrderApi(Map<String, List<SysDictRef>> sysDictRefDLMap, Map<String, List<SysDictRef>> sysDictRefXLMap,
+    void addOrderApi(Map<String, List<SysDictRef>> sysDictRefDLMap, Map<String, List<SysDictRef>> sysDictRefXLMap,
                   Map<String, List<SysDictRef>> sysDictRefXiLieMap, Brand brand, ItfTblAzAssignLcLsDownload item, Boolean flag) throws Exception;
 
     void updateOrderApi(Map<String, List<SysDictRef>> sysDictRefDLMap, Map<String, List<SysDictRef>> sysDictRefXLMap,

+ 2 - 0
src/main/java/com/zfire/jiasm/syncdata/service/OrderService.java

@@ -26,4 +26,6 @@ public interface OrderService extends IService<OrderBase> {
     // 平台工单地理位置转成商户工单地理位置 无依平台为准
     void tpPositionTosh(ItfTblAzAssignLcLsUpload lcls);
 
+    void getOrderDetailRec(ItfTblAzAssignLcLsDownload item, OrderBase orderBase, List<ItfGreeToFaDownloadTaskList> its);
+
 }

+ 114 - 45
src/main/java/com/zfire/jiasm/syncdata/service/impl/AddInstallBusinessImpl.java

@@ -175,7 +175,7 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Boolean addOrderApi(Map<String, List<SysDictRef>> sysDictRefDLMap, Map<String, List<SysDictRef>> sysDictRefXLMap,
+    public void addOrderApi(Map<String, List<SysDictRef>> sysDictRefDLMap, Map<String, List<SysDictRef>> sysDictRefXLMap,
                          Map<String, List<SysDictRef>> sysDictRefXiLieMap, Brand brand, ItfTblAzAssignLcLsDownload item, Boolean flag) throws Exception {
         List<OrderReAppointment> oa = new ArrayList<>();
         List<OrderAppraise> oanew = new ArrayList<>();
@@ -190,9 +190,6 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
         List<OrderAppeal> orderAppeal = new ArrayList<>();
         List<ItfGreeToFaDownloadTaskList> its = new ArrayList<>();
 
-        // 向工单子表下载任务表插入数据
-        downInformation(item);
-
         // 工单机型
         List<ItfTblAzAssignMxDownload> orderMx = itfTblAzAssignMxDownloadService.lambdaQuery()
                 .eq(ItfTblAzAssignMxDownload::getDownloadTaskNo, item.getDownloadTaskNo())
@@ -207,10 +204,10 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
                 .orderByAsc(ItfTblAzAssignFkmxDownload::getCreatedDate)
                 .list();
         synReqFkMxIds = fkmxs.stream().map(ItfTblAzAssignFkmxDownload::getSynReqId).collect(Collectors.toList());
-        log.info("提取反馈明细数据:{} 条目数{}",item.getDownloadTaskNo(),synReqFkMxIds.size());
+        log.info("提取反馈明细数据:{} 条目数{}", item.getDownloadTaskNo(),synReqFkMxIds.size());
 
         // 获取安装工单主表
-        // 同时生成改派申请数据、采集预下载数据 2201
+        // 同时生成改派申请数据、采集预下载数据 2201 称到最下面处理
         OrderBase orderBase = getAddOrderBaseApi(item, brand,its);
 
         // 以旧换新数据下载同步表
@@ -222,8 +219,7 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
         getOrderProduct(orderBase, orderProducts, sysDictRefDLMap, sysDictRefXLMap, sysDictRefXiLieMap, orderMx,oids,odfs);
 
         // 获取工单操作明细- 操作日志表
-        List<OrderInstallOperatingLog> oiolList = getOrderInstallOperatingLogs(fkmxs, orderBase,item);
-        log.info("反馈明细结果数据:{} 条目数{}",orderBase.getId(),oiolList.size());
+        List<OrderInstallOperatingLog> oiolList = getOrderInstallOperatingLogs(fkmxs, orderBase, item);
 
         // 获取安装费用清单 - 对应扩展表
         List<ItfTblAzAssignFeeDownload> fyqd = itfTblAzAssignFeeDownloadService.lambdaQuery()
@@ -247,24 +243,88 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
         getOrderAppraise(orderBase, sysDictRefDLMap, oanew, item.getDownloadTaskNo(), getpjSynReqId,faGreeSms,orderAppeal);
 
         //网点转换还原
-        publicService.revertFun(orderBase,item);
-        // 生成工单
-        return createInstallOrder(item, orderProducts, oiolList, odfs, synReqIds,
-                synReqFkMxIds, synReqYfYyIds, faGreeSms, orderAppeal, its,
-                orderBase, orderWorker, fyqd, orderInstall, getpjSynReqId, flag,oids,
-                oa);
+        publicService.revertFun(orderBase, item);
+        // 接口生成工单
+        if (createInstallOrder(item, orderProducts,orderBase, orderWorker,orderInstall, flag)){
+            orderEndPro(item, oa, oids, odfs, synReqIds, synReqFkMxIds, synReqYfYyIds, faGreeSms, orderAppeal, its, orderBase, oiolList, fyqd, getpjSynReqId);
+        }
     }
 
-    @NotNull
+
+    public void orderEndPro(ItfTblAzAssignLcLsDownload item, List<OrderReAppointment> oa,
+                            List<OrderInstallDetail> oids, List<OrderDetailFile> odfs,
+                            List<Long> synReqIds, List<Long> synReqFkMxIds, List<Long> synReqYfYyIds,
+                            List<FaGreeSms> faGreeSms, List<OrderAppeal> orderAppeal,
+                            List<ItfGreeToFaDownloadTaskList> its, OrderBase orderBase,
+                            List<OrderInstallOperatingLog> oiolList, List<ItfTblAzAssignFeeDownload> fyqd,
+                            List<Long> getpjSynReqId) throws Exception {
+        try{
+            // 向工单子表下载任务表插入数据
+            downInformation(item);
+
+            // 采集数据下载
+            orderService.getOrderDetailRec(item, orderBase, its);
+
+            // 安装工单数据落本地表
+            addOrderDataApi(item.getSynReqId(), synReqIds, synReqFkMxIds, synReqYfYyIds, fyqd, getpjSynReqId,
+                    faGreeSms, orderAppeal, its, odfs, oiolList, oids, oa);
+        } catch (Exception ex) {
+            // 抛异常目的数据回滚
+            String msg="工单接口后数据处理失败交给修改处理";
+            throw new Exception(msg);
+        }
+
+
+    }
+
+
     private Boolean createInstallOrder(ItfTblAzAssignLcLsDownload item, List<OrderProduct> orderProducts,
-                                       List<OrderInstallOperatingLog> oiolList,
-                                       List<OrderDetailFile> odfs, List<Long> synReqIds, List<Long> synReqFkMxIds,
-                                       List<Long> synReqYfYyIds, List<FaGreeSms> faGreeSms, List<OrderAppeal> orderAppeal,
-                                       List<ItfGreeToFaDownloadTaskList> its, OrderBase orderBase, OrderWorker orderWorker,
-                                       List<ItfTblAzAssignFeeDownload> fyqd,
-                                       OrderInstall orderInstall, List<Long> getpjSynReqId, Boolean flag,
-                                       List<OrderInstallDetail> oids,
-                                       List<OrderReAppointment> oa) throws Exception {
+                                   OrderBase orderBase, OrderWorker orderWorker,
+                                    OrderInstall orderInstall,Boolean flag) throws Exception {
+        // 创建工单
+        OrderAddBeanDTO createOrder = new OrderAddBeanDTO();
+        // 工单机型
+        List<OrderProduct> orderProductList = new ArrayList<>();
+        // 工单辅材表
+        List<OrderMaterial> orderMaterialList = new ArrayList<>();
+        // 工单清洗项目
+        List<OrderCleanItem> orderCleanItems = new ArrayList<>();
+
+        // 工单主表、机型、辅材、清洗、预约改约记录、师傅、创建日志、生成采集数据不要
+        getOrderApi(orderProducts, orderBase, orderWorker, orderInstall, createOrder,
+                orderProductList, orderMaterialList, orderCleanItems, flag);
+        log.info("创建安装工单接口 request:{}", JSONObject.toJSONString(createOrder));
+        ResponseHelper respone = jiasmApi.orderAdd(createOrder);
+        log.info("创建安装工单接口 respone:{}", JSONObject.toJSONString(respone));
+        if (respone.getCode()==200){
+            if (flag){
+                SyncCreateOrder sco = new SyncCreateOrder();
+                sco.setId(publicService.getUUID());
+                sco.setOrderBaseId(orderBase.getId());
+                sco.setPgidOrPgguid(item.getPgguid());
+                sco.setOrderJson(JSONObject.toJSONString(createOrder));
+                sco.setCreateTime(new Date());
+                syncCreateOrderService.save(sco);
+            }
+            return Boolean.TRUE;
+        } else {
+            String msg = publicService.getErrormessage(respone);
+            log.info(msg);
+            // 抛异常目的是把前期的数据修改回滚
+            throw new Exception(msg);
+        }
+    }
+
+
+    private void createInstallOrderBak(ItfTblAzAssignLcLsDownload item, List<OrderProduct> orderProducts,
+                                    List<OrderInstallOperatingLog> oiolList,
+                                    List<OrderDetailFile> odfs, List<Long> synReqIds, List<Long> synReqFkMxIds,
+                                    List<Long> synReqYfYyIds, List<FaGreeSms> faGreeSms, List<OrderAppeal> orderAppeal,
+                                    List<ItfGreeToFaDownloadTaskList> its, OrderBase orderBase, OrderWorker orderWorker,
+                                    List<ItfTblAzAssignFeeDownload> fyqd,
+                                    OrderInstall orderInstall, List<Long> getpjSynReqId, Boolean flag,
+                                    List<OrderInstallDetail> oids,
+                                    List<OrderReAppointment> oa) throws Exception {
         // 创建工单
         OrderAddBeanDTO createOrder = new OrderAddBeanDTO();
         // 工单机型
@@ -294,20 +354,11 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
             // 安装工单数据落本地表
             addOrderDataApi(item.getSynReqId(), synReqIds, synReqFkMxIds, synReqYfYyIds, fyqd, getpjSynReqId,
                     faGreeSms, orderAppeal, its, odfs, oiolList, oids, oa);
-
-            return Boolean.TRUE;
         } else {
             String msg = publicService.getErrormessage(respone);
             log.info(msg);
             // 抛异常目的是把前期的数据修改回滚
             throw new Exception(msg);
-
-            /*item.setSynErrMsg(msg);
-            if (msg.length()>1020){
-                item.setSynErrMsg(msg.substring(0,1020));
-            }
-            itfTblAzAssignLcLsDownloadService.updateById(item);
-            return Boolean.FALSE;*/
         }
     }
 
@@ -409,8 +460,6 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
         List<OrderDetailFile> odfs = new ArrayList<>();
         OrderBase oldr = new OrderBase();
 
-        // 向工单子表下载任务表插入数据
-        downInformation(item);
 
         // 提取本地订单
         OrderBase old = orderBaseService.lambdaQuery()
@@ -479,27 +528,47 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
         // 网点转换还原
         revertFun(oldr, item, upInfo);
 
+        if (upInstallOrder(flag, orderProductsUpdate,upInfo, own,orderInstall, order, orderProductList, orderMaterialList, orderCleanItems)){
+
+            endUpInstallOrder(item, synReqYfYyIds, addoalists, mxsynreqids, synreqids, addoiolList, getpjSynReqId, addoalist, faGreeSms, orderAppeal, its, odfs, upInfo, fyqd);
+        }
+    }
+
+    private void endUpInstallOrder(ItfTblAzAssignLcLsDownload item, List<Long> synReqYfYyIds, List<OrderReAppointment> addoalists, List<ItfTblAzAssignMxDownload> mxsynreqids, List<ItfTblAzAssignFkmxDownload> synreqids, List<OrderInstallOperatingLog> addoiolList, List<Long> getpjSynReqId, List<OrderAppraise> addoalist, List<FaGreeSms> faGreeSms, List<OrderAppeal> orderAppeal, List<ItfGreeToFaDownloadTaskList> its, List<OrderDetailFile> odfs, OrderBase upInfo, List<ItfTblAzAssignFeeDownload> fyqd) throws Exception {
+        try{
+            // 向工单子表下载任务表插入数据
+            downInformation(item);
+
+            // 采集数据下载
+            orderService.getOrderDetailRec(item, upInfo, its);
+
+            // 安装工单数据修改落本地表
+            addOrUpdateOrderDataApi(item, mxsynreqids, synreqids, addoiolList,
+                    fyqd, synReqYfYyIds, getpjSynReqId,
+                    addoalist, faGreeSms, orderAppeal, its, odfs, addoalists);
+        } catch (Exception ex) {
+            // 抛异常目的数据回滚
+            String msg="工单接口后数据处理失败";
+            throw new Exception(msg);
+        }
+    }
+
+    private Boolean upInstallOrder(Boolean flag, List<OrderProduct> orderProductsUpdate,OrderBase upInfo, OrderWorker own,
+                                   OrderInstall orderInstall, OrderAddBeanDTO order,
+                                   List<OrderProduct> orderProductList, List<OrderMaterial> orderMaterialList,
+                                   List<OrderCleanItem> orderCleanItems) throws Exception {
         // 工单主表、机型、辅材、清洗、预约改约记录、师傅、创建日志、生成采集数据不要
-        getOrderApi(orderProductsUpdate, upInfo, own, orderInstall, order, orderProductList, orderMaterialList, orderCleanItems,flag);
+        getOrderApi(orderProductsUpdate, upInfo, own, orderInstall, order, orderProductList, orderMaterialList, orderCleanItems, flag);
         log.info("修改安装工单接口 request:{}", JSONObject.toJSONString(order));
         ResponseHelper respone = jiasmApi.orderAdd(order);
         log.info("修改安装工单接口 respone:{}", JSONObject.toJSONString(respone));
         if (respone.getCode()==200){
-            // 安装工单数据修改落本地表
-            addOrUpdateOrderDataApi(item, mxsynreqids, synreqids,addoiolList,
-                    fyqd, synReqYfYyIds, getpjSynReqId,
-                    addoalist, faGreeSms,orderAppeal, its,odfs, addoalists);
+            return Boolean.TRUE;
         } else {
             String msg = publicService.getErrormessage(respone);
             log.info(msg);
             // 抛异常目的是把前期的数据修改回滚
             throw new Exception(msg);
-
-            /*item.setSynErrMsg(msg);
-            if (msg.length()>1020){
-                item.setSynErrMsg(msg.substring(0,1020));
-            }
-            itfTblAzAssignLcLsDownloadService.updateById(item);*/
         }
     }
 

+ 4 - 3
src/main/java/com/zfire/jiasm/syncdata/service/impl/OrderServiceImpl.java

@@ -254,11 +254,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderBaseMapper, OrderBase> im
         // 接收派工网点与所属区域有差异时 以接收网点为准 本身就是按网点来的,这里无需处理
 
         // 99999999 待验证要不要处理 todo
-        // 采集数据下载
-        getOrderDetailRec(item, orderBase, its);
+        // 采集数据下载 移动外面处理
+        // getOrderDetailRec(item, orderBase, its);
     }
 
-    private void getOrderDetailRec(ItfTblAzAssignLcLsDownload item, OrderBase orderBase, List<ItfGreeToFaDownloadTaskList> its) {
+    @Override
+    public void getOrderDetailRec(ItfTblAzAssignLcLsDownload item, OrderBase orderBase, List<ItfGreeToFaDownloadTaskList> its) {
         if (orderBase.getOrderStatus().equals(OrderStatusEnum.INSTALL_STATUS_A1304.getCode()) ||
                 orderBase.getOrderStatus().equals(OrderStatusEnum.INSTALL_STATUS_A1309.getCode())){
             // 提取本地订单