chengf
2025-07-31 cd3107ad63c0bf8d17d71962385c05c7f4a68419
停车道闸系统与物业管理系统接口设计的入口车辆识别接口2025/07/31
12个文件已修改
1个文件已添加
207 ■■■■ 已修改文件
java110-bean/src/main/java/com/java110/dto/importData/ImportFeeDetailDto.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/importData/ImportRoomFee.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/log/AssetImportLogDto.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/po/importFee/ImportFeeDetailPo.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/common/AssetImportLogServiceDaoImplMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/fee/ImportFeeDetailServiceDaoImplMapper.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-api/src/main/java/com/java110/api/importData/adapt/ImportRoomFeeDataCleaningAdapt.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-common/src/main/java/com/java110/common/cmd/carInout/SaveCarInoutCmd.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/smo/impl/ImportFeeDetailInnerServiceSMOImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-job/src/main/java/com/java110/job/importData/adapt/ImportRoomFeeQueueDataAdapt.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-user/src/main/java/com/java110/user/cmd/owner/UpdateOwnerMembersCmd.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/importData/ImportFeeDetailDto.java
@@ -28,8 +28,9 @@
    private String state;
    private String communityId;
    private String importFeeId;
    private String description;
    private String objName;
    private String expenseSubject;
    private Date createTime;
    private String statusCd = "0";
@@ -165,4 +166,28 @@
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public String getObjName() {
        return objName;
    }
    public void setObjName(String objName) {
        this.objName = objName;
    }
    public String getExpenseSubject() {
        return expenseSubject;
    }
    public void setExpenseSubject(String expenseSubject) {
        this.expenseSubject = expenseSubject;
    }
}
java110-bean/src/main/java/com/java110/dto/importData/ImportRoomFee.java
@@ -62,6 +62,8 @@
    private String staffName;
    private String expenseSubject;
    public String getReceivableAmount() {
        return receivableAmount;
    }
@@ -314,4 +316,12 @@
    public void setPayerObjName(String payerObjName) {
        this.payerObjName = payerObjName;
    }
    public String getExpenseSubject() {
        return expenseSubject;
    }
    public void setExpenseSubject(String expenseSubject) {
        this.expenseSubject = expenseSubject;
    }
}
java110-bean/src/main/java/com/java110/dto/log/AssetImportLogDto.java
@@ -47,7 +47,7 @@
    private Long waitCount;
    private String state;
    private String userName;
    private String stateName;
@@ -168,4 +168,12 @@
    public void setWaitCount(Long waitCount) {
        this.waitCount = waitCount;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
}
java110-bean/src/main/java/com/java110/po/importFee/ImportFeeDetailPo.java
@@ -20,7 +20,7 @@
    private String objId;
    private String objName;
    private String objType;
    private String expenseSubject;
    private String importFeeId;
    private String remark;
