Преглед изворни кода

开发完成小区费用项功能

wuxw пре 1 година
родитељ
комит
423d2d0d96

+ 50 - 0
service-acct/src/main/java/com/java110/acct/cmd/account/QueryAdminAccountDetailCmd.java

@@ -0,0 +1,50 @@
+package com.java110.acct.cmd.account;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.account.AccountDetailDto;
+import com.java110.intf.acct.IAccountDetailInnerServiceSMO;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.List;
+
+@Java110Cmd(serviceCode = "account.queryAdminAccountDetail")
+public class QueryAdminAccountDetailCmd extends Cmd {
+
+    @Autowired
+    private IAccountDetailInnerServiceSMO accountDetailInnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        super.validateAdmin(context);
+        super.validatePageInfo(reqJson);
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        AccountDetailDto accountDetailDto = BeanConvertUtil.covertBean(reqJson,AccountDetailDto.class);
+        int count = accountDetailInnerServiceSMOImpl.queryAccountDetailsCount(accountDetailDto);
+
+        List<AccountDetailDto> accountDetailDtos = null;
+        if (count > 0) {
+            accountDetailDtos = accountDetailInnerServiceSMOImpl.queryAccountDetails(accountDetailDto);
+        } else {
+            accountDetailDtos = new ArrayList<>();
+        }
+
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) accountDetailDto.getRow()), count, accountDetailDtos);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+        context.setResponseEntity(responseEntity);
+    }
+}

+ 82 - 0
service-community/src/main/java/com/java110/community/cmd/parkingSpaceApply/ListAdminParkingSpaceApplyCmd.java

@@ -0,0 +1,82 @@
+/*
+ * Copyright 2017-2020 吴学文 and java110 team.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.java110.community.cmd.parkingSpaceApply;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.core.log.LoggerFactory;
+import com.java110.dto.parking.ParkingSpaceApplyDto;
+import com.java110.intf.community.IParkingSpaceApplyV1InnerServiceSMO;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.vo.ResultVo;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * 类表述:查询
+ * 服务编码:parkingSpaceApply.listParkingSpaceApply
+ * 请求路劲:/app/parkingSpaceApply.ListParkingSpaceApply
+ * add by 吴学文 at 2021-10-18 13:00:02 mail: 928255095@qq.com
+ * open source address: https://gitee.com/wuxw7/MicroCommunity
+ * 官网:http://www.homecommunity.cn
+ * 温馨提示:如果您对此文件进行修改 请不要删除原有作者及注释信息,请补充您的 修改的原因以及联系邮箱如下
+ * // modify by 张三 at 2021-09-12 第10行在某种场景下存在某种bug 需要修复,注释10至20行 加入 20行至30行
+ */
+@Java110Cmd(serviceCode = "parkingSpaceApply.listAdminParkingSpaceApply")
+public class ListAdminParkingSpaceApplyCmd extends Cmd {
+
+  private static Logger logger = LoggerFactory.getLogger(ListAdminParkingSpaceApplyCmd.class);
+    @Autowired
+    private IParkingSpaceApplyV1InnerServiceSMO parkingSpaceApplyV1InnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
+        super.validatePageInfo(reqJson);
+        super.validateAdmin(cmdDataFlowContext);
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
+
+           ParkingSpaceApplyDto parkingSpaceApplyDto = BeanConvertUtil.covertBean(reqJson, ParkingSpaceApplyDto.class);
+
+           int count = parkingSpaceApplyV1InnerServiceSMOImpl.queryParkingSpaceApplysCount(parkingSpaceApplyDto);
+
+           List<ParkingSpaceApplyDto> parkingSpaceApplyDtos = null;
+
+           if (count > 0) {
+               parkingSpaceApplyDtos = parkingSpaceApplyV1InnerServiceSMOImpl.queryParkingSpaceApplys(parkingSpaceApplyDto);
+           } else {
+               parkingSpaceApplyDtos = new ArrayList<>();
+           }
+
+           ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reqJson.getInteger("row")), count, parkingSpaceApplyDtos);
+
+           ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+           cmdDataFlowContext.setResponseEntity(responseEntity);
+    }
+}

+ 1 - 0
service-community/src/main/java/com/java110/community/cmd/parkingSpaceApply/ListParkingSpaceApplyCmd.java

@@ -54,6 +54,7 @@ public class ListParkingSpaceApplyCmd extends Cmd {
     @Override
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         super.validatePageInfo(reqJson);
         super.validatePageInfo(reqJson);
+        super.validateProperty(cmdDataFlowContext);
     }
     }
 
 
     @Override
     @Override

+ 1 - 0
service-fee/src/main/java/com/java110/fee/cmd/feeConfig/ListFeeConfigsCmd.java

