From f068ae35d83e87362c33c1707657a00f6155fe2d Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 22 九月 2022 12:04:12 +0800
Subject: [PATCH] 优化删除小区文档

---
 service-store/src/main/java/com/java110/store/cmd/property/SavePropertyCmd.java |  431 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 427 insertions(+), 4 deletions(-)

diff --git a/service-store/src/main/java/com/java110/store/cmd/property/SavePropertyCmd.java b/service-store/src/main/java/com/java110/store/cmd/property/SavePropertyCmd.java
index e8bb67e..95d103e 100644
--- a/service-store/src/main/java/com/java110/store/cmd/property/SavePropertyCmd.java
+++ b/service-store/src/main/java/com/java110/store/cmd/property/SavePropertyCmd.java
@@ -15,24 +15,89 @@
  */
 package com.java110.store.cmd.property;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.annotation.Java110Cmd;
 import com.java110.core.annotation.Java110Transactional;
 import com.java110.core.context.ICmdDataFlowContext;
-import com.java110.core.event.cmd.AbstractServiceCmdListener;
+import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
+import com.java110.core.factory.AuthenticationFactory;
 import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.doc.annotation.*;
+import com.java110.dto.CommunityMemberDto;
+import com.java110.dto.community.CommunityDto;
+import com.java110.dto.menuGroup.MenuGroupDto;
+import com.java110.dto.store.StoreAttrDto;
 import com.java110.dto.store.StoreDto;
+import com.java110.dto.workflow.WorkflowDto;
+import com.java110.intf.common.IWorkflowV1InnerServiceSMO;
+import com.java110.intf.community.ICommunityMemberV1InnerServiceSMO;
+import com.java110.intf.community.ICommunityV1InnerServiceSMO;
+import com.java110.intf.store.IOrgStaffRelV1InnerServiceSMO;
+import com.java110.intf.store.IStoreAttrV1InnerServiceSMO;
+import com.java110.intf.store.IStoreUserV1InnerServiceSMO;
 import com.java110.intf.store.IStoreV1InnerServiceSMO;
+import com.java110.intf.user.*;
+import com.java110.po.community.CommunityMemberPo;
+import com.java110.po.menuGroupCommunity.MenuGroupCommunityPo;
+import com.java110.po.org.OrgPo;
+import com.java110.po.org.OrgStaffRelPo;
+import com.java110.po.privilegeUser.PrivilegeUserPo;
+import com.java110.po.store.StoreAttrPo;
 import com.java110.po.store.StorePo;
+import com.java110.po.store.StoreUserPo;
+import com.java110.po.user.UserPo;
+import com.java110.po.workflow.WorkflowPo;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.constant.MappingConstant;
+import com.java110.utils.constant.StateConstant;
+import com.java110.utils.constant.StoreUserRelConstant;
+import com.java110.utils.constant.UserLevelConstant;
 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.vo.ResultVo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.List;
