yaozhixue il y a 1 an
Parent
commit
46c8169691

+ 5 - 1
src/main/java/com/zfire/jiasm/syncdata/download/order/数据下载.txt

@@ -5,6 +5,7 @@ SELECT * FROM itf_gree_to_fa_syn_rule order by id 定时同步
 这里是安装工单下载
 SELECT * FROM itf_gree_to_fa_install_syn_rule order by id 定时同步
 TL_SynDataFrom_tbl_az_assign_lc_ls_batch 该过程把下载的安装工单数据同步到本地数据表
+itf_tbl_az_assign_lc_ls_download
 
 SELECT * FROM itf_gree_to_fa_download_task where need_download=1 order by id; 批量执行一次
 
@@ -15,7 +16,10 @@ SELECT * from itf_gree_to_fa_download_task_rule;
 select * from itf_gree_to_fa_download_task_type;
 -- 下载任务
 select * from itf_gree_to_fa_download_task_list;
-
+这里是维修工单下载
+SELECT * FROM itf_gree_to_fa_repair_syn_rule order by id
+TL_SynDataFrom_tbl_assign_batch 该过程把下载的工单数据同步到本地数据表
+itf_tbl_assign_download
 
 ############################ 工单子信息 下载 ###########################
 1:落本地表时生成工单子表下载任务表数据

+ 8 - 6
src/main/java/com/zfire/jiasm/syncdata/service/impl/AddInstallBusinessImpl.java

@@ -2483,9 +2483,8 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
         // pgmxid主键
         // 生成工单产品对象
         for (ItfTblAzAssignMxDownload mx:orderMx){
-            OrderProduct op = new OrderProduct();
-            getOrderProduct(orderBase, orderProducts, sysDictRefDLMap, sysDictRefXLMap,
-                    sysDictRefXiLieMap, mx, op);
+            OrderProduct op = getOrderProduct(orderBase, orderProducts, sysDictRefDLMap, sysDictRefXLMap,
+                    sysDictRefXiLieMap, mx);
         }
     }
 
@@ -2502,9 +2501,8 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
         for (ItfTblAzAssignMxDownload mx:orderMx){
             insertnum=1;
             outid=1;
-            OrderProduct op = new OrderProduct();
             // 生成工单产品对象
-            getOrderProduct(orderBase, orderProducts, sysDictRefDLMap, sysDictRefXLMap, sysDictRefXiLieMap, mx, op);
+            OrderProduct op = getOrderProduct(orderBase, orderProducts, sysDictRefDLMap, sysDictRefXLMap, sysDictRefXiLieMap, mx);
             // 生成采集明细数据+附件数据
             // 总数量一条条插入,内外机数量不再拆分
             extracted(orderBase, oids, odfs, insertnum, outid, mx, op);
@@ -2537,7 +2535,10 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
         }
     }
 
-    private void getOrderProduct(OrderBase orderBase, List<OrderProduct> orderProducts, Map<String, List<SysDictRef>> sysDictRefDLMap, Map<String, List<SysDictRef>> sysDictRefXLMap, Map<String, List<SysDictRef>> sysDictRefXiLieMap, ItfTblAzAssignMxDownload mx, OrderProduct op) {
+    private OrderProduct getOrderProduct(OrderBase orderBase, List<OrderProduct> orderProducts,
+                                 Map<String, List<SysDictRef>> sysDictRefDLMap, Map<String, List<SysDictRef>> sysDictRefXLMap,
+                                 Map<String, List<SysDictRef>> sysDictRefXiLieMap, ItfTblAzAssignMxDownload mx) {
+        OrderProduct op = new OrderProduct();
         op.setId(UUID.randomUUID().toString());
         op.setOrderBaseId(orderBase.getId());
         // pgmxid主键
@@ -2588,6 +2589,7 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
         op.setBuyTime(orderBase.getBuyTime());
         op.setRemark(mx.getBeiz());
         orderProducts.add(op);
+        return op;
     }
 
     @NotNull

+ 20 - 16
src/main/java/com/zfire/jiasm/syncdata/service/impl/OrderBaseInstallCjOrWgServiceImpl.java

@@ -1857,9 +1857,13 @@ public class OrderBaseInstallCjOrWgServiceImpl implements orderBaseInstallCjOrWg
                 .eq(OrderInstallDetailCode::getOrderBaseId, orderBaseId)
                 .eq(OrderInstallDetailCode::getOutId, 0)
                 .list();
+        if (CollectionUtils.isEmpty(oids)){
+            return;
+        }
 
         List<OrderInstallDetailCode> detaillist = orderInstallDetailCodeService.lambdaQuery()
                 .eq(OrderInstallDetailCode::getOrderBaseId, orderBaseId)
+                .ne(OrderInstallDetailCode::getOutId, 0)
                 .list();
         // 找出最大的序 默认值为0
         int outId=0;
@@ -1869,12 +1873,10 @@ public class OrderBaseInstallCjOrWgServiceImpl implements orderBaseInstallCjOrWg
                     outId = item.getOutId();
                 }
             }