@@ -30,6 +30,7 @@ public class ListFeeConfigsCmd extends Cmd {
     @Override
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
         super.validatePageInfo(reqJson);
         super.validatePageInfo(reqJson);
+        super.validateProperty(cmdDataFlowContext);
         Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区ID");
         Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区ID");
     }
     }
 
 

+ 65 - 0
service-fee/src/main/java/com/java110/fee/cmd/feeConfig/QueryAdminFeeConfigsCmd.java

@@ -0,0 +1,65 @@
+package com.java110.fee.cmd.feeConfig;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.PageDto;
+import com.java110.dto.fee.FeeConfigDto;
+import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.StringUtil;
+import com.java110.vo.api.feeConfig.ApiFeeConfigDataVo;
+import com.java110.vo.api.feeConfig.ApiFeeConfigVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Java110Cmd(serviceCode = "feeConfig.queryAdminFeeConfigs")
+public class QueryAdminFeeConfigsCmd extends Cmd {
+
+    @Autowired
+    private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
+        super.validatePageInfo(reqJson);
+        super.validateAdmin(cmdDataFlowContext);
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
+        FeeConfigDto feeConfigDto = BeanConvertUtil.covertBean(reqJson, FeeConfigDto.class);
+        if (!StringUtil.isEmpty(reqJson.getString("isFlag")) && reqJson.getString("isFlag").equals("0")) {
+            feeConfigDto.setPage(PageDto.DEFAULT_PAGE);
+        }
+        int count = feeConfigInnerServiceSMOImpl.queryFeeConfigsCount(feeConfigDto);
+        List<ApiFeeConfigDataVo> feeConfigs = null;
+        if (count > 0) {
+            feeConfigs = BeanConvertUtil.covertBeanList(feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto), ApiFeeConfigDataVo.class);
+            //处理 小数点后无效的0
+            for (ApiFeeConfigDataVo feeConfig : feeConfigs) {
+                if (!StringUtil.isEmpty(feeConfig.getAdditionalAmount())) {
+                    feeConfig.setAdditionalAmount(Double.parseDouble(feeConfig.getAdditionalAmount()) + "");
+                }
+                if (!StringUtil.isEmpty(feeConfig.getSquarePrice())) {
+                    feeConfig.setSquarePrice(Double.parseDouble(feeConfig.getSquarePrice()) + "");
+                }
+            }
+        } else {
+            feeConfigs = new ArrayList<>();
+        }
+        ApiFeeConfigVo apiFeeConfigVo = new ApiFeeConfigVo();
+        apiFeeConfigVo.setTotal(count);
+        apiFeeConfigVo.setRecords((int) Math.ceil((double) count / (double) reqJson.getInteger("row")));
+        apiFeeConfigVo.setFeeConfigs(feeConfigs);
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiFeeConfigVo), HttpStatus.OK);
+        cmdDataFlowContext.setResponseEntity(responseEntity);
+    }
+}

+ 78 - 0
service-job/src/main/java/com/java110/job/cmd/iot/GetAdminOpenApiCmd.java

@@ -0,0 +1,78 @@
+package com.java110.job.cmd.iot;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.CmdContextUtils;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.store.StoreDto;
+import com.java110.dto.user.UserDto;
+import com.java110.intf.store.IStoreUserV1InnerServiceSMO;
+import com.java110.intf.store.IStoreV1InnerServiceSMO;
+import com.java110.intf.user.IUserV1InnerServiceSMO;
+import com.java110.job.adapt.hcIot.http.ISendIot;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.text.ParseException;
+import java.util.List;
+
+@Java110Cmd(serviceCode = "iot.getAdminOpenApi")
+public class GetAdminOpenApiCmd extends Cmd {
+
+    @Autowired
+    private IUserV1InnerServiceSMO userV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IStoreUserV1InnerServiceSMO storeUserV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IStoreV1InnerServiceSMO storeV1InnerServiceSMOImpl;
+
+    @Autowired
+    private ISendIot sendIotImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        Assert.hasKeyAndValue(reqJson, "iotApiCode", "未包含IOT接口编码");
+
+        String iotSwitch = MappingCache.getValue("IOT", "IOT_SWITCH");
+        if (!"ON".equals(iotSwitch)) {
+            throw new CmdException("物联网系统未部署");
+        }
+
+        String userId = CmdContextUtils.getUserId(context);
+
+        UserDto userDto = new UserDto();
+        userDto.setUserId(userId);
+        List<UserDto> userDtos = userV1InnerServiceSMOImpl.queryUsers(userDto);
+
+        Assert.listOnlyOne(userDtos, "用户未登录");
+        String storeId = CmdContextUtils.getStoreId(context);
+
+        reqJson.put("adminUserId", userDtos.get(0).getUserId());
+        reqJson.put("adminUserTel", userDtos.get(0).getTel());
+        reqJson.put("adminStoreId", storeId);
+
+        super.validateAdmin(context);
+
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+
+
+        ResultVo resultVo = sendIotImpl.post("/iot/api/common.openCommonApi", reqJson);
+
+        if (resultVo.getCode() != ResultVo.CODE_OK) {
+            throw new CmdException(resultVo.getMsg());
+        }
+
+        context.setResponseEntity(ResultVo.createResponseEntity(resultVo));
+
+    }
+}