+
+
+@Java110CmdDoc(title = "娣诲姞鐗╀笟鍏徃",
+        description = "涓昏鎻愪緵缁欏绯荤粺娣诲姞鐗╀笟鍏徃",
+        httpMethod = "post",
+        url = "http://{ip}:{port}/app/property.saveProperty",
+        resource = "storeDoc",
+        author = "鍚村鏂�",
+        serviceCode = "property.saveProperty"
+)
+
+@Java110ParamsDoc(params = {
+        @Java110ParamDoc(name = "name", length = 30, remark = "鐗╀笟鍚嶇О"),
+        @Java110ParamDoc(name = "nearbyLandmarks", length = 64, remark = "鍦版爣锛屽xx 鍏洯鏃�"),
+        @Java110ParamDoc(name = "tel", length = 11, remark = "鐗╀笟绠$悊鍛樼數璇� 浣滀负绠$悊鍛樿处鍙峰瘑鐮� 娣诲姞鍚庤鍙婃椂淇敼瀵嗙爜"),
+        @Java110ParamDoc(name = "communityIds", type = "Array" ,length = 0, remark = "鍒嗛厤灏忓尯"),
+        @Java110ParamDoc(parentNodeName = "communityIds",name = "-", type = "String" ,length = 0, remark = "灏忓尯ID"),
+        @Java110ParamDoc(name = "groupIds", type = "Array" ,length = 0, remark = "鍒嗛厤鑿滃崟缁�"),
+        @Java110ParamDoc(parentNodeName = "groupIds",name = "-", type = "String" ,length = 0, remark = "鑿滃崟缁処D"),
+})
+
+@Java110ResponseDoc(
+        params = {
+                @Java110ParamDoc(name = "code", type = "int", length = 11, defaultValue = "0", remark = "杩斿洖缂栧彿锛�0 鎴愬姛 鍏朵粬澶辫触"),
+                @Java110ParamDoc(name = "msg", type = "String", length = 250, defaultValue = "鎴愬姛", remark = "鎻忚堪"),
+        }
+)
+
+@Java110ExampleDoc(
+        reqBody="{\"name\":\"api鐗╀笟\",\"address\":\"api鐗╀笟\",\"tel\":\"18909711449\",\"corporation\":\"鏃燶",\"foundingTime\":\"2022-09-01\",\"nearbyLandmarks\":\"鍥芥姇骞垮満\",\"groupIds\":[\"802021080609660006\",\"802021012591650002\",\"802020101628950105\",\"802020092468300217\",\"802020091723050020\",\"802020020977260001\",\"802020012374230001\",\"802019110855900043\",\"802019103010680005\",\"802019102057730004\",\"802019091604450001\",\"800201907017\",\"800201906011\",\"800201904009\",\"800201904008\",\"800201904007\",\"800201904006\",\"800201904005\",\"800201904004\",\"800201906010\",\"800201904002\",\"800201904001\",\"802022052412780003\",\"802021080609660006\",\"802021012591650002\",\"802020101628950105\",\"802020092468300217\",\"802020091723050020\",\"802020020977260001\",\"802020012374230001\",\"802019110855900043\",\"802019103010680005\",\"802019102057730004\",\"802019091604450001\",\"800201907017\",\"800201906011\",\"800201904009\",\"800201904008\",\"800201904007\",\"800201904006\",\"800201904005\",\"800201904004\",\"800201906010\",\"800201904002\",\"800201904001\"],\"communityIds\":[\"2022092200930358\"]}",
+        resBody="{'code':0,'msg':'鎴愬姛'}"
+)
 /**
  * 绫昏〃杩帮細淇濆瓨
  * 鏈嶅姟缂栫爜锛歴tore.saveStore
@@ -44,7 +109,7 @@
  * // modify by 寮犱笁 at 2021-09-12 绗�10琛屽湪鏌愮鍦烘櫙涓嬪瓨鍦ㄦ煇绉峛ug 闇�瑕佷慨澶嶏紝娉ㄩ噴10鑷�20琛� 鍔犲叆 20琛岃嚦30琛�
  */
 @Java110Cmd(serviceCode = "property.saveProperty")
