Bläddra i källkod

Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

java110 2 år sedan
förälder
incheckning
cc463ed2a5

+ 9 - 0
java110-bean/src/main/java/com/java110/dto/payFee/PayFeeDetailMonthDto.java

@@ -37,6 +37,7 @@ public class PayFeeDetailMonthDto extends PageDto implements Serializable {
 
     private String objName;
     private String objId;
+    private String[] objIds;
     private String ownerName;
     private String ownerId;
     private String link;
@@ -226,4 +227,12 @@ public class PayFeeDetailMonthDto extends PageDto implements Serializable {
     public void setConfigId(String configId) {
         this.configId = configId;
     }
+
+    public String[] getObjIds() {
+        return objIds;
+    }
+
+    public void setObjIds(String[] objIds) {
+        this.objIds = objIds;
+    }
 }

+ 4 - 0
service-acct/src/main/java/com/java110/acct/smo/impl/NotifyPaymentV1InnerServiceSMOImpl.java

@@ -76,6 +76,10 @@ public class NotifyPaymentV1InnerServiceSMOImpl extends BaseServiceSMO implement
 
             String paramIn = CommonCache.getAndRemoveValue("unifiedPayment_" + paymentOrderDto.getOrderId());
 
+            if (StringUtil.isEmpty(paramIn)) {
+                throw new IllegalArgumentException("未找到业务数据");
+            }
+
             JSONObject reqJson = JSONObject.parseObject(paramIn);
 
             IPaymentBusiness paymentBusiness = ApplicationContextFactory.getBean(reqJson.getString("business"), IPaymentBusiness.class);

+ 2 - 2
service-common/src/main/java/com/java110/common/charge/ChargeCoreImpl.java

@@ -400,8 +400,8 @@ public class ChargeCoreImpl implements IChargeCore {
         chargeMachinePortV1InnerServiceSMOImpl.updateChargeMachinePort(chargeMachinePortPo);
 
         ChargeMachineOrderDto chargeMachineOrderDto = new ChargeMachineOrderDto();
-        chargeMachineOrderDto.setMachineId(chargeMachineDto.getMachineId());
-        chargeMachineOrderDto.setPortId(chargeMachinePortDto.getPortId());
+        chargeMachineOrderDto.setMachineId(chargeMachineDtos.get(0).getMachineId());
+        chargeMachineOrderDto.setPortId(chargeMachinePortDtos.get(0).getPortId());
         chargeMachineOrderDto.setState(ChargeMachineOrderDto.STATE_DOING);
         List<ChargeMachineOrderDto> chargeMachineOrderDtos = chargeMachineOrderV1InnerServiceSMOImpl.queryChargeMachineOrders(chargeMachineOrderDto);
 

+ 248 - 0
service-fee/src/main/java/com/java110/fee/cmd/fee/ListMonthFeeCmd.java

@@ -0,0 +1,248 @@
+package com.java110.fee.cmd.fee;
+
+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.CommunitySettingFactory;
+import com.java110.core.log.LoggerFactory;
+import com.java110.core.smo.IComputeFeeSMO;
+import com.java110.dto.fee.FeeAttrDto;
+import com.java110.dto.fee.FeeDto;
+import com.java110.dto.floor.FloorDto;
+import com.java110.dto.owner.OwnerCarDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.dto.owner.OwnerRoomRelDto;
+import com.java110.dto.parking.ParkingSpaceDto;
+import com.java110.dto.payFee.PayFeeDetailMonthDto;
+import com.java110.dto.room.RoomDto;
+import com.java110.dto.unit.UnitDto;
+import com.java110.intf.community.IFloorInnerServiceSMO;
+import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
+import com.java110.intf.community.IRoomInnerServiceSMO;
+import com.java110.intf.community.IUnitInnerServiceSMO;
+import com.java110.intf.fee.IFeeAttrInnerServiceSMO;
+import com.java110.intf.fee.IFeeInnerServiceSMO;
+import com.java110.intf.fee.IPayFeeDetailMonthInnerServiceSMO;
+import com.java110.intf.user.IOwnerCarInnerServiceSMO;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
+import com.java110.intf.user.IOwnerRoomRelV1InnerServiceSMO;
+import com.java110.po.fee.FeeAttrPo;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.*;
+import com.java110.vo.ResultVo;
+import com.java110.vo.api.fee.ApiFeeDataVo;
+import com.java110.vo.api.fee.ApiFeeVo;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+import java.math.BigDecimal;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 查询 月费用信息
+ */
+@Java110Cmd(serviceCode = "fee.listMonthFee")
+public class ListMonthFeeCmd extends Cmd {
+
+    private static Logger logger = LoggerFactory.getLogger(ListMonthFeeCmd.class);
+
+    @Autowired
+    private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeAttrInnerServiceSMO feeAttrInnerServiceSMOImpl;
+
+    @Autowired
+    private IComputeFeeSMO computeFeeSMOImpl;
+
+    @Autowired
+    private IFloorInnerServiceSMO floorInnerServiceSMOImpl;
+
+    @Autowired
+    private IUnitInnerServiceSMO unitInnerServiceSMOImpl;
+
+    @Autowired
+    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerRoomRelV1InnerServiceSMO ownerRoomRelV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
+    @Autowired
+    private IPayFeeDetailMonthInnerServiceSMO payFeeDetailMonthInnerServiceSMOImpl;
+
+    //域
+    public static final String DOMAIN_COMMON = "DOMAIN.COMMON";
+
+    //键
+    public static final String TOTAL_FEE_PRICE = "TOTAL_FEE_PRICE";
+
+    //键
+    public static final String RECEIVED_AMOUNT_SWITCH = "RECEIVED_AMOUNT_SWITCH";
+
+    //禁用电脑端提交收费按钮
+    public static final String OFFLINE_PAY_FEE_SWITCH = "OFFLINE_PAY_FEE_SWITCH";
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
+        super.validatePageInfo(reqJson);
+        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区ID");
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        // todo 房屋名称 刷入 房屋ID
+        freshPayerObjIdByRoomNum(reqJson);
+
+        PayFeeDetailMonthDto payFeeDetailMonthDto = BeanConvertUtil.covertBean(reqJson, PayFeeDetailMonthDto.class);
+
+        // todo 处理 多个房屋
+        morePayerObjIds(reqJson, payFeeDetailMonthDto);
+
+        int count = payFeeDetailMonthInnerServiceSMOImpl.queryPayFeeDetailMonthsCount(payFeeDetailMonthDto);
+        List<PayFeeDetailMonthDto> payFeeDetailMonthDtos = null;
+        if (count > 0) {
+            payFeeDetailMonthDtos = payFeeDetailMonthInnerServiceSMOImpl.queryPayFeeDetailMonths(payFeeDetailMonthDto);//查询费用项目
+            //freshFeeAttrs(fees, feeDtos);
+        } else {
+            payFeeDetailMonthDtos = new ArrayList<>();
+        }
+
+        context.setResponseEntity(ResultVo.createResponseEntity((int) Math.ceil((double) count / (double) reqJson.getInteger("row")), count, payFeeDetailMonthDtos));
+    }
+
+    /**
+     * 处理 多对象 费用
+     *
+     * @param reqJson
+     * @param payFeeDetailMonthDto
+     */
+    private void morePayerObjIds(JSONObject reqJson, PayFeeDetailMonthDto payFeeDetailMonthDto) {
+        if (!reqJson.containsKey("payerObjIds") || StringUtil.isEmpty(reqJson.getString("payerObjIds"))) {
+            return;
+        }
+
+        String payerObjIds = reqJson.getString("payerObjIds");
+        payFeeDetailMonthDto.setObjIds(payerObjIds.split(","));
+    }
+
+    /**
+     * 根据房屋名称 刷入 payerObjId
+     *
+     * @param reqJson
+     */
+    private void freshPayerObjIdByRoomNum(JSONObject reqJson) {
+        if (!reqJson.containsKey("roomNum") || StringUtil.isEmpty(reqJson.getString("roomNum"))) {
+            return;
+        }
+
+        String[] roomNums = reqJson.getString("roomNum").split("-", 3);
+        if (roomNums == null || roomNums.length != 3) {
+            throw new IllegalArgumentException("房屋编号格式错误!");
+        }
+
+        String floorNum = roomNums[0];
+        String unitNum = roomNums[1];
+        String roomNum = roomNums[2];
+        FloorDto floorDto = new FloorDto();
+        floorDto.setFloorNum(floorNum);
+        floorDto.setCommunityId(reqJson.getString("communityId"));
+        List<FloorDto> floorDtos = floorInnerServiceSMOImpl.queryFloors(floorDto);
+        if (floorDtos == null || floorDtos.size() < 1) {
+            return;
+        }
+        for (FloorDto floor : floorDtos) {
+            UnitDto unitDto = new UnitDto();
+            unitDto.setFloorId(floor.getFloorId());
+            unitDto.setUnitNum(unitNum);
+            List<UnitDto> unitDtos = unitInnerServiceSMOImpl.queryUnits(unitDto);
+            if (unitDtos == null || unitDtos.size() < 1) {
+                continue;
+            }
+            for (UnitDto unit : unitDtos) {
+                RoomDto roomDto = new RoomDto();
+                roomDto.setUnitId(unit.getUnitId());
+                roomDto.setRoomNum(roomNum);
+                roomDto.setCommunityId(reqJson.getString("communityId"));
+                List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+                Assert.listOnlyOne(roomDtos, "查询不到房屋!");
+                reqJson.put("payerObjId", roomDtos.get(0).getRoomId());
+            }
+        }
+    }
+
+    private void freshFeeAttrs(List<ApiFeeDataVo> fees, List<FeeDto> feeDtos) {
+        String link = "";
+        for (FeeDto feeDto : feeDtos) {
+            if (FeeDto.PAYER_OBJ_TYPE_ROOM.equals(feeDto.getPayerObjType())) { //房屋
+                OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
+                ownerRoomRelDto.setRoomId(feeDto.getPayerObjId());
+                List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelV1InnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
+                if (ownerRoomRelDtos == null || ownerRoomRelDtos.size() < 1) {
+                    continue;
+                }
+                OwnerDto ownerDto = new OwnerDto();
+                ownerDto.setMemberId(ownerRoomRelDtos.get(0).getOwnerId());
+                List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
+                Assert.listOnlyOne(ownerDtos, "查询业主错误!");
+                link = ownerDtos.get(0).getLink();
+            } else if (FeeDto.PAYER_OBJ_TYPE_CAR.equals(feeDto.getPayerObjType())) {
+                OwnerCarDto ownerCarDto = new OwnerCarDto();
+                ownerCarDto.setMemberId(feeDto.getPayerObjId());
+                List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
+                Assert.listOnlyOne(ownerCarDtos, "查询业主车辆表错误!");
+                OwnerDto ownerDto = new OwnerDto();
+                ownerDto.setMemberId(ownerCarDtos.get(0).getOwnerId());
+                List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
+                Assert.listOnlyOne(ownerDtos, "查询业主错误!");
+                link = ownerDtos.get(0).getLink();
+            }
+            FeeAttrDto feeAttrDto = new FeeAttrDto();
+            feeAttrDto.setFeeId(feeDto.getFeeId());
+            List<FeeAttrDto> feeAttrDtos = feeAttrInnerServiceSMOImpl.queryFeeAttrs(feeAttrDto);
+            if (feeAttrDtos == null || feeAttrDtos.size() < 1) {
+                continue;
+            }
+            for (FeeAttrDto feeAttr : feeAttrDtos) {
+                if (!FeeAttrDto.SPEC_CD_OWNER_LINK.equals(feeAttr.getSpecCd())) { //联系方式
+                    continue;
+                }
+                if (feeAttr.getValue().equals(link)) {
+                    continue;
+                }
+                FeeAttrPo feeAttrPo = new FeeAttrPo();
+                feeAttrPo.setAttrId(feeAttr.getAttrId());
+                feeAttrPo.setValue(link);
+                int flag = feeAttrInnerServiceSMOImpl.updateFeeAttr(feeAttrPo);
+                if (flag < 1) {
+                    throw new CmdException("更新业主联系方式失败");
+                }
+
+            }
+        }
+        for (ApiFeeDataVo apiFeeDataVo : fees) {
+            for (FeeDto feeDto : feeDtos) {
+                if (apiFeeDataVo.getFeeId().equals(feeDto.getFeeId())) {
+                    apiFeeDataVo.setFeeAttrs(feeDto.getFeeAttrDtos());
+                }
+            }
+        }
+    }
+}

+ 2 - 1
service-store/src/main/java/com/java110/store/cmd/propertyIndex/QueryPropertyAssetsIndexCmd.java

@@ -82,9 +82,10 @@ public class QueryPropertyAssetsIndexCmd extends Cmd {
         int ownerCount = ownerV1InnerServiceSMOImpl.queryOwnersCount(ownerDto);
         paramOut.put("ownerCount", ownerCount);
 
-        // 查询车辆
+        // 查询车辆 (这里只查询 主车辆 副车辆)
         OwnerCarDto ownerCarDto  =  new OwnerCarDto();
         ownerCarDto.setCommunityId(reqJson.getString("communityId"));
+        ownerCarDto.setCarTypeCds(new String[]{OwnerCarDto.CAR_TYPE_PRIMARY,OwnerCarDto.CAR_TYPE_MEMBER});
         int carCount = ownerCarV1InnerServiceSMOImpl.queryOwnerCarsCount(ownerCarDto);
         paramOut.put("carCount", carCount);