+ 53 - 0
service-report/src/main/java/com/java110/report/cmd/car/QueryAdminHisOwnerCarCmd.java

@@ -0,0 +1,53 @@
+package com.java110.report.cmd.car;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.owner.OwnerCarDto;
+import com.java110.intf.report.IReportCommunityInnerServiceSMO;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 查询车辆变更记录
+ */
+@Java110Cmd(serviceCode = "car.queryAdminHisOwnerCar")
+public class QueryAdminHisOwnerCarCmd extends Cmd {
+
+    @Autowired
+    private IReportCommunityInnerServiceSMO reportCommunityInnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        super.validatePageInfo(reqJson);
+        super.validateAdmin(context);
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        int row = reqJson.getInteger("row");
+        OwnerCarDto ownerCarDto = BeanConvertUtil.covertBean(reqJson, OwnerCarDto.class);
+
+        int total = reportCommunityInnerServiceSMOImpl.queryHisOwnerCarCount(ownerCarDto);
+//        int count = 0;
+        List<OwnerCarDto> ownerCarDtos = null;
+        if (total > 0) {
+            ownerCarDtos = reportCommunityInnerServiceSMOImpl.queryHisOwnerCars(ownerCarDto);
+        } else {
+            ownerCarDtos = new ArrayList<>();
+        }
+
+        ResponseEntity<String> responseEntity = ResultVo.createResponseEntity((int) Math.ceil((double) total / (double) row), total, ownerCarDtos);
+        context.setResponseEntity(responseEntity);
+    }
+}

+ 1 - 1
service-report/src/main/java/com/java110/report/cmd/car/QueryHisOwnerCarCmd.java

@@ -30,7 +30,7 @@ public class QueryHisOwnerCarCmd extends Cmd {
     @Override
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
     public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
         Assert.hasKeyAndValue(reqJson,"communityId","未包含小区");
         Assert.hasKeyAndValue(reqJson,"communityId","未包含小区");
-
+        super.validateProperty(context);
     }
     }
 
 
     @Override
     @Override

+ 133 - 0
service-report/src/main/java/com/java110/report/cmd/community/QueryCommunityFeeTypeTreeCmd.java