-            for (OrderInstallDetailCode ite:detaillist){
-                if (ite.getOutId() == 0){
-                    outId++;
-                    ite.setOutId(outId);
-                    upList.add(ite);
-                }
+            for (OrderInstallDetailCode ite:oids){
+                outId++;
+                ite.setOutId(outId);
+                upList.add(ite);
             }
             // 修改序
             if (upList.size()>0){
@@ -1892,27 +1894,29 @@ public class OrderBaseInstallCjOrWgServiceImpl implements orderBaseInstallCjOrWg
                 .eq(OrderInstallDetail::getOrderBaseId, orderBaseId)
                 .eq(OrderInstallDetail::getOutId, 0)
                 .list();
+        if (CollectionUtils.isEmpty(oids)){
+            return;
+        }
 
         List<OrderInstallDetail> detaillist = orderInstallDetailService.lambdaQuery()
                 .eq(OrderInstallDetail::getOrderBaseId, orderBaseId)
+                .ne(OrderInstallDetail::getOutId, 0)
                 .list();
         // 找出最大的序 默认值为0
         int outId=0;
-        if (CollectionUtils.isNotEmpty(detaillist) && CollectionUtils.isNotEmpty(oids)){
+        if (CollectionUtils.isNotEmpty(detaillist) ){
             for (OrderInstallDetail item:detaillist){
                 if (outId<item.getOutId()){
                     outId = item.getOutId();
                 }
             }
-            for (OrderInstallDetail ite:detaillist){
-                if (ite.getOutId() == 0){
-                    outId++;
-                    ite.setOutId(outId);
-                    // 修改首次提交时间
-                    ite.setFirstTime(new Date());
-                    ite.setPgwcmxid(IdWorker.getIdStr());
-                    upList.add(ite);
-                }
+            for (OrderInstallDetail ite:oids){
+                outId++;
+                ite.setOutId(outId);
+                // 修改首次提交时间
+                ite.setFirstTime(new Date());
+                ite.setPgwcmxid(IdWorker.getIdStr());
+                upList.add(ite);
             }
             // 修改序
             if (upList.size()>0){

+ 86 - 41
src/main/java/com/zfire/jiasm/syncdata/service/impl/RepairProduceDataUploadServiceImpl.java

@@ -909,24 +909,41 @@ public class RepairProduceDataUploadServiceImpl implements RepairProduceDataUplo
         // 提取工单数据
         OrderBase orderBase = orderBaseService.lambdaQuery()
                 .eq(OrderBase::getId, sourceData.getOrderNo()).one();
-        // 删除工单更新被忽略
-        // 接收派工网点为空上传被忽略
-        if (StringUtils.isEmpty(orderBase.getReceWebsitId()) || orderBase.getReceWebsitId().equals("0")){
-            publicService.updateUploadTaskListStatus(row.getOrderNo(),row.getSynReqId(),1,66);
-            return ;
-        }
-        // 生成待同步的工单主表数据
-        getItfTblAssignUpload(brand, sysDictRefXLMapXq, taskId, sourceData, newDykh, orderBase);
-        // 生成短信评价发送数据
-        generateMessage(brand, sourceData, newDykh, orderBase);
-        // 检查附件完整性
-        if (checkFile(sourceData.getOrderNo(),row.getSynReqId())){
-            return ;
-        }
-        // 处理采集明细数据(生成维修结算+生成维修现象数据)    TL_PrePareSynDataby_fa_order_repair_detail
-        generateRepairDetailOrReason(brand, orderBase);
+        if (orderBase !=null && orderBase.getUploadFlag()){
+            // 增加初始化处理,不需要事务
+            // 同步工单的pgid,pguuid
+            upOrderBasePgid(sourceData, orderBase, newDykh);
+            // 同步维修工单产品信息 pgid
+            upOrderProduct(sourceData, newDykh);
+            // 同步维修工单操作日志pgid
+            uporderRepairOperatingLogpgid(sourceData, newDykh);
+            // 同步预约改约-总部短信发送请求fjid 这里字段必须有值,这里无需处理
+            // upFaGreeSmsFjid(sourceData, newDykh);
+            // 同步派服务人员-短信发送请求fjid 这里字段必须有值,这里无需处理
+            // upFaGreeSmsWorker(sourceData, newDykh);
 
 
+
+
+
+
+            // 删除工单更新被忽略
+            // 接收派工网点为空上传被忽略
+            if (StringUtils.isEmpty(orderBase.getReceWebsitId()) || orderBase.getReceWebsitId().equals("0")){
+                publicService.updateUploadTaskListStatus(row.getOrderNo(),row.getSynReqId(),1,66);
+                return ;
+            }
+            // 生成待同步的工单主表数据
+            getItfTblAssignUpload(brand, sysDictRefXLMapXq, taskId, sourceData, newDykh, orderBase);
+            // 生成短信评价发送数据
+            generateMessage(brand, sourceData, newDykh, orderBase);
+            // 检查附件完整性
+            if (checkFile(sourceData.getOrderNo(),row.getSynReqId())){
+                return ;
+            }
+            // 处理采集明细数据(生成维修结算+生成维修现象数据)    TL_PrePareSynDataby_fa_order_repair_detail
+            generateRepairDetailOrReason(brand, orderBase);
+        }
         // 修改数据上传任务表中的状态   这里固定值 66
         publicService.updateUploadTaskListStatus(row.getOrderNo(),row.getSynReqId(),1,66);
         return ;
@@ -1181,7 +1198,7 @@ public class RepairProduceDataUploadServiceImpl implements RepairProduceDataUplo
         WebsitSH websitSH = new WebsitSH();
 
         // 修改序采集单内的序
-        upOrderRepairDetail(orderBase);
+        upOrderRepairDetail(orderBase.getId());
 
         // 格力总部数据采集主键为空时代表为公司采集的数据,未赋值时账值 wxjsguid = brandWxjsguid
         // 格力总部数据采集主键为空时代表为公司采集的数据,填写UUID
@@ -1224,10 +1241,20 @@ public class RepairProduceDataUploadServiceImpl implements RepairProduceDataUplo
         return jykt;
     }
 
-    private void upOrderRepairDetail(OrderBase orderBase) {
+    private void upOrderRepairDetail(String id) {
         List<OrderRepairDetail> upList = new ArrayList<>();
+        // 看有无需要修改的数据
+        List<OrderRepairDetail> detaillistz = orderRepairDetailService.lambdaQuery()
+                .eq(OrderRepairDetail::getOrderBaseId, id)
+                .eq(OrderRepairDetail::getOutId, 0)
+                .orderByAsc(OrderRepairDetail::getCreateTime).list();
+        if (CollectionUtils.isEmpty(detaillistz)){
+            return;
+        }
+
         List<OrderRepairDetail> detaillist = orderRepairDetailService.lambdaQuery()
-                .eq(OrderRepairDetail::getOrderBaseId, orderBase.getId())
+                .eq(OrderRepairDetail::getOrderBaseId, id)
+                .ne(OrderRepairDetail::getOutId, 0)
                 .orderByAsc(OrderRepairDetail::getCreateTime).list();
         // 找出最大的序 默认值为0
         int outId=0;
@@ -1237,7 +1264,7 @@ public class RepairProduceDataUploadServiceImpl implements RepairProduceDataUplo
                     outId = item.getOutId();
                 }
             }
-            for (OrderRepairDetail ite:detaillist){
+            for (OrderRepairDetail ite:detaillistz){
                 if (ite.getOutId() == 0){
                     outId++;
                     OrderRepairDetail n = new OrderRepairDetail();
@@ -1284,7 +1311,7 @@ public class RepairProduceDataUploadServiceImpl implements RepairProduceDataUplo
     }
 
     private void getItfTblAssignUpload(Brand brand, Map<String, List<SysDictRef>> sysDictRefXLMapXq, Long taskId, OutJiasmToGreeUploadTaskList sourceData, String newDykh, OrderBase orderBase) {
-        // 同步工单的pgid
+        /*// 同步工单的pgid
         upOrderBasePgid(sourceData, orderBase, newDykh);
         // 同步工单的pguuid
         upOrderBasePgguid(sourceData, orderBase);
@@ -1295,7 +1322,7 @@ public class RepairProduceDataUploadServiceImpl implements RepairProduceDataUplo
         // 同步预约改约-总部短信发送请求fjid
         upFaGreeSmsFjid(sourceData, newDykh);
         // 同步派服务人员-短信发送请求fjid
-        upFaGreeSmsWorker(sourceData, newDykh);
+        upFaGreeSmsWorker(sourceData, newDykh);*/
 
         // 数据写入待同步-维修工单上传记录表
         OrderPar orderPar = new OrderPar();
@@ -1312,10 +1339,22 @@ public class RepairProduceDataUploadServiceImpl implements RepairProduceDataUplo
     }
 
     private void upOrderProduct(OutJiasmToGreeUploadTaskList sourceData, String newDykh) {
-        OrderPar orderPar = new OrderPar();
-        orderPar.setOrderNo(sourceData.getOrderNo());
-        orderPar.setPgid(newDykh);
-        getOrderProductMapper.upPgid(orderPar);
+        List<OrderProduct> uops = new ArrayList<>();
+        List<OrderProduct> ops = orderProductService.lambdaQuery()
+                .eq(OrderProduct::getOrderBaseId,sourceData.getOrderNo())
+                .eq(OrderProduct::getPgid,"").list();
+        if (CollectionUtils.isEmpty(ops)){
+            return;
+        }
+        for (OrderProduct item:ops){
+            OrderProduct u = new OrderProduct();
+            MyBeanUtils.copyProperties(item,u);
+            u.setPgid(newDykh);
+            uops.add(u);
+        }
+
+        orderProductService.updateBatchById(uops);
+        uops.clear();
     }
 
     private void upFaGreeSmsWorker(OutJiasmToGreeUploadTaskList sourceData, String newDykh) {
@@ -1746,14 +1785,22 @@ public class RepairProduceDataUploadServiceImpl implements RepairProduceDataUplo
     }
 
     private void uporderRepairOperatingLogpgid(OutJiasmToGreeUploadTaskList sourceData, String newDykh) {
-        OrderRepairOperatingLog up = new OrderRepairOperatingLog();
-        up.setPgid(Long.valueOf(newDykh));
-        up.setUpdateTime(new Date());
-        QueryWrapper upWrapper = new QueryWrapper<OrderRepairOperatingLog>()
-                .eq("order_base_id", sourceData.getOrderNo())
-                .and(wrapper->wrapper.isNull("pgid")
-                        .or().eq("pgid",0));
-        orderRepairOperatingLogService.update(up,upWrapper);
+        List<OrderRepairOperatingLog> uops = new ArrayList<>();
+        List<OrderRepairOperatingLog> ops = orderRepairOperatingLogService.lambdaQuery()
+                .eq(OrderRepairOperatingLog::getOrderBaseId,sourceData.getOrderNo())
+                .eq(OrderRepairOperatingLog::getPgid,0L).list();
+        if (CollectionUtils.isEmpty(ops)){
+            return;
+        }
+        for (OrderRepairOperatingLog item:ops){
+            OrderRepairOperatingLog u = new OrderRepairOperatingLog();
+            MyBeanUtils.copyProperties(item,u);
+            u.setPgid(Long.valueOf(newDykh));
+            uops.add(u);
+        }
+
+        orderRepairOperatingLogService.updateBatchById(uops);
+        uops.clear();
     }
 
     private void upOrderBasePgguid(OutJiasmToGreeUploadTaskList sourceData, OrderBase orderBase) {
@@ -1771,15 +1818,13 @@ public class RepairProduceDataUploadServiceImpl implements RepairProduceDataUplo
 
     private void upOrderBasePgid(OutJiasmToGreeUploadTaskList sourceData, @NotNull OrderBase orderBase, String newDykh) {
         if (StringUtils.isEmpty(orderBase.getPgid()) || orderBase.getPgid().equals("0")){
-            OrderBase up = new OrderBase();
-            up.setPgid(newDykh);
-            QueryWrapper upWrapper = new QueryWrapper<OrderBase>()
-                    .eq("id", sourceData.getOrderNo())
-                    .and(wrapper->wrapper.isNull("pgid")
-                            .or().eq("pgid",0));
-            orderBaseService.update(up,upWrapper);
             orderBase.setPgid(newDykh);
         }
+        if (StringUtils.isEmpty(orderBase.getPgguid()) || orderBase.getPgguid().equals("0")){
+            orderBase.setPgguid(UUID.randomUUID().toString());
+        }
+
+        orderBase.updateById();
     }
 
     private void stopUpload(@NotNull OutJiasmToGreeUploadTaskList ojtutl, String msg) {

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/upload/order/数据上传.txt

@@ -3,7 +3,7 @@
    select * from itf_fa_to_gree_uploadnotifylist;
    select * from out_jiasm_to_gree_uploadnotifylist;
    产生数据规则表-用于生成上传任务清单表 该表存放了需要上传的表规则, 需要上传的表都在该表内体现  用于提前提取部分参数值
-   根据请求记录表中的从该表是取出对应的执行过程
+   根据请求记录表中的数据从该表是取出对应的执行过程
    select * from itf_fa_to_gree_prepare_rule;-- 产生数据规则表
    select * from out_jiasm_to_gree_prepare_rule;