@@ -167,4 +167,12 @@
    public void setObjType(String objType) {
        this.objType = objType;
    }
    public String getExpenseSubject() {
        return expenseSubject;
    }
    public void setExpenseSubject(String expenseSubject) {
        this.expenseSubject = expenseSubject;
    }
}
java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java
@@ -1130,6 +1130,9 @@
                throw new IllegalArgumentException("暂不支持该类公式");
            }
        } else if (FeeDto.PAYER_OBJ_TYPE_CAR.equals(feeDto.getPayerObjType())) {//车位相关
            if(feeDto.getAmount() == null){
                feeDto.setAmount(String.valueOf(0));
            }
            String computingFormula = feeDto.getComputingFormula();
            OwnerCarDto ownerCarDto = new OwnerCarDto();
java110-db/src/main/resources/mapper/common/AssetImportLogServiceDaoImplMapper.xml
@@ -20,7 +20,7 @@
        select t.log_type,t.log_type logType,t.log_id,t.log_id
        logId,t.remark,t.status_cd,t.status_cd statusCd,t.community_id,t.community_id
        communityId,t.create_time createTime,t.state,td.`name`
        logTypeName,td1.name stateName,
        logTypeName,td1.name stateName,t.user_name userName,
        (select count(1) successCount from asset_import_log_detail a where a.log_id = t.log_id and a.status_cd = '0' and a.state = 'C') successCount,
        (select count(1) errorCount from asset_import_log_detail a where a.log_id = t.log_id and a.status_cd = '0' and a.state = 'F') errorCount,
        (select count(1) waitCount from asset_import_log_detail a where a.log_id = t.log_id and a.status_cd = '0' and a.state = 'W') waitCount
java110-db/src/main/resources/mapper/fee/ImportFeeDetailServiceDaoImplMapper.xml
@@ -9,10 +9,12 @@
    <insert id="saveImportFeeDetailInfo" parameterType="Map">
        insert into import_fee_detail(
        amount,unit_num,fee_id,floor_num,room_id,room_num,ifd_id,fee_name,start_time,
        end_time,state,community_id,import_fee_id,remark,obj_id,obj_name,obj_type
        end_time,state,community_id,import_fee_id,remark,obj_id,obj_name,obj_type,expense_subject
        ) values (
        #{amount},#{unitNum},#{feeId},#{floorNum},#{roomId},#{roomNum},#{ifdId},#{feeName},#{startTime},
        #{endTime},#{state},#{communityId},#{importFeeId},#{remark},#{objId},#{objName},#{objType}
        <if test="amount == null">0,</if>
        <if test="amount != null">#{amount},</if>
        #{unitNum},#{feeId},#{floorNum},#{roomId},#{roomNum},#{ifdId},#{feeName},#{startTime},
        #{endTime},#{state},#{communityId},#{importFeeId},#{remark},#{objId},#{objName},#{objType},#{expenseSubject}
        )
    </insert>
@@ -23,8 +25,11 @@
        feeId,t.floor_num,t.floor_num floorNum,t.room_id,t.room_id roomId,t.room_num,t.room_num
        roomNum,t.ifd_id,t.ifd_id ifdId,t.fee_name,t.fee_name feeName,t.start_time,t.start_time
        startTime,t.end_time,t.end_time endTime,t.state,t.community_id,t.community_id communityId,
        t.remark,t.obj_id objId,t.obj_name objName,t.obj_type objType
        t.remark,t.obj_id objId,t.obj_name objName,t.obj_type objType,imf.create_time createTime,
        td.description,t.expense_subject expenseSubject
        from import_fee_detail t
        left join import_fee imf on imf.import_fee_id = t.import_fee_id
        left join `t_dict` td on imf.fee_type_cd = td.status_cd and td.table_columns = "fee_type_cd"
        where 1 =1
        <if test="amount !=null and amount != ''">
            and t.amount= #{amount}
@@ -206,12 +211,14 @@
    <insert id="saveImportFeeDetails" parameterType="Map">
        insert into import_fee_detail(
        amount,unit_num,fee_id,floor_num,room_id,room_num,ifd_id,fee_name,start_time,
        end_time,state,community_id,import_fee_id,remark,obj_id,obj_name,obj_type
        end_time,state,community_id,import_fee_id,remark,obj_id,obj_name,obj_type,expense_subject
        ) values
        <foreach collection="importFeeDetailPos" item="item" separator=",">
          (#{item.amount},#{item.unitNum},#{item.feeId},#{item.floorNum},#{item.roomId},#{item.roomNum},#{item.ifdId},#{item.feeName},
          ( <if test="item.amount == null">0</if>
            <if test="item.amount != null">#{item.amount}</if>
           ,#{item.unitNum},#{item.feeId},#{item.floorNum},#{item.roomId},#{item.roomNum},#{item.ifdId},#{item.feeName},
            #{item.startTime},#{item.endTime},#{item.state},#{item.communityId},#{item.importFeeId},#{item.remark},
            #{item.objId},#{item.objName},#{item.objType})
            #{item.objId},#{item.objName},#{item.objType},#{item.expenseSubject})
        </foreach>
    </insert>
service-api/src/main/java/com/java110/api/importData/adapt/ImportRoomFeeDataCleaningAdapt.java
@@ -74,13 +74,13 @@
    private void getRoomsAndCars(Workbook workbook, List<ImportRoomFee> importRoomFees) {
        Sheet sheet = null;
        sheet = ImportExcelUtils.getSheet(workbook, "房屋费用信息");
        sheet = ImportExcelUtils.getSheet(workbook, "费用导入模板");
        List<Object[]> oList = ImportExcelUtils.listFromSheet(sheet);
        ImportRoomFee importRoomFee = null;
        Map<Integer, Object> debugs = new HashMap<Integer, Object>();
        for (int osIndex = 0; osIndex < oList.size(); osIndex++) {
            Object[] os = oList.get(osIndex);
            if (osIndex == 0) { // 第一行是 头部信息 直接跳过
            if (osIndex == 0 || osIndex == 1) { // 第一行是 头部信息 直接跳过
                continue;
            }
            if (os == null ||(os[0] == null && os[1] == null && os[2] == null)) {
@@ -93,10 +93,11 @@
            importRoomFee = new ImportRoomFee();
            importRoomFee.setPayerObjName(os[0]==null?os[1].toString():os[0].toString());
            importRoomFee.setObjType(os[0] == null ? "6666" : "3333");
            importRoomFee.setPayerObjName(os[0] == null || (os[0] != null && os[1] != null)?os[1].toString():os[0].toString());
            importRoomFee.setObjType(os[0] == null || (os[0] != null && os[1] != null) ? "6666" : "3333");
            importRoomFee.setFeeTypeCd(os[2] == null ? null : os[2].toString());
            importRoomFee.setFeeName(os[3] == null ? null : os[3].toString());
            importRoomFee.setExpenseSubject(os[0] == null || (os[0] != null && os[1] != null)?os[1].toString():os[0].toString());
            if(startTime != null){
                importRoomFee.setStartTime(startTime);
            }
@@ -104,8 +105,8 @@
                importRoomFee.setEndTime(endTime);
            }
            if (os.length > 6){
                importRoomFee.setCreateTime(os[6] == null ? null : os[6].toString());
                importRoomFee.setAmount(os[7] == null ? null : os[7].toString());
                importRoomFee.setCreateTime(os[7] == null ? null : excelDoubleToDate(os[7].toString()));
                importRoomFee.setAmount(os[6] == null ? null : os[6].toString());
            }else{
                importRoomFee.setCreateTime(null);
                importRoomFee.setAmount("0");
service-common/src/main/java/com/java110/common/cmd/carInout/SaveCarInoutCmd.java
@@ -22,7 +22,11 @@
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.CommunityAttrDto;
import com.java110.dto.community.CommunityDto;
import com.java110.intf.common.ICarInoutV1InnerServiceSMO;
import com.java110.intf.community.ICommunityInnerServiceSMO;
import com.java110.intf.community.ICommunityLocationInnerServiceSMO;
import com.java110.po.car.CarInoutPo;
import com.java110.utils.exception.CmdException;
import com.java110.utils.util.Assert;
@@ -31,6 +35,9 @@
import org.slf4j.Logger;
import com.java110.core.log.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import java.util.List;
/**
 * 类表述:保存
@@ -52,14 +59,29 @@
    @Autowired
    private ICarInoutV1InnerServiceSMO carInoutV1InnerServiceSMOImpl;
    @Autowired
    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
    @Override
    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
        Assert.hasKeyAndValue(reqJson, "community_name", "请求报文中未包含小区名称");
        Assert.hasKeyAndValue(reqJson, "plate_number", "请求报文中未包含车牌号");
        Assert.hasKeyAndValue(reqJson, "entry_time", "请求报文中未包含进场时间");
        CommunityDto communityDto = new CommunityDto();
        communityDto.setName(reqJson.getString("community_name"));
        List<CommunityDto> communityDtos = communityInnerServiceSMOImpl.queryCommunitys(communityDto);
        if (!(communityDtos == null || communityDtos.size() == 0)) {
            reqJson.put("communityId",communityDtos.get(0).getCommunityId());
        }
        reqJson.put("carNum", reqJson.getString("plate_number"));
        Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含communityId");
        Assert.hasKeyAndValue(reqJson, "carNum", "请求报文中未包含carNum");
        Assert.hasKeyAndValue(reqJson, "state", "请求报文中未包含state");
        Assert.hasKeyAndValue(reqJson, "inTime", "请求报文中未包含inTime");
        Assert.hasKeyAndValue(reqJson, "paId", "请求报文中未包含paId");
        if (reqJson.containsKey("exit_time")) {
            reqJson.put("state" , "100500");
        }else {
            reqJson.put("state" , "100300");
        }
        reqJson.put("inTime", reqJson.getString("entry_time"));
    }
    @Override
@@ -73,7 +95,15 @@
        if (flag < 1) {
            throw new CmdException("保存数据失败");
        }
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("allow_entry","true");
        jsonObject.put("message","允许通行");
        jsonObject.put("expire_date","");// 如果是包月车,返回有效期
        ResponseEntity<String> responseEntity = ResponseEntity
                .ok()
                .header("Content-Type", "application/json")
                .body(jsonObject.toString()); // 关键:用toString()返回原始JSON字符串
        cmdDataFlowContext.setResponseEntity(ResultVo.success());
        cmdDataFlowContext.setResponseEntity(responseEntity);
    }
}
service-fee/src/main/java/com/java110/fee/smo/impl/ImportFeeDetailInnerServiceSMOImpl.java
@@ -43,6 +43,9 @@
    public int saveImportFeeDetails(@RequestBody List<ImportFeeDetailPo> importFeeDetailPos) {
        List<Map> fees = new ArrayList<>();
        for (ImportFeeDetailPo payFeeDetailPo : importFeeDetailPos) {
            if (payFeeDetailPo.getAmount() == null){
                payFeeDetailPo.setAmount("0");
            }
            fees.add(BeanConvertUtil.beanCovertMap(payFeeDetailPo));
        }
service-job/src/main/java/com/java110/job/importData/adapt/ImportRoomFeeQueueDataAdapt.java
@@ -399,13 +399,12 @@
        }
        importFeeDetailPo.setObjType(importRoomFee.getObjType());
        importFeeDetailPo.setExpenseSubject(importRoomFee.getExpenseSubject());
        importFeeDetailPo.setStartTime(importRoomFee.getStartTime());
        importFeeDetailPo.setIfdId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_IfdId, true));
        importFeeDetailPo.setState("1000");
        importFeeDetailPo.setImportFeeId(importRoomFee.getBatchId());
        importFeeDetailPos.add(importFeeDetailPo);
        ImportFeeDto importFeeDto = new ImportFeeDto();
        importFeeDto.setCommunityId(payFeePo.getCommunityId());
        importFeeDto.setImportFeeId(importRoomFee.getBatchId());
service-user/src/main/java/com/java110/user/cmd/owner/UpdateOwnerMembersCmd.java
New file
@@ -0,0 +1,61 @@
package com.java110.user.cmd.owner;
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.OwnerDto;
import com.java110.dto.privilege.BasePrivilegeDto;
import com.java110.intf.common.IFileRelInnerServiceSMO;
import com.java110.intf.community.IMenuInnerServiceSMO;
import com.java110.intf.user.IOwnerInnerServiceSMO;
import com.java110.po.owner.OwnerPo;
import com.java110.utils.exception.CmdException;
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
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 org.springframework.http.ResponseEntity;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Java110Cmd(serviceCode = "owner.updateOwnerMembers")
public class UpdateOwnerMembersCmd extends Cmd {
    @Autowired
    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
    @Autowired
    private IMenuInnerServiceSMO menuInnerServiceSMOImpl;
    @Autowired
    private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
    @Override
    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
        Assert.jsonObjectHaveKey(reqJson, "communityId", "请求中未包含communityId信息");
        Assert.jsonObjectHaveKey(reqJson, "memberId", "请求中未包含memberId信息");
        // Assert.jsonObjectHaveKey(reqJson, "ownerTypeCd", "请求中未包含ownerTypeCd信息");
        if (!reqJson.containsKey("page")) {
            reqJson.put("page", 1);
        }
        if (!reqJson.containsKey("row")) {
            reqJson.put("row", 10);
        }
    }
    @Override
    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
        String userId = context.getReqHeaders().get("user-id");
        OwnerPo ownerDto = BeanConvertUtil.covertBean(reqJson, OwnerPo.class);
        ownerDto.setOwnerTypeCd(OwnerDto.OWNER_TYPE_CD_MEMBER);
        int total = ownerInnerServiceSMOImpl.updateOwnerMember(ownerDto);
        context.setResponseEntity(ResultVo.success());
    }
}
springboot/src/main/resources/application.yml
@@ -1,6 +1,6 @@
spring:
  profiles:
    active:  debug
    active:  dev
#  docker build -t lx .