|
@@ -1,18 +1,27 @@
|
|
|
package com.zfire.jiasm.syncdata.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.annotation.FieldFill;
|
|
|
+import com.baomidou.mybatisplus.annotation.TableField;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.zfire.jiasm.syncdata.constant.GDOrderStatusEnum;
|
|
|
+import com.zfire.jiasm.syncdata.constant.OrderStatusEnum;
|
|
|
import com.zfire.jiasm.syncdata.plus.entity.*;
|
|
|
import com.zfire.jiasm.syncdata.plus.mapper.OrderBaseMapper;
|
|
|
import com.zfire.jiasm.syncdata.plus.service.*;
|
|
|
import com.zfire.jiasm.syncdata.response.WebsitFWS;
|
|
|
+import com.zfire.jiasm.syncdata.response.WebsitSH;
|
|
|
import com.zfire.jiasm.syncdata.service.OrderService;
|
|
|
import com.zfire.jiasm.syncdata.service.PublicService;
|
|
|
+import io.swagger.annotations.ApiModelProperty;
|
|
|
+import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
|
@Service
|
|
@@ -25,6 +34,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderBaseMapper, OrderBase> im
|
|
|
AreaService areaService;
|
|
|
@Resource
|
|
|
PublicService publicService;
|
|
|
+ @Resource
|
|
|
+ OrderBaseService orderBaseService;
|
|
|
+ @Resource
|
|
|
+ OrderInstallDetailService orderInstallDetailService;
|
|
|
+ @Resource
|
|
|
+ OrderApplyDispatchService orderApplyDispatchService;
|
|
|
|
|
|
|
|
|
@Override
|
|
@@ -87,7 +102,172 @@ public class OrderServiceImpl extends ServiceImpl<OrderBaseMapper, OrderBase> im
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 分销商城订单需要写日志表 20230531 todo 下面还有其他的处理
|
|
|
+ // 接收派工网点为中心且当前节点是1129或1301,更新为2待分部派工
|
|
|
+ if ((item.getJspgwdno().equals("S9219801") || item.getJspgwdno().equals("S9219807")) &&
|
|
|
+ (orderBase.getOrderStatus().equals(OrderStatusEnum.INSTALL_STATUS_A1129.getCode()) ||
|
|
|
+ orderBase.getOrderStatus().equals(OrderStatusEnum.INSTALL_STATUS_A1301.getCode()))){
|
|
|
+ orderBase.setOrderStatus(GDOrderStatusEnum.INSTALL_STATUS_G2_0.getCode());
|
|
|
+ }
|
|
|
+ // 分销商城订单需要写日志表这里不再处理
|
|
|
+
|
|
|
+ // 省市区单独处理
|
|
|
+ shPositionTopt(orderBase);
|
|
|
+ // 派工方式,新创建订单时 azren 名称不为空时为手动派工 (dispatch_flag派工方式 A=自动派工 B=手动派工)
|
|
|
+ if (StringUtils.isNotEmpty(orderBase.getDispatchFlag())){
|
|
|
+ orderBase.setDispatchFlag("B");
|
|
|
+ } else {
|
|
|
+ orderBase.setDispatchFlag("A");
|
|
|
+ }
|
|
|
+
|
|
|
+ // create_sys - 创建网点系统 cjwdno
|
|
|
+ // last_operator_websit:最近操作网点 创建单时也是创建网点 可能是销售网点,也可能是售后网点 zjczwd
|
|
|
+ // sys_websit_number 系统网点编号 zjczwd 同上
|
|
|
+ orderBase.setCreateSys(orderBase.getCreateWebsitId());
|
|
|
+
|
|
|
+ // 先从销售网点判断
|
|
|
+ websitFWS = publicService.shxswdToptxswd(item.getXsdwno(),orderBase);
|
|
|
+ if (StringUtils.isEmpty(websitFWS.getWebsitId())){
|
|
|
+ websitFWS = publicService.shshwdToptshwd(item.getXsdwno(),orderBase);
|
|
|
+ }
|
|
|
+ orderBase.setLastOperatorWebsit(websitFWS.getWebsitId());
|
|
|
+ orderBase.setSysWebsitNumber(websitFWS.getBrandSysWebsitNumber());
|
|
|
+
|
|
|
+ // ////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ // 提取本地订单
|
|
|
+ OrderBase old = orderBaseService.lambdaQuery()
|
|
|
+ .eq(OrderBase::getPgguid, item.getPgguid()).one();
|
|
|
+ WebsitSH websitSH = publicService.ptxswdToshxswd(old.getReceWebsitId(),old.getMainId());
|
|
|
+
|
|
|
+ if (orderBase.getOrderStatus().equals(OrderStatusEnum.INSTALL_STATUS_A1121.getCode()) ||
|
|
|
+ orderBase.getOrderStatus().equals(OrderStatusEnum.INSTALL_STATUS_A1125.getCode())){
|
|
|
+ if (!(websitSH.getWdId().equals("S9219801") || websitSH.getWdId().equals("S9219807")) &&
|
|
|
+ (!orderBase.getOrderStatus().equals(GDOrderStatusEnum.INSTALL_STATUS_G1_0.getCode()) &&
|
|
|
+ !orderBase.getOrderStatus().equals(GDOrderStatusEnum.INSTALL_STATUS_G1_0.getCode()) &&
|
|
|
+ !orderBase.getOrderStatus().equals(GDOrderStatusEnum.INSTALL_STATUS_G1_1.getCode()) &&
|
|
|
+ !orderBase.getOrderStatus().equals(GDOrderStatusEnum.INSTALL_STATUS_G2_0.getCode()) &&
|
|
|
+ !orderBase.getOrderStatus().equals(GDOrderStatusEnum.INSTALL_STATUS_G2_1.getCode()) &&
|
|
|
+ !orderBase.getOrderStatus().equals(GDOrderStatusEnum.INSTALL_STATUS_G3.getCode()) &&
|
|
|
+ !orderBase.getOrderStatus().equals(GDOrderStatusEnum.INSTALL_STATUS_G4_0.getCode()) &&
|
|
|
+ !orderBase.getOrderStatus().equals(GDOrderStatusEnum.INSTALL_STATUS_G4_1.getCode())) &&
|
|
|
+ !orderBase.getOrderStatus().equals(GDOrderStatusEnum.INSTALL_STATUS_G5.getCode())){
|
|
|
+ orderBase.setOrderStatus(GDOrderStatusEnum.INSTALL_STATUS_G3.getCode());
|
|
|
+ orderBase.setDispatchStatus("DJS");
|
|
|
+ }
|
|
|
+ if (orderBase.getOrderStatus().equals(OrderStatusEnum.INSTALL_STATUS_A1125.getCode())){
|
|
|
+ // 售后网点=接收派工网点
|
|
|
+ orderBase.setWebsitId(orderBase.getReceWebsitId());
|
|
|
+ orderBase.setWebsitName(orderBase.getReceWebsitName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (orderBase.getOrderStatus().equals(OrderStatusEnum.INSTALL_STATUS_A1129.getCode()) ||
|
|
|
+ orderBase.getOrderStatus().equals(OrderStatusEnum.INSTALL_STATUS_A1135.getCode())){
|
|
|
+ if (websitSH.getWdId().equals("S9219801") || websitSH.getWdId().equals("S9219807")){
|
|
|
+ orderBase.setOrderStatus(GDOrderStatusEnum.INSTALL_STATUS_G2_0.getCode());
|
|
|
+ orderBase.setDispatchStatus("DJS");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 总部下来的关闭工单要修改
|
|
|
+ if (orderBase.getOrderStatus().equals(OrderStatusEnum.INSTALL_STATUS_A1309.getCode())){
|
|
|
+ List<OrderInstallDetail> oid = orderInstallDetailService.lambdaQuery()
|
|
|
+ .eq(OrderInstallDetail::getOrderBaseId,old.getId())
|
|
|
+ .eq(OrderInstallDetail::getStatus,1).list();
|
|
|
+ if (CollectionUtils.isNotEmpty(oid) && oid.size()==old.getTotalNum()){
|
|
|
+ orderBase.setOrderStatus(GDOrderStatusEnum.INSTALL_STATUS_G10.getCode());
|
|
|
+ orderBase.setDispatchStatus("YBWG");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 处理改派
|
|
|
+ if (orderBase.getOrderStatus().equals(OrderStatusEnum.INSTALL_STATUS_A1135.getCode())){
|
|
|
+ OrderApplyDispatch oad = orderApplyDispatchService.lambdaQuery()
|
|
|
+ .eq(OrderApplyDispatch::getOrderBaseId,orderBase.getId())
|
|
|
+ .eq(OrderApplyDispatch::getExamineStatus,"WAIT")
|
|
|
+ .eq(OrderApplyDispatch::getWebsitId,orderBase.getReceWebsitId()).one();
|
|
|
+ // 无记录,生成改派申请数据
|
|
|
+ if (oad==null){
|
|
|
+ OrderApplyDispatch add =new OrderApplyDispatch();
|
|
|
+ add.setOrderBaseId(orderBase.getId());
|
|
|
+ add.setPgid(orderBase.getPgid());
|
|
|
+ add.setType(orderBase.getOrderType());
|
|
|
+ add.setWebsitId(orderBase.getWebsitId());
|
|
|
+ add.setWebsitName(orderBase.getWebsitName());
|
|
|
+ add.setApplyContent("申请改派");
|
|
|
+ add.setExamineStatus("WAIT");
|
|
|
+ add.setUserName(orderBase.getUserName());
|
|
|
+ add.setUserMobile(orderBase.getUserMobile());
|
|
|
+ add.setReserveTime(orderBase.getAppointmentTime());
|
|
|
+ add.setReservePeriod(sdf.format(orderBase.getAppointmentTime()));
|
|
|
+ add.setMainId(Integer.valueOf(orderBase.getMainId()));
|
|
|
+ add.setMainName(orderBase.getMainName());
|
|
|
+ add.setCreateTime(new Date());
|
|
|
+ add.setUpdateTime(new Date());
|
|
|
+ add.setSource(1);
|
|
|
+ add.setAuditChangeTypeTab(3);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ // //////////////////////////////////////////////////////////////////////////////////////
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void setParUp(ItfTblAzAssignLcLsDownload item, OrderBase orderBase){
|
|
|
+ WebsitFWS websitFWS = new WebsitFWS();
|
|
|
+
|
|
|
+ if (StringUtils.isEmpty(orderBase.getGpsAddress())){
|
|
|
+ orderBase.setGpsAddress(publicService.getGpsaddress(orderBase.getLng(),orderBase.getLat()));
|
|
|
+ }
|
|
|
+ // 售后网点处理-安装或维修网点
|
|
|
+ websitFWS = publicService.shshwdToptshwd(orderBase.getWebsitId(),orderBase);
|
|
|
+ orderBase.setWebsitId(websitFWS.getWebsitId());
|
|
|
+ orderBase.setWebsitName(websitFWS.getWdmc());
|
|
|
+ orderBase.setGroupCompanyId(websitFWS.getGroupCompanyId());
|
|
|
+ orderBase.setGroupCompanyName(websitFWS.getGroupCompanyName());
|
|
|
+ orderBase.setProductBrandId("A");
|
|
|
+ orderBase.setProductBrandName("格力(机型品牌)");
|
|
|
+
|
|
|
+ // 接收派工网点处理 总力总部下来的接收网点信息不为空
|
|
|
+ if (item.getAzwdno().equals(orderBase.getReceWebsitId())){
|
|
|
+ orderBase.setReceWebsitId(orderBase.getWebsitId());
|
|
|
+ orderBase.setReceWebsitName(orderBase.getWebsitName());
|
|
|
+ // 结算主体
|
|
|
+ orderBase.setBrandId(websitFWS.getBrandId());
|
|
|
+ orderBase.setBrandName(websitFWS.getBrandName());
|
|
|
+
|
|
|
+ } else {
|
|
|
+ websitFWS = publicService.shshwdToptshwd(orderBase.getReceWebsitId(),orderBase);
|
|
|
+ orderBase.setReceWebsitId(websitFWS.getWebsitId());
|
|
|
+ orderBase.setReceWebsitName(websitFWS.getWdmc());
|
|
|
+ // 结算主体
|
|
|
+ orderBase.setBrandId(websitFWS.getBrandId());
|
|
|
+ orderBase.setBrandName(websitFWS.getBrandName());
|
|
|
+ }
|
|
|
+ // 创建网点处理
|
|
|
+ if (item.getAzwdno().equals(orderBase.getCreateWebsitId())){
|
|
|
+ orderBase.setCreateWebsitId(orderBase.getWebsitId());
|
|
|
+ orderBase.setCreateWebsitName(orderBase.getWebsitName());
|
|
|
+ } else {
|
|
|
+ websitFWS = publicService.shshwdToptshwd(orderBase.getCreateWebsitId(),orderBase);
|
|
|
+ orderBase.setCreateWebsitId(websitFWS.getWebsitId());
|
|
|
+ orderBase.setCreateWebsitName(websitFWS.getWdmc());
|
|
|
+ }
|
|
|
+ // 销售网点处理
|
|
|
+ websitFWS = publicService.shxswdToptxswd(orderBase.getSaleWebsitId(),orderBase);
|
|
|
+ orderBase.setSaleWebsitId(websitFWS.getWebsitId());
|
|
|
+ orderBase.setSaleWebsitName(websitFWS.getWdmc());
|
|
|
+ // 这里为商户的系统网点编号
|
|
|
+ orderBase.setSaleWebsitSysNumber(websitFWS.getBrandSysWebsitNumber());
|
|
|
|
|
|
// 省市区单独处理
|
|
|
shPositionTopt(orderBase);
|