-public class SavePropertyCmd extends AbstractServiceCmdListener {
+public class SavePropertyCmd extends Cmd {
 
     private static Logger logger = LoggerFactory.getLogger(SavePropertyCmd.class);
 
@@ -53,11 +118,57 @@
     @Autowired
     private IStoreV1InnerServiceSMO storeV1InnerServiceSMOImpl;
 
+    @Autowired
+    private IStoreAttrV1InnerServiceSMO storeAttrV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IUserV1InnerServiceSMO userV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IStoreUserV1InnerServiceSMO storeUserV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IOrgV1InnerServiceSMO orgV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IOrgStaffRelV1InnerServiceSMO orgStaffRelV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IWorkflowV1InnerServiceSMO workflowV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IPrivilegeUserV1InnerServiceSMO privilegeUserV1InnerServiceSMOImpl;
+
+    @Autowired
+    private ICommunityMemberV1InnerServiceSMO communityMemberV1InnerServiceSMOImpl;
+
+    @Autowired
+    private ICommunityV1InnerServiceSMO communityV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IMenuGroupV1InnerServiceSMO menuGroupV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IMenuGroupCommunityV1InnerServiceSMO menuGroupCommunityV1InnerServiceSMOImpl;
+
+
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
-        Assert.hasKeyAndValue(reqJson, "name", "璇锋眰鎶ユ枃涓湭鍖呭惈name");
-        Assert.hasKeyAndValue(reqJson, "address", "璇锋眰鎶ユ枃涓湭鍖呭惈address");
+        Assert.hasKeyAndValue(reqJson, "name", "璇锋眰鎶ユ枃涓湭鍖呭惈鍚嶇О");
+        Assert.hasKeyAndValue(reqJson, "address", "璇锋眰鎶ユ枃涓湭鍖呭惈鍦板潃");
         Assert.hasKeyAndValue(reqJson, "tel", "璇锋眰鎶ユ枃涓湭鍖呭惈tel");
+        Assert.hasKeyAndValue(reqJson, "corporation", "璇锋眰鎶ユ枃涓湭鍖呭惈娉曚汉");
+        Assert.hasKeyAndValue(reqJson, "foundingTime", "璇锋眰鎶ユ枃涓湭鍖呭惈鎴愮珛鏃ユ湡");
+
+        // 鍒ゆ柇鏄惁鍖呭惈浜嗗皬鍖轰俊鎭�
+        if (!reqJson.containsKey("communityIds") || reqJson.getJSONArray("communityIds").size() < 1) {
+            return;
+        }
+
+        // 鍒ゆ柇鏄惁鍖呭惈浜嗗皬鍖轰俊鎭�
+        if (!reqJson.containsKey("groupIds") || reqJson.getJSONArray("groupIds").size() < 1) {
+            throw new CmdException("鏈寘鍚皬鍖哄紑閫氬姛鑳�");
+        }
 
     }
 
@@ -69,12 +180,324 @@
         storePo.setStoreId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
         storePo.setStoreTypeCd(StoreDto.STORE_TYPE_PROPERTY);
         storePo.setState(StoreDto.STATE_NORMAL);
+        if(!reqJson.containsKey("mapY")){
+            storePo.setMapY("1");
+        }
+        if(!reqJson.containsKey("mapX")){
+            storePo.setMapX("1");
+        }
         int flag = storeV1InnerServiceSMOImpl.saveStore(storePo);
 
         if (flag < 1) {
             throw new CmdException("淇濆瓨鏁版嵁澶辫触");
         }
 
+        //淇濆瓨灞炴��
+        StoreAttrPo storeAttrPo = new StoreAttrPo();
+        storeAttrPo.setAttrId(GenerateCodeFactory.getAttrId());
+        storeAttrPo.setSpecCd(StoreAttrDto.SPEC_CD_CORPORATION);
+        storeAttrPo.setValue(reqJson.getString("corporation"));
+        storeAttrPo.setStoreId(storePo.getStoreId());
+        flag = storeAttrV1InnerServiceSMOImpl.saveStoreAttr(storeAttrPo);
+        if (flag < 1) {
+            throw new CmdException("淇濆瓨鏁版嵁澶辫触");
+        }
+
+        storeAttrPo = new StoreAttrPo();
+        storeAttrPo.setAttrId(GenerateCodeFactory.getAttrId());
+        storeAttrPo.setSpecCd(StoreAttrDto.SPEC_CD_FOUNDINGTIME);
+        storeAttrPo.setValue(reqJson.getString("foundingTime"));
+        storeAttrPo.setStoreId(storePo.getStoreId());
+        flag = storeAttrV1InnerServiceSMOImpl.saveStoreAttr(storeAttrPo);
+        if (flag < 1) {
+            throw new CmdException("淇濆瓨鏁版嵁澶辫触");
+        }
+
+        //娣诲姞鐢ㄦ埛
+        UserPo userPo = new UserPo();
+        userPo.setTel(reqJson.getString("tel"));
+        userPo.setName(reqJson.getString("name"));
+        userPo.setAddress(reqJson.getString("address"));
+        userPo.setUserId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_userId));
+        userPo.setScore("0");
+        userPo.setAge("1");
+        userPo.setEmail("鏃�");
+        userPo.setLevelCd(UserLevelConstant.USER_LEVEL_ADMIN);
+        userPo.setSex("1");
+        userPo.setPassword(AuthenticationFactory.passwdMd5(reqJson.getString("tel")));
+        userPo.setbId("-1");
+        flag = userV1InnerServiceSMOImpl.saveUser(userPo);
+        if (flag < 1) {
+            throw new CmdException("娉ㄥ唽澶辫触");
+        }
+
+        //淇濆瓨 鍟嗘埛鍜岀敤鎴风殑鍏崇郴
+        StoreUserPo storeUserPo = new StoreUserPo();
+        storeUserPo.setStoreUserId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
+        storeUserPo.setRelCd(StoreUserRelConstant.REL_ADMIN);
+        storeUserPo.setStoreId(storePo.getStoreId());
+        storeUserPo.setUserId(userPo.getUserId());
+        flag = storeUserV1InnerServiceSMOImpl.saveStoreUser(storeUserPo);
+        if (flag < 1) {
+            throw new CmdException("娉ㄥ唽澶辫触");
+        }
+
+        //淇濆瓨鍏徃绾х粍缁�
+        OrgPo orgPo = new OrgPo();
+        orgPo.setOrgName(storePo.getName());
+        orgPo.setOrgLevel("1");
+        orgPo.setOrgId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_orgId));
+        orgPo.setAllowOperation("F");
+        orgPo.setBelongCommunityId("9999");
+        orgPo.setParentOrgId("-1");
+        orgPo.setStoreId(storePo.getStoreId());
+
+        flag = orgV1InnerServiceSMOImpl.saveOrg(orgPo);
+        if (flag < 1) {
+            throw new CmdException("娉ㄥ唽澶辫触");
+        }
+
+        //淇濆瓨鍒嗗叕鍙�
+//        OrgPo orgHeadPo = new OrgPo();
+//        orgHeadPo.setOrgName("鍏徃鎬婚儴");
+//        orgHeadPo.setOrgLevel("2");
+//        orgHeadPo.setOrgId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_orgId));
+//        orgHeadPo.setAllowOperation("F");
+//        orgHeadPo.setBelongCommunityId("9999");
+//        orgHeadPo.setParentOrgId(orgPo.getOrgId());
+//        orgHeadPo.setStoreId(storePo.getStoreId());
+//        flag = orgV1InnerServiceSMOImpl.saveOrg(orgHeadPo);
+//        if (flag < 1) {
+//            throw new CmdException("娉ㄥ唽澶辫触");
+//        }
+
+//        //淇濆瓨閮ㄩ棬
+//        OrgPo orgHeadPartPo = new OrgPo();
+//        orgHeadPartPo.setOrgName("鎬婚儴鍔炲叕瀹�");
+//        orgHeadPartPo.setOrgLevel("3");
+//        orgHeadPartPo.setOrgId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_orgId));
+//        orgHeadPartPo.setAllowOperation("F");
+//        orgHeadPartPo.setBelongCommunityId("9999");
+//        orgHeadPartPo.setParentOrgId(orgHeadPo.getOrgId());
+//        orgHeadPartPo.setStoreId(storePo.getStoreId());
+//        flag = orgV1InnerServiceSMOImpl.saveOrg(orgHeadPartPo);
+//        if (flag < 1) {
+//            throw new CmdException("娉ㄥ唽澶辫触");
+//        }
+
+
+        //娣诲姞缁勭粐 鍛樺伐鍏崇郴
+        OrgStaffRelPo orgStaffRelPo = new OrgStaffRelPo();
+        orgStaffRelPo.setOrgId(orgPo.getOrgId());
+        orgStaffRelPo.setStaffId(userPo.getUserId());
+        orgStaffRelPo.setRelId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
+        orgStaffRelPo.setRelCd(StoreUserRelConstant.REL_ADMIN);
+        orgStaffRelPo.setStoreId(storePo.getStoreId());
+        flag = orgStaffRelV1InnerServiceSMOImpl.saveOrgStaffRel(orgStaffRelPo);
+        if (flag < 1) {
+            throw new CmdException("娉ㄥ唽澶辫触");
+        }
+
+        //閲囪喘娴佺▼
+        WorkflowPo workflowPo = new WorkflowPo();
+        workflowPo.setCommunityId("9999"); //鎵�鏈夊皬鍖�
+        workflowPo.setFlowId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
+        workflowPo.setFlowName("閲囪喘娴佺▼");
+        workflowPo.setFlowType(WorkflowDto.FLOW_TYPE_PURCHASE);
+        workflowPo.setSkipLevel(WorkflowDto.DEFAULT_SKIP_LEVEL);
+        workflowPo.setStoreId(storePo.getStoreId());
+        flag = workflowV1InnerServiceSMOImpl.saveWorkflow(workflowPo);
+        if (flag < 1) {
+            throw new CmdException("娉ㄥ唽澶辫触");
+        }
+
+        //鍚堝悓鐢宠缁
+        workflowPo = new WorkflowPo();
+        workflowPo.setCommunityId("9999"); //鎵�鏈夊皬鍖�
+        workflowPo.setFlowId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
+        workflowPo.setFlowName("鍚堝悓鐢宠缁");
+        workflowPo.setFlowType(WorkflowDto.FLOW_TYPE_CONTRACT_APPLY);
+        workflowPo.setSkipLevel(WorkflowDto.DEFAULT_SKIP_LEVEL);
+        workflowPo.setStoreId(storePo.getStoreId());
+        flag = workflowV1InnerServiceSMOImpl.saveWorkflow(workflowPo);
+        if (flag < 1) {
+            throw new CmdException("娉ㄥ唽澶辫触");
+        }
+
+        //鍚堝悓鍙樻洿
+        workflowPo = new WorkflowPo();
+        workflowPo.setCommunityId("9999"); //鎵�鏈夊皬鍖�
+        workflowPo.setFlowId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
+        workflowPo.setFlowName("鍚堝悓鍙樻洿");
+        workflowPo.setFlowType(WorkflowDto.FLOW_TYPE_CONTRACT_CHANGE);
+        workflowPo.setSkipLevel(WorkflowDto.DEFAULT_SKIP_LEVEL);
+        workflowPo.setStoreId(storePo.getStoreId());
+        flag = workflowV1InnerServiceSMOImpl.saveWorkflow(workflowPo);
+        if (flag < 1) {
+            throw new CmdException("娉ㄥ唽澶辫触");
+        }
+
+        //鐗╁搧璋冩嫧
+        workflowPo = new WorkflowPo();
+        workflowPo.setCommunityId("9999"); //鎵�鏈夊皬鍖�
+        workflowPo.setFlowId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
+        workflowPo.setFlowName("鐗╁搧璋冩嫧");
+        workflowPo.setFlowType(WorkflowDto.FLOW_TYPE_ALLOCATION_STOREHOUSE);
+        workflowPo.setSkipLevel(WorkflowDto.DEFAULT_SKIP_LEVEL);
+        workflowPo.setStoreId(storePo.getStoreId());
+        flag = workflowV1InnerServiceSMOImpl.saveWorkflow(workflowPo);
+        if (flag < 1) {
+            throw new CmdException("娉ㄥ唽澶辫触");
+        }
+
+
+        String defaultPrivilege = MappingCache.getValue(MappingConstant.DOMAIN_DEFAULT_PRIVILEGE_ADMIN, StoreDto.STORE_TYPE_PROPERTY);
+
+        Assert.hasLength(defaultPrivilege, "鏈厤缃墿涓氶粯璁ゆ潈闄�");
+        PrivilegeUserPo privilegeUserPo = new PrivilegeUserPo();
+        privilegeUserPo.setPrivilegeFlag("1");
+        privilegeUserPo.setStoreId(storePo.getStoreId());
+        privilegeUserPo.setUserId(userPo.getUserId());
+        privilegeUserPo.setpId(defaultPrivilege);
+        privilegeUserPo.setPuId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
+
+        flag = privilegeUserV1InnerServiceSMOImpl.savePrivilegeUser(privilegeUserPo);
+        if (flag < 1) {
+            throw new CmdException("娉ㄥ唽澶辫触");
+        }
+
+        // 鍒ゆ柇鏄惁鍖呭惈浜嗗皬鍖轰俊鎭�
+        if (!reqJson.containsKey("communityIds") || reqJson.getJSONArray("communityIds").size() < 1) {
+            cmdDataFlowContext.setResponseEntity(ResultVo.success());
+            return;
+        }
+
+
+        JSONArray communityIds = reqJson.getJSONArray("communityIds");
+
+        String communityId;
+        for (int communityIndex = 0; communityIndex < communityIds.size(); communityIndex++) {
+            communityId = communityIds.getString(communityIndex);
+            CommunityMemberDto communityMemberDto = new CommunityMemberDto();
+            communityMemberDto.setCommunityId(communityId);
+            communityMemberDto.setMemberTypeCd(CommunityMemberDto.MEMBER_TYPE_PROPERTY);
+            List<CommunityMemberDto> communityMemberDtos = communityMemberV1InnerServiceSMOImpl.queryCommunityMembers(communityMemberDto);
+
+            if (communityMemberDtos != null && communityMemberDtos.size() > 0) {
+                throw new CmdException("灏忓尯宸茬粡鍏ラ┗" + communityId);
+            }
+
+            //鏌ヨ灏忓尯鏄惁瀛樺湪
+            CommunityDto communityDto = new CommunityDto();
+            communityDto.setCommunityId(communityId);
+            List<CommunityDto> communityDtos = communityV1InnerServiceSMOImpl.queryCommunitys(communityDto);
+
+            Assert.listOnlyOne(communityDtos, "灏忓尯涓嶅瓨鍦�");
+
+            Calendar endTime = Calendar.getInstance();
+            endTime.add(Calendar.MONTH, Integer.parseInt(communityDtos.get(0).getPayFeeMonth()));
+            CommunityMemberPo communityMemberPo = new CommunityMemberPo();
+            communityMemberPo.setCommunityMemberId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
+            communityMemberPo.setEndTime(DateUtil.getFormatTimeString(endTime.getTime(), DateUtil.DATE_FORMATE_STRING_A));
+            communityMemberPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+            communityMemberPo.setAuditStatusCd(StateConstant.AGREE_AUDIT);
+            communityMemberPo.setCommunityId(communityId);
+            communityMemberPo.setMemberId(storePo.getStoreId());
+            communityMemberPo.setMemberTypeCd(CommunityMemberDto.MEMBER_TYPE_PROPERTY);
+            flag = communityMemberV1InnerServiceSMOImpl.saveCommunityMember(communityMemberPo);
+            if (flag < 1) {
+                throw new CmdException("娉ㄥ唽澶辫触");
+            }
+
+            //淇濆瓨灏忓尯寮�鏀惧姛鑳�
+
+            saveMenuGroupCommunity(reqJson, communityId, communityDtos.get(0).getName());
+
+            // 淇敼鎶曡瘔寤鸿
+            flag = updateWorkflow(WorkflowDto.FLOW_TYPE_COMPLAINT, communityId, storePo.getStoreId());
+            if (flag < 1) {
+                continue;
+            }
+
+            // 淇敼鐗╁搧棰嗙敤
+            flag = updateWorkflow(WorkflowDto.FLOW_TYPE_COLLECTION, communityId, storePo.getStoreId());
+            if (flag < 1) {
+                continue;
+            }
+
+            // 淇敼
+            flag = updateWorkflow(WorkflowDto.FLOW_TYPE_ALLOCATION_STOREHOUSE_GO, communityId, storePo.getStoreId());
+            if (flag < 1) {
+                continue;
+            }
+        }
+
         cmdDataFlowContext.setResponseEntity(ResultVo.success());