@@ -0,0 +1,133 @@
+package com.java110.report.cmd.community;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.community.CommunityDto;
+import com.java110.dto.dict.DictDto;
+import com.java110.dto.parking.ParkingAreaDto;
+import com.java110.intf.community.ICommunityV1InnerServiceSMO;
+import com.java110.intf.dev.IDictV1InnerServiceSMO;
+import com.java110.intf.report.IReportCommunityInnerServiceSMO;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.ListUtil;
+import com.java110.utils.util.StringUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.text.ParseException;
+import java.util.List;
+
+/**
+ * 查询小区费用项树
+ */
+@Java110Cmd(serviceCode = "community.queryCommunityFeeTypeTree")
+public class QueryCommunityFeeTypeTreeCmd extends Cmd {
+
+    @Autowired
+    private ICommunityV1InnerServiceSMO communityV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IDictV1InnerServiceSMO dictV1InnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        // must be administrator
+        super.validateAdmin(context);
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+
+        List<CommunityDto> communityDtos = null;
+
+        CommunityDto communityDto = new CommunityDto();
+
+
+        communityDtos = communityV1InnerServiceSMOImpl.queryCommunitys(communityDto);
+        JSONArray communitys = new JSONArray();
+        if (ListUtil.isNull(communityDtos)) {
+            context.setResponseEntity(ResultVo.createResponseEntity(communitys));
+            return;
+        }
+
+        JSONObject communityInfo = null;
+        for (CommunityDto tmpCommunityDto : communityDtos) {
+            communityInfo = new JSONObject();
+            communityInfo.put("id", "c_" + tmpCommunityDto.getCommunityId());
+            communityInfo.put("communityId", tmpCommunityDto.getCommunityId());
+            communityInfo.put("text", tmpCommunityDto.getName());
+            communityInfo.put("icon", "/img/org.png");
+            communityInfo.put("children", new JSONArray());
+            communitys.add(communityInfo);
+
+        }
+
+        DictDto dictDto = new DictDto();
+        dictDto.setTableName("pay_fee_config");
+        dictDto.setTableColumns("fee_type_cd");
+        List<DictDto> dictDtos = dictV1InnerServiceSMOImpl.queryDicts(dictDto);
+
+        JSONObject community = null;
+        for (int cIndex = 0; cIndex < communitys.size(); cIndex++) {
+            community = communitys.getJSONObject(cIndex);
+            // find floor data in unitDtos
+            findFeeTypeCd(community, dictDtos);
+        }
+        context.setResponseEntity(ResultVo.createResponseEntity(communitys));
+
+
+    }
+
+    /**
+     * find community floor data
+     *
+     * @param community       current community
+     */
+    private void findFeeTypeCd(JSONObject community, List<DictDto> dictDtos) {
+        JSONArray feeTypeCds = community.getJSONArray("children");
+        JSONObject feeTypeCd = null;
+        for (DictDto tmpDictDto : dictDtos) {
+            feeTypeCd = new JSONObject();
+            feeTypeCd.put("id", "f_" + GenerateCodeFactory.getUUID());
+            feeTypeCd.put("feeTypeCd", tmpDictDto.getStatusCd());
+            feeTypeCd.put("communityId", community.getString("communityId"));
+            feeTypeCd.put("text", tmpDictDto.getName());
+            feeTypeCd.put("icon", "/img/floor.png");
+            feeTypeCd.put("children", new JSONArray());
+            feeTypeCds.add(feeTypeCd);
+        }
+
+        JSONObject feeFlag = null;
+        JSONArray feeFlags = null;
+        for (int cIndex = 0; cIndex < feeTypeCds.size(); cIndex++) {
+            feeTypeCd = feeTypeCds.getJSONObject(cIndex);
+            feeFlags = feeTypeCd.getJSONArray("children");
+            // find floor data in unitDtos
+            feeFlag = new JSONObject();
+            feeFlag.put("id", "l_"+GenerateCodeFactory.getUUID());
+            feeFlag.put("feeFlag", "1003006");
+            feeFlag.put("communityId", community.getString("communityId"));
+            feeFlag.put("feeTypeCd", feeTypeCd.getString("feeTypeCd"));
+            feeFlag.put("text", "周期性费用");
+            feeFlag.put("icon", "/img/unit.png");
+            feeFlags.add(feeFlag);
+
+            feeFlag = new JSONObject();
+            feeFlag.put("id", "l_"+GenerateCodeFactory.getUUID());
+            feeFlag.put("feeFlag", "2006012");
+            feeFlag.put("communityId", community.getString("communityId"));
+            feeFlag.put("feeTypeCd", feeTypeCd.getString("feeTypeCd"));
+            feeFlag.put("text", "一次性费用");
+            feeFlag.put("icon", "/img/unit.png");
+            feeFlags.add(feeFlag);
+        }
+    }
+
+
+
+}

+ 2 - 1
service-report/src/main/java/com/java110/report/cmd/community/QueryCommunityParkingTreeCmd.java

@@ -6,6 +6,7 @@ import com.java110.core.annotation.Java110Cmd;
 import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
 import com.java110.core.event.cmd.CmdEvent;
+import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.dto.dict.DictDto;
 import com.java110.dto.dict.DictDto;
 import com.java110.dto.parking.ParkingAreaDto;
 import com.java110.dto.parking.ParkingAreaDto;
 import com.java110.dto.unit.UnitDto;
 import com.java110.dto.unit.UnitDto;
@@ -117,7 +118,7 @@ public class QueryCommunityParkingTreeCmd extends Cmd {
         JSONObject leaseTypeInfo = null;
         JSONObject leaseTypeInfo = null;
         for (DictDto tmpDictDto : dictDtos) {
         for (DictDto tmpDictDto : dictDtos) {
             leaseTypeInfo = new JSONObject();
             leaseTypeInfo = new JSONObject();
-            leaseTypeInfo.put("id", "l_" + tmpDictDto.getStatusCd());
+            leaseTypeInfo.put("id", "l_" + GenerateCodeFactory.getUUID());
             leaseTypeInfo.put("leaseType", tmpDictDto.getStatusCd());
             leaseTypeInfo.put("leaseType", tmpDictDto.getStatusCd());
             leaseTypeInfo.put("text", tmpDictDto.getName());
             leaseTypeInfo.put("text", tmpDictDto.getName());
             leaseTypeInfo.put("icon", "/img/unit.png");
             leaseTypeInfo.put("icon", "/img/unit.png");