yaozhixue 1 jaar geleden
bovenliggende
commit
0fb3c63445

+ 7 - 0
src/main/java/com/zfire/jiasm/syncdata/api/OrderAddBeanDTO.java

@@ -216,4 +216,11 @@ public class OrderAddBeanDTO {
 
     // 操作标记:0=临时保存 1=下派服务单,2=下派网点,3=下派师傅,4=智能派工
     private Integer flag;
+
+    // 所属区域
+    private String region;
+    // 创建网点id
+    private String createWebsitId;
+    // 创建网点名称
+    private String createWebsitName;
 }

+ 3 - 0
src/main/java/com/zfire/jiasm/syncdata/service/PublicService.java

@@ -144,6 +144,9 @@ public interface PublicService {
     File createf(String name) throws IOException;
     // 修改附件序 outid
     void upOrderDetailFileOutId(String orderBaseId);
+    // 网点信息还原,
+    void revertFun(OrderBase order,ItfTblAzAssignLcLsDownload lcls);
+    void revertRepairFun(OrderBase order,ItfTblAssignDownload lcls);
 
 
 

+ 59 - 0
src/main/java/com/zfire/jiasm/syncdata/service/impl/AddInstallBusinessImpl.java

@@ -241,6 +241,8 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
         List<Long> getpjSynReqId = new ArrayList<>();
         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,
@@ -389,6 +391,7 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
         List<String> delOrderProduct = new ArrayList<>();
         List<String> delOrderInstallDetail = new ArrayList<>();
         List<OrderDetailFile> odfs = new ArrayList<>();
+        OrderBase oldr = new OrderBase();
 
         // 向工单子表下载任务表插入数据
         downInformation(item);
@@ -398,6 +401,9 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
                 .eq(OrderBase::getPgguid, item.getPgguid())
                 .last("limit 1").one();
 
+        // 为网点还原准备
+        MyBeanUtils.copyProperties(old,oldr);
+
         // 获取安装工单主表
         OrderBase newLCLS = getAddOrderBaseUpApi(item, brand, its);
         // 这里一定不能少 已生成了工单号,不能再次生成
@@ -454,6 +460,9 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
         // 工单清洗项目
         List<OrderCleanItem> orderCleanItems = new ArrayList<>();
 
+        // 网点转换还原
+        revertFun(oldr, item, upInfo);
+
         // 工单主表、机型、辅材、清洗、预约改约记录、师傅、创建日志、生成采集数据不要
         getOrderApi(orderProductsUpdate, upInfo, own, orderInstall, order, orderProductList, orderMaterialList, orderCleanItems,flag);
         log.info("修改安装工单接口 request:{}", JSONObject.toJSONString(order));
@@ -1414,6 +1423,56 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
         return old;
     }
 
