java110 лет назад: 5
Родитель
Сommit
20949b2dd2

+ 9 - 0
java110-bean/src/main/java/com/java110/dto/machine/MachineAttrDto.java

@@ -16,6 +16,7 @@ import java.util.Date;
 public class MachineAttrDto extends PageDto implements Serializable {
 
     private String machineId;
+    private String[] machineIds;
     private String attrId;
     private String specCd;
     private String communityId;
@@ -83,4 +84,12 @@ public class MachineAttrDto extends PageDto implements Serializable {
     public void setStatusCd(String statusCd) {
         this.statusCd = statusCd;
     }
+
+    public String[] getMachineIds() {
+        return machineIds;
+    }
+
+    public void setMachineIds(String[] machineIds) {
+        this.machineIds = machineIds;
+    }
 }

+ 11 - 0
java110-bean/src/main/java/com/java110/dto/machine/MachineDto.java

@@ -3,6 +3,7 @@ package com.java110.dto.machine;
 import com.java110.dto.PageDto;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * @ClassName FloorDto
@@ -46,6 +47,8 @@ public class MachineDto extends PageDto implements Serializable {
     private String direction;//设备方向
     private String directionName;
 
+    private List<MachineAttrDto> machineAttrs;
+
 
 
     private String createTime;
@@ -285,4 +288,12 @@ public class MachineDto extends PageDto implements Serializable {
     public void setLocationType(String locationType) {
         this.locationType = locationType;
     }
+
+    public List<MachineAttrDto> getMachineAttrs() {
+        return machineAttrs;
+    }
+
+    public void setMachineAttrs(List<MachineAttrDto> machineAttrs) {
+        this.machineAttrs = machineAttrs;
+    }
 }

+ 12 - 1
java110-bean/src/main/java/com/java110/vo/api/machine/ApiMachineDataVo.java

@@ -1,7 +1,9 @@
 package com.java110.vo.api.machine;
 
+import com.java110.dto.machine.MachineAttrDto;
+
 import java.io.Serializable;
-import java.util.Date;
+import java.util.List;
 
 public class ApiMachineDataVo implements Serializable {
 
@@ -29,6 +31,7 @@ public class ApiMachineDataVo implements Serializable {
     private String locationObjName;
     private String direction;
     private String directionName;
+    private List<MachineAttrDto> machineAttrs;
 
 
     private String createTime;
@@ -216,4 +219,12 @@ public class ApiMachineDataVo implements Serializable {
     public void setDirectionName(String directionName) {
         this.directionName = directionName;
     }
+
+    public List<MachineAttrDto> getMachineAttrs() {
+        return machineAttrs;
+    }
+
+    public void setMachineAttrs(List<MachineAttrDto> machineAttrs) {
+        this.machineAttrs = machineAttrs;
+    }
 }

+ 12 - 0
java110-db/src/main/resources/mapper/common/MachineAttrServiceDaoImplMapper.xml

@@ -83,6 +83,12 @@
         <if test="machineId !=null and machineId != ''">
             and t.machine_id= #{machineId}
         </if>
+        <if test="machineIds !=null ">
+            and t.machine_id in
+            <foreach collection="machineIds" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
         <if test="attrId !=null and attrId != ''">
             and t.attr_id= #{attrId}
         </if>
@@ -144,6 +150,12 @@
         <if test="machineId !=null and machineId != ''">
             and t.machine_id= #{machineId}
         </if>
+        <if test="machineIds !=null ">
+            and t.machine_id in
+            <foreach collection="machineIds" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
         <if test="attrId !=null and attrId != ''">
             and t.attr_id= #{attrId}
         </if>

+ 1 - 1
java110-db/src/main/resources/mapper/community/ParkingSpaceServiceDaoImplMapper.xml

@@ -145,7 +145,7 @@
             <if test="state !=null and state != ''">
                 and t.state= #{state}
             </if>
-            <if test="states != null and states != null">
+            <if test="states != null">
                 and t.state in
                 <foreach collection="states" item="item" open="(" close=")" separator=",">
                     #{item}

+ 2 - 1
service-api/src/main/java/com/java110/api/bmo/machine/impl/MachineBMOImpl.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.java110.api.bmo.ApiBaseBMO;
 import com.java110.api.bmo.machine.IMachineBMO;
 import com.java110.core.context.DataFlowContext;
+import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.intf.common.IMachineInnerServiceSMO;
 import com.java110.dto.machine.MachineDto;
 import com.java110.po.machine.MachinePo;
@@ -53,7 +54,7 @@ public class MachineBMOImpl extends ApiBaseBMO implements IMachineBMO {
         JSONObject businessMachine = new JSONObject();
         businessMachine.putAll(paramInJson);
         businessMachine.put("state", "1000");
-        businessMachine.put("machineId", "-1");
+        businessMachine.put("machineId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_machineId));
         //计算 应收金额
 
         MachinePo machinePo = BeanConvertUtil.covertBean(businessMachine, MachinePo.class);

+ 29 - 1
service-api/src/main/java/com/java110/api/listener/machine/SaveMachineListener.java

@@ -1,13 +1,17 @@
 package com.java110.api.listener.machine;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.api.bmo.machine.IMachineBMO;
 import com.java110.api.listener.AbstractServiceApiPlusListener;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.event.service.api.ServiceDataFlowEvent;
+import com.java110.po.machine.MachineAttrPo;
+import com.java110.utils.constant.BusinessTypeConstant;
 import com.java110.utils.constant.ServiceCodeMachineConstant;
 import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpMethod;
 
@@ -20,6 +24,7 @@ public class SaveMachineListener extends AbstractServiceApiPlusListener {
     @Autowired
     private IMachineBMO machineBMOImpl;
 
+
     @Override
     protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
         //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
@@ -33,7 +38,8 @@ public class SaveMachineListener extends AbstractServiceApiPlusListener {
         Assert.hasKeyAndValue(reqJson, "locationTypeCd", "必填,请选择位置类型");
         Assert.hasKeyAndValue(reqJson, "locationObjId", "必填,请填写位置对象ID");
 
-
+        //属性校验
+        Assert.judgeAttrValue(reqJson);
     }
 
     @Override
@@ -42,6 +48,28 @@ public class SaveMachineListener extends AbstractServiceApiPlusListener {
 
         machineBMOImpl.addMachine(reqJson, context);
 
+        dealMachineAttr(reqJson, context);
+    }
+
+    private void dealMachineAttr(JSONObject paramObj, DataFlowContext context) {
+
+        if (!paramObj.containsKey("attrs")) {
+            return;
+        }
+
+        JSONArray attrs = paramObj.getJSONArray("attrs");
+        if (attrs.size() < 1) {
+            return;
+        }
+
+        MachineAttrPo attr = null;
+        for (int attrIndex = 0; attrIndex < attrs.size(); attrIndex++) {
+            attr = BeanConvertUtil.covertBean(attrs.getJSONObject(attrIndex), MachineAttrPo.class);
+            attr.setCommunityId(paramObj.getString("communityId"));
+            attr.setMachineId(paramObj.getString("machineId"));
+            attr.setAttrId(((attrIndex + 1) * -1) + "");
+            super.insert(context, attr, BusinessTypeConstant.BUSINESS_TYPE_SAVE_MACHINE);
+        }
 
     }
 

+ 29 - 2
service-api/src/main/java/com/java110/api/listener/machine/UpdateMachineListener.java

@@ -1,14 +1,19 @@
 package com.java110.api.listener.machine;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.api.bmo.machine.IMachineBMO;
 import com.java110.api.listener.AbstractServiceApiPlusListener;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
-import com.java110.intf.common.IMachineInnerServiceSMO;
 import com.java110.core.event.service.api.ServiceDataFlowEvent;
+import com.java110.intf.common.IMachineInnerServiceSMO;
+import com.java110.po.machine.MachineAttrPo;
+import com.java110.utils.constant.BusinessTypeConstant;
 import com.java110.utils.constant.ServiceCodeMachineConstant;
 import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpMethod;
 
@@ -38,6 +43,8 @@ public class UpdateMachineListener extends AbstractServiceApiPlusListener {
         Assert.hasKeyAndValue(reqJson, "locationTypeCd", "必填,请选择位置类型");
         Assert.hasKeyAndValue(reqJson, "locationObjId", "必填,请填写位置对象ID");
 
+        Assert.judgeAttrValue(reqJson);
+
     }
 
     @Override
@@ -45,7 +52,27 @@ public class UpdateMachineListener extends AbstractServiceApiPlusListener {
 
 
         machineBMOImpl.updateMachine(reqJson, context);
-
+        JSONArray attrs = reqJson.getJSONArray("attrs");
+        if (attrs.size() < 1) {
+            return;
+        }
+
+
+        MachineAttrPo attr = null;
+        JSONObject aObj = null;
+        for (int attrIndex = 0; attrIndex < attrs.size(); attrIndex++) {
+            aObj = attrs.getJSONObject(attrIndex);
+            attr = BeanConvertUtil.covertBean(aObj, MachineAttrPo.class);
+            attr.setCommunityId(reqJson.getString("communityId"));
+            attr.setMachineId(reqJson.getString("machineId"));
+            if (!aObj.containsKey("attrId") || aObj.getString("attrId").startsWith("-") || StringUtil.isEmpty(aObj.getString("attrId"))) {
+                attr.setAttrId(((attrIndex + 1) * -1) + "");
+                super.insert(context, attr, BusinessTypeConstant.BUSINESS_TYPE_SAVE_MACHINE);
+                continue;
+            }
+            attr.setAttrId(aObj.getString("attrId"));
+            super.update(context, attr, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_MACHINE);
+        }
 
     }
 

+ 30 - 0
service-common/src/main/java/com/java110/common/smo/impl/MachineInnerServiceSMOImpl.java

@@ -5,8 +5,10 @@ import com.java110.common.dao.IMachineServiceDao;
 import com.java110.core.base.smo.BaseServiceSMO;
 import com.java110.dto.PageDto;
 import com.java110.dto.demo.DemoDto;
+import com.java110.dto.machine.MachineAttrDto;
 import com.java110.dto.machine.MachineDto;
 import com.java110.dto.user.UserDto;
+import com.java110.intf.common.IMachineAttrInnerServiceSMO;
 import com.java110.intf.common.IMachineInnerServiceSMO;
 import com.java110.intf.user.IUserInnerServiceSMO;
 import com.java110.utils.util.BeanConvertUtil;
@@ -31,6 +33,9 @@ public class MachineInnerServiceSMOImpl extends BaseServiceSMO implements IMachi
     @Autowired
     private IMachineServiceDao machineServiceDaoImpl;
 
+    @Autowired
+    private IMachineAttrInnerServiceSMO machineAttrInnerServiceSMOImpl;
+
     @Autowired
     private IUserInnerServiceSMO userInnerServiceSMOImpl;
 
@@ -47,6 +52,31 @@ public class MachineInnerServiceSMOImpl extends BaseServiceSMO implements IMachi
 
         List<MachineDto> machines = BeanConvertUtil.covertBeanList(machineServiceDaoImpl.getMachineInfo(BeanConvertUtil.beanCovertMap(machineDto)), MachineDto.class);
 
+        if (machines == null || machines.size() < 1) {
+            return machines;
+        }
+
+        List<String> machineIds = new ArrayList<>();
+
+        for (MachineDto tMachineDto : machines) {
+            machineIds.add(tMachineDto.getMachineId());
+        }
+        MachineAttrDto machineAttrDto = new MachineAttrDto();
+        machineAttrDto.setMachineIds(machineIds.toArray(new String[machineIds.size()]));
+        machineAttrDto.setCommunityId(machines.get(0).getCommunityId());
+        List<MachineAttrDto> machineAttrDtos = machineAttrInnerServiceSMOImpl.queryMachineAttrs(machineAttrDto);
+
+        List<MachineAttrDto> tMachineAttrDtos = null;
+        for (MachineDto tMachineDto : machines) {
+            tMachineAttrDtos = new ArrayList<>();
+
+            for (MachineAttrDto tMachineAttrDto : machineAttrDtos) {
+                if (tMachineDto.getMachineId().equals(tMachineAttrDto.getMachineId())) {
+                    tMachineAttrDtos.add(tMachineAttrDto);
+                }
+            }
+            tMachineDto.setMachineAttrs(tMachineAttrDtos);
+        }
         return machines;
     }