From b09e1a8b036553d1e161d127aa738a504593490a Mon Sep 17 00:00:00 2001
From: mrzcc <121184950@qq.com>
Date: 星期三, 19 二月 2020 12:14:55 +0800
Subject: [PATCH] 优化巡检路线查询sql
---
HardwareAdapationService/src/main/java/com/java110/hardwareAdapation/thread/TranslateOwnerToMachineChangeMachine.java | 67 ++++++++++++++++++++++++++++-----
1 files changed, 56 insertions(+), 11 deletions(-)
diff --git a/HardwareAdapationService/src/main/java/com/java110/hardwareAdapation/thread/TranslateOwnerToMachineChangeMachine.java b/HardwareAdapationService/src/main/java/com/java110/hardwareAdapation/thread/TranslateOwnerToMachineChangeMachine.java
index ed4239a..dfb2165 100644
--- a/HardwareAdapationService/src/main/java/com/java110/hardwareAdapation/thread/TranslateOwnerToMachineChangeMachine.java
+++ b/HardwareAdapationService/src/main/java/com/java110/hardwareAdapation/thread/TranslateOwnerToMachineChangeMachine.java
@@ -5,7 +5,9 @@
import com.java110.core.smo.hardwareAdapation.IMachineInnerServiceSMO;
import com.java110.core.smo.order.IOrderInnerServiceSMO;
import com.java110.core.smo.owner.IOwnerInnerServiceSMO;
-import com.java110.dto.OwnerDto;
+import com.java110.core.smo.room.IRoomInnerServiceSMO;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.dto.RoomDto;
import com.java110.dto.hardwareAdapation.MachineDto;
import com.java110.dto.order.OrderDto;
import com.java110.hardwareAdapation.dao.IMachineTranslateServiceDao;
@@ -17,6 +19,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.util.ArrayList;
+import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -27,12 +31,13 @@
*/
public class TranslateOwnerToMachineChangeMachine implements Runnable {
Logger logger = LoggerFactory.getLogger(TranslateOwnerToMachineChangeMachine.class);
- public static final long DEFAULT_WAIT_SECOND = 5000 * 6; // 榛樿30绉掓墽琛屼竴娆�
+ public static final long DEFAULT_WAIT_SECOND = 1000 * 60; // 榛樿30绉掓墽琛屼竴娆�
public static boolean TRANSLATE_STATE = false;
private IOrderInnerServiceSMO orderInnerServiceSMOImpl;
private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
private IMachineInnerServiceSMO machineInnerServiceSMOImpl;
+ private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
private IMachineTranslateServiceDao machineTranslateServiceDaoImpl;
@@ -40,6 +45,7 @@
TRANSLATE_STATE = state;
orderInnerServiceSMOImpl = ApplicationContextFactory.getBean(IOrderInnerServiceSMO.class.getName(), IOrderInnerServiceSMO.class);
ownerInnerServiceSMOImpl = ApplicationContextFactory.getBean(IOwnerInnerServiceSMO.class.getName(), IOwnerInnerServiceSMO.class);
+ roomInnerServiceSMOImpl = ApplicationContextFactory.getBean(IRoomInnerServiceSMO.class.getName(), IRoomInnerServiceSMO.class);
machineInnerServiceSMOImpl = ApplicationContextFactory.getBean("machineInnerServiceSMOImpl", IMachineInnerServiceSMO.class);
machineTranslateServiceDaoImpl = ApplicationContextFactory.getBean("machineTranslateServiceDaoImpl", IMachineTranslateServiceDao.class);
@@ -69,6 +75,7 @@
OrderDto orderDto = new OrderDto();
List<OrderDto> orderDtos = orderInnerServiceSMOImpl.queryMachineOrders(orderDto);
for (OrderDto tmpOrderDto : orderDtos) {
+ logger.debug("寮�濮嬪鐞嗚鍗�" + JSONObject.toJSONString(tmpOrderDto));
try {
//鏍规嵁bId 鏌ヨ纭欢淇℃伅
machineDto = new MachineDto();
@@ -77,10 +84,13 @@
if (machineDtos == null || machineDtos.size() == 0) {
//鍒锋柊 鐘舵�佷负C1
orderInnerServiceSMOImpl.updateBusinessStatusCd(tmpOrderDto);
- logger.debug("娌℃湁鏁版嵁鏁版嵁鐩存帴鍒蜂负C1"+ JSONObject.toJSONString(tmpOrderDto));
+ logger.debug("娌℃湁鏁版嵁鏁版嵁鐩存帴鍒蜂负C1" + JSONObject.toJSONString(tmpOrderDto));
continue;
}
- dealData(tmpOrderDto, machineDtos.get(0));
+ if (!"9996".equals(machineDtos.get(0).getMachineTypeCd())) {
+ dealData(tmpOrderDto, machineDtos.get(0));
+ }
+
//鍒锋柊 鐘舵�佷负C1
orderInnerServiceSMOImpl.updateBusinessStatusCd(tmpOrderDto);
} catch (Exception e) {
@@ -103,13 +113,36 @@
//鏍规嵁灏忓尯ID鏌ヨ鐜版湁璁惧
OwnerDto ownerDto = new OwnerDto();
ownerDto.setCommunityId(communityId);
- List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnerMembers(ownerDto);
+ List<OwnerDto> ownerDtos = null;
+ String locationTypeCd = machineDto.getLocationTypeCd();
+ if ("1000,1001,1002,1003".contains(locationTypeCd)) {//鏌ヨ鏁翠釜灏忓尯鐨勪笟涓�
+ ownerDtos = ownerInnerServiceSMOImpl.queryOwnerMembers(ownerDto);
+ } else if ("2000".equals(locationTypeCd)) {//2000 鍗曞厓闂� 锛屽垯杩欎釜鍗曞厓涓嬬殑涓氫富鍚屾
+ //鍏堟牴鎹崟鍏冮棬ID 鏌ヨ 鎴垮眿
+ RoomDto roomDto = new RoomDto();
+ roomDto.setUnitId(machineDto.getLocationObjId());
+ roomDto.setCommunityId(machineDto.getCommunityId());
+ List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+ if (roomDtos == null || roomDtos.size() == 0) { // 鍗曞厓涓嬫病鏈夋埧灞�
+ return;
+ }
+ ownerDto.setRoomIds(getRoomIds(roomDtos));
+ ownerDtos = ownerInnerServiceSMOImpl.queryOwnerMembers(ownerDto);
+ } else if ("3000".equals(locationTypeCd)) {// 3000 鎴垮眿闂�
+ ownerDto.setRoomId(machineDto.getLocationObjId());
+ ownerDtos = ownerInnerServiceSMOImpl.queryOwnerMembers(ownerDto);
+ }
+
+ if (ownerDtos == null) {
+ return;
+ }
for (OwnerDto tmpOwnerDto : ownerDtos) {
- if (BusinessTypeConstant.BUSINESS_TYPE_SAVE_MACHINE.equals(tmpOrderDto.getBusinessTypeCd())) {
+ if (BusinessTypeConstant.BUSINESS_TYPE_SAVE_MACHINE.equals(tmpOrderDto.getBusinessTypeCd())
+ || BusinessTypeConstant.BUSINESS_TYPE_UPDATE_MACHINE.equals(tmpOrderDto.getBusinessTypeCd())) {
saveMachineTranslate(machineDto, tmpOwnerDto);
- } else if (BusinessTypeConstant.BUSINESS_TYPE_UPDATE_MACHINE.equals(tmpOrderDto.getBusinessTypeCd())) {
- updateMachineTranslate(machineDto, tmpOwnerDto);
+// } else if (BusinessTypeConstant.BUSINESS_TYPE_UPDATE_MACHINE.equals(tmpOrderDto.getBusinessTypeCd())) {
+// updateMachineTranslate(machineDto, tmpOwnerDto);
} else if (BusinessTypeConstant.BUSINESS_TYPE_DELETE_MACHINE.equals(tmpOrderDto.getBusinessTypeCd())) {
deleteMachineTranslate(machineDto, tmpOwnerDto);
} else {
@@ -119,15 +152,23 @@
}
+ private String[] getRoomIds(List<RoomDto> roomDtos) {
+ List<String> roomIds = new ArrayList<String>();
+ for (RoomDto roomDto : roomDtos) {
+ roomIds.add(roomDto.getRoomId());
+ }
+ return roomIds.toArray(new String[roomIds.size()]);
+ }
+
private void saveMachineTranslate(MachineDto tmpMachineDto, OwnerDto ownerDto) {
Map paramInfo = new HashMap();
paramInfo.put("machineId", tmpMachineDto.getMachineId());
paramInfo.put("objId", ownerDto.getMemberId());
int count = machineTranslateServiceDaoImpl.queryMachineTranslatesCount(paramInfo);
- if(count >0){
- updateMachineTranslate(tmpMachineDto,ownerDto);
- return ;
+ if (count > 0) {
+ updateMachineTranslate(tmpMachineDto, ownerDto);
+ return;
}
Map info = new HashMap();
//machine_id,machine_code,status_cd,type_cd,machine_translate_id,obj_id,obj_name,state,community_id,b_id
@@ -151,7 +192,9 @@
info.put("objId", ownerDto.getMemberId());
info.put("state", "10000");
info.put("communityId", ownerDto.getCommunityId());
+ info.put("updateTime", new Date());
machineTranslateServiceDaoImpl.updateMachineTranslate(info);
+
}
@@ -162,6 +205,8 @@
info.put("objId", ownerDto.getMemberId());
info.put("statusCd", StatusConstant.STATUS_CD_INVALID);
info.put("communityId", ownerDto.getCommunityId());
+ info.put("updateTime", new Date());
+
machineTranslateServiceDaoImpl.updateMachineTranslate(info);
}
--
Gitblit v1.8.0