chengf
2025-09-10 35fc2330421c1ea217f00e0cb973c1b30e2363c0
service-fee/src/main/java/com/java110/fee/cmd/fee/SaveContractCreateFeeCmd.java
@@ -11,7 +11,7 @@
import com.java110.dto.fee.FeeAttrDto;
import com.java110.dto.fee.FeeConfigDto;
import com.java110.dto.fee.FeeDto;
import com.java110.dto.payFeeBatch.PayFeeBatchDto;
import com.java110.dto.payFee.PayFeeBatchDto;
import com.java110.dto.user.UserDto;
import com.java110.fee.bmo.fee.IFeeBMO;
import com.java110.intf.fee.IFeeAttrInnerServiceSMO;
@@ -23,15 +23,12 @@
import com.java110.intf.user.IUserInnerServiceSMO;
import com.java110.po.fee.FeeAttrPo;
import com.java110.po.fee.PayFeePo;
import com.java110.po.payFeeBatch.PayFeeBatchPo;
import com.java110.po.payFee.PayFeeBatchPo;
import com.java110.utils.exception.CmdException;
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.utils.util.DateUtil;
import com.java110.utils.util.StringUtil;
import com.java110.utils.util.*;
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.text.ParseException;
@@ -75,7 +72,14 @@
        // super.validatePageInfo(pd);
        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区ID");
        Assert.hasKeyAndValue(reqJson, "configId", "未包含收费项目");
        //Assert.hasKeyAndValue(reqJson, "startTime", "未包含收费其实时间");
        Assert.hasKeyAndValue(reqJson, "startTime", "未包含收费其实时间");
        Assert.hasKeyAndValue(reqJson, "endTime", "未包含计费结束时间");
        String endTime = reqJson.getString("endTime");
        if (!endTime.contains(":")) {
            endTime += " 23:59:59";
            reqJson.put("endTime", endTime);
        }
        //Assert.hasKeyAndValue(reqJson, "billType", "未包含出账类型");
        //Assert.hasKeyAndValue(reqJson, "storeId", "未包含商户ID");
    }
@@ -83,6 +87,7 @@
    @Override
    public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
        logger.debug("ServiceDataFlowEvent : {}", event);
        String storeId = cmdDataFlowContext.getReqHeaders().get("store-id");
//        String storeId = cmdDataFlowContext.getReqHeaders().get("store-id");
//        String userId = cmdDataFlowContext.getReqHeaders().get("user-id");
//        reqJson.put("storeId", storeId);
@@ -123,7 +128,7 @@
        }
        contractDto.setContractId(reqJson.getString("contractId"));
        contractDto.setStoreId(storeId);
        contractDto.setCommunityId(reqJson.getString("communityId"));
        contractDtos = contractInnerServiceSMOImpl.queryContracts(contractDto);
@@ -174,17 +179,24 @@
        int saveFlag = 0;
        for (int roomIndex = 0; roomIndex < contractDtos.size(); roomIndex++) {
            curFailRoomCount++;
            feePos.add(BeanConvertUtil.covertBean(feeBMOImpl.addContractFee(contractDtos.get(roomIndex), reqJson, context), PayFeePo.class));
            PayFeePo payFeePo = BeanConvertUtil.covertBean(feeBMOImpl.addContractFee(contractDtos.get(roomIndex), reqJson, context), PayFeePo.class);
            if(reqJson.containsKey("contractPartys")){
                payFeePo.setIsContractFee("O");
                payFeePo.setPayerObjId(reqJson.getString("partyaId"));
                payFeePo.setContractFee(reqJson.getString("contractId"));
            }else{
                payFeePo.setPayerObjId(reqJson.getString("payerObjId"));
            }
            payFeePo.setSecondaryFeeTypeCd(reqJson.getString("secondaryFeeTypeCd"));
            feePos.add(payFeePo);
            feeAttrsPos.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_ONCE_FEE_DEADLINE_TIME,
                    reqJson.getString("endTime")));
            if (!StringUtil.isEmpty(contractDtos.get(roomIndex).getObjId())) {
                if (!FeeDto.FEE_FLAG_CYCLE.equals(reqJson.getString("feeFlag"))) {
                    feeAttrsPos.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_ONCE_FEE_DEADLINE_TIME,
                            reqJson.containsKey("endTime") ? reqJson.getString("endTime") : reqJson.getString("configEndTime")));
                }
                feeAttrsPos.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_OWNER_ID, contractDtos.get(roomIndex).getObjId()));
                feeAttrsPos.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_OWNER_LINK, contractDtos.get(roomIndex).getbLink()));
                feeAttrsPos.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_OWNER_NAME, contractDtos.get(roomIndex).getPartyB()));
            }
            //付费对象名称
            feeAttrsPos.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_PAY_OBJECT_NAME,
                    contractDtos.get(roomIndex).getContractName()));
@@ -200,7 +212,7 @@
                }
            }
        }
        if (feePos != null && feePos.size() > 0) {
        if (!ListUtil.isNull(feePos)) {
            saveFlag = saveFeeAndAttrs(feePos, feeAttrsPos);
            if (saveFlag < 1) {
                failRooms += curFailRoomCount;
@@ -210,8 +222,8 @@
        paramOut.put("totalRoom", contractDtos.size());
        paramOut.put("successRoom", contractDtos.size() - failRooms);
        paramOut.put("errorRoom", failRooms);
        responseEntity = new ResponseEntity<>(paramOut.toJSONString(), HttpStatus.OK);
        context.setResponseEntity(responseEntity);
        context.setResponseEntity(ResultVo.createResponseEntity(paramOut));
    }