+    private void revertFun(OrderBase old, ItfTblAzAssignLcLsDownload item, OrderBase upInfo) {
+        // 本地订单已关闭 且总部的最后修改时间在本地数据修改时间之前 不可修改
+        if (old.getOrderStatus().equals(GDOrderStatusEnum.INSTALL_STATUS_G10.getCode()) &&
+                (old.getUpdateTime()==null || item.getLastModifiedDate().compareTo(old.getUpdateTime())<0)){
+            return ;
+        }
+
+        // 1.安装工单主表基础信息更新
+        if (old.getUpdateTime()==null || item.getLastModifiedDate().compareTo(old.getUpdateTime())>0){
+            upInfo.setSaleWebsitId("");
+            upInfo.setSaleWebsitName("");
+            upInfo.setSaleWebsitSysNumber("");
+            if (StringUtils.isNotEmpty(item.getXsdwno())){
+                upInfo.setSaleWebsitId(item.getXsdwno());
+            }
+            if (StringUtils.isNotEmpty(item.getXswdmc())){
+                upInfo.setSaleWebsitName(item.getXswdmc());
+            }
+            if (StringUtils.isNotEmpty(item.getXsdwxtbh())){
+                upInfo.setSaleWebsitSysNumber(item.getXsdwxtbh());
+            }
+
+        }
+
+        // 2:网点信息修改 已待服务人员处理,不允更新网点   6,7,10
+        if (old.getOrderStatus().equals(GDOrderStatusEnum.INSTALL_STATUS_G6.getCode()) ||
+                old.getOrderStatus().equals(GDOrderStatusEnum.INSTALL_STATUS_G10.getCode()) ||
+                old.getOrderStatus().equals(GDOrderStatusEnum.INSTALL_STATUS_G7.getCode())){
+            // 售后网点
+            upInfo.setReceWebsitId("");
+            upInfo.setReceWebsitName("");
+            if (StringUtils.isNotEmpty(item.getJspgwdno())){
+                upInfo.setReceWebsitId(item.getJspgwdno());
+            }
+            if (StringUtils.isNotEmpty(item.getJspgwdmc())){
+                upInfo.setReceWebsitName(item.getJspgwdmc());
+            }
+
+            // 安装
+            upInfo.setWebsitId("");
+            upInfo.setWebsitName("");
+            if (StringUtils.isNotEmpty(item.getAzwdno())){
+                upInfo.setWebsitId(item.getAzwdno());
+            }
+            if (StringUtils.isNotEmpty(item.getAzwdmc())){
+                upInfo.setWebsitName(item.getAzwdmc());
+            }
+        }
+    }
+
     private void upBase(OrderBase old, ItfTblAzAssignLcLsDownload item, OrderBase lclsNew) {
         old.setOutUpdateSynReqId(item.getSynReqId());
         old.setUpdateTime(new Date());

+ 44 - 7
src/main/java/com/zfire/jiasm/syncdata/service/impl/AddRepairBusinessServiceImpl.java

@@ -213,6 +213,9 @@ public class AddRepairBusinessServiceImpl implements AddRepairBusinessService {
         // 用户预约改约数据处理 TL_SynDataFrom_tbl_assign_appointment
         generateAppointmentApi(item, us);
 
+        // 还原网点转换信息
+        publicService.revertRepairFun(order,item);
+
         // 生成工单
         return createRepairOrder(item, orderWorker, or, addmx, ups, pjups, orderAppeal, oanew,
                 faGreeSms, oilist, ydups, fkmxups, orols , us, order,flag,its);
@@ -243,6 +246,7 @@ public class AddRepairBusinessServiceImpl implements AddRepairBusinessService {
         OrderWorker orderWorker = new OrderWorker();
         OrderRepair or = new OrderRepair();
         List<ItfGreeToFaDownloadTaskList> its = new ArrayList<>();
+        OrderBase orderr = new OrderBase();
 
         List<ItfTblAssignXzydDownload> yds = itfTblAssignXzydDownloadService.lambdaQuery()
                 .eq(ItfTblAssignXzydDownload::getDownloadTaskNo, item.getDownloadTaskNo()).list();
@@ -253,6 +257,7 @@ public class AddRepairBusinessServiceImpl implements AddRepairBusinessService {
                 .last("limit 1")
                 .one();
         orderStatus = order.getOrderStatus();
+        MyBeanUtils.copyProperties(order,orderr);
 
         // TL_SynDataFrom_tbl_assign_batch
         // TL_SynDataFrom_tbl_assign 主单的 syn_req_id
@@ -279,6 +284,9 @@ public class AddRepairBusinessServiceImpl implements AddRepairBusinessService {
         // 用户预约改约数据处理 TL_SynDataFrom_tbl_assign_appointment
         generateAppointmentUpdateApi(item, order,upappointds);
 
+        // 网点转换还原
+        modifyOrderBaseWebsit(item,orderr,order);
+
         // 接口修改维修工单
         return updateRepairApi(item, addmx, upMxd, orols, fkmxd, pjups, orderAppeal, oanew, faGreeSms,
                 oilist, oilistUp, upappointds, orderWorker, or, order,flag, its);
@@ -587,7 +595,7 @@ public class AddRepairBusinessServiceImpl implements AddRepairBusinessService {
             upOrderBase(brand, item, oldOrder);
         }
         // 网点信息更新
-        updateWebsit(sysDictRefDLMap, item, oldOrder);
+        updateWebsit(item, oldOrder);
 
         // 赋值接收师傅信息 oldOrder
         Worker worker= publicService.getInstallOrderWorker(item.getWxrenid());
@@ -663,7 +671,7 @@ public class AddRepairBusinessServiceImpl implements AddRepairBusinessService {
             upOrderBaseApi(brand, item, oldOrder);
         }
         //2:网点信息更新
-        updateWebsitApi(sysDictRefDLMap, item, oldOrder);
+        updateWebsitApi(item, oldOrder);
 
         // 赋值接收师傅信息 oldOrder
         Worker worker= publicService.getInstallOrderWorker(item.getWxrenid());
@@ -702,6 +710,35 @@ public class AddRepairBusinessServiceImpl implements AddRepairBusinessService {
 
     }
 
+    private void modifyOrderBaseWebsit(ItfTblAssignDownload item,OrderBase oldOrder,OrderBase upOrder) {
+        // 批量关闭的工单 同步下载无需再修改
+        if (oldOrder.getOrderStatus().equals(GDOrderStatusEnum.REPAIR_STATUS_G13.getCode())){
+            return;
+        }
+        // 1:基础表数据同步 总部的修改时间必须晚于本地系统时间才可以修改
+        if (oldOrder.getUpdateTime() ==null || item.getLastModifiedDate().compareTo(oldOrder.getUpdateTime())>0){
+            upOrder.setSaleWebsitId(item.getXswdno());
+            upOrder.setSaleWebsitName(item.getXswdmc());
+        }
+        //2:网点信息更新
+        // 看网点更新的条件
+        Boolean flag = getaBoolean(item, oldOrder);
+        // 更新网点信息
+        if (flag){
+            upOrder.setReceWebsitId(item.getXjwdno());
+            upOrder.setReceWebsitName(item.getXjwdmc());
+
+            if (StringUtils.isNotEmpty(item.getWxwdno())){
+                upOrder.setWebsitId(item.getWxwdno());
+            } else if (StringUtils.isNotEmpty(item.getXjwdno())){
+                upOrder.setWebsitId(item.getXjwdno());
+            }
+            if (StringUtils.isNotEmpty(item.getWxwdmc())){
+                upOrder.setWebsitName(item.getWxwdmc());
+            }
+        }
+    }
+
     private void putDownloadTaskList(ItfTblAssignDownload item, OrderBase oldOrder, List<ItfGreeToFaDownloadTaskList> its,
                                      Integer cjDowFlag) {
         if ((oldOrder.getOrderStatus().equals(GDOrderStatusEnum.REPAIR_STATUS_G8.getCode()) ||
@@ -887,9 +924,9 @@ public class AddRepairBusinessServiceImpl implements AddRepairBusinessService {
         }
     }
 
-    private void updateWebsit(Map<String, List<SysDictRef>> sysDictRefDLMap, ItfTblAssignDownload item, OrderBase oldOrder) {
+    private void updateWebsit(ItfTblAssignDownload item, OrderBase oldOrder) {
         // 看网点更新的条件
-        Boolean flag = getaBoolean(sysDictRefDLMap, item, oldOrder);
+        Boolean flag = getUpBoolean(item, oldOrder);
         // 更新网点信息
         if (flag){
             // 字段赋值
@@ -898,9 +935,9 @@ public class AddRepairBusinessServiceImpl implements AddRepairBusinessService {
         }
     }
 
-    private void updateWebsitApi(Map<String, List<SysDictRef>> sysDictRefDLMap, ItfTblAssignDownload item, OrderBase oldOrder) {
+    private void updateWebsitApi(ItfTblAssignDownload item, OrderBase oldOrder) {
         // 看网点更新的条件
-        Boolean flag = getaBoolean(sysDictRefDLMap, item, oldOrder);
+        Boolean flag = getUpBoolean(item, oldOrder);
         // 更新网点信息
         if (flag){
             // 字段赋值
@@ -1015,7 +1052,7 @@ public class AddRepairBusinessServiceImpl implements AddRepairBusinessService {
     }
 
     @NotNull
-    private Boolean getaBoolean(Map<String, List<SysDictRef>> sysDictRefDLMap, ItfTblAssignDownload item, OrderBase oldOrder) {
+    private Boolean getUpBoolean(ItfTblAssignDownload item, OrderBase oldOrder) {
         Boolean flag = Boolean.FALSE;
         if ((oldOrder.getOrderStatus().equals(GDOrderStatusEnum.REPAIR_STATUS_G1.getCode()) ||
                 oldOrder.getOrderStatus().equals(GDOrderStatusEnum.REPAIR_STATUS_G2.getCode()) ||

+ 106 - 0
src/main/java/com/zfire/jiasm/syncdata/service/impl/PublicServiceImpl.java

@@ -1578,6 +1578,112 @@ public class PublicServiceImpl implements PublicService {
         detaillist.clear();
     }
 
+    @Override
+    public void revertFun(OrderBase order,ItfTblAzAssignLcLsDownload lcls){
+        // 安装网点
+        order.setWebsitId("");
+        order.setWebsitName("");
+        if (StringUtils.isNotEmpty(lcls.getAzwdno())){
+            order.setWebsitId(lcls.getAzwdno());
+        }
+        if (StringUtils.isNotEmpty(lcls.getAzwdmc())){
+            order.setWebsitName(lcls.getAzwdmc());
+        }
+
+        // 接收派工网点
+        order.setReceWebsitId("");
+        order.setReceWebsitName("");
+        if (StringUtils.isNotEmpty(lcls.getJspgwdno())){
+            order.setReceWebsitId(lcls.getJspgwdno());
+        }
+        if (StringUtils.isNotEmpty(lcls.getJspgwdmc())){
+            order.setReceWebsitName(lcls.getJspgwdmc());
+        }
+
+        // 销售网点
+        order.setSaleWebsitId("");
+        order.setSaleWebsitName("");
+        order.setSaleWebsitSysNumber("");
+        if (StringUtils.isNotEmpty(lcls.getXsdwno())){
+            order.setSaleWebsitId(lcls.getXsdwno());
+        }
+        if (StringUtils.isNotEmpty(lcls.getXswdmc())){
+            order.setSaleWebsitName(lcls.getXswdmc());
+        }
+        if (StringUtils.isNotEmpty(lcls.getXsdwxtbh())){
+            order.setSaleWebsitSysNumber(lcls.getXsdwxtbh());
+        }
+
+        // 创建网点
+        order.setCreateWebsitId("");
+        order.setCreateWebsitName("");
+        if (StringUtils.isNotEmpty(lcls.getCjwdno())){
+            order.setCreateWebsitId(lcls.getCjwdno());
+        }
+        if (StringUtils.isNotEmpty(lcls.getCjrmc())){
+            order.setCreateWebsitName(lcls.getCjrmc());
+        }
+
+        order.setLastOperatorWebsit("");
+        order.setLastOperatorBy("");
+        if (StringUtils.isNotEmpty(lcls.getZjczwd())){
+            order.setLastOperatorWebsit(lcls.getZjczwd());
+            order.setLastOperatorBy(lcls.getZjczwd());
+        }
+    }
+
+    @Override
+    public void revertRepairFun(OrderBase order,ItfTblAssignDownload lcls){
+        // 安装网点
+        order.setWebsitId("");
+        order.setWebsitName("");
+
+        if (StringUtils.isNotEmpty(lcls.getWxwdno())){
+            order.setWebsitId(lcls.getWxwdno());
+        } else if (StringUtils.isNotEmpty(lcls.getXjwdno())){
+            order.setWebsitId(lcls.getXjwdno());
+        }
+        if (StringUtils.isNotEmpty(lcls.getWxwdmc())){
+            order.setWebsitName(lcls.getWxwdmc());
+        }
+
+        // 接收派工网点
+        order.setReceWebsitId("");
+        order.setReceWebsitName("");
+        if (StringUtils.isNotEmpty(lcls.getXjwdno())){
+            order.setReceWebsitId(lcls.getXjwdno());
+        }
+        if (StringUtils.isNotEmpty(lcls.getXjwdmc())){
+            order.setReceWebsitName(lcls.getXjwdmc());
+        }
+
+        // 销售网点
+        order.setSaleWebsitId("");
+        order.setSaleWebsitName("");
+        order.setSaleWebsitSysNumber("");
+        if (StringUtils.isNotEmpty(lcls.getXswdno())){
+            order.setSaleWebsitId(lcls.getXswdno());
+        }
+        if (StringUtils.isNotEmpty(lcls.getXswdmc())){
+            order.setSaleWebsitName(lcls.getXswdmc());
+        }
+
+
+        // 创建网点
+        order.setCreateWebsitId("");
+        order.setCreateWebsitName("");
+        if (StringUtils.isNotEmpty(lcls.getCjwdno())){
+            order.setCreateWebsitId(lcls.getCjwdno());
+        }
+
+        order.setLastOperatorWebsit("");
+        order.setLastOperatorBy("");
+        if (StringUtils.isNotEmpty(lcls.getZjczwd())){
+            order.setLastOperatorWebsit(lcls.getZjczwd());
+            order.setLastOperatorBy(lcls.getZjczwd());
+        }
+    }
+
     private void setLocationByAddress(OrderBase orderBase) {
         if (StringUtils.isEmpty(orderBase.getLng()) || StringUtils.isEmpty(orderBase.getLat())) {
             String add = "";

+ 7 - 3
src/main/resources/mapper/AZGDLcLsDownloadMapper.xml

@@ -11,8 +11,12 @@
                IFNULL(a.dizi,'') as address,a.xxlb as info_type,
                IFNULL(a.beiz,'') as remark,IFNULL(a.yxji,'1') as priority,a.gdhao as file_no,f.dict_code as main_id,f.dict_value as main_name,
                g.dict_code as service_category_id,g.dict_value as service_category_name,
-               IFNULL(a.azwdno, '') as websit_id,a.jspgwdno as rece_websit_id,
-               a.jspgwdsj as rece_time,a.cjwdno as create_websit_id,
+               IFNULL(a.azwdno, '') as websit_id,IFNULL(a.azwdmc, '') as websit_name,
+               a.jspgwdno as rece_websit_id,a.jspgwdmc as rece_websit_name,
+               a.cjwdno as create_websit_id,a.cjrmc as create_websit_name,
+               a.xsdwno as sale_websit_id, a.xswdmc as sale_websit_name,a.xsdwxtbh as sale_websit_sys_number,
+               a.zjczwd as last_operator_websit,a.zjczwdxtbh as sys_websit_number,
+               a.jspgwdsj as rece_time,
                a.zxha as seat_no,a.ssqy as region,a.qqlyno as external_sys,a.qqlymc as external_name2,
                a.qqlyxh as external_no,a.qqlyzj as external_pk,a.bjustat as bjy_check_status,
                a.yhqwkssj as expect_start_time,a.yhqwjssj as expect_end_time,IFNULL(a.gpsdzxx,'') as gps_address,
@@ -21,7 +25,7 @@
                a.djlxno as  bill_type_no,ifnull(a.yyazsj,a.yhqwkssj) as appointment_time,
                ifnull(a.yyazsj,a.yhqwkssj) as appointment_end_time,
                case a.sfwcps when '未配送' then 'NO' when '配送中' then 'NO' when '否' then 'NO' else 'YES' end as is_delivery_over,
-               a.azsl as total_num,a.wwsl as undone_num,a.xsdh as sale_no,a.xsdwno as sale_websit_id,
+               a.azsl as total_num,a.wwsl as undone_num,a.xsdh as sale_no,
                a.fphm as invoice_no,a.gmsj as buy_time,a.kqbh as cross_no,
                a.xsorsh as data_push_attr,a.jindu as lng,a.weidu as lat,a.shsj as delivery_time,a.sfygllc as sfygllc,
                a.xslxid as sale_type_id,a.yhsxid as user_attr_id,a.xxlbid as info_type_id,

+ 8 - 5
src/main/resources/mapper/RepairDownloadMapper.xml

@@ -11,14 +11,17 @@
                a.dizi as address,IFNULL(a.gpsdzxx,'') as gps_address,
                a.xxlb as info_type,a.beiz as remark,a.gdhao as file_no,e.dict_code as main_id,e.dict_value as main_name,
                f.dict_code as service_category_id,f.dict_value as service_category_name,
-               if((a.wxwdno='' or wxwdno is null),IFNULL(a.xjwdno,''),a.wxwdno) as websit_id,
-               a.xjwdno as rece_websit_id,a.cjwdno as create_websit_id,
+               if((a.wxwdno='' or wxwdno is null),IFNULL(a.xjwdno,''),a.wxwdno) as websit_id,a.wxwdmc as websit_name,
+               a.xjwdno as rece_websit_id,a.xjwdmc as rece_websit_name,
+               a.cjwdno as create_websit_id,'' as create_websit_name,
+               a.xswdno as sale_websit_id,a.xswdmc as sale_websit_name,
+               a.zjczwd as last_operator_websit,a.zjczwdxtbh as sys_websit_number,
                a.xxqdid as info_channel_id,ifnull(a.xxqd,'') as info_channel,a.xxlyid as info_source_id,ifnull(a.xxly,'') as info_source,
                a.ssqy as region,a.zxhao as seat_no,a.qqlyzj as external_pk,
                a.bjustat as bjy_check_status,a.yhqwsmsj as expect_start_time,a.qwsmjssj as expect_end_time,a.cjwdno as create_sys,
-               a.zjczwd as last_operator_websit,a.last_modified_by as last_operator_by,IFNULL(a.zjczsj,a.last_modified_date) as last_operator_time,
-               a.zjczwdxtbh as sys_websit_number,a.yhqwsmsj as appointment_time,a.azsl as total_num,a.wwsl as undone_num,a.xsdh as sale_no,
-               a.xswdno as sale_websit_id,a.xsorsh as data_push_attr,
+               a.last_modified_by as last_operator_by,IFNULL(a.zjczsj,a.last_modified_date) as last_operator_time,
+               a.yhqwsmsj as appointment_time,a.azsl as total_num,a.wwsl as undone_num,a.xsdh as sale_no,
+               a.xsorsh as data_push_attr,
                a.jindu as lng,a.weidu as lat,a.wcsj as over_time,a.cjdt as create_time,a.cjren as create_by,a.cjrmc as create_name,
                IFNULL(a.last_modified_date,a.zjczsj) as update_time,a.last_modified_by as update_by,a.wxrenid as dispatch_flag,1 as upload_flag,
                a.xjwdsj as rece_time,a.xxlbid as info_type_id,