|
@@ -14,6 +14,7 @@ import com.zfire.jiasm.syncdata.plus.service.*;
|
|
|
import com.zfire.jiasm.syncdata.response.WebsitFWS;
|
|
|
import com.zfire.jiasm.syncdata.service.OrderService;
|
|
|
import com.zfire.jiasm.syncdata.service.PublicService;
|
|
|
+import io.swagger.annotations.ApiModelProperty;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.jetbrains.annotations.NotNull;
|
|
@@ -86,6 +87,10 @@ public class InstallBusiness {
|
|
|
ItfGreeToFaDownloadTaskListService itfGreeToFaDownloadTaskListService;
|
|
|
@Resource
|
|
|
OrderApplyDispatchService orderApplyDispatchService;
|
|
|
+ @Resource
|
|
|
+ OrderInstallDetailService orderInstallDetailService;
|
|
|
+ @Resource
|
|
|
+ OrderDetailFileService orderDetailFileService;
|
|
|
|
|
|
|
|
|
|
|
@@ -185,6 +190,9 @@ public class InstallBusiness {
|
|
|
List<OrderAppeal> orderAppeal = new ArrayList<>();
|
|
|
List<ItfGreeToFaDownloadTaskList> its = new ArrayList<>();
|
|
|
List<OrderApplyDispatch> oads = new ArrayList<>();
|
|
|
+ List<OrderInstallDetail> oids = new ArrayList<>();
|
|
|
+ List<String> oiddels = new ArrayList<>();
|
|
|
+ List<OrderDetailFile> odfs = new ArrayList<>();
|
|
|
|
|
|
// 提取本地订单
|
|
|
OrderBase old = orderBaseService.lambdaQuery()
|
|
@@ -206,7 +214,8 @@ public class InstallBusiness {
|
|
|
OrderWorker own =getOrderWorkerUpdate(old.getId(), upInfo, newLCLS);
|
|
|
|
|
|
// 获取产品明细要同步的数据 -只存在修改,减少与增加的情况不存在
|
|
|
- orderProductsUpdate = getOrderProductsUpdate(sysDictRefDLMap, sysDictRefXLMap, sysDictRefXiLieMap, old, newLCLS, item.getDownloadTaskNo(),mxsynreqids);
|
|
|
+ getOrderProductsUpdate(sysDictRefDLMap, sysDictRefXLMap, sysDictRefXiLieMap, old, newLCLS,
|
|
|
+ item.getDownloadTaskNo(),mxsynreqids,orderProductsUpdate,oids,oiddels,odfs);
|
|
|
|
|
|
// 获取操作明细同步数据,即反馈明细
|
|
|
addoiolList = getOrderInstallOperatingLogsadd(item, old, newLCLS, synreqids);
|
|
@@ -237,7 +246,7 @@ public class InstallBusiness {
|
|
|
// 安装工单数据修改落本地表
|
|
|
addOrUpdateOrderData(item, upInfo, own, mxsynreqids, orderProductsUpdate, synreqids,
|
|
|
addoiolList, fyqd, orderInstall, synReqYfYyIds, addoalists, getpjSynReqId,
|
|
|
- addoalist, faGreeSms,orderAppeal, its,oads);
|
|
|
+ addoalist, faGreeSms,orderAppeal, its,oads,oids, oiddels,odfs);
|
|
|
}
|
|
|
|
|
|
public void addOrUpdateOrderData(ItfTblAzAssignLcLsDownload item, OrderBase upInfo, OrderWorker own,
|
|
@@ -246,7 +255,8 @@ public class InstallBusiness {
|
|
|
List<ItfTblAzAssignFeeDownload> fyqd, OrderInstall orderInstall, List<Long> synReqYfYyIds,
|
|
|
List<OrderReAppointment> addoalists, List<Long> getpjSynReqId, List<OrderAppraise> addoalist,
|
|
|
List<FaGreeSms> faGreeSms,List<OrderAppeal> orderAppeal,List<ItfGreeToFaDownloadTaskList> its,
|
|
|
- List<OrderApplyDispatch> oads) {
|
|
|
+ List<OrderApplyDispatch> oads,List<OrderInstallDetail> oids,
|
|
|
+ List<String> oiddels,List<OrderDetailFile> odfs) {
|
|
|
// 同步修改订单基础表
|
|
|
if (upInfo !=null){
|
|
|
orderBaseService.updateById(upInfo);
|
|
@@ -261,7 +271,7 @@ public class InstallBusiness {
|
|
|
|
|
|
// 同步修改产品明细表
|
|
|
if (orderProductsUpdate.size()>0){
|
|
|
- orderProductService.updateBatchById(orderProductsUpdate);
|
|
|
+ orderProductService.saveOrUpdateBatch(orderProductsUpdate);
|
|
|
orderProductsUpdate.clear();
|
|
|
}
|
|
|
if (mxsynreqids.size()>0){
|
|
@@ -303,11 +313,13 @@ public class InstallBusiness {
|
|
|
addoalist.clear();
|
|
|
}
|
|
|
|
|
|
+ // 预约改约-总部短信发送
|
|
|
if (faGreeSms.size()>0){
|
|
|
faGreeSmsService.saveBatch(faGreeSms);
|
|
|
faGreeSms.clear();
|
|
|
}
|
|
|
|
|
|
+ // 差评申诉
|
|
|
if (orderAppeal.size()>0){
|
|
|
orderAppealService.saveOrUpdateBatch(orderAppeal);
|
|
|
orderAppeal.clear();
|
|
@@ -324,7 +336,22 @@ public class InstallBusiness {
|
|
|
orderApplyDispatchService.saveOrUpdateBatch(oads);
|
|
|
oads.clear();
|
|
|
}
|
|
|
-
|
|
|
+ // 更新采集表
|
|
|
+ if (oids.size()>0){
|
|
|
+ orderInstallDetailService.saveOrUpdateBatch(oids);
|
|
|
+ oids.clear();
|
|
|
+ }
|
|
|
+ // 删除采集数据
|
|
|
+ if (oiddels.size()>0){
|
|
|
+ orderInstallDetailService.removeByIds(oiddels);
|
|
|
+ oiddels.clear();
|
|
|
+ }
|
|
|
+ // 新增采集附件
|
|
|
+ if (odfs.size()>0){
|
|
|
+ orderDetailFileService.saveOrUpdateBatch(odfs);
|
|
|
+ odfs.clear();
|
|
|
+ }
|
|
|
+ // 客户评价
|
|
|
if (getpjSynReqId.size()>0){
|
|
|
upItfTblAzAssignSatisfactionDownload(getpjSynReqId);
|
|
|
getpjSynReqId.clear();
|
|
@@ -466,14 +493,23 @@ public class InstallBusiness {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
- private List<OrderProduct> getOrderProductsUpdate(Map<String, List<SysDictRef>> sysDictRefDLMap, Map<String,
|
|
|
- List<SysDictRef>> sysDictRefXLMap, Map<String, List<SysDictRef>> sysDictRefXiLieMap,
|
|
|
- OrderBase old, OrderBase newLCLS, String downloadTaskNo,
|
|
|
- List<ItfTblAzAssignMxDownload> synreqids) {
|
|
|
- List<OrderProduct> orderProductsNew = new ArrayList<>();
|
|
|
+ private void getOrderProductsUpdate(Map<String, List<SysDictRef>> sysDictRefDLMap, Map<String,
|
|
|
+ List<SysDictRef>> sysDictRefXLMap, Map<String,
|
|
|
+ List<SysDictRef>> sysDictRefXiLieMap,
|
|
|
+ OrderBase old, OrderBase newLCLS, String downloadTaskNo,
|
|
|
+ List<ItfTblAzAssignMxDownload> synreqids,
|
|
|
+ List<OrderProduct> orderProductsUpdate,
|
|
|
+ List<OrderInstallDetail> oids,List<String> oiddels,
|
|
|
+ List<OrderDetailFile> odfs) {
|
|
|
List<OrderProduct> orderProductsOld = new ArrayList<>();
|
|
|
- List<OrderProduct> orderProductsUpdate = new ArrayList<>();
|
|
|
- Boolean uf = Boolean.FALSE;
|
|
|
+ List<OrderInstallDetail> oldOids = new ArrayList<>();
|
|
|
+ Map<String,List<OrderInstallDetail>> oldOidsMap = new HashMap<>();
|
|
|
+ Map<String,List<OrderProduct>> oldProductMap = new HashMap<>();
|
|
|
+
|
|
|
+ // 提取现有的采集明细数据
|
|
|
+ oldOids= orderInstallDetailService.lambdaQuery()
|
|
|
+ .eq(OrderInstallDetail::getOrderBaseId,old.getId()).list();
|
|
|
+ oldOidsMap = oldOids.stream().collect(Collectors.groupingBy(OrderInstallDetail::getOrderProductId));
|
|
|
|
|
|
// 提取下载产品明细表
|
|
|
List<ItfTblAzAssignMxDownload> orderMx = itfTblAzAssignMxDownloadService.lambdaQuery()
|
|
@@ -482,189 +518,478 @@ public class InstallBusiness {
|
|
|
.orderByAsc(ItfTblAzAssignMxDownload::getSynReqId)
|
|
|
.list();
|
|
|
|
|
|
- // 获取新同步的工单机型
|
|
|
- getOrderProduct(newLCLS, orderProductsNew, sysDictRefDLMap, sysDictRefXLMap, sysDictRefXiLieMap, orderMx);
|
|
|
- // 产品只存在修改,减少与增加的情况不存在
|
|
|
// 提取本地现有的产品机型
|
|
|
orderProductsOld = orderProductService.lambdaQuery()
|
|
|
.eq(OrderProduct::getOrderBaseId, old.getId()).list();
|
|
|
- for (OrderProduct o : orderProductsOld){
|
|
|
- for (OrderProduct n :orderProductsNew){
|
|
|
- if (n.getPgmxid().equals(o.getPgmxid())){
|
|
|
- uf = Boolean.FALSE;
|
|
|
- OrderProduct v = new OrderProduct();
|
|
|
- // 查看有无要修改的机型信息
|
|
|
- if (!o.getMainId().equals(n.getMainId())) {
|
|
|
- v.setMainId(n.getMainId());
|
|
|
- v.setMainName(n.getMainName());
|
|
|
- uf = Boolean.TRUE;
|
|
|
- }
|
|
|
- if (!o.getSmallId().equals(n.getSmallId())) {
|
|
|
- v.setSmallId(n.getSmallId());
|
|
|
- v.setSmallName(n.getSmallName());
|
|
|
- uf = Boolean.TRUE;
|
|
|
- }
|
|
|
- // 系列可不填写
|
|
|
- if (StringUtils.isNotEmpty(o.getSeriesId()) && StringUtils.isNotEmpty(n.getSeriesId())) {
|
|
|
- if (!o.getSeriesId().equals(n.getSeriesId())){
|
|
|
- v.setSeriesId(n.getSeriesId());
|
|
|
- v.setSeriesName(n.getSeriesName());
|
|
|
- uf = Boolean.TRUE;
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (StringUtils.isNotEmpty(o.getSeriesId())) {
|
|
|
- v.setSeriesId("");
|
|
|
- v.setSeriesName("");
|
|
|
- } else {
|
|
|
- v.setSeriesId(n.getSeriesId());
|
|
|
- v.setSeriesName(n.getSeriesName());
|
|
|
- }
|
|
|
- uf = Boolean.TRUE;
|
|
|
- }
|
|
|
- if (!o.getProductId().equals(n.getProductId())) {
|
|
|
- v.setProductId(n.getProductId());
|
|
|
- v.setProductName(n.getProductName());
|
|
|
- uf = Boolean.TRUE;
|
|
|
- }
|
|
|
- if (StringUtils.isNotEmpty(o.getInsideCode()) && StringUtils.isNotEmpty(n.getInsideCode())) {
|
|
|
- if (!o.getInsideCode().equals(n.getInsideCode())){
|
|
|
- v.setInsideCode(n.getInsideCode());
|
|
|
- uf = Boolean.TRUE;
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (StringUtils.isNotEmpty(o.getInsideCode())) {
|
|
|
- v.setInsideCode("");
|
|
|
- } else {
|
|
|
- v.setInsideCode(n.getInsideCode());
|
|
|
- }
|
|
|
- uf = Boolean.TRUE;
|
|
|
- }
|
|
|
- if (StringUtils.isNotEmpty(o.getOutCode()) && StringUtils.isNotEmpty(n.getOutCode())) {
|
|
|
- if (!o.getOutCode().equals(n.getOutCode())){
|
|
|
- v.setOutCode(n.getOutCode());
|
|
|
- uf = Boolean.TRUE;
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (StringUtils.isNotEmpty(o.getOutCode())) {
|
|
|
- v.setOutCode("");
|
|
|
- } else {
|
|
|
- v.setOutCode(n.getOutCode());
|
|
|
- }
|
|
|
- uf = Boolean.TRUE;
|
|
|
- }
|
|
|
- if (o.getNum() !=null && n.getNum() !=null) {
|
|
|
- if (!o.getNum().equals(n.getNum())){
|
|
|
- v.setNum(n.getNum());
|
|
|
- uf = Boolean.TRUE;
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (o.getNum() !=null) {
|
|
|
- v.setNum(null);
|
|
|
- } else {
|
|
|
- v.setNum(n.getNum());
|
|
|
- }
|
|
|
- uf = Boolean.TRUE;
|
|
|
- }
|
|
|
- if (o.getPrice() !=null && n.getPrice() !=null) {
|
|
|
- if (!o.getPrice().equals(n.getPrice())){
|
|
|
- v.setPrice(n.getPrice());
|
|
|
- uf = Boolean.TRUE;
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (o.getPrice() !=null) {
|
|
|
- v.setPrice(null);
|
|
|
- } else {
|
|
|
- v.setPrice(n.getPrice());
|
|
|
+ oldProductMap = orderProductsOld.stream().collect(Collectors.groupingBy(OrderProduct::getPgmxid));
|
|
|
+
|
|
|
+ // pgmxid主键
|
|
|
+
|
|
|
+ for (ItfTblAzAssignMxDownload mx:orderMx){
|
|
|
+ // 这里做法为重新生成新的产品机型,然后与本地比较是新增还是修改
|
|
|
+ // 生成工单产品对象 获取新同步的工单机型
|
|
|
+ OrderProduct n = getProductInfo(sysDictRefDLMap, sysDictRefXLMap, sysDictRefXiLieMap, newLCLS, mx);
|
|
|
+ // 存在修改 不存在新增
|
|
|
+ for (OrderProduct o : orderProductsOld) {
|
|
|
+ if (n.getPgmxid().equals(o.getPgmxid())) {
|
|
|
+ // 存在进行修改
|
|
|
+ updateOrderProduct(newLCLS, o, n, oids, oldOids);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ int oldnum=0;
|
|
|
+ int shul = mx.getShul();
|
|
|
+ if (shul>100) {
|
|
|
+ shul=1;
|
|
|
+ }
|
|
|
+ // 看是否已同步过的 如是已同步过来,需调整数量 调整的数据就是生成的产品机型 n
|
|
|
+ if (oldProductMap.containsKey(mx.getPgmxid())){
|
|
|
+ OrderProduct oldOpt = oldProductMap.get(mx.getPgmxid()).get(0);
|
|
|
+ if (!oldOpt.getNum().equals(shul)){
|
|
|
+ // 看已采集数
|
|
|
+ for (OrderInstallDetail oid : oldOidsMap.get(oldOpt.getId())) {
|
|
|
+ if (oid.getStatus().equals(1)) {
|
|
|
+ oldnum++;
|
|
|
}
|
|
|
- uf = Boolean.TRUE;
|
|
|
}
|
|
|
- if (StringUtils.isNotEmpty(o.getUnit()) && StringUtils.isNotEmpty(n.getUnit())) {
|
|
|
- if (!o.getUnit().equals(n.getUnit())){
|
|
|
- v.setUnit(n.getUnit());
|
|
|
- uf = Boolean.TRUE;
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (StringUtils.isNotEmpty(o.getUnit())) {
|
|
|
- v.setUnit("");
|
|
|
- } else {
|
|
|
- v.setUnit(n.getUnit());
|
|
|
- }
|
|
|
- uf = Boolean.TRUE;
|
|
|
+ if (oldnum>shul){
|
|
|
+ synItfTblAzAssignMxDownload(mx.getSynReqId(),9,
|
|
|
+ "总部修改的产品数不能小于已采集数,需人工处理,工单号:"+old.getId());
|
|
|
+ return;
|
|
|
}
|
|
|
- if (StringUtils.isNotEmpty(o.getMaterialNumber()) && StringUtils.isNotEmpty(n.getMaterialNumber())) {
|
|
|
- if (!o.getMaterialNumber().equals(n.getMaterialNumber())){
|
|
|
- v.setMaterialNumber(n.getMaterialNumber());
|
|
|
- uf = Boolean.TRUE;
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (StringUtils.isNotEmpty(o.getMaterialNumber())) {
|
|
|
- v.setMaterialNumber("");
|
|
|
- } else {
|
|
|
- v.setMaterialNumber(n.getUnit());
|
|
|
+ // 如果产品数量大于已采集数则可以更新产品表的数量 这里的n就是本次处理的,新增的N不可能找到
|
|
|
+ n.setUndoneNum(n.getNum()-oldnum);
|
|
|
+
|
|
|
+ // 比较新旧数量,如果新数量少就删除,如果多就新增
|
|
|
+ // 原产品数量大于新的产品数量,删除采集记录
|
|
|
+ if (oldOpt.getNum()>shul){
|
|
|
+ int insertNum = 1;
|
|
|
+ // 提取 采集记录
|
|
|
+ List<OrderInstallDetail> olds = new ArrayList<>();
|
|
|
+ olds= orderInstallDetailService.lambdaQuery()
|
|
|
+ .eq(OrderInstallDetail::getOrderBaseId,old.getId())
|
|
|
+ .eq(OrderInstallDetail::getOrderProductId,n.getId())
|
|
|
+ .eq(OrderInstallDetail::getStatus,0)
|
|
|
+ .orderByAsc(OrderInstallDetail::getOutId).list();
|
|
|
+
|
|
|
+ // 存在未采集的数据删除,其他不删
|
|
|
+ if (olds.size()>1){
|
|
|
+ int oldssize = olds.size()-1;
|
|
|
+ while (insertNum <= (oldOpt.getNum() - shul)){
|
|
|
+ oiddels.add(olds.get(oldssize).getId());
|
|
|
+ oldssize-- ;
|
|
|
+ insertNum++;
|
|
|
+ }
|
|
|
}
|
|
|
- uf = Boolean.TRUE;
|
|
|
- }
|
|
|
- if (!o.getInsideNum().equals(n.getInsideNum())) {
|
|
|
- v.setInsideNum(n.getInsideNum());
|
|
|
- uf = Boolean.TRUE;
|
|
|
- }
|
|
|
- if (!o.getOutNum().equals(n.getOutNum())) {
|
|
|
- v.setOutNum(n.getOutNum());
|
|
|
- uf = Boolean.TRUE;
|
|
|
- }
|
|
|
- if (!o.getUndoneNum().equals(n.getUndoneNum())) {
|
|
|
- v.setUndoneNum(n.getUndoneNum());
|
|
|
- uf = Boolean.TRUE;
|
|
|
- }
|
|
|
- if (StringUtils.isNotEmpty(o.getSaleWebsit()) && StringUtils.isNotEmpty(n.getSaleWebsit())) {
|
|
|
- if (!o.getSaleWebsit().equals(n.getSaleWebsit())){
|
|
|
- v.setSaleWebsit(n.getSaleWebsit());
|
|
|
- uf = Boolean.TRUE;
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (StringUtils.isNotEmpty(o.getSaleWebsit())) {
|
|
|
- v.setSaleWebsit("");
|
|
|
- } else {
|
|
|
- v.setSaleWebsit(n.getSaleWebsit());
|
|
|
- }
|
|
|
- uf = Boolean.TRUE;
|
|
|
- }
|
|
|
- if (StringUtils.isNotEmpty(o.getServiceWebsit()) && StringUtils.isNotEmpty(n.getServiceWebsit())) {
|
|
|
- if (!o.getServiceWebsit().equals(n.getServiceWebsit())){
|
|
|
- v.setServiceWebsit(n.getServiceWebsit());
|
|
|
- uf = Boolean.TRUE;
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (StringUtils.isNotEmpty(o.getServiceWebsit())) {
|
|
|
- v.setServiceWebsit("");
|
|
|
- } else {
|
|
|
- v.setServiceWebsit(n.getServiceWebsit());
|
|
|
- }
|
|
|
- uf = Boolean.TRUE;
|
|
|
+ } else if (oldOpt.getNum()<shul) {
|
|
|
+ // 提取 采集记录
|
|
|
+ List<OrderInstallDetail> olds = new ArrayList<>();
|
|
|
+ OrderInstallDetail iod = new OrderInstallDetail();
|
|
|
+ olds= orderInstallDetailService.lambdaQuery()
|
|
|
+ .eq(OrderInstallDetail::getOrderBaseId,old.getId())
|
|
|
+ .eq(OrderInstallDetail::getOrderProductId,n.getId())
|
|
|
+ .orderByAsc(OrderInstallDetail::getOutId).list();
|
|
|
+ // 原产品数量小于新的产品数量,需要新增记录
|
|
|
+ // 生成采集明细数据+附件数据
|
|
|
+ // 取最大的序
|
|
|
+ int insertnum = 0;
|
|
|
+ int outid = 0;
|
|
|
+ insertnum =olds.get(olds.size()-1).getOutId()+1;
|
|
|
+ outid = insertnum;
|
|
|
+ extracted(old, oids, odfs, insertnum, outid, mx, n);
|
|
|
}
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 这里为新增,需要新增对应的采集及附件
|
|
|
+ // 生成采集明细数据+附件数据
|
|
|
+ int insertnum=1;
|
|
|
+ int outid=1;
|
|
|
+ // 生成采集明细数据+附件数据
|
|
|
+ extracted(old, oids, odfs, insertnum, outid, mx, n);
|
|
|
+ }
|
|
|
+ orderProductsUpdate.add(n);
|
|
|
|
|
|
- if (uf){
|
|
|
- v.setId(o.getId());
|
|
|
- v.setUpdateBy(newLCLS.getLastOperatorBy());
|
|
|
- v.setUpdateTime(newLCLS.getLastOperatorTime());
|
|
|
- orderProductsUpdate.add(o);
|
|
|
- }
|
|
|
+ ItfTblAzAssignMxDownload mxu = new ItfTblAzAssignMxDownload();
|
|
|
+ mxu.setSynReqId(mx.getSynReqId());
|
|
|
+ mxu.setSynStatus(1);
|
|
|
+ mxu.setSynTime(new Date());
|
|
|
+ synreqids.add(mxu);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private void synItfTblAzAssignMxDownload(Long synReqId, Integer synStatus, String msg){
|
|
|
+ ItfTblAzAssignMxDownload mx = new ItfTblAzAssignMxDownload();
|
|
|
+ mx.setSynReqId(synReqId);
|
|
|
+ mx.setSynStatus(synStatus);
|
|
|
+ mx.setSynTime(new Date());
|
|
|
+ mx.setSynErrMsg(msg);
|
|
|
+ itfTblAzAssignMxDownloadService.updateById(mx);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private OrderProduct getProductInfo(Map<String, List<SysDictRef>> sysDictRefDLMap,
|
|
|
+ Map<String, List<SysDictRef>> sysDictRefXLMap,
|
|
|
+ Map<String, List<SysDictRef>> sysDictRefXiLieMap,
|
|
|
+ OrderBase newLCLS, ItfTblAzAssignMxDownload mx) {
|
|
|
+ OrderProduct op = new OrderProduct();
|
|
|
+ op.setId(UUID.randomUUID().toString());
|
|
|
+ op.setOrderBaseId(newLCLS.getId());
|
|
|
+ // pgmxid主键
|
|
|
+ op.setPgmxid(mx.getPgmxid());
|
|
|
+ op.setPgguid(mx.getPgguid());
|
|
|
+ op.setMainId(sysDictRefDLMap.get(String.valueOf(mx.getSpid())).get(0).getDictCode());
|
|
|
+ op.setMainName(sysDictRefDLMap.get(String.valueOf(mx.getSpid())).get(0).getDictValue());
|
|
|
+ if (!mx.getXlid().equals(0L)) {
|
|
|
+ op.setSmallId(sysDictRefXLMap.get(String.valueOf(mx.getXlid())).get(0).getDictCode());
|
|
|
+ op.setSmallName(sysDictRefXLMap.get(String.valueOf(mx.getXlid())).get(0).getDictValue());
|
|
|
+ } else {
|
|
|
+ op.setSmallId(String.valueOf(mx.getXlid()));
|
|
|
+ op.setSmallName(mx.getXlmc());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!mx.getXiid().equals("0")) {
|
|
|
+ op.setSeriesId(sysDictRefXiLieMap.get(mx.getXiid()).get(0).getDictCode());
|
|
|
+ op.setSeriesName(sysDictRefXiLieMap.get(mx.getXiid()).get(0).getDictValue());
|
|
|
+ } else {
|
|
|
+ op.setSeriesId(mx.getXiid());
|
|
|
+ op.setSeriesName(mx.getXimc());
|
|
|
+ }
|
|
|
+ op.setProductId(mx.getJxno());
|
|
|
+ op.setProductName(mx.getJxmc());
|
|
|
+ op.setInsideCode(mx.getNjtm());
|
|
|
+ op.setOutCode(mx.getWjtm());
|
|
|
+ op.setNum(mx.getShul());
|
|
|
+ if (op.getNum()>100){
|
|
|
+ op.setNum(1);
|
|
|
+ }
|
|
|
+ op.setPrice(mx.getJiage());
|
|
|
+ op.setUnit(mx.getDanw());
|
|
|
+ op.setMaterialNumber(mx.getWldm());
|
|
|
+ op.setInsideNum(mx.getNjsl());
|
|
|
+ op.setOutNum(mx.getWjsl());
|
|
|
+ // op.setUndoneNum(mx.getWwsl());
|
|
|
+ op.setUndoneNum(op.getNum());
|
|
|
+ op.setCreateTime(mx.getCjdt());
|
|
|
+ op.setCreateBy(mx.getCreatedBy());
|
|
|
+ // 销售单位
|
|
|
+ op.setSaleWebsit(newLCLS.getSaleWebsitId());
|
|
|
+ // 无销售单位联系人电话
|
|
|
+ op.setServiceWebsit(newLCLS.getWebsitId());
|
|
|
+ // 无服务单位电话信息 最好取websit表中的热线,先不取
|
|
|
+ op.setBuyTime(newLCLS.getBuyTime());
|
|
|
+ op.setRemark(mx.getBeiz());
|
|
|
+ return op;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void updateOrderProduct(OrderBase newLCLS,
|
|
|
+ OrderProduct o,OrderProduct n,List<OrderInstallDetail> oids,
|
|
|
+ List<OrderInstallDetail> oldOids) {
|
|
|
+ n.setId(o.getId());
|
|
|
+ // 查看有无要修改的机型信息
|
|
|
+ if (!o.getProductName().equals(n.getProductName()) ||
|
|
|
+ !o.getSmallName().equals(n.getSmallName()) ||
|
|
|
+ !o.getInsideNum().equals(n.getInsideNum()) ||
|
|
|
+ !o.getOutNum().equals(n.getOutNum())){
|
|
|
+ n.setUpdateBy(newLCLS.getLastOperatorBy());
|
|
|
+ n.setUpdateTime(newLCLS.getLastOperatorTime());
|
|
|
+ // 更新明细表的名称
|
|
|
+ for (OrderInstallDetail item:oldOids){
|
|
|
+ if (item.getOrderProductId().equals(n.getProductId())){
|
|
|
+ item.setMainId(n.getMainId());
|
|
|
+ item.setMainName(n.getMainName());
|
|
|
+ item.setSmallId(n.getSmallId());
|
|
|
+ item.setSmallName(n.getSmallName());
|
|
|
+ item.setWebsitId(newLCLS.getWebsitId());
|
|
|
+ item.setSeriesId(n.getSeriesId());
|
|
|
+ item.setSeriesName(n.getSeriesName());
|
|
|
+ item.setProductName(n.getProductName());
|
|
|
+ oids.add(item);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- for (ItfTblAzAssignMxDownload i : orderMx){
|
|
|
- ItfTblAzAssignMxDownload n = new ItfTblAzAssignMxDownload();
|
|
|
- n.setSynReqId(i.getSynReqId());
|
|
|
- n.setSynStatus(1);
|
|
|
- n.setSynTime(new Date());
|
|
|
- synreqids.add(n);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private void updateOrderProductBak(OrderBase newLCLS, List<OrderProduct> orderProductsUpdate, Boolean uf, OrderProduct o, OrderProduct n) {
|
|
|
+ OrderProduct v = new OrderProduct();
|
|
|
+ // 查看有无要修改的机型信息
|
|
|
+ if (!o.getMainId().equals(n.getMainId())) {
|
|
|
+ v.setMainId(n.getMainId());
|
|
|
+ v.setMainName(n.getMainName());
|
|
|
+ uf = Boolean.TRUE;
|
|
|
+ }
|
|
|
+ if (!o.getSmallId().equals(n.getSmallId())) {
|
|
|
+ v.setSmallId(n.getSmallId());
|
|
|
+ v.setSmallName(n.getSmallName());
|
|
|
+ uf = Boolean.TRUE;
|
|
|
+ }
|
|
|
+ // 系列可不填写
|
|
|
+ if (StringUtils.isNotEmpty(o.getSeriesId()) && StringUtils.isNotEmpty(n.getSeriesId())) {
|
|
|
+ if (!o.getSeriesId().equals(n.getSeriesId())){
|
|
|
+ v.setSeriesId(n.getSeriesId());
|
|
|
+ v.setSeriesName(n.getSeriesName());
|
|
|
+ uf = Boolean.TRUE;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (StringUtils.isNotEmpty(o.getSeriesId())) {
|
|
|
+ v.setSeriesId("");
|
|
|
+ v.setSeriesName("");
|
|
|
+ } else {
|
|
|
+ v.setSeriesId(n.getSeriesId());
|
|
|
+ v.setSeriesName(n.getSeriesName());
|
|
|
+ }
|
|
|
+ uf = Boolean.TRUE;
|
|
|
+ }
|
|
|
+ if (!o.getProductId().equals(n.getProductId())) {
|
|
|
+ v.setProductId(n.getProductId());
|
|
|
+ v.setProductName(n.getProductName());
|
|
|
+ uf = Boolean.TRUE;
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(o.getInsideCode()) && StringUtils.isNotEmpty(n.getInsideCode())) {
|
|
|
+ if (!o.getInsideCode().equals(n.getInsideCode())){
|
|
|
+ v.setInsideCode(n.getInsideCode());
|
|
|
+ uf = Boolean.TRUE;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (StringUtils.isNotEmpty(o.getInsideCode())) {
|
|
|
+ v.setInsideCode("");
|
|
|
+ } else {
|
|
|
+ v.setInsideCode(n.getInsideCode());
|
|
|
+ }
|
|
|
+ uf = Boolean.TRUE;
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(o.getOutCode()) && StringUtils.isNotEmpty(n.getOutCode())) {
|
|
|
+ if (!o.getOutCode().equals(n.getOutCode())){
|
|
|
+ v.setOutCode(n.getOutCode());
|
|
|
+ uf = Boolean.TRUE;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (StringUtils.isNotEmpty(o.getOutCode())) {
|
|
|
+ v.setOutCode("");
|
|
|
+ } else {
|
|
|
+ v.setOutCode(n.getOutCode());
|
|
|
+ }
|
|
|
+ uf = Boolean.TRUE;
|
|
|
+ }
|
|
|
+ if (o.getNum() !=null && n.getNum() !=null) {
|
|
|
+ if (!o.getNum().equals(n.getNum())){
|
|
|
+ v.setNum(n.getNum());
|
|
|
+ uf = Boolean.TRUE;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (o.getNum() !=null) {
|
|
|
+ v.setNum(null);
|
|
|
+ } else {
|
|
|
+ v.setNum(n.getNum());
|
|
|
+ }
|
|
|
+ uf = Boolean.TRUE;
|
|
|
+ }
|
|
|
+ if (o.getPrice() !=null && n.getPrice() !=null) {
|
|
|
+ if (!o.getPrice().equals(n.getPrice())){
|
|
|
+ v.setPrice(n.getPrice());
|
|
|
+ uf = Boolean.TRUE;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (o.getPrice() !=null) {
|
|
|
+ v.setPrice(null);
|
|
|
+ } else {
|
|
|
+ v.setPrice(n.getPrice());
|
|
|
+ }
|
|
|
+ uf = Boolean.TRUE;
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(o.getUnit()) && StringUtils.isNotEmpty(n.getUnit())) {
|
|
|
+ if (!o.getUnit().equals(n.getUnit())){
|
|
|
+ v.setUnit(n.getUnit());
|
|
|
+ uf = Boolean.TRUE;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (StringUtils.isNotEmpty(o.getUnit())) {
|
|
|
+ v.setUnit("");
|
|
|
+ } else {
|
|
|
+ v.setUnit(n.getUnit());
|
|
|
+ }
|
|
|
+ uf = Boolean.TRUE;
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(o.getMaterialNumber()) && StringUtils.isNotEmpty(n.getMaterialNumber())) {
|
|
|
+ if (!o.getMaterialNumber().equals(n.getMaterialNumber())){
|
|
|
+ v.setMaterialNumber(n.getMaterialNumber());
|
|
|
+ uf = Boolean.TRUE;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (StringUtils.isNotEmpty(o.getMaterialNumber())) {
|
|
|
+ v.setMaterialNumber("");
|
|
|
+ } else {
|
|
|
+ v.setMaterialNumber(n.getUnit());
|
|
|
+ }
|
|
|
+ uf = Boolean.TRUE;
|
|
|
+ }
|
|
|
+ if (!o.getInsideNum().equals(n.getInsideNum())) {
|
|
|
+ v.setInsideNum(n.getInsideNum());
|
|
|
+ uf = Boolean.TRUE;
|
|
|
+ }
|
|
|
+ if (!o.getOutNum().equals(n.getOutNum())) {
|
|
|
+ v.setOutNum(n.getOutNum());
|
|
|
+ uf = Boolean.TRUE;
|
|
|
+ }
|
|
|
+ if (!o.getUndoneNum().equals(n.getUndoneNum())) {
|
|
|
+ v.setUndoneNum(n.getUndoneNum());
|
|
|
+ uf = Boolean.TRUE;
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(o.getSaleWebsit()) && StringUtils.isNotEmpty(n.getSaleWebsit())) {
|
|
|
+ if (!o.getSaleWebsit().equals(n.getSaleWebsit())){
|
|
|
+ v.setSaleWebsit(n.getSaleWebsit());
|
|
|
+ uf = Boolean.TRUE;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (StringUtils.isNotEmpty(o.getSaleWebsit())) {
|
|
|
+ v.setSaleWebsit("");
|
|
|
+ } else {
|
|
|
+ v.setSaleWebsit(n.getSaleWebsit());
|
|
|
+ }
|
|
|
+ uf = Boolean.TRUE;
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(o.getServiceWebsit()) && StringUtils.isNotEmpty(n.getServiceWebsit())) {
|
|
|
+ if (!o.getServiceWebsit().equals(n.getServiceWebsit())){
|
|
|
+ v.setServiceWebsit(n.getServiceWebsit());
|
|
|
+ uf = Boolean.TRUE;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (StringUtils.isNotEmpty(o.getServiceWebsit())) {
|
|
|
+ v.setServiceWebsit("");
|
|
|
+ } else {
|
|
|
+ v.setServiceWebsit(n.getServiceWebsit());
|
|
|
+ }
|
|
|
+ uf = Boolean.TRUE;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (uf){
|
|
|
+ v.setId(o.getId());
|
|
|
+ v.setUpdateBy(newLCLS.getLastOperatorBy());
|
|
|
+ v.setUpdateTime(newLCLS.getLastOperatorTime());
|
|
|
+ orderProductsUpdate.add(o);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @NotNull
|
|
|
+ private OrderBase getOrderBaseUp(OrderBase old, ItfTblAzAssignLcLsDownload item, OrderBase lclsNew,Brand brand) {
|
|
|
+ // 本地订单已关闭 且总部的最后修改时间在本地数据修改时间之前 不可修改
|
|
|
+ if (old.getOrderStatus().equals(GDOrderStatusEnum.INSTALL_STATUS_G10.getCode()) &&
|
|
|
+ item.getLastModifiedDate().compareTo(old.getUpdateTime())<0){
|
|
|
+ synItfTblAzAssignLcLsDownload(item.getSynReqId(), 99, "本地工单已关闭或作废忽略更新");
|
|
|
+ // 这里只是不修改订单主表,其他数据表接着执行
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 1.安装工单主表基础信息更新
|
|
|
+ if (item.getLastModifiedDate().compareTo(old.getUpdateTime())>0){
|
|
|
+ upBase(old, item, lclsNew);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // 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())){
|
|
|
+ // 售后网点
|
|
|
+ old.setReceWebsitId(lclsNew.getReceWebsitId());
|
|
|
+ old.setReceWebsitName(lclsNew.getReceWebsitName());
|
|
|
+ // 安装
|
|
|
+ old.setWebsitId(lclsNew.getWebsitId());
|
|
|
+ old.setWebsitName(lclsNew.getWebsitName());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 3:已预约不可更改预约时间 未预约总部为准
|
|
|
+ OrderReAppointment ora = orderReAppointmentService.lambdaQuery()
|
|
|
+ .eq(OrderReAppointment::getOrderBaseId,old.getId())
|
|
|
+ .eq(OrderReAppointment::getFlag,1).one();
|
|
|
+ // 已预约过 退回查询处理
|
|
|
+ if (ora == null){
|
|
|
+ old.setAppointmentTime(lclsNew.getAppointmentTime());
|
|
|
+ old.setAppointmentEndTime(lclsNew.getAppointmentEndTime());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 3.2天猫工单,允许天猫自已预约 这里去掉
|
|
|
+ // upYyazsj(old, item, lclsNew);
|
|
|
+
|
|
|
+ // 4:工单状态
|
|
|
+ Boolean allowUpdate = getAllowUpdate(old, lclsNew);
|
|
|
+ if (allowUpdate && item.getLastModifiedDate().compareTo(old.getUpdateTime())>0){
|
|
|
+ old.setOrderStatus(lclsNew.getOrderStatus());
|
|
|
+ old.setOrderStatusTime(lclsNew.getOrderStatusTime());
|
|
|
+ old.setLastOrderStatus(lclsNew.getLastOrderStatus());
|
|
|
+ old.setDispatchStatus(lclsNew.getDispatchStatus());
|
|
|
+ old.setDispatchTime(lclsNew.getDispatchTime());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 5.预派工标志更新 -IsReservation
|
|
|
+ if (old.getIsReservation().equals(1) &&
|
|
|
+ (item.getSfwcps().equals("已配送") || lclsNew.getIsReservation().equals(0))){
|
|
|
+ old.setIsReservation(0);
|
|
|
}
|
|
|
|
|
|
- return orderProductsUpdate;
|
|
|
+ old.setOutUpdateSynReqTime(new Date());
|
|
|
+ old.setUpdateTime(new Date());
|
|
|
+ return old;
|
|
|
}
|
|
|
|
|
|
+ private void upBase(OrderBase old, ItfTblAzAssignLcLsDownload item, OrderBase lclsNew) {
|
|
|
+ old.setOutUpdateSynReqId(item.getSynReqId());
|
|
|
+ old.setUpdateTime(new Date());
|
|
|
+ old.setUserMobile(lclsNew.getUserMobile());
|
|
|
+ old.setUserMobile2(lclsNew.getUserMobile2());
|
|
|
+ old.setUserName(lclsNew.getUserName());
|
|
|
+ old.setLinkName(lclsNew.getLinkName());
|
|
|
+ old.setAreaCode(lclsNew.getAreaCode());
|
|
|
+ old.setTelPhone(lclsNew.getTelPhone());
|
|
|
+ old.setGreeVirtualnumber(lclsNew.getGreeVirtualnumber());
|
|
|
+ old.setAddress(lclsNew.getAddress());
|
|
|
+ old.setProvince(lclsNew.getProvince());
|
|
|
+ old.setProvinceId(lclsNew.getProvinceId());
|
|
|
+ old.setCity(lclsNew.getCity());
|
|
|
+ old.setCityId(lclsNew.getCityId());
|
|
|
+ old.setArea(lclsNew.getArea());
|
|
|
+ old.setAreaId(lclsNew.getAreaId());
|
|
|
+ old.setStreet(lclsNew.getStreet());
|
|
|
+ old.setStreetId(lclsNew.getStreetId());
|
|
|
+ old.setRemark(lclsNew.getRemark());
|
|
|
+ if (lclsNew.getUndoneNum()< old.getUndoneNum()){
|
|
|
+ old.setUndoneNum(lclsNew.getUndoneNum());
|
|
|
+ }
|
|
|
+ old.setWorkerId(lclsNew.getWorkerId());
|
|
|
+ old.setWorkerName(lclsNew.getWorkerName());
|
|
|
+ // old.set(lclsNew.get());
|
|
|
+ old.setWorkerMobile(lclsNew.getWorkerMobile());
|
|
|
+ old.setWorkerIdcard(lclsNew.getWorkerIdcard());
|
|
|
+
|
|
|
+ if (old.getDispatchTime()==null && item.getJspgwdsj() !=null){
|
|
|
+ old.setDispatchTime(item.getJspgwdsj());
|
|
|
+ }
|
|
|
+ if (old.getReceTime()==null && item.getJspgwdsj() !=null){
|
|
|
+ old.setReceTime(item.getJspgwdsj());
|
|
|
+ }
|
|
|
+ if (old.getWorkerReceTime()==null && item.getPgsj() !=null){
|
|
|
+ old.setWorkerReceTime(item.getPgsj());
|
|
|
+ }
|
|
|
+ old.setSaleType(lclsNew.getSaleType());
|
|
|
+ old.setSaleWebsitId(lclsNew.getSaleWebsitId());
|
|
|
+ old.setSaleWebsitName(lclsNew.getSaleWebsitName());
|
|
|
+ old.setSaleWebsitSysNumber(lclsNew.getSaleWebsitSysNumber());
|
|
|
+ old.setCrossNo(lclsNew.getCrossNo());
|
|
|
+ old.setUserAttrId(lclsNew.getUserAttrId());
|
|
|
+ old.setUserAttr(lclsNew.getUserAttr());
|
|
|
+ old.setSysWebsitNumber(lclsNew.getSysWebsitNumber());
|
|
|
+ old.setInvoiceNo(lclsNew.getInvoiceNo());
|
|
|
+ old.setInfoSource(lclsNew.getInfoSource());
|
|
|
+ old.setInfoSourceId(lclsNew.getInfoSourceId());
|
|
|
+ old.setBuyTime(lclsNew.getBuyTime());
|
|
|
+ old.setExpectStartTime(lclsNew.getExpectStartTime());
|
|
|
+ old.setExpectEndTime(lclsNew.getExpectStartTime());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
@NotNull
|
|
|
- private OrderBase getOrderBaseUp(OrderBase old, ItfTblAzAssignLcLsDownload item, OrderBase newLCLS,Brand brand) {
|
|
|
+ private OrderBase getOrderBaseUpBak(OrderBase old, ItfTblAzAssignLcLsDownload item, OrderBase newLCLS,Brand brand) {
|
|
|
OrderBase upInfo = new OrderBase();
|
|
|
|
|
|
// 本地订单已关闭 且总部的最后修改时间在本地数据修改时间之前 不可修改
|
|
@@ -684,6 +1009,8 @@ public class InstallBusiness {
|
|
|
upInfo.setUndoneNum(old.getUndoneNum());
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
// 2:网点信息修改 已待服务人员处理,不允更新网点 6,7,10 少6
|
|
|
if (!(old.getOrderStatus().equals(GDOrderStatusEnum.INSTALL_STATUS_G6.getCode()) ||
|
|
|
old.getOrderStatus().equals(GDOrderStatusEnum.INSTALL_STATUS_G10.getCode()) ||
|
|
@@ -734,7 +1061,7 @@ public class InstallBusiness {
|
|
|
}
|
|
|
|
|
|
private void upYyazsj(OrderBase old, ItfTblAzAssignLcLsDownload item, OrderBase upInfo) {
|
|
|
- Boolean flag = Boolean.TRUE;
|
|
|
+ Boolean flag = Boolean.FALSE;
|
|
|
// 1是天猫工单,2预约时间不相同
|
|
|
if (upInfo.getExternalName2().equals("TBL_TMALL_ORDERINFO")){
|
|
|
if (item.getYyazsj() !=null){
|
|
@@ -747,14 +1074,14 @@ public class InstallBusiness {
|
|
|
old.getOrderStatus().equals(GDOrderStatusEnum.INSTALL_STATUS_G5.getCode()) ||
|
|
|
old.getOrderStatus().equals(GDOrderStatusEnum.INSTALL_STATUS_G6.getCode())){
|
|
|
// 要改
|
|
|
- flag = Boolean.FALSE;
|
|
|
+ flag = Boolean.TRUE;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- // 不需要改退回
|
|
|
+ // 需要改
|
|
|
if (flag){
|
|
|
- upInfo.setAppointmentTime(old.getAppointmentTime());
|
|
|
- upInfo.setAppointmentEndTime(old.getAppointmentEndTime());
|
|
|
+ old.setAppointmentTime(upInfo.getAppointmentTime());
|
|
|
+ old.setAppointmentEndTime(upInfo.getAppointmentEndTime());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -878,6 +1205,8 @@ public class InstallBusiness {
|
|
|
List<OrderReAppointment> oa = new ArrayList<>();
|
|
|
List<OrderAppraise> oanew = new ArrayList<>();
|
|
|
List<OrderProduct> orderProducts = new ArrayList<>();
|
|
|
+ List<OrderInstallDetail> oids = new ArrayList<>();
|
|
|
+ List<OrderDetailFile> odfs = new ArrayList<>();
|
|
|
List<ItfTblAzAssignFkmxDownload> fkmxs = new ArrayList<>();
|
|
|
List<Long> synReqIds = new ArrayList<>();
|
|
|
List<Long> synReqFkMxIds = new ArrayList<>();
|
|
@@ -887,6 +1216,7 @@ public class InstallBusiness {
|
|
|
List<ItfGreeToFaDownloadTaskList> its = new ArrayList<>();
|
|
|
List<OrderApplyDispatch> oads = new ArrayList<>();
|
|
|
|
|
|
+
|
|
|
List<ItfTblAzAssignMxDownload> orderMx = itfTblAzAssignMxDownloadService.lambdaQuery()
|
|
|
.eq(ItfTblAzAssignMxDownload::getDownloadTaskNo, item.getDownloadTaskNo())
|
|
|
.eq(ItfTblAzAssignMxDownload::getSynStatus,0)
|
|
@@ -920,7 +1250,7 @@ public class InstallBusiness {
|
|
|
// 获取工单师傅信息
|
|
|
OrderWorker orderWorker = getOrderWorker(orderBase);
|
|
|
// 获取工单机型
|
|
|
- getOrderProduct(orderBase, orderProducts, sysDictRefDLMap, sysDictRefXLMap, sysDictRefXiLieMap, orderMx);
|
|
|
+ getOrderProduct(orderBase, orderProducts, sysDictRefDLMap, sysDictRefXLMap, sysDictRefXiLieMap, orderMx,oids,odfs);
|
|
|
// 获取工单操作明细- 操作日志表
|
|
|
List<OrderInstallOperatingLog> oiolList = getOrderInstallOperatingLogs(fkmxs, orderBase,item);
|
|
|
// 获取安装费用清单 - 对应扩展表
|
|
@@ -947,7 +1277,7 @@ public class InstallBusiness {
|
|
|
// 安装工单数据落本地表
|
|
|
addOrderData(orderBase, orderWorker, orderInstall, orderProducts, oiolList, oa, oanew,
|
|
|
item.getSynReqId(), synReqIds, synReqFkMxIds, synReqYfYyIds, fyqd, getpjSynReqId,
|
|
|
- faGreeSms,orderAppeal, its, oads);
|
|
|
+ faGreeSms,orderAppeal, its, oads, oids, odfs);
|
|
|
}
|
|
|
|
|
|
private void getOldForNewProduct(ItfTblAzAssignLcLsDownload item, OrderBase orderBase,List<ItfGreeToFaDownloadTaskList> its) {
|
|
@@ -1012,7 +1342,8 @@ public class InstallBusiness {
|
|
|
Long synReqId, List<Long> synReqIds, List<Long> synReqFkMxIds, List<Long> synReqYfYyIds,
|
|
|
List<ItfTblAzAssignFeeDownload> fyqd, List<Long> getpjSynReqId,
|
|
|
List<FaGreeSms> faGreeSms,List<OrderAppeal> orderAppeal,
|
|
|
- List<ItfGreeToFaDownloadTaskList> its, List<OrderApplyDispatch> oads) {
|
|
|
+ List<ItfGreeToFaDownloadTaskList> its, List<OrderApplyDispatch> oads,
|
|
|
+ List<OrderInstallDetail> oids,List<OrderDetailFile> odfs) {
|
|
|
// 工单基础表
|
|
|
if (orderBase != null) {
|
|
|
orderBaseService.save(orderBase);
|
|
@@ -1028,11 +1359,26 @@ public class InstallBusiness {
|
|
|
orderProductService.saveBatch(orderProducts);
|
|
|
orderProducts.clear();
|
|
|
}
|
|
|
+ // 采集明细
|
|
|
+ if (oids.size()>0){
|
|
|
+ /*for (OrderInstallDetail item :oids){
|
|
|
+ item.setOrderBaseId(orderBase.getId());
|
|
|
+ }*/
|
|
|
+ orderInstallDetailService.saveBatch(oids);
|
|
|
+ oids.clear();
|
|
|
+ }
|
|
|
+ // 采集附件
|
|
|
+ if (odfs.size()>0){
|
|
|
+ /*for (OrderDetailFile item :odfs){
|
|
|
+ item.setOrderBaseId(orderBase.getId());
|
|
|
+ }*/
|
|
|
+ orderDetailFileService.saveBatch(odfs);
|
|
|
+ odfs.clear();
|
|
|
+ }
|
|
|
if (synReqIds.size()>0){
|
|
|
upItfTblAzAssignMxDownload(synReqIds);
|
|
|
synReqIds.clear();
|
|
|
}
|
|
|
-
|
|
|
// 操作明细表
|
|
|
if (oiolList.size()>0){
|
|
|
orderInstallOperatingLogService.saveBatch(oiolList);
|
|
@@ -1451,60 +1797,168 @@ public class InstallBusiness {
|
|
|
return oiolList;
|
|
|
}
|
|
|
|
|
|
- private void getOrderProduct(OrderBase orderBase, List<OrderProduct> orderProducts, Map<String,
|
|
|
+ private void getOrderProductUp(OrderBase orderBase, List<OrderProduct> orderProducts, Map<String,
|
|
|
List<SysDictRef>> sysDictRefDLMap, Map<String, List<SysDictRef>> sysDictRefXLMap,
|
|
|
Map<String, List<SysDictRef>> sysDictRefXiLieMap,
|
|
|
List<ItfTblAzAssignMxDownload> orderMx) {
|
|
|
|
|
|
// pgmxid主键
|
|
|
- // 生成对象
|
|
|
+ // 生成工单产品对象
|
|
|
for (ItfTblAzAssignMxDownload mx:orderMx){
|
|
|
OrderProduct op = new OrderProduct();
|
|
|
- op.setId(UUID.randomUUID().toString());
|
|
|
- op.setOrderBaseId(orderBase.getId());
|
|
|
- op.setPgmxid(mx.getPgmxid());
|
|
|
- op.setPgguid(mx.getPgguid());
|
|
|
- op.setMainId(sysDictRefDLMap.get(String.valueOf(mx.getSpid())).get(0).getDictCode());
|
|
|
- op.setMainName(sysDictRefDLMap.get(String.valueOf(mx.getSpid())).get(0).getDictValue());
|
|
|
- if (!mx.getXlid().equals(0L)){
|
|
|
- op.setSmallId(sysDictRefXLMap.get(String.valueOf(mx.getXlid())).get(0).getDictCode());
|
|
|
- op.setSmallName(sysDictRefXLMap.get(String.valueOf(mx.getXlid())).get(0).getDictValue());
|
|
|
- } else {
|
|
|
- op.setSmallId(String.valueOf(mx.getXlid()));
|
|
|
- op.setSmallName(mx.getXlmc());
|
|
|
- }
|
|
|
+ InstallBusiness.this.getOrderProduct(orderBase, orderProducts, sysDictRefDLMap, sysDictRefXLMap,
|
|
|
+ sysDictRefXiLieMap, mx, op);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- if (!mx.getXiid().equals("0")){
|
|
|
- op.setSeriesId(sysDictRefXiLieMap.get(mx.getXiid()).get(0).getDictCode());
|
|
|
- op.setSeriesName(sysDictRefXiLieMap.get(mx.getXiid()).get(0).getDictValue());
|
|
|
- } else {
|
|
|
- op.setSeriesId(mx.getXiid());
|
|
|
- op.setSeriesName(mx.getXimc());
|
|
|
+
|
|
|
+ private void getOrderProduct(OrderBase orderBase, List<OrderProduct> orderProducts, Map<String,
|
|
|
+ List<SysDictRef>> sysDictRefDLMap, Map<String, List<SysDictRef>> sysDictRefXLMap,
|
|
|
+ Map<String, List<SysDictRef>> sysDictRefXiLieMap,
|
|
|
+ List<ItfTblAzAssignMxDownload> orderMx,List<OrderInstallDetail> oids,
|
|
|
+ List<OrderDetailFile> odfs) {
|
|
|
+ int insertnum=1;
|
|
|
+ int outid=1;
|
|
|
+
|
|
|
+
|
|
|
+ for (ItfTblAzAssignMxDownload mx:orderMx){
|
|
|
+ insertnum=1;
|
|
|
+ outid=1;
|
|
|
+ OrderProduct op = new OrderProduct();
|
|
|
+ // 生成工单产品对象
|
|
|
+ getOrderProduct(orderBase, orderProducts, sysDictRefDLMap, sysDictRefXLMap, sysDictRefXiLieMap, mx, op);
|
|
|
+ // 生成采集明细数据+附件数据
|
|
|
+ extracted(orderBase, oids, odfs, insertnum, outid, mx, op);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void extracted(OrderBase orderBase, List<OrderInstallDetail> oids, List<OrderDetailFile> odfs,
|
|
|
+ int insertnum, int outid, ItfTblAzAssignMxDownload mx, OrderProduct op) {
|
|
|
+ // 记录产品数量
|
|
|
+ int totalnum= mx.getShul();
|
|
|
+ if (totalnum>100) {
|
|
|
+ totalnum=1;
|
|
|
+ }
|
|
|
+ while (insertnum <=totalnum){
|
|
|
+ OrderInstallDetail add = getOrderInstallDetail(orderBase, oids, outid, op);
|
|
|
+ insertnum++;
|
|
|
+ outid++;
|
|
|
+
|
|
|
+ // 安装工单采集附件表(仅商用空调的多联机、风管机)需要初始化
|
|
|
+ if (add.getSmallName().equals("多联机") || add.getSmallName().equals("风管机")){
|
|
|
+ getOrderDetailFile(orderBase, odfs, add, "室外机固定", 2);
|
|
|
+ getOrderDetailFile(orderBase, odfs, add, "冷凝水管软接", 2);
|
|
|
+ getOrderDetailFile(orderBase, odfs, add, "外机电源接线", 2);
|
|
|
+ getOrderDetailFile(orderBase, odfs, add, "外机出管处封堵", 2);
|
|
|
+ getOrderDetailFile(orderBase, odfs, add, "室内机安装完成", 3);
|
|
|
+ getOrderDetailFile(orderBase, odfs, add, "冷凝水管通气孔", 3);
|
|
|
+ getOrderDetailFile(orderBase, odfs, add, "室内机走管", 3);
|
|
|
+ getOrderDetailFile(orderBase, odfs, add, "系统抽真空", 3);
|
|
|
}
|
|
|
- op.setProductId(mx.getJxno());
|
|
|
- op.setProductName(mx.getJxmc());
|
|
|
- op.setInsideCode(mx.getNjtm());
|
|
|
- op.setOutCode(mx.getWjtm());
|
|
|
- op.setNum(mx.getShul());
|
|
|
- op.setPrice(mx.getJiage());
|
|
|
- op.setUnit(mx.getDanw());
|
|
|
- op.setMaterialNumber(mx.getWldm());
|
|
|
- op.setInsideNum(mx.getNjsl());
|
|
|
- op.setOutNum(mx.getWjsl());
|
|
|
- op.setUndoneNum(mx.getWwsl());
|
|
|
- op.setCreateTime(mx.getCjdt());
|
|
|
- op.setCreateBy(mx.getCreatedBy());
|
|
|
- // 销售单位
|
|
|
- op.setSaleWebsit(orderBase.getSaleWebsitId());
|
|
|
- // 无销售单位联系人电话
|
|
|
- op.setServiceWebsit(orderBase.getWebsitId());
|
|
|
- // 无服务单位电话信息 最好取websit表中的热线,先不取
|
|
|
- op.setBuyTime(orderBase.getBuyTime());
|
|
|
- op.setRemark(mx.getBeiz());
|
|
|
- orderProducts.add(op);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ 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) {
|
|
|
+ op.setId(UUID.randomUUID().toString());
|
|
|
+ op.setOrderBaseId(orderBase.getId());
|
|
|
+ // pgmxid主键
|
|
|
+ op.setPgmxid(mx.getPgmxid());
|
|
|
+ op.setPgguid(mx.getPgguid());
|
|
|
+ op.setMainId(sysDictRefDLMap.get(String.valueOf(mx.getSpid())).get(0).getDictCode());
|
|
|
+ op.setMainName(sysDictRefDLMap.get(String.valueOf(mx.getSpid())).get(0).getDictValue());
|
|
|
+ if (!mx.getXlid().equals(0L)) {
|
|
|
+ op.setSmallId(sysDictRefXLMap.get(String.valueOf(mx.getXlid())).get(0).getDictCode());
|
|
|
+ op.setSmallName(sysDictRefXLMap.get(String.valueOf(mx.getXlid())).get(0).getDictValue());
|
|
|
+ } else {
|
|
|
+ op.setSmallId(String.valueOf(mx.getXlid()));
|
|
|
+ op.setSmallName(mx.getXlmc());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!mx.getXiid().equals("0")) {
|
|
|
+ op.setSeriesId(sysDictRefXiLieMap.get(mx.getXiid()).get(0).getDictCode());
|
|
|
+ op.setSeriesName(sysDictRefXiLieMap.get(mx.getXiid()).get(0).getDictValue());
|
|
|
+ } else {
|
|
|
+ op.setSeriesId(mx.getXiid());
|
|
|
+ op.setSeriesName(mx.getXimc());
|
|
|
+ }
|
|
|
+ op.setProductId(mx.getJxno());
|
|
|
+ op.setProductName(mx.getJxmc());
|
|
|
+ op.setInsideCode(mx.getNjtm());
|
|
|
+ op.setOutCode(mx.getWjtm());
|
|
|
+ op.setNum(mx.getShul());
|
|
|
+ if (op.getNum()>100){
|
|
|
+ op.setNum(1);
|
|
|
+ }
|
|
|
+ op.setPrice(mx.getJiage());
|
|
|
+ op.setUnit(mx.getDanw());
|
|
|
+ op.setMaterialNumber(mx.getWldm());
|
|
|
+ op.setInsideNum(mx.getNjsl());
|
|
|
+ op.setOutNum(mx.getWjsl());
|
|
|
+ // op.setUndoneNum(mx.getWwsl());
|
|
|
+ op.setUndoneNum(op.getNum());
|
|
|
+ op.setCreateTime(mx.getCjdt());
|
|
|
+ op.setCreateBy(mx.getCreatedBy());
|
|
|
+ // 销售单位
|
|
|
+ op.setSaleWebsit(orderBase.getSaleWebsitId());
|
|
|
+ // 无销售单位联系人电话
|
|
|
+ op.setServiceWebsit(orderBase.getWebsitId());
|
|
|
+ // 无服务单位电话信息 最好取websit表中的热线,先不取
|
|
|
+ op.setBuyTime(orderBase.getBuyTime());
|
|
|
+ op.setRemark(mx.getBeiz());
|
|
|
+ orderProducts.add(op);
|
|
|
+ }
|
|
|
+
|
|
|
+ @NotNull
|
|
|
+ private OrderInstallDetail getOrderInstallDetail(OrderBase orderBase, List<OrderInstallDetail> oids, int outid, OrderProduct op) {
|
|
|
+ String pgwcmxid = UUID.randomUUID().toString();
|
|
|
+ OrderInstallDetail add = new OrderInstallDetail();
|
|
|
+ add.setId(IdWorker.getIdStr());
|
|
|
+ add.setWebsitId(orderBase.getWebsitId());
|
|
|
+ add.setOrderBaseId(orderBase.getId());
|
|
|
+ add.setOrderProductId(op.getId());
|
|
|
+ add.setCreateTime(new Date());
|
|
|
+ add.setCreateBy("system");
|
|
|
+ add.setMainId(op.getMainId());
|
|
|
+ add.setMainName(op.getMainName());
|
|
|
+ add.setSmallId(op.getSmallId());
|
|
|
+ add.setSmallName(op.getSmallName());
|
|
|
+ add.setSeriesId(op.getSeriesId());
|
|
|
+ add.setSeriesName(op.getSeriesName());
|
|
|
+ add.setProductId(op.getProductId());
|
|
|
+ add.setProductName(op.getProductName());
|
|
|
+ add.setOutId(outid);
|
|
|
+ add.setCodeIndex(outid);
|
|
|
+ add.setInsideNum(op.getInsideNum());
|
|
|
+ if (add.getInsideNum()>100){
|
|
|
+ add.setInsideNum(1);
|
|
|
+ }
|
|
|
+ add.setOutNum(op.getOutNum());
|
|
|
+ if (add.getOutNum()>100){
|
|
|
+ add.setOutNum(1);
|
|
|
+ }
|
|
|
+ add.setPgguid(orderBase.getPgguid());
|
|
|
+ add.setPgwcmxid(pgwcmxid);
|
|
|
+ add.setPgmxid(op.getPgmxid());
|
|
|
+ add.setBuyCertificatePicture("");
|
|
|
+ add.setAfterBuyCertificatePicture("");
|
|
|
+ add.setFirstTime(new Date());
|
|
|
+ oids.add(add);
|
|
|
+ return add;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void getOrderDetailFile(OrderBase orderBase, List<OrderDetailFile> odfs, OrderInstallDetail add, String 室外机固定, Integer fileType) {
|
|
|
+ OrderDetailFile a = new OrderDetailFile();
|
|
|
+ a.setFjguid(IdWorker.getIdStr());
|
|
|
+ a.setOrderBaseId(orderBase.getId());
|
|
|
+ a.setOrderDetailId(add.getId());
|
|
|
+ a.setPgwcmxid(UUID.randomUUID().toString());
|
|
|
+ a.setFileName(室外机固定);
|
|
|
+ a.setFileType(fileType);
|
|
|
+ a.setCreateTime(new Date());
|
|
|
+ a.setCreateBy("system");
|
|
|
+ odfs.add(a);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
private Map<String, List<SysDictRef>> getMap(Brand brand) {
|
|
|
List<SysDictRef> sysDictxilieRef;
|