+
+
+
+    }
+
+    private void saveMenuGroupCommunity(JSONObject reqJson, String communityId, String communityName) {
+        List<MenuGroupDto> menuGroupDtos = null;
+        MenuGroupDto menuGroupDto = null;
+        if (!reqJson.containsKey("groupIds") || reqJson.getJSONArray("groupIds").size() < 1) {
+            menuGroupDto = new MenuGroupDto();
+            menuGroupDto.setStoreType(StoreDto.STORE_TYPE_PROPERTY);
+            menuGroupDtos = menuGroupV1InnerServiceSMOImpl.queryMenuGroups(menuGroupDto);
+        } else {
+            menuGroupDto = new MenuGroupDto();
+            JSONArray groupIds = reqJson.getJSONArray("groupIds");
+            String groupId;
+            List<String> gIds = new ArrayList<>();
+            for (int groupIndex = 0; groupIndex < groupIds.size(); groupIndex++) {
+                groupId = groupIds.getString(groupIndex);
+                gIds.add(groupId);
+            }
+            menuGroupDto.setgIds(gIds.toArray(new String[gIds.size()]));
+            menuGroupDtos = menuGroupV1InnerServiceSMOImpl.queryMenuGroups(menuGroupDto);
+        }
+
+        if (menuGroupDtos == null || menuGroupDtos.size() < 1) {
+            throw new IllegalArgumentException("娌℃湁鍒嗛厤浠讳綍鍔熻兘");
+        }
+
+        List<MenuGroupCommunityPo> menuGroupCommunityPos = new ArrayList<>();
+        MenuGroupCommunityPo tmpMenuGroupCommunityPo = null;
+        for (MenuGroupDto menuGroupDto1 : menuGroupDtos) {
+            tmpMenuGroupCommunityPo = new MenuGroupCommunityPo();
+            tmpMenuGroupCommunityPo.setCommunityId(communityId);
+            tmpMenuGroupCommunityPo.setCommunityName(communityName);
+            tmpMenuGroupCommunityPo.setGcId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
+            tmpMenuGroupCommunityPo.setgId(menuGroupDto1.getgId());
+            tmpMenuGroupCommunityPo.setName(menuGroupDto1.getName());
+            menuGroupCommunityPos.add(tmpMenuGroupCommunityPo);
+        }
+        int flag = menuGroupCommunityV1InnerServiceSMOImpl.saveMenuGroupCommunitys(menuGroupCommunityPos);
+        if (flag < 1) {
+            throw new CmdException("娉ㄥ唽澶辫触");
+        }
+    }
+
+    /**
+     * 鍒峰叆灏忓尯ID
+     *
+     * @param flowType 鎺ュ彛璇锋眰鏁版嵁灏佽
+     * @return 灏佽濂界殑 data鏁版嵁
+     */
+    public int updateWorkflow(String flowType, String communityId, String storeId) {
+        WorkflowDto workflowDto = new WorkflowDto();
+        workflowDto.setCommunityId(communityId);
+        workflowDto.setFlowType(flowType);
+        List<WorkflowDto> workflowDtos = workflowV1InnerServiceSMOImpl.queryWorkflows(workflowDto);
+
+        if (workflowDtos == null || workflowDtos.size() < 1) {
+            return 0;
+        }
+        WorkflowPo workflowPo = new WorkflowPo();
+        workflowPo.setFlowId(workflowDtos.get(0).getFlowId());
+        workflowPo.setCommunityId(communityId);
+        workflowPo.setStoreId(storeId);
+        return workflowV1InnerServiceSMOImpl.updateWorkflow(workflowPo);
     }
 }

--
Gitblit v1.8.0