| | |
| | | */ |
| | | package com.java110.community.cmd.community; |
| | | |
| | | import com.alibaba.druid.util.StringUtils; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.java110.community.bmo.community.ICommunityBMO; |
| | | import com.java110.community.bmo.community.PropertyManagementRecords; |
| | | import com.java110.core.annotation.Java110Cmd; |
| | | import com.java110.core.annotation.Java110Transactional; |
| | | import com.java110.core.context.ICmdDataFlowContext; |
| | |
| | | import com.java110.core.event.cmd.CmdEvent; |
| | | import com.java110.core.factory.GenerateCodeFactory; |
| | | import com.java110.doc.annotation.*; |
| | | import com.java110.dto.workflow.WorkflowDto; |
| | | import com.java110.dto.community.CommunityDto; |
| | | import com.java110.dto.community.PropertyManagementRecordDto; |
| | | import com.java110.dto.oaWorkflow.WorkflowDto; |
| | | import com.java110.intf.common.IWorkflowV1InnerServiceSMO; |
| | | import com.java110.intf.community.ICommunityV1InnerServiceSMO; |
| | | import com.java110.po.workflow.WorkflowPo; |
| | | import com.java110.intf.community.PropertyManagementRecordsServiceSMO; |
| | | import com.java110.po.community.PropertyManagementRecordPo; |
| | | import com.java110.po.oaWorkflow.WorkflowPo; |
| | | import com.java110.utils.exception.CmdException; |
| | | import com.java110.utils.util.Assert; |
| | | import com.java110.vo.ResultVo; |
| | |
| | | @Autowired |
| | | private IWorkflowV1InnerServiceSMO workflowV1InnerServiceSMOImpl; |
| | | |
| | | @Autowired |
| | | private PropertyManagementRecordsServiceSMO propertyManagementRecordsServiceSMO; |
| | | |
| | | @Override |
| | | public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) { |
| | | Assert.hasKeyAndValue(reqJson, "name", "必填,请填写小区名称"); |
| | |
| | | Assert.hasKeyAndValue(reqJson, "cityCode", "请求报文中未包含cityCode"); |
| | | Assert.hasKeyAndValue(reqJson, "payFeeMonth", "请求报文中未包含payFeeMonth"); |
| | | Assert.hasKeyAndValue(reqJson, "feePrice", "请求报文中未包含feePrice"); |
| | | Assert.hasKeyAndValue(reqJson, "takeTime", "请求报文中未包含接管日期"); |
| | | Assert.hasKeyAndValue(reqJson, "communityCode", "请求报文中未包含小区编码"); |
| | | //属性校验 |
| | | Assert.judgeAttrValue(reqJson); |
| | | |
| | |
| | | @Override |
| | | @Java110Transactional |
| | | public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException { |
| | | CommunityDto communityDto = new CommunityDto(); |
| | | communityDto.setCommunityCode(reqJson.getString("communityCode")); |
| | | int i = communityV1InnerServiceSMOImpl.queryCommunitysCount(communityDto); |
| | | if (i > 0) { |
| | | throw new IllegalArgumentException("添加流程失败,小区编码重复"); |
| | | } |
| | | communityDto = new CommunityDto(); |
| | | communityDto.setName(reqJson.getString("name")); |
| | | i = communityV1InnerServiceSMOImpl.queryCommunitysCount(communityDto); |
| | | if (i > 0) { |
| | | throw new IllegalArgumentException("添加流程失败,小区名称重复"); |
| | | } |
| | | communityBMOImpl.addCommunity(reqJson, cmdDataFlowContext); |
| | | communityBMOImpl.addCommunityMembers(reqJson, cmdDataFlowContext); |
| | | //产生物业费配置信息 不要产生默认费 |
| | |
| | | throw new IllegalArgumentException("添加流程失败"); |
| | | } |
| | | |
| | | WorkflowPo workflowPo1 = null; |
| | | workflowPo1 = new WorkflowPo(); |
| | | workflowPo1.setCommunityId(reqJson.getString("communityId")); |
| | | workflowPo1.setFlowId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_flowId)); |
| | | workflowPo1.setFlowName("物品领用"); |
| | | workflowPo1.setFlowType(WorkflowDto.FLOW_TYPE_COLLECTION); |
| | | workflowPo1.setSkipLevel(WorkflowDto.DEFAULT_SKIP_LEVEL); |
| | | workflowPo1.setStoreId(reqJson.getString("storeId")); |
| | | flag = workflowV1InnerServiceSMOImpl.saveWorkflow(workflowPo1); |
| | | if (flag < 1) { |
| | | throw new IllegalArgumentException("添加流程失败"); |
| | | } |
| | | // WorkflowPo workflowPo1 = null; |
| | | // workflowPo1 = new WorkflowPo(); |
| | | // workflowPo1.setCommunityId(reqJson.getString("communityId")); |
| | | // workflowPo1.setFlowId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_flowId)); |
| | | // workflowPo1.setFlowName("物品领用"); |
| | | // workflowPo1.setFlowType(WorkflowDto.FLOW_TYPE_COLLECTION); |
| | | // workflowPo1.setSkipLevel(WorkflowDto.DEFAULT_SKIP_LEVEL); |
| | | // workflowPo1.setStoreId(reqJson.getString("storeId")); |
| | | // flag = workflowV1InnerServiceSMOImpl.saveWorkflow(workflowPo1); |
| | | // if (flag < 1) { |
| | | // throw new IllegalArgumentException("添加流程失败"); |
| | | // } |
| | | |
| | | WorkflowPo workflowPo2 = new WorkflowPo(); |
| | | workflowPo2.setCommunityId(reqJson.getString("communityId")); //被调拨小区 |
| | |
| | | if (flag < 1) { |
| | | throw new IllegalArgumentException("添加流程失败"); |
| | | } |
| | | addPropertyManagementRecord(reqJson); |
| | | cmdDataFlowContext.setResponseEntity(ResultVo.createResponseEntity(reqJson.getString("communityId"))); |
| | | } |
| | | |
| | | private void addPropertyManagementRecord(JSONObject reqJson) { |
| | | // 从请求参数中获取必要信息(根据实际业务参数调整key) |
| | | String communityId = reqJson.getString("communityId"); |
| | | CommunityDto communityDto = new CommunityDto(); |
| | | communityDto.setCommunityId(communityId); |
| | | CommunityDto communityDto1 = communityV1InnerServiceSMOImpl.queryCommunitys(communityDto).get(0); |
| | | |
| | | // 构建管理记录PO对象 |
| | | PropertyManagementRecordPo recordPo = new PropertyManagementRecordPo(); |
| | | // 设置主键ID(如果使用自增主键可省略,由数据库生成) |
| | | recordPo.setId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_commentId)); |
| | | recordPo.setCommunityId(communityId); |
| | | recordPo.setCommunityName(communityDto1.getName()); |
| | | recordPo.setManagementStartDate(communityDto1.getTakeTime()); // 格式需与数据库一致 |
| | | recordPo.setManagementEndDate(communityDto1.getOutTime() == null ? null : communityDto1.getOutTime()); // 初始为在管状态,退管时间为null |
| | | recordPo.setStatus(0); // 0-有效 |
| | | recordPo.setRemark("小区创建时自动添加的初始在管记录"); // 备注信息 |
| | | // 创建时间和更新时间可由数据库自动生成或通过框架填充 |
| | | |
| | | // 调用保存接口 |
| | | int saveFlag = propertyManagementRecordsServiceSMO.savePropertyManagementRecord(recordPo); |
| | | if (saveFlag < 1) { |
| | | throw new IllegalArgumentException("添加小区在管记录失败"); |
| | | } |
| | | } |
| | | |
| | | private void dealAttr(JSONObject paramObj, ICmdDataFlowContext context) { |
| | | |