xie.kaifeng 1 year ago
parent
commit
dee6e444ae
44 changed files with 1766 additions and 939 deletions
  1. 31 8
      mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/CommonController.java
  2. 0 1
      mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/InvestorController.java
  3. 4 4
      mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/OrganDetailController.java
  4. 16 15
      mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/OrganSonController.java
  5. 9 4
      mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/QueryController.java
  6. 15 1
      mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/WarehouseController.java
  7. 4 23
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/IOrganService.java
  8. 31 0
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/IOrganSonService.java
  9. 3 4
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/IQueryService.java
  10. 4 0
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/IWarehouseService.java
  11. 3 0
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/CommonServiceImpl.java
  12. 73 822
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/OrganServiceImpl.java
  13. 948 0
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/OrganSonServiceService.java
  14. 22 4
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/QueryServiceImpl.java
  15. 1 1
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/ReportFormServiceImpl.java
  16. 8 6
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/UseraccountServiceImpl.java
  17. 70 9
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/WarehouseServiceImpl.java
  18. 12 3
      mtp3-century/src/main/resources/mapper/GoodsMapper.xml
  19. 15 0
      mtp3-century/src/main/resources/mapper/MarketMapper.xml
  20. 41 0
      mtp3-century/src/main/resources/mapper/TradeOrderdetailMapper.xml
  21. 16 5
      mtp3-century/src/main/resources/mapper/UseraccountMapper.xml
  22. 49 0
      mtp3-century/src/main/resources/mapper/WroutinapplyMapper.xml
  23. 3 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IMarketMapper.java
  24. 16 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IThjSpotgoodsdepositMapper.java
  25. 5 6
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/ITradeOrderdetailMapper.java
  26. 19 16
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IUseraccountMapper.java
  27. 9 2
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWroutinapplyMapper.java
  28. 3 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/Dgfactoryitem.java
  29. 63 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/ThjSpotgoodsdeposit.java
  30. 2 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/Userinfo.java
  31. 8 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/common/GoodsSelectParam.java
  32. 2 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/common/GoodsSelectResult.java
  33. 49 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/organ/UserAccountDetailResult.java
  34. 12 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/organ/UserAccountReqParam.java
  35. 1 1
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/organ/UserAccountRspResult.java
  36. 2 2
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/organ/son/OrganAddSonOrganParam.java
  37. 43 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/query/other/HoldtransferQueryParam.java
  38. 17 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/query/other/HoldtransferQueryResult.java
  39. 3 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/query/other/InvestorQueryParam.java
  40. 1 1
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/query/other/InvestorQueryResult.java
  41. 1 1
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/taaccount/TaAccountReportParam.java
  42. 56 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/warehouse/WarehouseVarietyDetailResult.java
  43. 27 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/warehouse/WarehouseVarietyParam.java
  44. 49 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/warehouse/WarehouseVarietyResult.java

+ 31 - 8
mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/CommonController.java

@@ -2,9 +2,11 @@ package com.muchinfo.mtp3century.controller;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.muchinfo.mtp3century.service.ICommonService;
 import com.muchinfo.mtp3century.service.IOrganService;
+import com.muchinfo.mtp3century.service.IOrganSonService;
 import com.muchinfo.mtp3century.utils.RedisServiceUtil;
 import com.muchinfo.mtp3common.enumtype.*;
 import com.muchinfo.mtp3common.utils.*;
@@ -14,7 +16,7 @@ import com.muchinfo.mtp3pojos.entity.*;
 import com.muchinfo.mtp3pojos.vo.FileMetaVo;
 import com.muchinfo.mtp3pojos.vo.bankcusbank.BankCusBankExtendResult;
 import com.muchinfo.mtp3pojos.vo.common.*;
-import com.muchinfo.mtp3pojos.vo.organ.UserAccountVo;
+import com.muchinfo.mtp3pojos.vo.organ.UserAccountRspResult;
 import com.muchinfo.mtp3pojos.vo.taaccount.TaAccountQueryResult;
 import com.muchinfo.mtp3pojos.vo.taaccount.TaAccountReportParam;
 import io.jsonwebtoken.Claims;
@@ -22,7 +24,6 @@ import io.jsonwebtoken.ExpiredJwtException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
-import org.apache.commons.beanutils.BeanUtils;
 import org.apache.commons.beanutils.ConvertUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -30,9 +31,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
@@ -68,8 +67,9 @@ public class CommonController {
     @Resource
     private IArearolemarketMapper iArearolemarketMapper;
     @Resource
-    private IOrganService iOrganService;
-
+    private IOrganSonService iOrganSonService;
+    @Resource
+    private IRoleuserMapper iRoleuserMapper;
 
     @ApiOperation("验证token是否有效")
     @RequestMapping(method = RequestMethod.POST, value = "/checkToken")
@@ -216,6 +216,29 @@ public class CommonController {
         return iCommonService.queryGoodsSelect(param, request);
     }
 
+    @ApiOperation("下拉查询商品: 平台+运营机构同时有权限的菜单中过滤商品时使用")
+    @RequestMapping(value = "/queryGoodsSelectYYJG")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
+    public AjaxResult<GoodsSelectResult> queryGoodsSelectYYJG(GoodsSelectParam param, HttpServletRequest request) {
+        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
+        // 运营机构(2) 只查自己的权限的商品 20240322
+        // 获取权限
+        List<Roleuser> ur = iRoleuserMapper.selectList(new QueryWrapper<Roleuser>().eq("managerid", systemmanager.getAutoid()));
+        if (CollectionUtils.isNotEmpty(ur)) {
+            boolean isYYFlag = false;
+            for (Roleuser role: ur){
+                if (role.getRoleid().equals(2L)){
+                    isYYFlag = true;
+                    break;
+                }
+            }
+            if (isYYFlag){
+                param.setYyareauserid(systemmanager.getAreauserid());
+            }
+        }
+        return iCommonService.queryGoodsSelect(param,request);
+    }
+
     @ApiOperation("获取市场下拉列表")
     @RequestMapping(method = RequestMethod.GET, value = "orderListAll")
     @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
@@ -288,8 +311,8 @@ public class CommonController {
     @ApiOperation("子机构管理-->获取机构及所有子机构")
     @RequestMapping(method = RequestMethod.GET, value = "/getAreaAndAllChilds")
     @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
-    private AjaxResult<UserAccountVo> getAreaAndAllChilds(HttpServletRequest request) {
-        return iOrganService.getAreaAndAllChilds(request);
+    private AjaxResult<UserAccountRspResult> getAreaAndAllChilds(HttpServletRequest request) {
+        return iOrganSonService.getAreaAndAllChilds(request);
     }
 
     @ApiOperation("子机构管理-->获取机构及所有子机构")

+ 0 - 1
mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/InvestorController.java

@@ -341,7 +341,6 @@ public class InvestorController {
         return iUseraccountService.getTree(request);
     }
 
-
     @ApiOperation("交易商管理-->个性化管理-->交易商个性化-->新增-->初始化交易商个性化信息")
     @RequestMapping(method = RequestMethod.GET, value = "/initInvestorPerson")
     public AjaxResult<InvestorInitPerAddResult> initGoodsAndBZ(Long usergroupid, Long marketid, Long goodsid, HttpServletRequest request) {

+ 4 - 4
mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/OrganDetailController.java

@@ -4,7 +4,7 @@ import com.muchinfo.mtp3century.service.IOrganService;
 import com.muchinfo.mtp3common.vo.AjaxResult;
 import com.muchinfo.mtp3common.vo.PageResult;
 import com.muchinfo.mtp3pojos.vo.organ.UserAccountReqParam;
-import com.muchinfo.mtp3pojos.vo.organ.UserAccountVo;
+import com.muchinfo.mtp3pojos.vo.organ.UserAccountRspResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
@@ -23,15 +23,15 @@ public class OrganDetailController {
     @ApiOperation("会员机构管理-->机构管理-->机构资料管理-->获取机构资料列表")
     @RequestMapping(method = RequestMethod.GET, value = "/query")
     @ApiResponse(code = 200, message = "成功", response = PageResult.class)
-    private PageResult<UserAccountVo> query(UserAccountReqParam userInfoReqParam, HttpServletRequest request) {
+    private PageResult<UserAccountRspResult> query(UserAccountReqParam userInfoReqParam, HttpServletRequest request) {
         return iOrganService.queryByPage(userInfoReqParam, request);
     }
 
     @ApiOperation("会员机构管理-->机构管理-->机构资料管理-->获取机构资料详情信息")
     @RequestMapping(method = RequestMethod.GET, value = "/queryDetail")
     @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
-    private AjaxResult<UserAccountVo> queryDetail(Long areaId) {
-        return iOrganService.queryDetail(areaId);
+    private AjaxResult<UserAccountRspResult> queryDetail(Long areaId, HttpServletRequest request) {
+        return iOrganService.queryDetail(areaId, 0, request);
     }
 
 }

+ 16 - 15
mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/OrganSonController.java

@@ -1,6 +1,7 @@
 package com.muchinfo.mtp3century.controller;
 
 import com.muchinfo.mtp3century.service.IOrganService;
+import com.muchinfo.mtp3century.service.IOrganSonService;
 import com.muchinfo.mtp3century.utils.CenturyDecryptUtil;
 import com.muchinfo.mtp3common.enumtype.Constants;
 import com.muchinfo.mtp3common.enumtype.MessageType;
@@ -8,8 +9,8 @@ import com.muchinfo.mtp3common.vo.AjaxResult;
 import com.muchinfo.mtp3common.utils.JsonUtils;
 import com.muchinfo.mtp3common.vo.PageResult;
 import com.muchinfo.mtp3pojos.vo.organ.UserAccountReqParam;
-import com.muchinfo.mtp3pojos.vo.organ.UserAccountVo;
-import com.muchinfo.mtp3pojos.vo.organ.OrganParam;
+import com.muchinfo.mtp3pojos.vo.organ.UserAccountRspResult;
+import com.muchinfo.mtp3pojos.vo.organ.son.OrganAddSonOrganParam;
 import com.muchinfo.mtp3pojos.vo.organ.son.OrganSonDetailResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -27,41 +28,41 @@ import javax.servlet.http.HttpServletRequest;
 public class OrganSonController {
     private final Logger log = LoggerFactory.getLogger(this.getClass());
     @Resource
-    private IOrganService iOrganService;
+    private IOrganSonService iOrganSonService;
 
     @ApiOperation("会员机构管理-->子机构管理-->获取机构列表")
     @RequestMapping(method = RequestMethod.GET, value = "/query")
     @ApiResponse(code = 200, message = "成功", response = PageResult.class)
-    private PageResult<UserAccountVo> querySon(UserAccountReqParam param, HttpServletRequest request) {
-        return iOrganService.querySon(param, request);
+    private PageResult<UserAccountRspResult> querySon(UserAccountReqParam param, HttpServletRequest request) {
+        return iOrganSonService.querySon(param, request);
     }
 
     @ApiOperation("会员机构管理-->子机构管理-->机构详情")
     @RequestMapping(method = RequestMethod.GET, value = "/viewson")
     @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     private AjaxResult<OrganSonDetailResult> viewson(Long areaid, Integer modifystatus, HttpServletRequest request) {
-        return iOrganService.viewson(areaid, modifystatus, request);
+        return iOrganSonService.viewson(areaid, modifystatus, request);
     }
 
     @ApiOperation("会员机构管理-->子机构管理-->撤回")
     @RequestMapping(method = RequestMethod.GET, value = "/rebackChange")
     @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     private AjaxResult rebackChange(Long areaid, HttpServletRequest request) {
-        return iOrganService.rebackChange(areaid, request);
+        return iOrganSonService.rebackChange(areaid, request);
     }
 
     @ApiOperation("会员机构管理-->子机构管理-->注销")
     @RequestMapping(method = RequestMethod.GET, value = "/delete")
     @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     private AjaxResult delete(Long areaid, HttpServletRequest request) {
-        return iOrganService.delete(areaid, request);
+        return iOrganSonService.delete(areaid, request);
     }
 
     @ApiOperation("会员机构管理-->子机构管理-->恢复")
     @RequestMapping(method = RequestMethod.GET, value = "/recover")
     @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     private AjaxResult recover(Long areaid, HttpServletRequest request) {
-        return iOrganService.recover(areaid, request);
+        return iOrganSonService.recover(areaid, request);
     }
 
     @ApiOperation("会员机构管理-->子机构管理-->新增")
@@ -69,8 +70,8 @@ public class OrganSonController {
     @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     private AjaxResult addsonorgan(@RequestBody String param, HttpServletRequest request) {
         try {
-            OrganParam current = JsonUtils.toBean(CenturyDecryptUtil.decryptForJson(param, request), OrganParam.class);
-            return iOrganService.addsonorgan(current, request);
+            OrganAddSonOrganParam current = JsonUtils.toBean(CenturyDecryptUtil.decryptForJson(param, request), OrganAddSonOrganParam.class);
+            return iOrganSonService.addsonorgan(current, request);
         } catch (Exception e) {
             log.error("子机构管理新增失败,失败原因:" + e);
             return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM002.getCode(), request.getHeader("Accept-Language"));
@@ -82,8 +83,8 @@ public class OrganSonController {
     @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     private AjaxResult editsonorgan(@RequestBody String param, HttpServletRequest request) {
         try {
-            OrganParam current = JsonUtils.toBean(CenturyDecryptUtil.decryptForJson(param, request), OrganParam.class);
-            return iOrganService.editsonorgan(current, request);
+            OrganAddSonOrganParam current = JsonUtils.toBean(CenturyDecryptUtil.decryptForJson(param, request), OrganAddSonOrganParam.class);
+            return iOrganSonService.editsonorgan(current, request);
         } catch (Exception e) {
             log.error("子机构管理修改失败,失败原因:" + e);
             return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM002.getCode(), request.getHeader("Accept-Language"));
@@ -95,8 +96,8 @@ public class OrganSonController {
     @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     private AjaxResult edit(@RequestBody String param, HttpServletRequest request) {
         try {
-            OrganParam current = JsonUtils.toBean(CenturyDecryptUtil.decryptForJson(param, request), OrganParam.class);
-            return iOrganService.edit(current, request);
+            OrganAddSonOrganParam current = JsonUtils.toBean(CenturyDecryptUtil.decryptForJson(param, request), OrganAddSonOrganParam.class);
+            return iOrganSonService.edit(current, request);
         } catch (Exception e) {
             log.error("子机构管理修改失败,失败原因:" + e);
             return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM002.getCode(), request.getHeader("Accept-Language"));

+ 9 - 4
mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/QueryController.java

@@ -17,10 +17,7 @@ import com.muchinfo.mtp3pojos.vo.query.goodstrade.GoodsTradeQueryParam;
 import com.muchinfo.mtp3pojos.vo.query.goodstrade.GoodsTradeQueryResult;
 import com.muchinfo.mtp3pojos.vo.query.investorsum.InvestorSumQueryParam;
 import com.muchinfo.mtp3pojos.vo.query.investorsum.InvestorSumQueryResult;
-import com.muchinfo.mtp3pojos.vo.query.other.EsignrecordQueryParam;
-import com.muchinfo.mtp3pojos.vo.query.other.EsignrecordQueryResult;
-import com.muchinfo.mtp3pojos.vo.query.other.InvestorQueryParam;
-import com.muchinfo.mtp3pojos.vo.query.other.InvestorQueryResult;
+import com.muchinfo.mtp3pojos.vo.query.other.*;
 import com.muchinfo.mtp3pojos.vo.query.position.*;
 import com.muchinfo.mtp3pojos.vo.query.tradesum.TradeSumQueryParam;
 import com.muchinfo.mtp3pojos.vo.query.tradesum.TradeSumQueryResult;
@@ -403,4 +400,12 @@ public class QueryController {
     public PageResult<PositionSumSheetResult> queryinvestortradeposition(PositionSumSheetParam param, HttpServletRequest request) {
         return iQueryService.queryinvestortradeposition(param, request);
     }
+
+    @RequestMapping(method = RequestMethod.GET, value = "/holdtransferquery")
+    @ResponseBody
+    @ApiOperation("运营查询--> 协议转让--> 获取列表 ")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    public PageResult<HoldtransferQueryResult> holdtransferquery(HoldtransferQueryParam param, HttpServletRequest request) {
+        return iQueryService.holdtransferquery(param, request);
+    }
 }

+ 15 - 1
mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/WarehouseController.java

@@ -40,7 +40,7 @@ public class WarehouseController {
     }
 
     @RequestMapping(method = RequestMethod.GET, value = "/warehouseTree")
-    @ApiOperation("仓储仓单管理--> 仓单注册申请 --> 初始化商品信息")
+    @ApiOperation("仓储仓单管理--> 仓单注册申请、现货品种设置 --> 初始化商品信息")
     @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     public AjaxResult<LineTreeNode> warehouseTree(Long categoryid, HttpServletRequest request) {
         return iWarehouseService.warehouseTree(categoryid, request);
@@ -129,4 +129,18 @@ public class WarehouseController {
     public AjaxResult receiptlogff(Long autoid, HttpServletRequest request) {
         return iWarehouseService.receiptlogff(autoid, request);
     }
+    @RequestMapping(method = RequestMethod.GET, value = "/varietquery")
+    @ApiOperation("仓储仓单管理--> 现货品种设置 --> 获取列表")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    public PageResult<WarehouseVarietyResult> varietquery(WarehouseVarietyParam param, HttpServletRequest request) {
+        return iWarehouseService.varietquery(param, request);
+    }
+
+    @RequestMapping(method = RequestMethod.GET, value = "/varietdetail")
+    @ApiOperation("仓储仓单管理--> 现货品种设置 --> 获取列表")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    public AjaxResult<WarehouseVarietyDetailResult> varietdetail(Long wrstandardid, HttpServletRequest request) {
+        return iWarehouseService.varietdetail(wrstandardid, request);
+    }
+
 }

+ 4 - 23
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/IOrganService.java

@@ -2,35 +2,16 @@ package com.muchinfo.mtp3century.service;
 
 import com.muchinfo.mtp3common.vo.AjaxResult;
 import com.muchinfo.mtp3common.vo.PageResult;
-import com.muchinfo.mtp3pojos.vo.common.OrganSelectParam;
-import com.muchinfo.mtp3pojos.vo.common.OrganSelectResult;
 import com.muchinfo.mtp3pojos.vo.organ.UserAccountReqParam;
-import com.muchinfo.mtp3pojos.vo.organ.UserAccountVo;
-import com.muchinfo.mtp3pojos.vo.organ.OrganParam;
+import com.muchinfo.mtp3pojos.vo.organ.UserAccountRspResult;
+import com.muchinfo.mtp3pojos.vo.organ.son.OrganAddSonOrganParam;
 import com.muchinfo.mtp3pojos.vo.organ.son.OrganSonDetailResult;
 
 import javax.servlet.http.HttpServletRequest;
 
 public interface IOrganService {
-    PageResult<UserAccountVo> queryByPage(UserAccountReqParam userInfoReqParam, HttpServletRequest request);
+    PageResult<UserAccountRspResult> queryByPage(UserAccountReqParam userInfoReqParam, HttpServletRequest request);
 
-    AjaxResult<UserAccountVo> queryDetail(Long areaId);
+    AjaxResult<UserAccountRspResult> queryDetail(Long areaId,Integer role, HttpServletRequest request);
 
-    PageResult<UserAccountVo> querySon(UserAccountReqParam param, HttpServletRequest request);
-
-    AjaxResult<UserAccountVo> getAreaAndAllChilds(HttpServletRequest request);
-
-    AjaxResult<OrganSonDetailResult> viewson(Long areaid, Integer modifystatus, HttpServletRequest request);
-
-    AjaxResult rebackChange(Long areaid, HttpServletRequest request);
-
-    AjaxResult delete(Long areaid, HttpServletRequest request);
-
-    AjaxResult recover(Long areaid, HttpServletRequest request);
-
-    AjaxResult addsonorgan(OrganParam param, HttpServletRequest request);
-
-    AjaxResult editsonorgan(OrganParam param, HttpServletRequest request) throws Exception;
-
-    AjaxResult edit(OrganParam current, HttpServletRequest request);
 }

+ 31 - 0
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/IOrganSonService.java

@@ -0,0 +1,31 @@
+package com.muchinfo.mtp3century.service;
+
+import com.muchinfo.mtp3common.vo.AjaxResult;
+import com.muchinfo.mtp3common.vo.PageResult;
+import com.muchinfo.mtp3pojos.vo.organ.UserAccountReqParam;
+import com.muchinfo.mtp3pojos.vo.organ.UserAccountRspResult;
+import com.muchinfo.mtp3pojos.vo.organ.son.OrganAddSonOrganParam;
+import com.muchinfo.mtp3pojos.vo.organ.son.OrganSonDetailResult;
+
+import javax.servlet.http.HttpServletRequest;
+
+public interface IOrganSonService {
+
+    PageResult<UserAccountRspResult> querySon(UserAccountReqParam param, HttpServletRequest request);
+
+    AjaxResult<UserAccountRspResult> getAreaAndAllChilds(HttpServletRequest request);
+
+    AjaxResult<OrganSonDetailResult> viewson(Long areaid, Integer modifystatus, HttpServletRequest request);
+
+    AjaxResult rebackChange(Long areaid, HttpServletRequest request);
+
+    AjaxResult delete(Long areaid, HttpServletRequest request);
+
+    AjaxResult recover(Long areaid, HttpServletRequest request);
+
+    AjaxResult addsonorgan(OrganAddSonOrganParam param, HttpServletRequest request);
+
+    AjaxResult editsonorgan(OrganAddSonOrganParam param, HttpServletRequest request) throws Exception;
+
+    AjaxResult edit(OrganAddSonOrganParam current, HttpServletRequest request);
+}

+ 3 - 4
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/IQueryService.java

@@ -16,10 +16,7 @@ import com.muchinfo.mtp3pojos.vo.query.goodstrade.GoodsTradeQueryParam;
 import com.muchinfo.mtp3pojos.vo.query.goodstrade.GoodsTradeQueryResult;
 import com.muchinfo.mtp3pojos.vo.query.investorsum.InvestorSumQueryParam;
 import com.muchinfo.mtp3pojos.vo.query.investorsum.InvestorSumQueryResult;
-import com.muchinfo.mtp3pojos.vo.query.other.EsignrecordQueryParam;
-import com.muchinfo.mtp3pojos.vo.query.other.EsignrecordQueryResult;
-import com.muchinfo.mtp3pojos.vo.query.other.InvestorQueryParam;
-import com.muchinfo.mtp3pojos.vo.query.other.InvestorQueryResult;
+import com.muchinfo.mtp3pojos.vo.query.other.*;
 import com.muchinfo.mtp3pojos.vo.query.position.*;
 import com.muchinfo.mtp3pojos.vo.query.tradesum.TradeSumQueryParam;
 import com.muchinfo.mtp3pojos.vo.query.tradesum.TradeSumQueryResult;
@@ -115,4 +112,6 @@ public interface IQueryService {
     PageResult<PositionSumSheetResult> queryinvestortradeposition(PositionSumSheetParam param, HttpServletRequest request);
 
     AjaxResult sellGoods(String deliveryorderid, Long marketid, HttpServletRequest request);
+
+    PageResult<HoldtransferQueryResult> holdtransferquery(HoldtransferQueryParam param, HttpServletRequest request);
 }

+ 4 - 0
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/IWarehouseService.java

@@ -38,4 +38,8 @@ public interface IWarehouseService {
     AjaxResult receiptaudit(WarehouseReceiptAuditParam param, HttpServletRequest request);
 
     AjaxResult receiptlogff(Long autoid, HttpServletRequest request);
+
+    PageResult<WarehouseVarietyResult> varietquery(WarehouseVarietyParam param, HttpServletRequest request);
+
+    AjaxResult<WarehouseVarietyDetailResult> varietdetail(Long wrstandardid, HttpServletRequest request);
 }

+ 3 - 0
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/CommonServiceImpl.java

@@ -224,6 +224,9 @@ public class CommonServiceImpl implements ICommonService {
         if (StringUtils.isNotBlank(param.getGoodsStatusIds())) {
             split = param.getGoodsStatusIds().split(",");
         }
+        if (("," + param.getOrgztypes() + ",").contains(",3,")) {
+            param.setAreauserid(null);
+        }
         if (StringUtils.isNotBlank(param.getTrademodels())) {
             tradeModeSplit = param.getTrademodels().split(",");
         }

+ 73 - 822
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/OrganServiceImpl.java

@@ -26,9 +26,10 @@ import com.muchinfo.mtp3pojos.vo.investor.DetailAfterResult;
 import com.muchinfo.mtp3pojos.vo.investor.DetailBeforeResult;
 import com.muchinfo.mtp3pojos.vo.investor.UserAccountDetailVo;
 import com.muchinfo.mtp3pojos.vo.investor.UserinfoDetailVo;
+import com.muchinfo.mtp3pojos.vo.organ.UserAccountDetailResult;
 import com.muchinfo.mtp3pojos.vo.organ.UserAccountReqParam;
-import com.muchinfo.mtp3pojos.vo.organ.UserAccountVo;
-import com.muchinfo.mtp3pojos.vo.organ.OrganParam;
+import com.muchinfo.mtp3pojos.vo.organ.UserAccountRspResult;
+import com.muchinfo.mtp3pojos.vo.organ.son.OrganAddSonOrganParam;
 import com.muchinfo.mtp3pojos.vo.organ.son.OrganSonDetailResult;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -53,6 +54,8 @@ public class OrganServiceImpl implements IOrganService {
     @Resource
     private IUseraccountMapper iUseraccountMapper;
     @Resource
+    private IBankBankinfoMapper iBankBankinfoMapper;
+    @Resource
     private IUserinfoMapper iUserinfoMapper;
     @Resource
     private IUserauthinfoMapper iUserauthinfoMapper;
@@ -98,16 +101,16 @@ public class OrganServiceImpl implements IOrganService {
     private IQuoterMapper iQuoterMapper;
 
     @Override
-    public PageResult<UserAccountVo> queryByPage(UserAccountReqParam userInfoReqParam, HttpServletRequest request) {
-        IPage<UserAccountVo> userAccountVos;
-        IPage<UserAccountVo> page = new Page<>(userInfoReqParam.getPageNum(), userInfoReqParam.getPageSize());
+    public PageResult<UserAccountRspResult> queryByPage(UserAccountReqParam userInfoReqParam, HttpServletRequest request) {
+        IPage<UserAccountRspResult> userAccountVos;
+        IPage<UserAccountRspResult> page = new Page<>(userInfoReqParam.getPageNum(), userInfoReqParam.getPageSize());
         Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
         if (systemmanager.getReletype() == 2) {
             userAccountVos = iUseraccountMapper.querySonOrganPage(page, userInfoReqParam);
         } else {
             userAccountVos = iUseraccountMapper.queryOrganPage(page, userInfoReqParam);
         }
-        PageResult<UserAccountVo> pageResult = new PageResult<>();
+        PageResult<UserAccountRspResult> pageResult = new PageResult<>();
         pageResult.setCode(Constants.Success_Code_Design);
         pageResult.setMessage(AjaxResult.dealMsg(MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language")));
         pageResult.setPages(userAccountVos.getPages());
@@ -119,855 +122,103 @@ public class OrganServiceImpl implements IOrganService {
     }
 
     @Override
-    public AjaxResult<UserAccountVo> queryDetail(Long areaId) {
-        UserAccountVo userAccountVo = new UserAccountVo();
+    public AjaxResult<UserAccountRspResult> queryDetail(Long areaId,Integer role, HttpServletRequest request) {
+        UserAccountDetailResult result = new UserAccountDetailResult();
+        UserAccountRspResult userAccountVo = new UserAccountRspResult();
         Useraccount useraccount = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("USERID", areaId));
         BeanUtils.copyProperties(useraccount, userAccountVo);
+        result.setRspResult(userAccountVo);
 
+        result.setRefereeusername(iUseraccountMapper.selectOrganName(userAccountVo.getRefereeuserid()) != null ? iUseraccountMapper.selectOrganName(userAccountVo.getRefereeuserid()) : "");
+        result.setBorkername(iUseraccountMapper.selectOrganName(userAccountVo.getBroker()));
 
-        return null;
-    }
-
-    @Override
-    public PageResult<UserAccountVo> querySon(UserAccountReqParam param, HttpServletRequest request) {
-        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
-        if (systemmanager.getReletype() == 3) {
-            if (param.getParentuserid() == null)
-                param.setParentuserid(param.getMemberuserid());
-            //父级和所属会员两个条件同时查,查不出来子机构,所以把所属会员条件去掉
-            param.setMemberuserid(null);
+        Userinfo ui = iUserinfoMapper.selectOne(new QueryWrapper<Userinfo>().eq("userid", areaId));
+        if (StringUtils.isNotBlank(ui.getBankaccount())) {
+            ui.setBankaccount(EncryptionUtils.decryptForAES(ui.getBankaccount()));
         }
-        IPage<UserAccountVo> page = new Page<>(param.getPageNum(), param.getPageSize());
-        IPage<UserAccountVo> userAccountVos = iUseraccountMapper.querySonOrganPage(page, param);
-        PageResult<UserAccountVo> pageResult = new PageResult<>();
-        pageResult.setCode(Constants.Success_Code_Design);
-        pageResult.setMessage(AjaxResult.dealMsg(MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language")));
-        pageResult.setPages(userAccountVos.getPages());
-        pageResult.setCurrent(userAccountVos.getCurrent());
-        pageResult.setTotal(userAccountVos.getTotal());
-        pageResult.setPageSize(userAccountVos.getSize());
-        pageResult.setData(userAccountVos.getRecords());
-        return pageResult;
-    }
-
-    @Override
-    public AjaxResult<UserAccountVo> getAreaAndAllChilds(HttpServletRequest request) {
-        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
-        List<UserAccountVo> result = iUseraccountMapper.getAreaAndAllChilds(systemmanager.getAreauserid());
-        for (UserAccountVo userAccountVo : result) {
-            //最大层级数
-            Object maxLev = iCommonService.getSystemParam(Constants.REDIS_HEADER_SYSPARAM, "069");
-            if (maxLev == null || StringUtils.isBlank(maxLev.toString())) {
-                maxLev = 4;
-            }
-            userAccountVo.setMaxLevel(Math.min(7, Integer.parseInt(maxLev.toString())));
-            userAccountVo.setParentid(systemmanager.getAreauserid());
-
-            Useraccount ua = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", systemmanager.getAreauserid()));
-            Integer level = iUseraccountMapper.querySonOrganLevel(ua.getUserid(), ua.getMemberuserid());
-            userAccountVo.setSubarealevel(level);
-            userAccountVo.setCuruserid(ua.getUserid());
-
-            // 是否可跨级添加子机构
-            Object canCrossAdd = redisServiceUtil.getCacheMapValue(Constants.REDIS_HEADER_SYSPARAM, "1000");
-            if (canCrossAdd == null || StringUtils.isBlank(canCrossAdd.toString())) {
-                canCrossAdd = 1;
-            }
-            userAccountVo.setCancrossadd(Integer.valueOf(canCrossAdd.toString()));
-
-            Userinfo userinfo = iUserinfoMapper.selectOne(new QueryWrapper<Userinfo>().eq("userid", userAccountVo.getUserid()));
-            userAccountVo.setUserinfotype(userinfo.getUserinfotype());
-            userAccountVo.setContactname(userinfo.getContactname());
-            if (userinfo.getDistrictid() != null) {
-                userAccountVo.setPathname(iDivisionMapper.selectAreaPathName(userinfo.getDistrictid()) + userinfo.getAddress());
+        if (ui.getBankid() != null) {
+            BankBankinfo bi = iBankBankinfoMapper.selectOne(new QueryWrapper<BankBankinfo>().eq("bankid", ui.getBankid()));
+            if (bi != null) {
+                ui.setBankname(bi.getBankname());
             }
         }
-        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
-    }
-
-    @Override
-    public AjaxResult<OrganSonDetailResult> viewson(Long areaid, Integer modifystatus, HttpServletRequest request) {
-        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
-        new Thread(new Runnable() {
-            @Override
-            public void run() {
-                systemmanagerService.saveMGLog(systemmanager, SysConstants.PART_CODE_ORGZ, areaid);
-            }
-        }).start();
-
-        OrganSonDetailResult result = new OrganSonDetailResult();
-        Useraccount useraccount = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", areaid));
-        String sp1 = iCommonService.getSysparmById(SysConstants.SYSPARAM_SETTING_SON_AUDIT);
 
-        //管理员账户
-        Systemmanager admin = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>()
-                .eq("areauserid", areaid)
-                .eq("isdefault", 1));
-        result.setUserid(admin.getAutoid());
-        result.setUsername(admin.getUsername());
-        result.setUserstatus(admin.getManagerstatus());
-        result.setLogincode(admin.getLogincode());
-
-        //整理返回数据
-        if (modifystatus != null && modifystatus >= 2 && useraccount.getAccountstatus() == 4
-                && "1".equals(sp1)) {
-            result.setOldResult(getUserAccountDetail(areaid, result));
-            result.setNewResult(getModifyInvestorDetail(areaid));
-            return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
-        } else {
-            result.setOldResult(getUserAccountDetail(areaid, result));
-            return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
+        if (StringUtils.isNotBlank(ui.getCardnum())) {
+            ui.setCardnum(EncryptionUtils.decryptForAES(ui.getCardnum()));
         }
-    }
-
-    @Override
-    public AjaxResult rebackChange(Long areaid, HttpServletRequest request) {
-        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
-        if (!iCommonService.checkUserAccountRole(systemmanager, areaid)) {
-            return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM003.getCode(), request.getHeader("Accept-Language"));
+        if (StringUtils.isNotBlank(ui.getMobile())) {
+            ui.setMobile(EncryptionUtils.decryptForAES(ui.getMobile()));
         }
 
-        iDraftUseraccountNewMapper.delete(new QueryWrapper<DraftUseraccountNew>().eq("userid", areaid));
-        iDraftUserinfoMapper.delete(new QueryWrapper<DraftUserinfo>().eq("USERID", areaid));
-
-        Useraccount organ = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", areaid));
-        //错误 #58783
-        organ.setModifystatus(1);
-        iUseraccountMapper.update(organ, new QueryWrapper<Useraccount>().eq("userid", organ.getUserid()));
-
-        if (organ.getUsertype() == 3 || organ.getUsertype() == 4) {
-            if (systemmanager.getReletype() == 1) {
-                systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ, "撤回id=" + organ.getUserid(), systemmanager, null, null, null);
-            } else {
-                systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ_ZJG, "撤回id=" + organ.getUserid(), systemmanager, null, null, null);
-            }
-        } else if (organ.getUsertype() == 5) {
-            systemmanagerService.writeOperateLog(SysConstants.PART_INVESTOR_MANAGE, "撤回id=" + organ.getUserid(), systemmanager, null, null, null);
+        if (StringUtils.isNotBlank(ui.getTelphone())) {
+            ui.setTelphone(EncryptionUtils.decryptForAES(ui.getTelphone()));
         }
 
-        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
-    }
-
-    @Override
-    public AjaxResult delete(Long areaid, HttpServletRequest request) {
-        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
-        Useraccount org = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", areaid));
-        //校验
-        if (org.getUsertype() != 5) {
-            List<Arearole> list2 = iArearoleMapper.selectList(new QueryWrapper<Arearole>().eq("userid", areaid));
-            if (CollectionUtils.isNotEmpty(list2)) {
-                return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_001.getCode(), request.getHeader("Accept-Language"));
-            }
-
-            List<Useraccount> list = iUseraccountMapper.selectList(new QueryWrapper<Useraccount>()
-                    .eq("parentuserid", areaid)
-                    .eq("accountstatus", 4)
-                    .in("usertype", 3, 4)
-            );
-            if (CollectionUtils.isNotEmpty(list)) {
-                return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_002.getCode(), request.getHeader("Accept-Language"));
-            }
-            if (org.getUsertype() == 4) {
-                list = iUseraccountMapper.selectList(new QueryWrapper<Useraccount>()
-                        .eq("usertype", 5)
-                        .eq("broker", areaid)
-                        .eq("accountstatus", 4));
-                if (CollectionUtils.isNotEmpty(list)) {
-                    return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_003.getCode(), request.getHeader("Accept-Language"));
-                }
-            } else {
-                list = iUseraccountMapper.selectList(new QueryWrapper<Useraccount>()
-                        .eq("parentuserid", areaid)
-                        .eq("accountstatus", 4)
-                        .eq("usertype", 5));
-                if (CollectionUtils.isNotEmpty(list)) {
-                    return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_003.getCode(), request.getHeader("Accept-Language"));
-                }
-            }
-        } else {
-            List<Taaccount> taList = iTaaccountMapper.selectList(new QueryWrapper<Taaccount>()
-                    .eq("userid", areaid)
-                    .gt("currentbalance", 0)
-            );
-            if (CollectionUtils.isNotEmpty(taList)) {
-                return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_004.getCode(), request.getHeader("Accept-Language"));
-            }
-            List<Tradeposition> tpList = iTradepositionMapper.queryAmount(areaid);
-            if (CollectionUtils.isNotEmpty(tpList)) {
-                return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_005.getCode(), request.getHeader("Accept-Language"));
-            }
+        if (userAccountVo.getCreditquota() != null) {
+            ui.setCreditquota(userAccountVo.getCreditquota());
         }
 
-        log.info("收到用户注销请求:" + areaid.toString());
-        org.setAccountstatus(6);
-        org.setModifierid(systemmanager.getAutoid());
-        org.setModifytime(new Date());
-        org.setCanceltime(new Date());
-        iUseraccountMapper.update(org, new QueryWrapper<Useraccount>().eq("userid", org.getUserid()));
-
-        Userinfo ui = iUserinfoMapper.selectOne(new QueryWrapper<Userinfo>().eq("userid", areaid));
-        ui.setUserstatus(2);
-        iUserinfoMapper.update(ui, new QueryWrapper<Userinfo>().eq("userid", ui.getUserid()));
-        //注销 所有账户
-        List<Systemmanager> admin = iSystemmanagerMapper.selectList(new QueryWrapper<Systemmanager>().eq("areauserid", areaid));
-        if (admin != null && !admin.isEmpty()) {
-            admin.forEach(p -> {
-                p.setManagerstatus(2);//停用
-                iSystemmanagerMapper.updateById(p);
-            });
+        if (StringUtils.isNotBlank(ui.getWechat())) {
+            ui.setWechat(EncryptionUtils.decryptForAES(ui.getWechat()));
         }
-        //删除登录关联关系
-        iUserauthinfoMapper.delete(new QueryWrapper<Userauthinfo>().eq("userid", areaid));
-        //写入日志
-        if (org.getUsertype() == 2)
-            systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ, "注销或删除机构id=" + org.getUserid(), systemmanager, null, null, null);
-        else if (org.getUsertype() == 3 || org.getUsertype() == 4) {
-            String name = "";
-            if (org.getUsertype() == 3)
-                name = "子机构";
-            if (org.getUsertype() == 4)
-                name = "经纪人";
-            if (systemmanager.getReletype() == 1)
-                systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ, "注销或删除" + name + "id=" + org.getUserid(), systemmanager, null, null, null);
-            else
-                systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ_ZJG, "注销或删除" + name + "id=" + org.getUserid(), systemmanager, null, null, null);
-        } else if (org.getUsertype() == 5)
-            systemmanagerService.writeOperateLog(SysConstants.PART_INVESTOR_MANAGE, "注销或删除投资者id=" + org.getUserid(), systemmanager, null, null, null);
-
-        log.info("用户注销更新完成:" + areaid.toString());
-        List<Loginaccount> las = iLoginaccountMapper.selectList(new QueryWrapper<Loginaccount>()
-                .eq("userid", org.getUserid())
-                .eq("loginstatus", 1));
-
-        if (CollectionUtils.isNotEmpty(las)) {
-            Loginaccount la = new Loginaccount();
-            la.setUserid(org.getUserid());
-            la.setLoginstatus(3);//无效
-            iLoginaccountMapper.update(la, new QueryWrapper<Loginaccount>().eq("loginid", la.getLoginid()));
-
-            NotifyMI1.LoginAccChangeNtf.Builder builder = NotifyMI1.LoginAccChangeNtf.newBuilder();
-            Common.MessageHead.Builder hd = Common.MessageHead.newBuilder();
-            PublicMI1.NotifyHead.Builder nhd = PublicMI1.NotifyHead.newBuilder();
-            nhd.setNtfMode(0);
-            hd.setFunCode(FunCodeConstants.FunCode_Trade_LoginAccChangeNtf);
-            hd.setClientTime(System.currentTimeMillis());
-            builder.setNtfHeader(nhd);
-            builder.setHeader(hd);
-            las.forEach(p -> {
-                NotifyMI1.LoginAccChange.Builder lab = NotifyMI1.LoginAccChange.newBuilder();
-                lab.setChangeType(SysEnums.AccountOperateTypeEnum.DEL.getType());
-                lab.setLoginId(p.getLoginid());
-                builder.addLoginAccChange(lab);
-            });
-            byte[] body = ProtoHelper.getNTAS(builder.build().toByteArray(),
-                    FunCodeConstants.FunCode_Trade_LoginAccChangeNtf);
-            rabbitTemplate.send(SysConstants.RabbitNtfKey,
-                    new Message(body, new MessageProperties()));
-
-            log.info("用户注销发送登录账户变更通知:" + areaid.toString());
+        if (StringUtils.isNotBlank(ui.getOtherurl())) {
+            result.setOtherurl(Arrays.asList(ui.getOtherurl().split(",")));
         }
+        result.setUserinfo(ui);
 
-        // 发送用户注销消息给中心\银行接口
-        List<Taaccount> tas = iTaaccountMapper.selectList(new QueryWrapper<Taaccount>()
-                .eq("userid", org.getUserid())
-                .eq("ismain", 1));
-        iSendMsgService.sendM2BUnregistCustomerInfo(tas);
-
-        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
-    }
-
-    @Override
-    public AjaxResult recover(Long areaid, HttpServletRequest request) {
-        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
-        if (!iCommonService.checkUserAccountRole(systemmanager, areaid)) {
-            return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM003.getCode(), request.getHeader("Accept-Language"));
-        }
-        Useraccount org = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", areaid));
-        Userinfo ui = iUserinfoMapper.selectOne(new QueryWrapper<Userinfo>().eq("userid", areaid));
-        //校验
-        List<Userinfo> uiList = iUserinfoMapper.selectList(new QueryWrapper<Userinfo>()
-                .eq("userstatus", 1)
-                .ne("userid", ui.getUserid())
-                .and(a -> a.eq("cardnum", ui.getCardnum()).or().eq(StringUtils.isNotBlank(ui.getMobile()), "mobile", ui.getMobile()))
-        );
-        if (CollectionUtils.isNotEmpty(uiList)) {
-            for (int i = 0; i < uiList.size(); i++) {
-                if (uiList.get(i).getCardnum().equals(ui.getCardnum())) {
-                    return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_006.getCode(), request.getHeader("Accept-Language"));
-                }
-                //5 投资者
-                if (org.getUsertype() == 5 && uiList.get(i).getMobile().equals(ui.getMobile())) {
-                    return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_007.getCode(), request.getHeader("Accept-Language"));
-                }
+        Long did = ui.getDistrictid() != null ? ui.getDistrictid() :
+                (ui.getCityid() != null ? ui.getCityid() : ui.getProvinceid());
+        if (did != null) {
+            Division division = iDivisionMapper.selectOne(new QueryWrapper<Division>().eq("autoid", did));
+            if (division != null) {
+                result.setDivision(division.getSeparablename().replaceAll(">", ""));
             }
         }
-        if (org.getParentuserid() != 0) {
-            Useraccount p = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", org.getParentuserid()));
-            if (p.getAccountstatus() != 4) {
-                return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_008.getCode(), request.getHeader("Accept-Language"));
+        if (userAccountVo.getModifystatus() != null && userAccountVo.getModifystatus() == 2) {
+            DraftUseraccountNew uo = iDraftUseraccountNewMapper.selectOne(new QueryWrapper<DraftUseraccountNew>().eq("userid", areaId));
+            DraftUserinfo dui = iDraftUserinfoMapper.selectOne(new QueryWrapper<DraftUserinfo>().eq("userid", areaId));
+            if (uo.getRefereeuserid() != null) {
+                result.setAfterrefereeusername(iUseraccountMapper.selectOrganName(uo.getRefereeuserid()));
             }
-        }
-        //所属会员是否有经纪角色
-        if (org.getUsertype() == 5) {
-            Arearole ar = iArearoleMapper.selectOne(new QueryWrapper<Arearole>()
-                    .eq("roletype", 7)
-                    .eq("userid", org.getMemberuserid()));
-            if (ar == null) {
-                return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_009.getCode(), request.getHeader("Accept-Language"));
+            if (uo.getBroker() != null) {
+                result.setAfterborkername(iUseraccountMapper.selectOrganName(uo.getBroker()));
             }
-        }
-        // todo allocated != null && allocated == 1
-        org.setAccountstatus(4);
-        org.setModifierid(systemmanager.getAutoid());
-        org.setModifytime(new Date());
-        iUseraccountMapper.update(org, new QueryWrapper<Useraccount>().eq("userid", org.getUserid()));
 
-        ui.setUserstatus(1);
-        iUserinfoMapper.update(ui, new QueryWrapper<Userinfo>().eq("userid", ui.getUserid()));
-
-        //管理员账户
-        Systemmanager admin = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>()
-                .eq("areauserid", areaid)
-                .eq("isdefault", 1));
-        if (admin != null) {
-            admin.setManagerstatus(1);
-            iSystemmanagerMapper.updateById(admin);
+            result.setDraftUseraccountNew(uo);
+            result.setDraftUserinfo(dui);
         }
-        //写入日志
-        if (org.getUsertype() == 2)
-            systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ, "恢复机构id=" + org.getUserid(), systemmanager, null, null, null);
-        else if (org.getUsertype() == 3 || org.getUsertype() == 4) {
-            String name = "";
-            if (org.getUsertype() == 3)
-                name = "子机构";
-            if (org.getUsertype() == 4)
-                name = "经纪人";
-            if (systemmanager.getReletype() == 1)
-                systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ, "恢复" + name + "id=" + org.getUserid(), systemmanager, null, null, null);
-            else
-                systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ_ZJG, "恢复" + name + "id=" + org.getUserid(), systemmanager, null, null, null);
-        } else if (org.getUsertype() == 5)
-            systemmanagerService.writeOperateLog(SysConstants.PART_INVESTOR_MANAGE, "恢复投资者id=" + org.getUserid(), systemmanager, null, null, null);
-
-        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
-    }
 
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public AjaxResult addsonorgan(OrganParam param, HttpServletRequest request) {
-        //校验唯一性
-        List<Useraccount> c2 = iUseraccountMapper.selectList(new QueryWrapper<Useraccount>().eq("userid", createUserid(param.getParentuserid(), param.getUserid(), 4)));
-        if (CollectionUtils.isNotEmpty(c2)) {
-            return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_010.getCode(), request.getHeader("Accept-Language"));
-        }
-        // 机构开户证件号码是否唯一
-        String areacardflag = iCommonService.getSystemParam(Constants.REDIS_HEADER_SYSPARAM, Constants.SYSPARAM_CARD_NO);
-        //验证证件号码是否存在
-        Boolean checkFlag1 = iCommonService.checkOranCardNumOrMobile(1, EncryptionUtils.encryptByAES(param.getCardnum().trim()), null);
-        if (areacardflag != null && areacardflag.equals("1") && checkFlag1) {
-            return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_011.getCode(), request.getHeader("Accept-Language"));
-        }
-        List<WskhBlacklist> wskhBlacklists = iWskhBlacklistMapper.selectList(new QueryWrapper<WskhBlacklist>()
-                .eq("CARDTYPE", param.getCardtypeid())
-                .eq("CARDNUM", EncryptionUtils.encryptByAES(param.getCardnum().trim())));
-        if (!CollectionUtils.isEmpty(wskhBlacklists)) {
-            return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_012.getCode(), request.getHeader("Accept-Language"));
-        }
-        if (param.getUserinfotype() == 2) {
-            //机构类型为企业需 名称唯一
-            List<Userinfo> c3 = iUserinfoMapper.selectList(new QueryWrapper<Userinfo>()
-                    .eq("customername", param.getCustomername().trim())
-                    .eq("userinfotype", 2));
-            if (CollectionUtils.isNotEmpty(c3)) {
-                return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_013.getCode(), request.getHeader("Accept-Language"));
-            }
-        }
-        List<Systemmanager> list = iSystemmanagerMapper.selectList(new QueryWrapper<Systemmanager>().eq("logincode", param.getLogincode().trim()));
-        if (CollectionUtils.isNotEmpty(list)) {
-            return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_014.getCode(), request.getHeader("Accept-Language"));
-        }
-        try {
-            Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
-            if (param.getUsertype() == 3) {
-                addSonOrgan(param, systemmanager);
-            } else {
-                // todo 新增经纪人
-                // userAccountSercive.addBroker(param, rsp.getUser());
-            }
-        } catch (Exception e) {
-            log.info("新增失败,失败原因:" + e);
-            throw new GlobalException(Constants.Error_Code_Design,MessageType.ORGAN_ERROR_CODE_015.getCode(), request.getHeader("Accept-Language"));
-       }
-        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
-    }
+        //管理员账户信息
+        Systemmanager user = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("areauserid", areaId).eq("isdefault", 1));
+        result.setUsers(user);
 
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public AjaxResult editsonorgan(OrganParam param, HttpServletRequest request) {
-        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
-        Useraccount organ = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", param.getUserid()));
-
-        DraftUseraccountNew dua = new DraftUseraccountNew();
-        BeanUtils.copyProperties(organ, dua);
-
-        //校验
-        String card = param.getCardnum();
-        if (StringUtils.isNotBlank(card)) {
-            card = EncryptionUtils.encryptByAES(card);
-            List<Userinfo> uiList = iUserinfoMapper.selectList(new QueryWrapper<Userinfo>()
-                    .eq("usertype", 5)
-                    .eq("cardnum", card)
-                    .eq("userid", param.getUserid()));
-            if (CollectionUtils.isNotEmpty(uiList)) {
-                String sysparm = iCommonService.getSysparmById(Constants.SYSPARAM_CARD_NOTWO);
-                if (sysparm == null || "1".equals(sysparm)) {
-                    return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_011.getCode(), request.getHeader("Accept-Language"));
-                }
-            }
-        }
-        String mobile = param.getMobile();
-        if (StringUtils.isNotBlank(mobile)) {
-            mobile = EncryptionUtils.encryptByAES(param.getMobile());
-            List<Userinfo> uiList = iUserinfoMapper.selectList(new QueryWrapper<Userinfo>()
-                    .eq("usertype", 5)
-                    .eq("mobile", mobile)
-                    .eq("userid", param.getUserid()));
-            if (CollectionUtils.isNotEmpty(uiList)) {
-                return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_016.getCode(), request.getHeader("Accept-Language"));
-            }
-        }
-
-        dua.setAccountname(param.getAccountname());
-        dua.setModifierid(systemmanager.getAutoid());
-        dua.setModifytime(new Date());
-        dua.setModifystatus(param.getModifystatus());
-        if (param.getParentuserid() != null) {
-            dua.setParentuserid(param.getParentuserid());
-        }
-        //todo 子机构新增未引入 更新是否实名、newContent字段 -- dyp
-        //dua.setHasauth(param.getHasauth());
-        dua.setNewcontent(JsonUtils.object2Json(dua));
-        dua.setOldcontent(JsonUtils.object2Json(organ));
-        iDraftUseraccountNewMapper.insert(dua);
-
-        organ.setModifystatus(param.getModifystatus());
-        organ.setModifierid(systemmanager.getAutoid());
-        organ.setModifytime(new Date());
-        iUseraccountMapper.update(organ, new QueryWrapper<Useraccount>().eq("userid", organ.getUserid()));
-
-
-        Userinfo ui = iUserinfoMapper.selectOne(new QueryWrapper<Userinfo>().eq("userid", param.getUserid()));
-        DraftUserinfo dui = new DraftUserinfo();
-        BeanUtils.copyProperties(ui, dui);
-        dui.setAddress(param.getAddress());
-        dui.setBiznature(param.getBiznature());
-        dui.setCardbackphotourl(param.getCardbackphotourl());
-        dui.setCardfrontphotourl(param.getCardfrontphotourl());
-        dui.setCardnum(param.getCardnum());
-        dui.setCardtypeid(param.getCardtypeid());
-        dui.setCityid(param.getCityid());
-        dui.setCompany(param.getCompany());
-        if (StringUtils.isBlank(param.getCustomername())) {
-            //取useraccount里的accountname
-            dui.setCustomername(param.getAccountname());
-        } else {
-            dui.setCustomername(param.getCustomername());
-        }
-        dui.setDistrictid(param.getDistrictid());
-        dui.setEmail(param.getEmail());
-        dui.setMobile(param.getMobile());
-        dui.setModifierid(systemmanager.getAutoid());
-        dui.setModifiertime(new Date());
-        dui.setContactname(param.getContactname());
-        dui.setPostalcode(param.getPostalcode());
-        dui.setProvinceid(param.getProvinceid());
-        dui.setQq(param.getQq());
-        dui.setRemark(param.getRemark());
-        dui.setSex(param.getSex());
-        dui.setTelphone(param.getTelphone());
-        dui.setWechat(param.getWechat());
-        dui.setLegalpersonname(param.getLegalpersonname());
-        dui.setLegalcardbackphotourl(param.getLegalcardbackphotourl());
-        dui.setLegalcardfrontphotourl(param.getLegalcardfrontphotourl());
-        dui.setAttachment1(param.getAttachment1());
-        dui.setAttachment2(param.getAttachment2());
-        dui = (DraftUserinfo) SensitiveEncryptUtil.sensitiveEncrypt(dui, null);
-        iDraftUserinfoMapper.insert(dui);
-
-        //资金账户配置变更  配置业务
-        /*if (param.getConfig() != null && param.getConfig().getAccountid() != null) {
-            //子账户为  投资者机构所有  关联给投资者使用,,
-            //此处变更时,记为投资者变更  ,变更表userid填入投资者的userid
-            DraftTaAccountConfig config = new DraftTaAccountConfig();
-            config.setAccountid(param.getConfig().getAccountid());
-            config.setUserid(organ.getUserid());
-            config.setNewcontent(JSonHelp.object2Json(param.getConfig()));
-            commonDao.merge(config);
-        }*/
-        JSONObject jsonObj = JSONObject.parseObject(JSONObject.toJSONString(dua));
-        JSONObject jsonObjUi = JSONObject.parseObject(JSONObject.toJSONString(dui));
-        if (organ.getUsertype() == 3 || organ.getUsertype() == 4) {
-            if (systemmanager.getReletype() == 1) {
-                if (organ.getUsertype() == 3)
-                    systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ_ZJG, "修改子机构id=" + organ.getUserid() + "并提交审核", systemmanager, null, jsonObjUi.toString(), jsonObj.toString());
-                else
-                    systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ, "修改经纪人id=" + organ.getUserid() + "并提交审核", systemmanager, null, jsonObjUi.toString(), jsonObj.toString());
-            } else {
-                if (organ.getUsertype() == 3)
-                    systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ_ZJG, "修改子机构id=" + organ.getUserid() + "并提交审核", systemmanager, null, jsonObjUi.toString(), jsonObj.toString());
-                else
-                    systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ, "修改经纪人id=" + organ.getUserid() + "并提交审核", systemmanager, null, jsonObjUi.toString(), jsonObj.toString());
-            }
-        } else if (organ.getUsertype() == 5) {
-            systemmanagerService.writeOperateLog(SysConstants.PART_INVESTOR_MANAGE, "修改交易商id=" + organ.getUserid() + "并提交审核", systemmanager, null, jsonObjUi.toString(), jsonObj.toString());
-        }
-        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public AjaxResult edit(OrganParam param, HttpServletRequest request) {
-        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
-        Useraccount organ = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", param.getUserid()));
-
-        //当为特许经销商时,因为新增特许经销商的时候,默认加了一个名称一样的报价商,现在修改特许经销商名称时,报价商名称也一起修改
-        if (organ.getUsertype() == 2) {
-            List<Arearole> ar = iArearoleMapper.selectList(new QueryWrapper<Arearole>()
-                    .eq("roletype", 13)
-                    .eq("userid", organ.getUserid()));
-            if (CollectionUtils.isNotEmpty(ar)) {
-                Quoter qt = iQuoterMapper.selectOne(new QueryWrapper<Quoter>()
-                        .eq("areauserid", organ.getUserid())
-                        .eq("quotername", organ.getAccountname()));
-                if (Objects.nonNull(qt)) {
-                    qt.setQuotername(param.getAccountname()); //修改为修改后的机构名称
-                    qt.setModifytime(new Date());
-                    qt.setModifierid(systemmanager.getAutoid());
-                    iQuoterMapper.updateById(qt);
-                }
-            }
-        }
-
-        organ.setAccountname(param.getAccountname());
-        organ.setModifierid(systemmanager.getAutoid());
-        organ.setModifytime(new Date());
-        if (param.getRefereeuserid() != null) {
-            organ.setRefereeuserid(param.getRefereeuserid());
-        }
-        iUseraccountMapper.update(organ, new QueryWrapper<Useraccount>().eq("userid", organ.getUserid()));
-
-        String sysparm = iCommonService.getSysparmById(Constants.SYSPARAM_CARD_NOTWO);
-
-        Userinfo ui = iUserinfoMapper.selectOne(new QueryWrapper<Userinfo>().eq("userid", param.getUserid()));
-        if (ui.getCardnum() != null && !ui.getCardnum().equals(EncryptionUtils.encryptByAES(param.getCardnum()))) {
-            Map<String, Object> map = new HashMap<String, Object>();
-            String card = param.getCardnum();
-            if (StringUtils.isNotBlank(card)) {
-                card = EncryptionUtils.encryptByAES(param.getCardnum());
-                List<Userinfo> uiList = iUserinfoMapper.selectList(new QueryWrapper<Userinfo>()
-                        .eq("cardnum", card)
-                        .eq("userid", param.getUserid()));
-                if (CollectionUtils.isNotEmpty(uiList)) {
-                    if ((sysparm == null) || ("1".equals(sysparm))) {
-                        return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_011.getCode(), request.getHeader("Accept-Language"));
-                    }
-                }
-
-
-            }
-        }
-        if (ui.getUserinfotype() == 2 && !ui.getCustomername().equals(param.getCustomername().trim())) {
-            //机构类型为企业需 名称唯一
-            List<Userinfo> uiList = iUserinfoMapper.selectList(new QueryWrapper<Userinfo>()
-                    .eq("customername", param.getCustomername().trim())
-                    .eq("userinfotype", 2));
-            if (CollectionUtils.isNotEmpty(uiList)) {
-                return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_017.getCode(), request.getHeader("Accept-Language"));
-            }
-        }
-        ui.setAddress(param.getAddress());
-        ui.setBiznature(param.getBiznature());
-        ui.setCardbackphotourl(param.getCardbackphotourl());
-        ui.setCardfrontphotourl(param.getCardfrontphotourl());
-        ui.setCardnum(param.getCardnum());
-        ui.setCardtypeid(param.getCardtypeid());
-        ui.setCityid(param.getCityid());
-        ui.setCompany(param.getCompany());
-        ui.setCustomername(param.getCustomername());
-        ui.setDistrictid(param.getDistrictid());
-        ui.setEmail(param.getEmail());
-        ui.setMobile(param.getMobile());
-        ui.setModifierid(systemmanager.getAutoid());
-        ui.setModifiertime(new Date());
-        ui.setContactname(param.getContactname());
-        ui.setPostalcode(param.getPostalcode());
-        ui.setProvinceid(param.getProvinceid());
-        ui.setQq(param.getQq());
-        ui.setRemark(param.getRemark());
-        ui.setSex(param.getSex());
-        ui.setTelphone(param.getTelphone());
-        ui.setLegalcardbackphotourl(param.getLegalcardbackphotourl());
-        ui.setLegalpersonname(param.getLegalpersonname());
-        ui.setLegalcardfrontphotourl(param.getLegalcardfrontphotourl());
-        ui.setWechat(param.getWechat());
-        ui.setAttachment1(param.getAttachment1());
-        ui.setAttachment2(param.getAttachment2());
-
-        ui = (Userinfo) SensitiveEncryptUtil.sensitiveEncrypt(ui, null);
-        iUserinfoMapper.update(ui, new QueryWrapper<Userinfo>().eq("userid", ui.getUserid()));
-
-        if (organ.getUsertype().intValue() != 4) {
-            Systemmanager admin = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>()
-                    .eq("logincode", param.getLogincode()));
-            if (admin != null && !admin.getUsername().equals(param.getUsername())) {
-                admin.setUsername(param.getUsername());
-                iSystemmanagerMapper.updateById(admin);
-            }
-        }
-
-        if (param.getUsertype() == 2 || param.getUsertype() == 3) {
-            try {
-                Userinfo current = iUserinfoMapper.selectOne(new QueryWrapper<Userinfo>().eq("userid", param.getUserid()));
-                List<Taaccount> list = iTaaccountMapper.selectList(new QueryWrapper<Taaccount>()
-                        .eq("userid", current.getUserid())
-                        .eq("ismain", 1));
-                if (CollectionUtils.isNotEmpty(list)) {
-                    list.forEach(p -> {
-                        iSendMsgService.sendCustomerInfo(current, p.getAccountid(), "2", 3);
-                    });
-                }
-            } catch (Exception e) {
-                log.error("保存子机构修改信息发送消息失败,失败原因:" + e);
-            }
-        }
-
-        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
-    }
-
-    public void addSonOrgan(OrganParam param, Systemmanager systemmanager) {
-        String lPwd = iCommonService.getSystemParam(Constants.REDIS_HEADER_SYSPARAM, SysConstants.SYSPARAM_CODE_DEFAULT_PWD);
-        Useraccount organ = new Useraccount();
-        String userid = createUserid(param.getParentuserid(), param.getUserid(), 4);
-        organ.setUserid(Long.valueOf(userid));
-        organ.setRefernum(generateReferNum());
-        String sysparm = iCommonService.getSysparmById("063");
-        Useraccount parent = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", param.getParentuserid()));
-        organ.setUsertype(3);
-
-        if (sysparm == null) {
-            organ.setAccountstatus(4);
-        } else if (sysparm.equals("1")) {
-            organ.setAccountstatus(2);
-        } else {
-            organ.setAccountstatus(4);
-        }
-        organ.setCreatetradedate(iMarketrunMapper.selectOne(new QueryWrapper<Marketrun>().eq("marketid", 0L)).getTradedate());
-        organ.setParentuserid(param.getParentuserid());
-        organ.setMemberuserid(parent.getMemberuserid());
-        organ.setCreatorid(systemmanager.getAutoid());
-        organ.setCreatetime(new Date());
-        organ.setModifierid(systemmanager.getAutoid());
-        organ.setModifytime(new Date());
-        organ.setAccountname(param.getAccountname());
-        organ.setSubarealevelpath(parent.getSubarealevelpath() + organ.getUserid() + ",");
-        iUseraccountMapper.insert(organ);
-
-        Userinfo ui = new Userinfo();
-        ui.setCustomername(organ.getAccountname());
-        ui.setUsertype(3);
-        ui.setUserstatus(1);
-        ui.setOpenmode(1);
-        ui.setCreatetime(new Date());
-        ui.setCreatorid(systemmanager.getAutoid());
-        ui.setUserid(organ.getUserid());
-        ui.setUserinfotype(param.getUserinfotype());
-        ui.setCustomername(param.getCustomername());
-        ui.setCompany(param.getCompany());
-        ui.setBiznature(param.getBiznature());
-        ui.setCardtypeid(param.getCardtypeid());
-        ui.setCardnum(param.getCardnum());
-        ui.setCardfrontphotourl(param.getCardfrontphotourl());
-        ui.setCardbackphotourl(param.getCardbackphotourl());
-        ui.setLegalpersonname(param.getLegalpersonname());
-        ui.setLegalcardfrontphotourl(param.getLegalcardfrontphotourl());
-        ui.setLegalcardbackphotourl(param.getLegalcardbackphotourl());
-        ui.setContactname(param.getContactname());
-        ui.setSex(param.getSex());
-        ui.setMobile(param.getMobile());
-        ui.setTelphone(param.getTelphone());
-        ui.setProvinceid(param.getProvinceid());
-        ui.setCityid(param.getCityid());
-        ui.setDistrictid(param.getDistrictid());
-        ui.setAddress(param.getAddress());
-        ui.setPostalcode(param.getPostalcode());
-        ui.setEmail(param.getEmail());
-        ui.setQq(EncryptionUtils.encryptByAES(param.getQq()));
-        ui.setWechat(param.getWechat());
-        ui.setRemark(param.getRemark());
-        ui.setAttachment1(param.getAttachment1());
-        ui.setAttachment2(param.getAttachment2());
-        ui = (Userinfo) SensitiveEncryptUtil.sensitiveEncrypt(ui, null);
-        iUserinfoMapper.insert(ui);
-
-        //管理员账户
-        Systemmanager us = new Systemmanager();
-        us.setLogincode(param.getLogincode());
-        us.setAreauserid(organ.getUserid());
-        us.setUsername(StringUtils.isNotBlank(param.getUsername()) ? param.getUsername() : organ.getAccountname());
-        us.setReletype(3);
-        us.setManagerstatus(1);
-        us.setLoginfailnum(0);
-        us.setLoginstatus(1);
-        us.setIsdefault(1);
-        us.setUploginid(systemmanager.getAutoid());
-        us.setModifytime(new Date());
-        us.setPassword(EncryptionUtils.encryptSHA(us.getLogincode() + lPwd));
-        us.setPwdexpdate(new Date());
-        us.setManagertype(1);
-        iSystemmanagerMapper.insert(us);
-
-        Object l = redisServiceUtil.getCacheMapValue(Constants.REDIS_HEADER_SYSPARAM, "002");
-        if (l == null || !"2".equals(l.toString())) {
-            Roleuser ur = new Roleuser();
-            ur.setRoleid(1L);
-            ur.setManagerid(us.getAutoid());
-            ur.setRoletype(3);
-            iRoleuserMapper.insert(ur);
-        }
-        //子机构
-        if (organ.getUsertype() == 3) {
-            Roleuser ur = new Roleuser();
-            ur.setRoleid(12L);
-            ur.setManagerid(us.getAutoid());
-            ur.setRoletype(3);
-            iRoleuserMapper.insert(ur);
-        }
-
-        //资金账户  多币种----
-        List<Enumdicitem> li = iEnumdicitemMapper.selectList(new QueryWrapper<Enumdicitem>()
-                .eq("enumdiccode", "currency")
-                .eq("enumitemstatus", 1));
-
-        BankSystemconfig config = iBankSystemconfigMapper.selectOne(new QueryWrapper<BankSystemconfig>().eq("CONFIGID", SysConstants.BANK_CONFIG_ACTIVATION));
-        lPwd = EncryptionUtils.encryptSHA(lPwd);
-        List<Taaccount> taaccounts = new ArrayList<>();
-        for (int i = 0; i < li.size(); i++) {
-            String manageid = redisServiceUtil.getCacheMapValue(Constants.REDIS_HEADER_SYSPARAM, "001");
-            Long accountno = Long.valueOf(manageid + CommonUtil.addZero(String.valueOf(idGeneratorUtils.getGeneratorID(Taaccount.class)), 9));
-            Taaccount ac = new Taaccount();
-            ac.setAccountid(accountno);
-            ac.setUserid(organ.getUserid());
-            ac.setPassword(lPwd);
-            ac.setCurrencyid(li.get(i).getEnumitemname());
-            //资金账号是否需要激活
-            if (config != null && config.getValidstatus() == 1 && config.getConfigvalue().equals("1") && ac.getIsmain() == 1) {
-                ac.setTradestatus(SysEnums.TradeStatusEnum.TOBEACTIVATE.getType());
-            } else {
-                ac.setTradestatuschangetime(new Date()); //激活时间
-            }
-            if (1 == li.get(i).getEnumitemname()) {
-                organ.setReckonaccountid(accountno);
+        //如果是经纪会员、会员子机构、经纪人,则查询网上开户地址
+        Map<String, Object> map = new HashMap<>();
+        if (null == role || role == SysEnums.OrganRole.broker.getCode().intValue()
+                || userAccountVo.getUsertype() == 3 || userAccountVo.getUsertype() == 4) {
+            WskhOpenaccountconfig config = iWskhOpenaccountconfigMapper.selectOne(new QueryWrapper<WskhOpenaccountconfig>().eq("configtype", 59));
+            if (null != config && null != config.getConfigvalue()) {
+                result.setOpenUrl(config.getConfigvalue());
             }
-            ac.setRelateduserid(organ.getUserid());
-            ac.setRelatedaccountstatus(1);
-            taaccounts.add(ac);
-            iTaaccountMapper.insert(ac);
-
-            Userreckonaccount ura = new Userreckonaccount();
-            ura.setCurrencyid(ac.getCurrencyid());
-            ura.setUserid(ac.getUserid());
-            ura.setReckonaccountid(ac.getAccountid());
-            ura.setUpdatetime(new Date());
-            ura.setDefaultaccounttype(1);
-            iUserreckonaccountMapper.insert(ura);
         }
-
-        Integer reletype = systemmanager.getReletype();
-        String menucode = "";
-        if (reletype.equals(1))
-            menucode = "M00400220000";
-        else
-            menucode = SysConstants.PART_CODE_ORGZ_ZJG;
-        JSONObject jsonObj = JSONObject.parseObject(JSONObject.toJSONString(param));
-        if (organ.getUsertype() == 2) {
-            systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ, "新增机构id=" + organ.getUserid(), systemmanager, null, "{}", jsonObj.toString());
-        } else if (organ.getUsertype() == 3) {
-            systemmanagerService.writeOperateLog(menucode, "新增子机构id=" + organ.getUserid(), systemmanager, null, "{\"userid\":" + organ.getUserid() + "}", jsonObj.toString());
-        } else if (organ.getUsertype() == 4) {
-            systemmanagerService.writeOperateLog(menucode, "新增经纪人id=" + organ.getUserid(), systemmanager, null, "{\"userid\":" + organ.getUserid() + "}", jsonObj.toString());
-        } else if (organ.getUsertype() == 5) {
-            systemmanagerService.writeOperateLog(SysConstants.PART_INVESTOR_OPEN, "新增投资者id=" + organ.getUserid(), systemmanager, null, "{\"userid\":" + organ.getUserid() + "}", jsonObj.toString());
+        //移动端开户地址
+        WskhOpenaccountconfig config1 = iWskhOpenaccountconfigMapper.selectOne(new QueryWrapper<WskhOpenaccountconfig>().eq("configtype", 60));
+        if (null != config1 && null != config1.getConfigvalue()) {
+            result.setMobileUrl(config1.getConfigvalue());
         }
 
-        try {
-            for (int i = 0; i < taaccounts.size(); i++) {
-                iSendMsgService.sendCustomerInfo(ui, taaccounts.get(i).getAccountid(), "1", 3);
-                iSendMsgService.sendUserChangeMsg(taaccounts.get(i).getAccountid(), taaccounts.get(i).getUserid(),
-                        SysEnums.UserOperateTypeEnum.ADD.getType(),
-                        SysEnums.AccountOperateTypeEnum.ADD.getType(),
-                        SysEnums.NotifyModeEnum.UNICAST.getType());
-            }
-        } catch (Exception e) {
-            log.error("新增子机构发送消息失败;失败原因:" + e);
+        //微信开户地址
+        WskhOpenaccountconfig config2 = iWskhOpenaccountconfigMapper.selectOne(new QueryWrapper<WskhOpenaccountconfig>().eq("configtype", 65));
+        if (null != config2 && null != config2.getConfigvalue()) {
+            result.setWeixinUrl(config2.getConfigvalue());
         }
-    }
 
-    private DetailAfterResult getModifyInvestorDetail(Long userid) {
-        DetailAfterResult detailResult = new DetailAfterResult();
-        UserAccountDetailVo userAccountDetailVo = iUseraccountMapper.selectNewDetail(userid);
-        detailResult.setUserAccountDetailVo(userAccountDetailVo);
-        UserinfoDetailVo userinfoDetailVo = iUserinfoMapper.getUserinfoNewDetail(userid);
-        detailResult.setUserinfoDetailVo(userinfoDetailVo);
-        return detailResult;
-    }
-
-    private DetailBeforeResult getUserAccountDetail(Long userid, OrganSonDetailResult result) {
-        DetailBeforeResult detailResult = new DetailBeforeResult();
-        UserAccountDetailVo userAccountDetailVo = iUseraccountMapper.selectDetail(userid);
-        detailResult.setUserAccountDetailVo(userAccountDetailVo);
-        UserinfoDetailVo userinfoDetailVo = iUserinfoMapper.getUserinfoDetail(userid);
-        detailResult.setUserinfoDetailVo(userinfoDetailVo);
-        //开户地址
-        if (userAccountDetailVo.getUsertype() != 5) {
-            //如果是经纪会员、会员子机构、经纪人,则查询网上开户地址
-            WskhOpenaccountconfig config = iWskhOpenaccountconfigMapper.selectOne(new QueryWrapper<WskhOpenaccountconfig>()
-                    .eq("configtype", 59));
-            if (null != config && null != config.getConfigvalue()) {
-                result.setOpenUrl(config.getConfigvalue());
-            }
-            //移动端开户地址
-            WskhOpenaccountconfig config1 = iWskhOpenaccountconfigMapper.selectOne(new QueryWrapper<WskhOpenaccountconfig>()
-                    .eq("configtype", 59));
-            if (null != config1 && null != config1.getConfigvalue()) {
-                result.setMobileUrl(config.getConfigvalue());
-            }
-            //微信开户地址
-            WskhOpenaccountconfig config2 = iWskhOpenaccountconfigMapper.selectOne(new QueryWrapper<WskhOpenaccountconfig>()
-                    .eq("configtype", 59));
-            if (null != config2 && null != config2.getConfigvalue()) {
-                result.setWeixinUrl(config.getConfigvalue());
-            }
-            //三方开户地址
-            WskhOpenaccountconfig config3 = iWskhOpenaccountconfigMapper.selectOne(new QueryWrapper<WskhOpenaccountconfig>()
-                    .eq("configtype", 59));
-            if (null != config3 && null != config3.getConfigvalue()) {
-                result.setSanfangUrl(config.getConfigvalue());
-            }
+        //三方开户地址
+        WskhOpenaccountconfig config3 = iWskhOpenaccountconfigMapper.selectOne(new QueryWrapper<WskhOpenaccountconfig>().eq("configtype", 66));
+        if (null != config3 && null != config3.getConfigvalue()) {
+            result.setSanfangUrl(config3.getConfigvalue());
         }
-        return detailResult;
-    }
 
-    private String createUserid(Long pid, Long userid, Integer len) {
-        String memid = pid.toString().substring(0, 4);
-        return memid + CommonUtil.addZero(userid.toString(), len);
-    }
-
-    private String generateReferNum() {
-        //系统参数996 为2时,推荐码只有数字;
-        String sysparm = iCommonService.getSysparmById("996");
-        if (sysparm != null && !sysparm.equals("2")) {
-            return CommonUtil.getUuid2();
-        }
-        return CommonUtil.getUuid();
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
     }
 }

+ 948 - 0
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/OrganSonServiceService.java

@@ -0,0 +1,948 @@
+package com.muchinfo.mtp3century.service.impl;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.muchinfo.mtp.proto.Common;
+import com.muchinfo.mtp.proto.NotifyMI1;
+import com.muchinfo.mtp.proto.PublicMI1;
+import com.muchinfo.mtp3century.exception.GlobalException;
+import com.muchinfo.mtp3century.service.ICommonService;
+import com.muchinfo.mtp3century.service.IOrganSonService;
+import com.muchinfo.mtp3century.service.ISendMsgService;
+import com.muchinfo.mtp3century.utils.RedisServiceUtil;
+import com.muchinfo.mtp3century.utils.SequenceIDGeneratorUtils;
+import com.muchinfo.mtp3common.enumtype.*;
+import com.muchinfo.mtp3common.utils.CommonUtil;
+import com.muchinfo.mtp3common.utils.EncryptionUtils;
+import com.muchinfo.mtp3common.utils.JsonUtils;
+import com.muchinfo.mtp3common.utils.SensitiveEncryptUtil;
+import com.muchinfo.mtp3common.vo.AjaxResult;
+import com.muchinfo.mtp3common.vo.PageResult;
+import com.muchinfo.mtp3common.vo.ProtoHelper;
+import com.muchinfo.mtp3interface.mapper.*;
+import com.muchinfo.mtp3pojos.entity.*;
+import com.muchinfo.mtp3pojos.vo.investor.DetailAfterResult;
+import com.muchinfo.mtp3pojos.vo.investor.DetailBeforeResult;
+import com.muchinfo.mtp3pojos.vo.investor.UserAccountDetailVo;
+import com.muchinfo.mtp3pojos.vo.investor.UserinfoDetailVo;
+import com.muchinfo.mtp3pojos.vo.organ.UserAccountReqParam;
+import com.muchinfo.mtp3pojos.vo.organ.UserAccountRspResult;
+import com.muchinfo.mtp3pojos.vo.organ.son.OrganAddSonOrganParam;
+import com.muchinfo.mtp3pojos.vo.organ.son.OrganSonDetailResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.amqp.core.Message;
+import org.springframework.amqp.core.MessageProperties;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.*;
+
+@Service
+public class OrganSonServiceService implements IOrganSonService {
+
+    private final Logger log = LoggerFactory.getLogger(this.getClass());
+
+    private ISystemmanagerMapper iSystemmanagerMapper;
+    @Resource
+    private ICommonService iCommonService;
+    @Resource
+    private IUseraccountMapper iUseraccountMapper;
+    @Resource
+    private IBankBankinfoMapper iBankBankinfoMapper;
+    @Resource
+    private IUserinfoMapper iUserinfoMapper;
+    @Resource
+    private IUserauthinfoMapper iUserauthinfoMapper;
+    @Resource
+    private ISendMsgService iSendMsgService;
+    @Resource
+    private IDivisionMapper iDivisionMapper;
+    @Resource
+    private IMarketrunMapper iMarketrunMapper;
+    @Resource
+    private SystemmanagerServiceImpl systemmanagerService;
+    @Resource
+    private IWskhOpenaccountconfigMapper iWskhOpenaccountconfigMapper;
+    @Resource
+    private IDraftUseraccountNewMapper iDraftUseraccountNewMapper;
+    @Resource
+    private IArearoleMapper iArearoleMapper;
+    @Resource
+    private IDraftUserinfoMapper iDraftUserinfoMapper;
+    @Resource
+    private ITaaccountMapper iTaaccountMapper;
+    @Resource
+    private ITradepositionMapper iTradepositionMapper;
+    @Resource
+    private ILoginaccountMapper iLoginaccountMapper;
+    @Resource
+    private RabbitTemplate rabbitTemplate;
+    @Resource
+    private IEnumdicitemMapper iEnumdicitemMapper;
+    @Resource
+    private IBankSystemconfigMapper iBankSystemconfigMapper;
+    @Resource
+    private SequenceIDGeneratorUtils idGeneratorUtils;
+    @Resource
+    private RedisServiceUtil redisServiceUtil;
+    @Resource
+    private IUserreckonaccountMapper iUserreckonaccountMapper;
+    @Resource
+    private IWskhBlacklistMapper iWskhBlacklistMapper;
+    @Resource
+    private IRoleuserMapper iRoleuserMapper;
+    @Resource
+    private IQuoterMapper iQuoterMapper;
+
+    @Override
+    public PageResult<UserAccountRspResult> querySon(UserAccountReqParam param, HttpServletRequest request) {
+        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
+        if (systemmanager.getReletype() == 3) {
+            if (param.getParentuserid() == null)
+                param.setParentuserid(param.getMemberuserid());
+            //父级和所属会员两个条件同时查,查不出来子机构,所以把所属会员条件去掉
+            param.setMemberuserid(null);
+        }
+        IPage<UserAccountRspResult> page = new Page<>(param.getPageNum(), param.getPageSize());
+        IPage<UserAccountRspResult> userAccountVos = iUseraccountMapper.querySonOrganPage(page, param);
+        PageResult<UserAccountRspResult> pageResult = new PageResult<>();
+        pageResult.setCode(Constants.Success_Code_Design);
+        pageResult.setMessage(AjaxResult.dealMsg(MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language")));
+        pageResult.setPages(userAccountVos.getPages());
+        pageResult.setCurrent(userAccountVos.getCurrent());
+        pageResult.setTotal(userAccountVos.getTotal());
+        pageResult.setPageSize(userAccountVos.getSize());
+        pageResult.setData(userAccountVos.getRecords());
+        return pageResult;
+    }
+
+    @Override
+    public AjaxResult<UserAccountRspResult> getAreaAndAllChilds(HttpServletRequest request) {
+        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
+        List<UserAccountRspResult> result = iUseraccountMapper.getAreaAndAllChilds(systemmanager.getAreauserid());
+        for (UserAccountRspResult userAccountVo : result) {
+            //最大层级数
+            Object maxLev = iCommonService.getSystemParam(Constants.REDIS_HEADER_SYSPARAM, "069");
+            if (maxLev == null || StringUtils.isBlank(maxLev.toString())) {
+                maxLev = 4;
+            }
+            userAccountVo.setMaxLevel(Math.min(7, Integer.parseInt(maxLev.toString())));
+            userAccountVo.setParentid(systemmanager.getAreauserid());
+
+            Useraccount ua = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", systemmanager.getAreauserid()));
+            Integer level = iUseraccountMapper.querySonOrganLevel(ua.getUserid(), ua.getMemberuserid());
+            userAccountVo.setSubarealevel(level);
+            userAccountVo.setCuruserid(ua.getUserid());
+
+            // 是否可跨级添加子机构
+            Object canCrossAdd = redisServiceUtil.getCacheMapValue(Constants.REDIS_HEADER_SYSPARAM, "1000");
+            if (canCrossAdd == null || StringUtils.isBlank(canCrossAdd.toString())) {
+                canCrossAdd = 1;
+            }
+            userAccountVo.setCancrossadd(Integer.valueOf(canCrossAdd.toString()));
+
+            Userinfo userinfo = iUserinfoMapper.selectOne(new QueryWrapper<Userinfo>().eq("userid", userAccountVo.getUserid()));
+            userAccountVo.setUserinfotype(userinfo.getUserinfotype());
+            userAccountVo.setContactname(userinfo.getContactname());
+            if (userinfo.getDistrictid() != null) {
+                userAccountVo.setPathname(iDivisionMapper.selectAreaPathName(userinfo.getDistrictid()) + userinfo.getAddress());
+            }
+        }
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
+    }
+
+    @Override
+    public AjaxResult<OrganSonDetailResult> viewson(Long areaid, Integer modifystatus, HttpServletRequest request) {
+        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                systemmanagerService.saveMGLog(systemmanager, SysConstants.PART_CODE_ORGZ, areaid);
+            }
+        }).start();
+
+        OrganSonDetailResult result = new OrganSonDetailResult();
+        Useraccount useraccount = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", areaid));
+        String sp1 = iCommonService.getSysparmById(SysConstants.SYSPARAM_SETTING_SON_AUDIT);
+
+        //管理员账户
+        Systemmanager admin = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>()
+                .eq("areauserid", areaid)
+                .eq("isdefault", 1));
+        result.setUserid(admin.getAutoid());
+        result.setUsername(admin.getUsername());
+        result.setUserstatus(admin.getManagerstatus());
+        result.setLogincode(admin.getLogincode());
+
+        //整理返回数据
+        if (modifystatus != null && modifystatus >= 2 && useraccount.getAccountstatus() == 4
+                && "1".equals(sp1)) {
+            result.setOldResult(getUserAccountDetail(areaid, result));
+            result.setNewResult(getModifyInvestorDetail(areaid));
+            return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
+        } else {
+            result.setOldResult(getUserAccountDetail(areaid, result));
+            return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
+        }
+    }
+
+    @Override
+    public AjaxResult rebackChange(Long areaid, HttpServletRequest request) {
+        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
+        if (!iCommonService.checkUserAccountRole(systemmanager, areaid)) {
+            return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM003.getCode(), request.getHeader("Accept-Language"));
+        }
+
+        iDraftUseraccountNewMapper.delete(new QueryWrapper<DraftUseraccountNew>().eq("userid", areaid));
+        iDraftUserinfoMapper.delete(new QueryWrapper<DraftUserinfo>().eq("USERID", areaid));
+
+        Useraccount organ = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", areaid));
+        //错误 #58783
+        organ.setModifystatus(1);
+        iUseraccountMapper.update(organ, new QueryWrapper<Useraccount>().eq("userid", organ.getUserid()));
+
+        if (organ.getUsertype() == 3 || organ.getUsertype() == 4) {
+            if (systemmanager.getReletype() == 1) {
+                systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ, "撤回id=" + organ.getUserid(), systemmanager, null, null, null);
+            } else {
+                systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ_ZJG, "撤回id=" + organ.getUserid(), systemmanager, null, null, null);
+            }
+        } else if (organ.getUsertype() == 5) {
+            systemmanagerService.writeOperateLog(SysConstants.PART_INVESTOR_MANAGE, "撤回id=" + organ.getUserid(), systemmanager, null, null, null);
+        }
+
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+    }
+
+    @Override
+    public AjaxResult delete(Long areaid, HttpServletRequest request) {
+        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
+        Useraccount org = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", areaid));
+        //校验
+        if (org.getUsertype() != 5) {
+            List<Arearole> list2 = iArearoleMapper.selectList(new QueryWrapper<Arearole>().eq("userid", areaid));
+            if (CollectionUtils.isNotEmpty(list2)) {
+                return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_001.getCode(), request.getHeader("Accept-Language"));
+            }
+
+            List<Useraccount> list = iUseraccountMapper.selectList(new QueryWrapper<Useraccount>()
+                    .eq("parentuserid", areaid)
+                    .eq("accountstatus", 4)
+                    .in("usertype", 3, 4)
+            );
+            if (CollectionUtils.isNotEmpty(list)) {
+                return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_002.getCode(), request.getHeader("Accept-Language"));
+            }
+            if (org.getUsertype() == 4) {
+                list = iUseraccountMapper.selectList(new QueryWrapper<Useraccount>()
+                        .eq("usertype", 5)
+                        .eq("broker", areaid)
+                        .eq("accountstatus", 4));
+                if (CollectionUtils.isNotEmpty(list)) {
+                    return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_003.getCode(), request.getHeader("Accept-Language"));
+                }
+            } else {
+                list = iUseraccountMapper.selectList(new QueryWrapper<Useraccount>()
+                        .eq("parentuserid", areaid)
+                        .eq("accountstatus", 4)
+                        .eq("usertype", 5));
+                if (CollectionUtils.isNotEmpty(list)) {
+                    return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_003.getCode(), request.getHeader("Accept-Language"));
+                }
+            }
+        } else {
+            List<Taaccount> taList = iTaaccountMapper.selectList(new QueryWrapper<Taaccount>()
+                    .eq("userid", areaid)
+                    .gt("currentbalance", 0)
+            );
+            if (CollectionUtils.isNotEmpty(taList)) {
+                return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_004.getCode(), request.getHeader("Accept-Language"));
+            }
+            List<Tradeposition> tpList = iTradepositionMapper.queryAmount(areaid);
+            if (CollectionUtils.isNotEmpty(tpList)) {
+                return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_005.getCode(), request.getHeader("Accept-Language"));
+            }
+        }
+
+        log.info("收到用户注销请求:" + areaid.toString());
+        org.setAccountstatus(6);
+        org.setModifierid(systemmanager.getAutoid());
+        org.setModifytime(new Date());
+        org.setCanceltime(new Date());
+        iUseraccountMapper.update(org, new QueryWrapper<Useraccount>().eq("userid", org.getUserid()));
+
+        Userinfo ui = iUserinfoMapper.selectOne(new QueryWrapper<Userinfo>().eq("userid", areaid));
+        ui.setUserstatus(2);
+        iUserinfoMapper.update(ui, new QueryWrapper<Userinfo>().eq("userid", ui.getUserid()));
+        //注销 所有账户
+        List<Systemmanager> admin = iSystemmanagerMapper.selectList(new QueryWrapper<Systemmanager>().eq("areauserid", areaid));
+        if (admin != null && !admin.isEmpty()) {
+            admin.forEach(p -> {
+                p.setManagerstatus(2);//停用
+                iSystemmanagerMapper.updateById(p);
+            });
+        }
+        //删除登录关联关系
+        iUserauthinfoMapper.delete(new QueryWrapper<Userauthinfo>().eq("userid", areaid));
+        //写入日志
+        if (org.getUsertype() == 2)
+            systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ, "注销或删除机构id=" + org.getUserid(), systemmanager, null, null, null);
+        else if (org.getUsertype() == 3 || org.getUsertype() == 4) {
+            String name = "";
+            if (org.getUsertype() == 3)
+                name = "子机构";
+            if (org.getUsertype() == 4)
+                name = "经纪人";
+            if (systemmanager.getReletype() == 1)
+                systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ, "注销或删除" + name + "id=" + org.getUserid(), systemmanager, null, null, null);
+            else
+                systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ_ZJG, "注销或删除" + name + "id=" + org.getUserid(), systemmanager, null, null, null);
+        } else if (org.getUsertype() == 5)
+            systemmanagerService.writeOperateLog(SysConstants.PART_INVESTOR_MANAGE, "注销或删除投资者id=" + org.getUserid(), systemmanager, null, null, null);
+
+        log.info("用户注销更新完成:" + areaid.toString());
+        List<Loginaccount> las = iLoginaccountMapper.selectList(new QueryWrapper<Loginaccount>()
+                .eq("userid", org.getUserid())
+                .eq("loginstatus", 1));
+
+        if (CollectionUtils.isNotEmpty(las)) {
+            Loginaccount la = new Loginaccount();
+            la.setUserid(org.getUserid());
+            la.setLoginstatus(3);//无效
+            iLoginaccountMapper.update(la, new QueryWrapper<Loginaccount>().eq("loginid", la.getLoginid()));
+
+            NotifyMI1.LoginAccChangeNtf.Builder builder = NotifyMI1.LoginAccChangeNtf.newBuilder();
+            Common.MessageHead.Builder hd = Common.MessageHead.newBuilder();
+            PublicMI1.NotifyHead.Builder nhd = PublicMI1.NotifyHead.newBuilder();
+            nhd.setNtfMode(0);
+            hd.setFunCode(FunCodeConstants.FunCode_Trade_LoginAccChangeNtf);
+            hd.setClientTime(System.currentTimeMillis());
+            builder.setNtfHeader(nhd);
+            builder.setHeader(hd);
+            las.forEach(p -> {
+                NotifyMI1.LoginAccChange.Builder lab = NotifyMI1.LoginAccChange.newBuilder();
+                lab.setChangeType(SysEnums.AccountOperateTypeEnum.DEL.getType());
+                lab.setLoginId(p.getLoginid());
+                builder.addLoginAccChange(lab);
+            });
+            byte[] body = ProtoHelper.getNTAS(builder.build().toByteArray(),
+                    FunCodeConstants.FunCode_Trade_LoginAccChangeNtf);
+            rabbitTemplate.send(SysConstants.RabbitNtfKey,
+                    new Message(body, new MessageProperties()));
+
+            log.info("用户注销发送登录账户变更通知:" + areaid.toString());
+        }
+
+        // 发送用户注销消息给中心\银行接口
+        List<Taaccount> tas = iTaaccountMapper.selectList(new QueryWrapper<Taaccount>()
+                .eq("userid", org.getUserid())
+                .eq("ismain", 1));
+        iSendMsgService.sendM2BUnregistCustomerInfo(tas);
+
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+    }
+
+    @Override
+    public AjaxResult recover(Long areaid, HttpServletRequest request) {
+        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
+        if (!iCommonService.checkUserAccountRole(systemmanager, areaid)) {
+            return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM003.getCode(), request.getHeader("Accept-Language"));
+        }
+        Useraccount org = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", areaid));
+        Userinfo ui = iUserinfoMapper.selectOne(new QueryWrapper<Userinfo>().eq("userid", areaid));
+        //校验
+        List<Userinfo> uiList = iUserinfoMapper.selectList(new QueryWrapper<Userinfo>()
+                .eq("userstatus", 1)
+                .ne("userid", ui.getUserid())
+                .and(a -> a.eq("cardnum", ui.getCardnum()).or().eq(StringUtils.isNotBlank(ui.getMobile()), "mobile", ui.getMobile()))
+        );
+        if (CollectionUtils.isNotEmpty(uiList)) {
+            for (int i = 0; i < uiList.size(); i++) {
+                if (uiList.get(i).getCardnum().equals(ui.getCardnum())) {
+                    return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_006.getCode(), request.getHeader("Accept-Language"));
+                }
+                //5 投资者
+                if (org.getUsertype() == 5 && uiList.get(i).getMobile().equals(ui.getMobile())) {
+                    return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_007.getCode(), request.getHeader("Accept-Language"));
+                }
+            }
+        }
+        if (org.getParentuserid() != 0) {
+            Useraccount p = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", org.getParentuserid()));
+            if (p.getAccountstatus() != 4) {
+                return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_008.getCode(), request.getHeader("Accept-Language"));
+            }
+        }
+        //所属会员是否有经纪角色
+        if (org.getUsertype() == 5) {
+            Arearole ar = iArearoleMapper.selectOne(new QueryWrapper<Arearole>()
+                    .eq("roletype", 7)
+                    .eq("userid", org.getMemberuserid()));
+            if (ar == null) {
+                return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_009.getCode(), request.getHeader("Accept-Language"));
+            }
+        }
+        // todo allocated != null && allocated == 1
+        org.setAccountstatus(4);
+        org.setModifierid(systemmanager.getAutoid());
+        org.setModifytime(new Date());
+        iUseraccountMapper.update(org, new QueryWrapper<Useraccount>().eq("userid", org.getUserid()));
+
+        ui.setUserstatus(1);
+        iUserinfoMapper.update(ui, new QueryWrapper<Userinfo>().eq("userid", ui.getUserid()));
+
+        //管理员账户
+        Systemmanager admin = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>()
+                .eq("areauserid", areaid)
+                .eq("isdefault", 1));
+        if (admin != null) {
+            admin.setManagerstatus(1);
+            iSystemmanagerMapper.updateById(admin);
+        }
+        //写入日志
+        if (org.getUsertype() == 2)
+            systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ, "恢复机构id=" + org.getUserid(), systemmanager, null, null, null);
+        else if (org.getUsertype() == 3 || org.getUsertype() == 4) {
+            String name = "";
+            if (org.getUsertype() == 3)
+                name = "子机构";
+            if (org.getUsertype() == 4)
+                name = "经纪人";
+            if (systemmanager.getReletype() == 1)
+                systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ, "恢复" + name + "id=" + org.getUserid(), systemmanager, null, null, null);
+            else
+                systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ_ZJG, "恢复" + name + "id=" + org.getUserid(), systemmanager, null, null, null);
+        } else if (org.getUsertype() == 5)
+            systemmanagerService.writeOperateLog(SysConstants.PART_INVESTOR_MANAGE, "恢复投资者id=" + org.getUserid(), systemmanager, null, null, null);
+
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public AjaxResult addsonorgan(OrganAddSonOrganParam param, HttpServletRequest request) {
+        //校验唯一性
+        List<Useraccount> c2 = iUseraccountMapper.selectList(new QueryWrapper<Useraccount>().eq("userid", createUserid(param.getParentuserid(), param.getUserid(), 4)));
+        if (CollectionUtils.isNotEmpty(c2)) {
+            return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_010.getCode(), request.getHeader("Accept-Language"));
+        }
+        // 机构开户证件号码是否唯一
+        String areacardflag = iCommonService.getSystemParam(Constants.REDIS_HEADER_SYSPARAM, Constants.SYSPARAM_CARD_NO);
+        //验证证件号码是否存在
+        Boolean checkFlag1 = iCommonService.checkOranCardNumOrMobile(1, EncryptionUtils.encryptByAES(param.getCardnum().trim()), null);
+        if (areacardflag != null && areacardflag.equals("1") && checkFlag1) {
+            return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_011.getCode(), request.getHeader("Accept-Language"));
+        }
+        List<WskhBlacklist> wskhBlacklists = iWskhBlacklistMapper.selectList(new QueryWrapper<WskhBlacklist>()
+                .eq("CARDTYPE", param.getCardtypeid())
+                .eq("CARDNUM", EncryptionUtils.encryptByAES(param.getCardnum().trim())));
+        if (!CollectionUtils.isEmpty(wskhBlacklists)) {
+            return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_012.getCode(), request.getHeader("Accept-Language"));
+        }
+        if (param.getUserinfotype() == 2) {
+            //机构类型为企业需 名称唯一
+            List<Userinfo> c3 = iUserinfoMapper.selectList(new QueryWrapper<Userinfo>()
+                    .eq("customername", param.getCustomername().trim())
+                    .eq("userinfotype", 2));
+            if (CollectionUtils.isNotEmpty(c3)) {
+                return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_013.getCode(), request.getHeader("Accept-Language"));
+            }
+        }
+        List<Systemmanager> list = iSystemmanagerMapper.selectList(new QueryWrapper<Systemmanager>().eq("logincode", param.getLogincode().trim()));
+        if (CollectionUtils.isNotEmpty(list)) {
+            return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_014.getCode(), request.getHeader("Accept-Language"));
+        }
+        try {
+            Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
+            if (param.getUsertype() == 3) {
+                addSonOrgan(param, systemmanager);
+            } else {
+                // todo 新增经纪人
+                // userAccountSercive.addBroker(param, rsp.getUser());
+            }
+        } catch (Exception e) {
+            log.info("新增失败,失败原因:" + e);
+            throw new GlobalException(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_015.getCode(), request.getHeader("Accept-Language"));
+        }
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public AjaxResult editsonorgan(OrganAddSonOrganParam param, HttpServletRequest request) {
+        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
+        Useraccount organ = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", param.getUserid()));
+
+        DraftUseraccountNew dua = new DraftUseraccountNew();
+        BeanUtils.copyProperties(organ, dua);
+
+        //校验
+        String card = param.getCardnum();
+        if (StringUtils.isNotBlank(card)) {
+            card = EncryptionUtils.encryptByAES(card);
+            List<Userinfo> uiList = iUserinfoMapper.selectList(new QueryWrapper<Userinfo>()
+                    .eq("usertype", 5)
+                    .eq("cardnum", card)
+                    .eq("userid", param.getUserid()));
+            if (CollectionUtils.isNotEmpty(uiList)) {
+                String sysparm = iCommonService.getSysparmById(Constants.SYSPARAM_CARD_NOTWO);
+                if (sysparm == null || "1".equals(sysparm)) {
+                    return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_011.getCode(), request.getHeader("Accept-Language"));
+                }
+            }
+        }
+        String mobile = param.getMobile();
+        if (StringUtils.isNotBlank(mobile)) {
+            mobile = EncryptionUtils.encryptByAES(param.getMobile());
+            List<Userinfo> uiList = iUserinfoMapper.selectList(new QueryWrapper<Userinfo>()
+                    .eq("usertype", 5)
+                    .eq("mobile", mobile)
+                    .eq("userid", param.getUserid()));
+            if (CollectionUtils.isNotEmpty(uiList)) {
+                return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_016.getCode(), request.getHeader("Accept-Language"));
+            }
+        }
+
+        dua.setAccountname(param.getAccountname());
+        dua.setModifierid(systemmanager.getAutoid());
+        dua.setModifytime(new Date());
+        dua.setModifystatus(param.getModifystatus());
+        if (param.getParentuserid() != null) {
+            dua.setParentuserid(param.getParentuserid());
+        }
+        //todo 子机构新增未引入 更新是否实名、newContent字段 -- dyp
+        //dua.setHasauth(param.getHasauth());
+        dua.setNewcontent(JsonUtils.object2Json(dua));
+        dua.setOldcontent(JsonUtils.object2Json(organ));
+        iDraftUseraccountNewMapper.insert(dua);
+
+        organ.setModifystatus(param.getModifystatus());
+        organ.setModifierid(systemmanager.getAutoid());
+        organ.setModifytime(new Date());
+        iUseraccountMapper.update(organ, new QueryWrapper<Useraccount>().eq("userid", organ.getUserid()));
+
+
+        Userinfo ui = iUserinfoMapper.selectOne(new QueryWrapper<Userinfo>().eq("userid", param.getUserid()));
+        DraftUserinfo dui = new DraftUserinfo();
+        BeanUtils.copyProperties(ui, dui);
+        dui.setAddress(param.getAddress());
+        dui.setBiznature(param.getBiznature());
+        dui.setCardbackphotourl(param.getCardbackphotourl());
+        dui.setCardfrontphotourl(param.getCardfrontphotourl());
+        dui.setCardnum(param.getCardnum());
+        dui.setCardtypeid(param.getCardtypeid());
+        dui.setCityid(param.getCityid());
+        dui.setCompany(param.getCompany());
+        if (StringUtils.isBlank(param.getCustomername())) {
+            //取useraccount里的accountname
+            dui.setCustomername(param.getAccountname());
+        } else {
+            dui.setCustomername(param.getCustomername());
+        }
+        dui.setDistrictid(param.getDistrictid());
+        dui.setEmail(param.getEmail());
+        dui.setMobile(param.getMobile());
+        dui.setModifierid(systemmanager.getAutoid());
+        dui.setModifiertime(new Date());
+        dui.setContactname(param.getContactname());
+        dui.setPostalcode(param.getPostalcode());
+        dui.setProvinceid(param.getProvinceid());
+        dui.setQq(param.getQq());
+        dui.setRemark(param.getRemark());
+        dui.setSex(param.getSex());
+        dui.setTelphone(param.getTelphone());
+        dui.setWechat(param.getWechat());
+        dui.setLegalpersonname(param.getLegalpersonname());
+        dui.setLegalcardbackphotourl(param.getLegalcardbackphotourl());
+        dui.setLegalcardfrontphotourl(param.getLegalcardfrontphotourl());
+        dui.setAttachment1(param.getAttachment1());
+        dui.setAttachment2(param.getAttachment2());
+        dui = (DraftUserinfo) SensitiveEncryptUtil.sensitiveEncrypt(dui, null);
+        iDraftUserinfoMapper.insert(dui);
+
+        //资金账户配置变更  配置业务
+        /*if (param.getConfig() != null && param.getConfig().getAccountid() != null) {
+            //子账户为  投资者机构所有  关联给投资者使用,,
+            //此处变更时,记为投资者变更  ,变更表userid填入投资者的userid
+            DraftTaAccountConfig config = new DraftTaAccountConfig();
+            config.setAccountid(param.getConfig().getAccountid());
+            config.setUserid(organ.getUserid());
+            config.setNewcontent(JSonHelp.object2Json(param.getConfig()));
+            commonDao.merge(config);
+        }*/
+        JSONObject jsonObj = JSONObject.parseObject(JSONObject.toJSONString(dua));
+        JSONObject jsonObjUi = JSONObject.parseObject(JSONObject.toJSONString(dui));
+        if (organ.getUsertype() == 3 || organ.getUsertype() == 4) {
+            if (systemmanager.getReletype() == 1) {
+                if (organ.getUsertype() == 3)
+                    systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ_ZJG, "修改子机构id=" + organ.getUserid() + "并提交审核", systemmanager, null, jsonObjUi.toString(), jsonObj.toString());
+                else
+                    systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ, "修改经纪人id=" + organ.getUserid() + "并提交审核", systemmanager, null, jsonObjUi.toString(), jsonObj.toString());
+            } else {
+                if (organ.getUsertype() == 3)
+                    systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ_ZJG, "修改子机构id=" + organ.getUserid() + "并提交审核", systemmanager, null, jsonObjUi.toString(), jsonObj.toString());
+                else
+                    systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ, "修改经纪人id=" + organ.getUserid() + "并提交审核", systemmanager, null, jsonObjUi.toString(), jsonObj.toString());
+            }
+        } else if (organ.getUsertype() == 5) {
+            systemmanagerService.writeOperateLog(SysConstants.PART_INVESTOR_MANAGE, "修改交易商id=" + organ.getUserid() + "并提交审核", systemmanager, null, jsonObjUi.toString(), jsonObj.toString());
+        }
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public AjaxResult edit(OrganAddSonOrganParam param, HttpServletRequest request) {
+        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
+        Useraccount organ = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", param.getUserid()));
+
+        //当为特许经销商时,因为新增特许经销商的时候,默认加了一个名称一样的报价商,现在修改特许经销商名称时,报价商名称也一起修改
+        if (organ.getUsertype() == 2) {
+            List<Arearole> ar = iArearoleMapper.selectList(new QueryWrapper<Arearole>()
+                    .eq("roletype", 13)
+                    .eq("userid", organ.getUserid()));
+            if (CollectionUtils.isNotEmpty(ar)) {
+                Quoter qt = iQuoterMapper.selectOne(new QueryWrapper<Quoter>()
+                        .eq("areauserid", organ.getUserid())
+                        .eq("quotername", organ.getAccountname()));
+                if (Objects.nonNull(qt)) {
+                    qt.setQuotername(param.getAccountname()); //修改为修改后的机构名称
+                    qt.setModifytime(new Date());
+                    qt.setModifierid(systemmanager.getAutoid());
+                    iQuoterMapper.updateById(qt);
+                }
+            }
+        }
+
+        organ.setAccountname(param.getAccountname());
+        organ.setModifierid(systemmanager.getAutoid());
+        organ.setModifytime(new Date());
+        if (param.getRefereeuserid() != null) {
+            organ.setRefereeuserid(param.getRefereeuserid());
+        }
+        iUseraccountMapper.update(organ, new QueryWrapper<Useraccount>().eq("userid", organ.getUserid()));
+
+        String sysparm = iCommonService.getSysparmById(Constants.SYSPARAM_CARD_NOTWO);
+
+        Userinfo ui = iUserinfoMapper.selectOne(new QueryWrapper<Userinfo>().eq("userid", param.getUserid()));
+        if (ui.getCardnum() != null && !ui.getCardnum().equals(EncryptionUtils.encryptByAES(param.getCardnum()))) {
+            Map<String, Object> map = new HashMap<String, Object>();
+            String card = param.getCardnum();
+            if (StringUtils.isNotBlank(card)) {
+                card = EncryptionUtils.encryptByAES(param.getCardnum());
+                List<Userinfo> uiList = iUserinfoMapper.selectList(new QueryWrapper<Userinfo>()
+                        .eq("cardnum", card)
+                        .eq("userid", param.getUserid()));
+                if (CollectionUtils.isNotEmpty(uiList)) {
+                    if ((sysparm == null) || ("1".equals(sysparm))) {
+                        return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_011.getCode(), request.getHeader("Accept-Language"));
+                    }
+                }
+
+
+            }
+        }
+        if (ui.getUserinfotype() == 2 && !ui.getCustomername().equals(param.getCustomername().trim())) {
+            //机构类型为企业需 名称唯一
+            List<Userinfo> uiList = iUserinfoMapper.selectList(new QueryWrapper<Userinfo>()
+                    .eq("customername", param.getCustomername().trim())
+                    .eq("userinfotype", 2));
+            if (CollectionUtils.isNotEmpty(uiList)) {
+                return AjaxResult.error(Constants.Error_Code_Design, MessageType.ORGAN_ERROR_CODE_017.getCode(), request.getHeader("Accept-Language"));
+            }
+        }
+        ui.setAddress(param.getAddress());
+        ui.setBiznature(param.getBiznature());
+        ui.setCardbackphotourl(param.getCardbackphotourl());
+        ui.setCardfrontphotourl(param.getCardfrontphotourl());
+        ui.setCardnum(param.getCardnum());
+        ui.setCardtypeid(param.getCardtypeid());
+        ui.setCityid(param.getCityid());
+        ui.setCompany(param.getCompany());
+        ui.setCustomername(param.getCustomername());
+        ui.setDistrictid(param.getDistrictid());
+        ui.setEmail(param.getEmail());
+        ui.setMobile(param.getMobile());
+        ui.setModifierid(systemmanager.getAutoid());
+        ui.setModifiertime(new Date());
+        ui.setContactname(param.getContactname());
+        ui.setPostalcode(param.getPostalcode());
+        ui.setProvinceid(param.getProvinceid());
+        ui.setQq(param.getQq());
+        ui.setRemark(param.getRemark());
+        ui.setSex(param.getSex());
+        ui.setTelphone(param.getTelphone());
+        ui.setLegalcardbackphotourl(param.getLegalcardbackphotourl());
+        ui.setLegalpersonname(param.getLegalpersonname());
+        ui.setLegalcardfrontphotourl(param.getLegalcardfrontphotourl());
+        ui.setWechat(param.getWechat());
+        ui.setAttachment1(param.getAttachment1());
+        ui.setAttachment2(param.getAttachment2());
+
+        ui = (Userinfo) SensitiveEncryptUtil.sensitiveEncrypt(ui, null);
+        iUserinfoMapper.update(ui, new QueryWrapper<Userinfo>().eq("userid", ui.getUserid()));
+
+        if (organ.getUsertype().intValue() != 4) {
+            Systemmanager admin = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>()
+                    .eq("logincode", param.getLogincode()));
+            if (admin != null && !admin.getUsername().equals(param.getUsername())) {
+                admin.setUsername(param.getUsername());
+                iSystemmanagerMapper.updateById(admin);
+            }
+        }
+
+        if (param.getUsertype() == 2 || param.getUsertype() == 3) {
+            try {
+                Userinfo current = iUserinfoMapper.selectOne(new QueryWrapper<Userinfo>().eq("userid", param.getUserid()));
+                List<Taaccount> list = iTaaccountMapper.selectList(new QueryWrapper<Taaccount>()
+                        .eq("userid", current.getUserid())
+                        .eq("ismain", 1));
+                if (CollectionUtils.isNotEmpty(list)) {
+                    list.forEach(p -> {
+                        iSendMsgService.sendCustomerInfo(current, p.getAccountid(), "2", 3);
+                    });
+                }
+            } catch (Exception e) {
+                log.error("保存子机构修改信息发送消息失败,失败原因:" + e);
+            }
+        }
+
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+    }
+
+    public void addSonOrgan(OrganAddSonOrganParam param, Systemmanager systemmanager) {
+        String lPwd = iCommonService.getSystemParam(Constants.REDIS_HEADER_SYSPARAM, SysConstants.SYSPARAM_CODE_DEFAULT_PWD);
+        Useraccount organ = new Useraccount();
+        String userid = createUserid(param.getParentuserid(), param.getUserid(), 4);
+        organ.setUserid(Long.valueOf(userid));
+        organ.setRefernum(generateReferNum());
+        String sysparm = iCommonService.getSysparmById("063");
+        Useraccount parent = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", param.getParentuserid()));
+        organ.setUsertype(3);
+
+        if (sysparm == null) {
+            organ.setAccountstatus(4);
+        } else if (sysparm.equals("1")) {
+            organ.setAccountstatus(2);
+        } else {
+            organ.setAccountstatus(4);
+        }
+        organ.setCreatetradedate(iMarketrunMapper.selectOne(new QueryWrapper<Marketrun>().eq("marketid", 0L)).getTradedate());
+        organ.setParentuserid(param.getParentuserid());
+        organ.setMemberuserid(parent.getMemberuserid());
+        organ.setCreatorid(systemmanager.getAutoid());
+        organ.setCreatetime(new Date());
+        organ.setModifierid(systemmanager.getAutoid());
+        organ.setModifytime(new Date());
+        organ.setAccountname(param.getAccountname());
+        organ.setSubarealevelpath(parent.getSubarealevelpath() + organ.getUserid() + ",");
+        iUseraccountMapper.insert(organ);
+
+        Userinfo ui = new Userinfo();
+        ui.setCustomername(organ.getAccountname());
+        ui.setUsertype(3);
+        ui.setUserstatus(1);
+        ui.setOpenmode(1);
+        ui.setCreatetime(new Date());
+        ui.setCreatorid(systemmanager.getAutoid());
+        ui.setUserid(organ.getUserid());
+        ui.setUserinfotype(param.getUserinfotype());
+        ui.setCustomername(param.getCustomername());
+        ui.setCompany(param.getCompany());
+        ui.setBiznature(param.getBiznature());
+        ui.setCardtypeid(param.getCardtypeid());
+        ui.setCardnum(param.getCardnum());
+        ui.setCardfrontphotourl(param.getCardfrontphotourl());
+        ui.setCardbackphotourl(param.getCardbackphotourl());
+        ui.setLegalpersonname(param.getLegalpersonname());
+        ui.setLegalcardfrontphotourl(param.getLegalcardfrontphotourl());
+        ui.setLegalcardbackphotourl(param.getLegalcardbackphotourl());
+        ui.setContactname(param.getContactname());
+        ui.setSex(param.getSex());
+        ui.setMobile(param.getMobile());
+        ui.setTelphone(param.getTelphone());
+        ui.setProvinceid(param.getProvinceid());
+        ui.setCityid(param.getCityid());
+        ui.setDistrictid(param.getDistrictid());
+        ui.setAddress(param.getAddress());
+        ui.setPostalcode(param.getPostalcode());
+        ui.setEmail(param.getEmail());
+        ui.setQq(EncryptionUtils.encryptByAES(param.getQq()));
+        ui.setWechat(param.getWechat());
+        ui.setRemark(param.getRemark());
+        ui.setAttachment1(param.getAttachment1());
+        ui.setAttachment2(param.getAttachment2());
+        ui = (Userinfo) SensitiveEncryptUtil.sensitiveEncrypt(ui, null);
+        iUserinfoMapper.insert(ui);
+
+        //管理员账户
+        Systemmanager us = new Systemmanager();
+        us.setLogincode(param.getLogincode());
+        us.setAreauserid(organ.getUserid());
+        us.setUsername(StringUtils.isNotBlank(param.getUsername()) ? param.getUsername() : organ.getAccountname());
+        us.setReletype(3);
+        us.setManagerstatus(1);
+        us.setLoginfailnum(0);
+        us.setLoginstatus(1);
+        us.setIsdefault(1);
+        us.setUploginid(systemmanager.getAutoid());
+        us.setModifytime(new Date());
+        us.setPassword(EncryptionUtils.encryptSHA(us.getLogincode() + lPwd));
+        us.setPwdexpdate(new Date());
+        us.setManagertype(1);
+        iSystemmanagerMapper.insert(us);
+
+        Object l = redisServiceUtil.getCacheMapValue(Constants.REDIS_HEADER_SYSPARAM, "002");
+        if (l == null || !"2".equals(l.toString())) {
+            Roleuser ur = new Roleuser();
+            ur.setRoleid(1L);
+            ur.setManagerid(us.getAutoid());
+            ur.setRoletype(3);
+            iRoleuserMapper.insert(ur);
+        }
+        //子机构
+        if (organ.getUsertype() == 3) {
+            Roleuser ur = new Roleuser();
+            ur.setRoleid(12L);
+            ur.setManagerid(us.getAutoid());
+            ur.setRoletype(3);
+            iRoleuserMapper.insert(ur);
+        }
+
+        //资金账户  多币种----
+        List<Enumdicitem> li = iEnumdicitemMapper.selectList(new QueryWrapper<Enumdicitem>()
+                .eq("enumdiccode", "currency")
+                .eq("enumitemstatus", 1));
+
+        BankSystemconfig config = iBankSystemconfigMapper.selectOne(new QueryWrapper<BankSystemconfig>().eq("CONFIGID", SysConstants.BANK_CONFIG_ACTIVATION));
+        lPwd = EncryptionUtils.encryptSHA(lPwd);
+        List<Taaccount> taaccounts = new ArrayList<>();
+        for (int i = 0; i < li.size(); i++) {
+            String manageid = redisServiceUtil.getCacheMapValue(Constants.REDIS_HEADER_SYSPARAM, "001");
+            Long accountno = Long.valueOf(manageid + CommonUtil.addZero(String.valueOf(idGeneratorUtils.getGeneratorID(Taaccount.class)), 9));
+            Taaccount ac = new Taaccount();
+            ac.setAccountid(accountno);
+            ac.setUserid(organ.getUserid());
+            ac.setPassword(lPwd);
+            ac.setCurrencyid(li.get(i).getEnumitemname());
+            //资金账号是否需要激活
+            if (config != null && config.getValidstatus() == 1 && config.getConfigvalue().equals("1") && ac.getIsmain() == 1) {
+                ac.setTradestatus(SysEnums.TradeStatusEnum.TOBEACTIVATE.getType());
+            } else {
+                ac.setTradestatuschangetime(new Date()); //激活时间
+            }
+            if (1 == li.get(i).getEnumitemname()) {
+                organ.setReckonaccountid(accountno);
+            }
+            ac.setRelateduserid(organ.getUserid());
+            ac.setRelatedaccountstatus(1);
+            taaccounts.add(ac);
+            iTaaccountMapper.insert(ac);
+
+            Userreckonaccount ura = new Userreckonaccount();
+            ura.setCurrencyid(ac.getCurrencyid());
+            ura.setUserid(ac.getUserid());
+            ura.setReckonaccountid(ac.getAccountid());
+            ura.setUpdatetime(new Date());
+            ura.setDefaultaccounttype(1);
+            iUserreckonaccountMapper.insert(ura);
+        }
+
+        Integer reletype = systemmanager.getReletype();
+        String menucode = "";
+        if (reletype.equals(1))
+            menucode = "M00400220000";
+        else
+            menucode = SysConstants.PART_CODE_ORGZ_ZJG;
+        JSONObject jsonObj = JSONObject.parseObject(JSONObject.toJSONString(param));
+        if (organ.getUsertype() == 2) {
+            systemmanagerService.writeOperateLog(SysConstants.PART_CODE_ORGZ, "新增机构id=" + organ.getUserid(), systemmanager, null, "{}", jsonObj.toString());
+        } else if (organ.getUsertype() == 3) {
+            systemmanagerService.writeOperateLog(menucode, "新增子机构id=" + organ.getUserid(), systemmanager, null, "{\"userid\":" + organ.getUserid() + "}", jsonObj.toString());
+        } else if (organ.getUsertype() == 4) {
+            systemmanagerService.writeOperateLog(menucode, "新增经纪人id=" + organ.getUserid(), systemmanager, null, "{\"userid\":" + organ.getUserid() + "}", jsonObj.toString());
+        } else if (organ.getUsertype() == 5) {
+            systemmanagerService.writeOperateLog(SysConstants.PART_INVESTOR_OPEN, "新增投资者id=" + organ.getUserid(), systemmanager, null, "{\"userid\":" + organ.getUserid() + "}", jsonObj.toString());
+        }
+
+        try {
+            for (int i = 0; i < taaccounts.size(); i++) {
+                iSendMsgService.sendCustomerInfo(ui, taaccounts.get(i).getAccountid(), "1", 3);
+                iSendMsgService.sendUserChangeMsg(taaccounts.get(i).getAccountid(), taaccounts.get(i).getUserid(),
+                        SysEnums.UserOperateTypeEnum.ADD.getType(),
+                        SysEnums.AccountOperateTypeEnum.ADD.getType(),
+                        SysEnums.NotifyModeEnum.UNICAST.getType());
+            }
+        } catch (Exception e) {
+            log.error("新增子机构发送消息失败;失败原因:" + e);
+        }
+    }
+
+    private DetailAfterResult getModifyInvestorDetail(Long userid) {
+        DetailAfterResult detailResult = new DetailAfterResult();
+        UserAccountDetailVo userAccountDetailVo = iUseraccountMapper.selectNewDetail(userid);
+        detailResult.setUserAccountDetailVo(userAccountDetailVo);
+        UserinfoDetailVo userinfoDetailVo = iUserinfoMapper.getUserinfoNewDetail(userid);
+        detailResult.setUserinfoDetailVo(userinfoDetailVo);
+        return detailResult;
+    }
+
+    private DetailBeforeResult getUserAccountDetail(Long userid, OrganSonDetailResult result) {
+        DetailBeforeResult detailResult = new DetailBeforeResult();
+        UserAccountDetailVo userAccountDetailVo = iUseraccountMapper.selectDetail(userid);
+        detailResult.setUserAccountDetailVo(userAccountDetailVo);
+        UserinfoDetailVo userinfoDetailVo = iUserinfoMapper.getUserinfoDetail(userid);
+        detailResult.setUserinfoDetailVo(userinfoDetailVo);
+        //开户地址
+        if (userAccountDetailVo.getUsertype() != 5) {
+            //如果是经纪会员、会员子机构、经纪人,则查询网上开户地址
+            WskhOpenaccountconfig config = iWskhOpenaccountconfigMapper.selectOne(new QueryWrapper<WskhOpenaccountconfig>()
+                    .eq("configtype", 59));
+            if (null != config && null != config.getConfigvalue()) {
+                result.setOpenUrl(config.getConfigvalue());
+            }
+            //移动端开户地址
+            WskhOpenaccountconfig config1 = iWskhOpenaccountconfigMapper.selectOne(new QueryWrapper<WskhOpenaccountconfig>()
+                    .eq("configtype", 59));
+            if (null != config1 && null != config1.getConfigvalue()) {
+                result.setMobileUrl(config.getConfigvalue());
+            }
+            //微信开户地址
+            WskhOpenaccountconfig config2 = iWskhOpenaccountconfigMapper.selectOne(new QueryWrapper<WskhOpenaccountconfig>()
+                    .eq("configtype", 59));
+            if (null != config2 && null != config2.getConfigvalue()) {
+                result.setWeixinUrl(config.getConfigvalue());
+            }
+            //三方开户地址
+            WskhOpenaccountconfig config3 = iWskhOpenaccountconfigMapper.selectOne(new QueryWrapper<WskhOpenaccountconfig>()
+                    .eq("configtype", 59));
+            if (null != config3 && null != config3.getConfigvalue()) {
+                result.setSanfangUrl(config.getConfigvalue());
+            }
+        }
+        return detailResult;
+    }
+
+    private String createUserid(Long pid, Long userid, Integer len) {
+        String memid = pid.toString().substring(0, 4);
+        return memid + CommonUtil.addZero(userid.toString(), len);
+    }
+
+    private String generateReferNum() {
+        //系统参数996 为2时,推荐码只有数字;
+        String sysparm = iCommonService.getSysparmById("996");
+        if (sysparm != null && !sysparm.equals("2")) {
+            return CommonUtil.getUuid2();
+        }
+        return CommonUtil.getUuid();
+    }
+}

+ 22 - 4
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/QueryServiceImpl.java

@@ -32,10 +32,7 @@ import com.muchinfo.mtp3pojos.vo.query.goodstrade.GoodsTradeQueryParam;
 import com.muchinfo.mtp3pojos.vo.query.goodstrade.GoodsTradeQueryResult;
 import com.muchinfo.mtp3pojos.vo.query.investorsum.InvestorSumQueryParam;
 import com.muchinfo.mtp3pojos.vo.query.investorsum.InvestorSumQueryResult;
-import com.muchinfo.mtp3pojos.vo.query.other.EsignrecordQueryParam;
-import com.muchinfo.mtp3pojos.vo.query.other.EsignrecordQueryResult;
-import com.muchinfo.mtp3pojos.vo.query.other.InvestorQueryParam;
-import com.muchinfo.mtp3pojos.vo.query.other.InvestorQueryResult;
+import com.muchinfo.mtp3pojos.vo.query.other.*;
 import com.muchinfo.mtp3pojos.vo.query.position.*;
 import com.muchinfo.mtp3pojos.vo.query.tradesum.TradeSumQueryParam;
 import com.muchinfo.mtp3pojos.vo.query.tradesum.TradeSumQueryResult;
@@ -1546,6 +1543,27 @@ public class QueryServiceImpl implements IQueryService {
         return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
     }
 
+    @Override
+    public PageResult<HoldtransferQueryResult> holdtransferquery(HoldtransferQueryParam param, HttpServletRequest request) {
+        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
+        //协议转让 平台、运营机构有权限,运营机构只查有权限的商品
+        if (!systemmanager.getReletype().equals(1)){
+            // 非平台
+            param.setYyareauserid(systemmanager.getAreauserid());
+        }
+        PageResult<HoldtransferQueryResult> pageResult = new PageResult<>();
+        IPage<HoldtransferQueryResult> page = new Page<>(param.getPageNum(), param.getPageSize());
+        IPage<HoldtransferQueryResult> resultIPage = iTradeOrderdetailMapper.holdtransferquery(page, param);
+        pageResult.setCode(Constants.Success_Code_Design);
+        pageResult.setMessage(AjaxResult.dealMsg(MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language")));
+        pageResult.setPages(resultIPage.getPages());
+        pageResult.setCurrent(resultIPage.getCurrent());
+        pageResult.setTotal(resultIPage.getTotal());
+        pageResult.setPageSize(resultIPage.getSize());
+        pageResult.setData(resultIPage.getRecords());
+        return pageResult;
+    }
+
     private int failDeliveryOffline(String deliveryorderid, String auditremark) {
         Marketrun mr = iMarketrunMapper.selectOne(new QueryWrapper<Marketrun>().eq("marketid", 0L));
         if (mr != null && deliveryorderid != null) {

+ 1 - 1
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/ReportFormServiceImpl.java

@@ -560,7 +560,7 @@ public class ReportFormServiceImpl implements IReportFormService {
         if (systemmanager.getReletype() != 1) {
             param.setAreauserid(systemmanager.getAreauserid());
         }
-        List<GoodsReportResult> list = new ArrayList<>();
+        List<GoodsReportResult> list;
         if (param.getCycletype() == 0) {
             list = iGoodsMapper.queryByDate(param);
         } else {

+ 8 - 6
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/UseraccountServiceImpl.java

@@ -1198,17 +1198,19 @@ public class UseraccountServiceImpl extends ServiceImpl<IUseraccountMapper, User
     public AjaxResult<InvestorInitPerAddResult> initGoodsAndBZ(Long usergroupid, Long marketid, Long goodsid, HttpServletRequest request) {
         Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
         InvestorInitPerAddResult result = new InvestorInitPerAddResult();
+        Long memberuserid = null;
+        if (systemmanager.getReletype() != 1) {
+            memberuserid = systemmanager.getAreauserid();
+        }
         if (usergroupid == null) {
-            QueryWrapper<Usergroup> wrapper = new QueryWrapper<>();
-            wrapper.eq("areauserid", systemmanager.getAreauserid());
-            result.setUserGroups(iUsergroupMapper.selectList(wrapper));
-            result.setMarkets(iMarketMapper.getNoTradeConfigMarkets(systemmanager.getAreauserid(), usergroupid));
+            result.setUserGroups(iMarketMapper.getNoTradeConfigGroups(memberuserid));
+            result.setMarkets(iMarketMapper.getNoTradeConfigMarkets(memberuserid, usergroupid));
         } else {
             if (marketid == null) {
-                result.setMarkets(iMarketMapper.getNoTradeConfigMarkets(systemmanager.getAreauserid(), usergroupid));
+                result.setMarkets(iMarketMapper.getNoTradeConfigMarkets(memberuserid, usergroupid));
             } else {
                 if (goodsid == null) {
-                    result.setGoods(iGoodsMapper.getNoTradeConfigGoods(systemmanager.getAreauserid(), usergroupid, marketid));
+                    result.setGoods(iGoodsMapper.getNoTradeConfigGoods(memberuserid, usergroupid, marketid));
                 } else {
                     result.setFeesConfigVos(getTradeFeeDescriptions(marketid, goodsid, systemmanager.getAreauserid()));
                     result.setRulesConfigVos(getTradeRuleDescriptions(marketid, goodsid, systemmanager.getAreauserid()));

+ 70 - 9
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/WarehouseServiceImpl.java

@@ -10,6 +10,7 @@ import com.muchinfo.mtp.proto.Common;
 import com.muchinfo.mtp.proto.WarehouseReceiptMI1;
 import com.muchinfo.mtp3century.service.ICommonService;
 import com.muchinfo.mtp3century.service.IWarehouseService;
+import com.muchinfo.mtp3century.utils.RedisServiceUtil;
 import com.muchinfo.mtp3common.enumtype.Constants;
 import com.muchinfo.mtp3common.enumtype.FunCodeConstants;
 import com.muchinfo.mtp3common.enumtype.MessageType;
@@ -77,6 +78,11 @@ public class WarehouseServiceImpl implements IWarehouseService {
     private RabbitTemplate rabbitTemplate;
     @Resource
     private IUseraccountMapper iUseraccountMapper;
+    @Resource
+    private RedisServiceUtil redisServiceUtil;
+    @Resource
+    private IThjSpotgoodsdepositMapper iThjSpotgoodsdepositMapper;
+
     @Override
     public PageResult<WarehouseQueryResult> query(WarehouseQueryParam param, HttpServletRequest request) {
         Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
@@ -551,20 +557,20 @@ public class WarehouseServiceImpl implements IWarehouseService {
         Warehouseinfo current = iWarehouseinfoMapper.selectOne(new QueryWrapper<Warehouseinfo>().eq("autoid", warehouseid));
         WarehouseReceiptDetailResult result = new WarehouseReceiptDetailResult();
         BeanUtils.copyProperties(current, result);
-        if(current.getAreauserid() != null){
-            Useraccount ognz = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid",current.getAreauserid()));
-            if(ognz==null){
+        if (current.getAreauserid() != null) {
+            Useraccount ognz = iUseraccountMapper.selectOne(new QueryWrapper<Useraccount>().eq("userid", current.getAreauserid()));
+            if (ognz == null) {
                 return AjaxResult.error(Constants.Error_Code_Design, MessageType.WAREHOUSE_ERROR_CODE_04.getCode(), request.getHeader("Accept-Language"));
             }
             result.setAreaname(ognz.getAccountname());
         }
-        if(current.getDistrictid() != null){
-            Division area = iDivisionMapper.selectOne(new QueryWrapper<Division>().eq("autoid",current.getDistrictid()));
-            result.setDetailaddress(area.getPathname() +" "+ current.getAddress());
-        }else {
+        if (current.getDistrictid() != null) {
+            Division area = iDivisionMapper.selectOne(new QueryWrapper<Division>().eq("autoid", current.getDistrictid()));
+            result.setDetailaddress(area.getPathname() + " " + current.getAddress());
+        } else {
             result.setDetailaddress(current.getAddress());
         }
-        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"),result);
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
     }
 
     @Override
@@ -586,7 +592,62 @@ public class WarehouseServiceImpl implements IWarehouseService {
         Warehouseinfo warehoueInfo = iWarehouseinfoMapper.selectOne(new QueryWrapper<Warehouseinfo>().eq("autoid", autoid));
         warehoueInfo.setWarehousestatus(2);
         iWarehouseinfoMapper.updateById(warehoueInfo);
-        return null;
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+    }
+
+    @Override
+    public PageResult<WarehouseVarietyResult> varietquery(WarehouseVarietyParam param, HttpServletRequest request) {
+        param.setIsvalid(1);
+        IPage<WarehouseVarietyResult> page = new Page<>(param.getPageNum(), param.getPageSize());
+        IPage<WarehouseVarietyResult> userAccountVos = iWroutinapplyMapper.queryWRStandardSet(page, param);
+        PageResult<WarehouseVarietyResult> pageResult = new PageResult<>();
+        pageResult.setCode(Constants.Success_Code_Design);
+        pageResult.setMessage(AjaxResult.dealMsg(MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language")));
+        pageResult.setPages(userAccountVos.getPages());
+        pageResult.setCurrent(userAccountVos.getCurrent());
+        pageResult.setTotal(userAccountVos.getTotal());
+        pageResult.setPageSize(userAccountVos.getSize());
+        pageResult.setData(userAccountVos.getRecords());
+        return pageResult;
+    }
+
+    @Override
+    public AjaxResult<WarehouseVarietyDetailResult> varietdetail(Long wrstandardid, HttpServletRequest request) {
+        WarehouseVarietyDetailResult result = new WarehouseVarietyDetailResult();
+        WarehouseVarietyParam param = new WarehouseVarietyParam();
+        param.setWrstandardid(wrstandardid);
+        List<WarehouseVarietyResult> resultList = iWroutinapplyMapper.queryWRStandardSet(param);
+        BeanUtils.copyProperties(resultList.get(0), result);
+
+        String sys = iCommonService.getSysparmById(Constants.SYSPARAM_ID_IMG);
+        if (StringUtils.isNotBlank(sys)) {
+            result.setIsimg(Integer.valueOf(sys));
+        } else {
+            result.setIsimg(0);
+        }
+
+        Object isShowEntry = redisServiceUtil.getCacheMapValue(Constants.REDIS_HEADER_SYSPARAM, "977");
+        result.setIsShowEntry((Integer) isShowEntry);
+
+        List<Dgfactoryitem> listDGFactoryItem = iWroutinapplyMapper.queryDGFactoryItemList(resultList.get(0).getWrstandardid(), resultList.get(0).getDeliverygoodsid());
+        result.setDgFactoryItems(listDGFactoryItem);
+
+        // 是否铁合金项目(现货商品用)
+        String isShowTHJ = iCommonService.getSysparmById("994");
+        if (isShowTHJ != null && isShowTHJ.equals("1")) {
+            result.setIsShowTHJ(Integer.valueOf(isShowTHJ));
+            //获取provideruserid机构名称
+            if (resultList.get(0).getProvideruserid() != null) {
+                List<Useraccount> userAccountList = iUseraccountMapper.queryUserAccount(resultList.get(0).getProvideruserid());
+                if (CollectionUtils.isNotEmpty(userAccountList)) {
+                    result.setProvidername(userAccountList.get(0).getAccountname());
+                }
+            }
+            List<ThjSpotgoodsdeposit> thjspotgoodsdeposits = iThjSpotgoodsdepositMapper.selectList(new QueryWrapper<ThjSpotgoodsdeposit>().eq("wrstandardid", resultList.get(0).getWrstandardid()));
+            result.setThjspotgoodsdeposits(thjspotgoodsdeposits);
+        }
+
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"),result);
     }
 
     private void sendWRFactorTypeNameUpdateReqMsg(Warehouseinfo wh, Systemmanager systemmanager) {

+ 12 - 3
mtp3-century/src/main/resources/mapper/GoodsMapper.xml

@@ -68,7 +68,7 @@
         GOODSID, GOODSCODE, GOODSNAME, MARKETID, GOODSGROUPID, GOODSSTATUS, CURRENCYID, GOODUNITID, AGREEUNIT, DECIMALPLACE, LISTINGDATE, LASTTRADEDATE, DELISTINGDATE, DELIVERYFLAG, HASQUOTER, HQPROTECTTIME, QUOTESHOWTYPE, QUOTESHOWTYPEINTERVAL, MODIFYSTATUS, GOODSTRADETYPE, CREATORID, CREATETIME, AUDITACCOUNTID, AUDITTIME, MODIFYTIME, MODIFIERID, CANCELACCOUNTID, REMARK, CANCELTIME, DELISTINGMODE, FORCECLOSEMODE, FORCECLOSEVALUE, CUTMODE, QUOTEMINUNIT, ISBUYLIMITED, INNERDEALMODE, OUTERDEALMODE, CLOSEPRICEMODE, CLOSEPRICEPARAM, QTYDECIMALPLACE, GOODSCURRENCYID, GOODSQUOTETYPE, QUOTEGEAR, OUTGOODSCODE, ISVISIBLE, AREAUSERID, PICTUREURL, REFGOODSID, SWAPDAYS, REFGOODSCODE, PROVIDERUSERID, PROVIDERACCOUNTID, TRANSFERDEPOSITRATIO, PRESALEPRICE, PRESALEFLAG, NEWTRANSFERDEPOSITRATIO, MARGINALGORITHM
     </sql>
     <select id="queryGoodsSelect" resultType="com.muchinfo.mtp3pojos.vo.common.GoodsSelectResult">
-        select g.goodsid as goodsId, g.goodscode as goodsCode, g.goodsname as goodsName
+        select g.goodsid as goodsId, g.goodscode as goodsCode, g.goodsname as goodsName , g.goodunitid
         from goods g
         left join market m on g.marketid = m.marketid
         <where>
@@ -79,6 +79,10 @@
                     ${item}
                 </foreach>
             </if>
+            <if test="vo.areauserid != null and vo.areauserid != 0 and vo.areauserid != 1">
+                and g.marketid in (select marketid from AREAROLEMARKET where areauserid = #{vo.areauserid,jdbcType=DECIMAL}
+                )
+            </if>
             <if test="vo.searchCode != null and vo.searchCode != '' ">
                 and g.goodscode like
                 '%'||#{vo.searchCode}||'%'
@@ -89,6 +93,9 @@
             <if test="vo.deliveryflag != null">
                 and g.deliveryflag = #{vo.deliveryflag}
             </if>
+            <if test="vo.yyareauserid != null and vo.yyareauserid !=''">
+                and g.goodsid in(select t.goodsid from AreaGoodsConfig t where t.userid= #{vo.yyareauserid})
+            </if>
             <if test="tradeModeSplit!=null and tradeModeSplit.length>0">
                 <foreach collection="tradeModeSplit" item="item" open=" and m.trademode in (" close=")"
                          separator=",">
@@ -118,8 +125,9 @@
         g.goodsname,
         t.marketid,
         m.marketname,
-        nvl(t.buyinterest, 0) + nvl(t.sellinterest, 0) totalinterest,
+        nvl(t.buyinterest, 0) + nvl(t.sellinterest, 0) as totalinterest,
         (nvl(t.buyorderqty,0) + nvl(t.sellorderqty,0)) as totalorderqty,
+        (nvl(t.curbuyholdqty,0) + nvl(t.cursellholdqty,0)) as totalholdqty,
         t.tradeqty,
         t.curbuyholdqty,t.oribuyholdqty,t.cursellholdqty,t.orisellholdqty,
         t.tradelot,
@@ -158,8 +166,9 @@
         g.goodsname,
         t.marketid,
         m.marketname,
-        nvl(t.buyinterest, 0) + nvl(t.sellinterest, 0) totalinterest,
+        nvl(t.buyinterest, 0) + nvl(t.sellinterest, 0) as totalinterest,
         (nvl(t.buyorderqty,0) + nvl(t.sellorderqty,0)) as totalorderqty,
+        (nvl(t.curbuyholdqty,0) + nvl(t.cursellholdqty,0)) as totalholdqty,
         t.tradeqty,
         t.curbuyholdqty,t.oribuyholdqty,t.cursellholdqty,t.orisellholdqty,
         t.tradelot,

+ 15 - 0
mtp3-century/src/main/resources/mapper/MarketMapper.xml

@@ -82,5 +82,20 @@
         and t.trademode not in(40,41)
         and t.marketid in ( select marketid from arearolemarket a
         where <if test="areauserid != null">a.areauserid = #{areauserid} and</if>  a.roletype = 7)
+        <if test="usergroupid != null">
+            and not exists ( select 1 from usergrouptradeconfig u
+            where <if test="areauserid != null">u.memberuserid=#{areauserid} and</if> u.marketid = t.marketid
+            and u.usergroupid = #{usergroupid})
+        </if>
+    </select>
+
+    <select id="getNoTradeConfigGroups" resultType="com.muchinfo.mtp3pojos.entity.Usergroup">
+        select t.* from usergroup t
+        where
+        <if test="areauserid != null">t.areauserid = #{areauserid} and</if>
+        not exists (select 1 from usergrouptradeconfig u
+        where
+        <if test="areauserid != null">u.memberuserid=#{areauserid} and</if>
+        t.autoid = u.usergroupid)
     </select>
 </mapper>

+ 41 - 0
mtp3-century/src/main/resources/mapper/TradeOrderdetailMapper.xml

@@ -2358,4 +2358,45 @@
         </choose>
     </select>
 
+    <select id="holdtransferquery" resultType="com.muchinfo.mtp3pojos.vo.query.other.HoldtransferQueryResult">
+        select t.*, g.goodscode, g.goodsname, g.goodscode || '/' || g.goodsname "goodsfullname",
+        m.marketname, m.marketid || '/' || m.marketname "marketfullname",
+        <choose>
+            <when test="vo.ishis!=null and vo.ishis==1">
+                1 ishis
+                from his_trade_holdtransferapply t
+            </when>
+            <otherwise>
+                0 ishis
+                from trade_holdtransferapply t
+            </otherwise>
+        </choose>
+        left join goods g on t.goodsid = g.goodsid
+        left join market m on t.marketid = m.marketid
+        <where>
+            <if test="vo.applystatus != null">
+                and t.applystatus=#{vo.applystatus}
+            </if>
+            <if test="vo.goodsid != null">
+                and t.goodsid=#{vo.goodsid}
+            </if>
+            <if test="vo.outaccountid != null">
+                and t.outaccountid=#{vo.outaccountid}
+            </if>
+            <if test="vo.inaccountid != null">
+                and t.inaccountid=#{vo.inaccountid}
+            </if>
+            <if test="vo.applydate != null and vo.applydate!=''">
+                and (t.applytime between to_date(#{vo.applydate}||' 00:00:00','yyyy-MM-dd hh24:mi:ss')
+                and to_date(#{vo.applydate}||' 23:59:59','yyyy-MM-dd hh24:mi:ss'))
+            </if>
+            <if test="vo.transfertypestr != null and vo.transfertypestr!=''">
+                and t.transfertype in (#{vo.transfertypestr})
+            </if>
+            <if test="vo.yyareauserid != null and vo.yyareauserid !=''">
+                and t.goodsid in (select t.goodsid from areagoodsconfig t where t.userid= #{vo.yyareauserid})
+            </if>
+        </where>
+        order by t.applytime desc
+    </select>
 </mapper>

+ 16 - 5
mtp3-century/src/main/resources/mapper/UseraccountMapper.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.muchinfo.mtp3interface.mapper.IUseraccountMapper">
 
-    <resultMap id="PageResultMap" type="com.muchinfo.mtp3pojos.vo.organ.UserAccountVo">
+    <resultMap id="PageResultMap" type="com.muchinfo.mtp3pojos.vo.organ.UserAccountRspResult">
         <id column="USERID" property="userid" />
         <result column="USERTYPE" property="usertype" />
         <result column="MODIFYSTATUS" property="modifystatus" />
@@ -230,15 +230,15 @@
             <if test="vo.roles != null and vo.roles !='' ">
                 and o.userid in (select userid from arearole where roletype in (${vo.roles}))
             </if>
-            <if test="vo.mtparentuserid != null">
-                and (o.parentuserid = #{vo.mtparentuserid} or o.parentuserid = 0)
-            </if>
             <if test="vo.starttime != null and vo.starttime !='' ">
                 <![CDATA[and o.createtime >= to_date(#{vo.starttime}||' 00:00:00', 'yyyy-mm-dd hh24:mi:ss')]]>
             </if>
             <if test="vo.endtime != null and vo.endtime !='' ">
                 <![CDATA[and o.createtime <= to_date(#{vo.endtime}||' 23:59:59', 'yyyy-mm-dd hh24:mi:ss')]]>
             </if>
+            <if test="vo.markets != null and vo.markets !='' ">
+                and o.userid in (select t.areauserid from arearolemarket t where t.marketid in (${vo.markets}))
+            </if>
         </where>
         order by o.accountstatus,o.userid
     </select>
@@ -279,6 +279,9 @@
             <if test="vo.memberuserid != null">
                 and o.memberuserid = #{vo.memberuserid}
             </if>
+            <if test="vo.markets != null and vo.markets !='' ">
+                and o.memberuserid in (select t.areauserid from arearolemarket t where t.marketid in (${vo.markets}))
+            </if>
         </where>
         order by o.accountstatus,o.userid
     </select>
@@ -533,7 +536,7 @@
         order by o.modifytime desc,o.accountstatus,o.userid
     </select>
 
-    <select id="getAreaAndAllChilds" resultType="com.muchinfo.mtp3pojos.vo.organ.UserAccountVo"
+    <select id="getAreaAndAllChilds" resultType="com.muchinfo.mtp3pojos.vo.organ.UserAccountRspResult"
             parameterType="java.lang.Long">
         <choose>
             <when test="areaid==null or areaid==0">
@@ -758,4 +761,12 @@
         and rownum &lt;= 10
         ORDER BY o.userid
     </select>
+
+    <select id="queryUserAccount" resultType="com.muchinfo.mtp3pojos.entity.Useraccount">
+        select ua.* from useraccount ua
+        WHERE ua.ACCOUNTSTATUS = 4
+        AND UA.USERID = #{userid,jdbcType=DECIMAL}
+        start with ua.userid in (SELECT ar.USERID FROM AREAROLE ar WHERE AR.ROLETYPE = 7)
+        connect by prior ua.userid = ua.parentuserid and ua.usertype = 3
+    </select>
 </mapper>

+ 49 - 0
mtp3-century/src/main/resources/mapper/WroutinapplyMapper.xml

@@ -227,4 +227,53 @@
         </where>
         order by decode(w.warehousestatus, '3',1,'1',2,'4',3,'2',4),w.autoid desc
     </select>
+
+    <select id="queryWRStandardSet" resultType="com.muchinfo.mtp3pojos.vo.warehouse.WarehouseVarietyResult">
+        select ws.*,
+        ws.minivalue/power(10,ws.minivaluedp) minivalue2,
+        wc.categoryname,
+        pwc.categoryname parencategoryname,
+        decode(null, pwc.categoryname  ,'', pwc.categoryname|| ' > ')   ||    decode(null,  wc.categoryname  ,'',  wc.categoryname|| ' > ')  ||
+        dg.deliverygoodsname  as fullname
+        from WRStandard ws
+        left join DeliveryGoods dg on ws.deliverygoodsid = dg.deliverygoodsid
+        left join WRCategory wc on dg.categoryid = wc.categoryid
+        left join WRCategory pwc on wc.parentcategoryid = pwc.categoryid
+        <where>
+            <if test="vo.deliverygoodsid != null">
+                and ws.deliverygoodsid = #{deliverygoodsid}
+            </if>
+            <if test="vo.wrstandardid != null">
+                and ws.wrstandardid = #{vo.wrstandardid}
+            </if>
+            <if test="vo.wrstandardname != null and vo.wrstandardname !=''">
+                and (ws.wrstandardcode like '%'||#{vo.wrstandardname,jdbcType=VARCHAR}||'%'
+                or ws.wrstandardname like '%'||#{vo.wrstandardname,jdbcType=VARCHAR}||'%')
+            </if>
+            <if test="vo.isvalid != null">
+                and ws.isvalid = #{vo.isvalid}
+            </if>
+        </where>
+        order by ws.updatetime desc, ws.wrstandardcode
+    </select>
+
+    <select id="queryDGFactoryItemList" resultType="com.muchinfo.mtp3pojos.entity.Dgfactoryitem">
+        select t.*
+        <if test="wrstandardid!=null and wrstandardid!=''">
+            ,w.wrstandardid
+        </if>
+        from DGFactoryItem t
+        <if test="wrstandardid!=null and wrstandardid!=''">
+            left join WRStandardFactoryItem w on t.dgfactoryitemid = w.dgfactoryitemid
+            and t.dgfactoryitemtypeid = w.dgfactoryitemtypeid and w.wrstandardid=#{wrstandardid }
+        </if>
+        where 1=1
+        <if test="deliverygoodsid!=null and deliverygoodsid!=''">
+            and t.dgfactoryitemtypeid in(
+            select t.dgfactoryitemtypeid from DGFACTORYITEMTYPE t where t.deliverygoodsid = #{deliverygoodsid}
+            and t.itemtypemode = 3 and t.isvalid=1)
+        </if>
+        and t.deliverygoodsid=0
+        and t.isvalid = 1 order by t.orderindex
+    </select>
 </mapper>

+ 3 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IMarketMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.muchinfo.mtp3pojos.entity.Market;
+import com.muchinfo.mtp3pojos.entity.Usergroup;
 import com.muchinfo.mtp3pojos.vo.profitshar.Marketvo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -22,4 +23,6 @@ public interface IMarketMapper extends BaseMapper<Market> {
     List<Marketvo> getMarketsNameByUseridAndrole(@Param("uid") Long uid, @Param("roletype") int roletype);
 
     List<Market> getNoTradeConfigMarkets(@Param("areauserid")Long areauserid, @Param("usergroupid")Long usergroupid);
+
+    List<Usergroup> getNoTradeConfigGroups(@Param("areauserid")Long areauserid);
 }

+ 16 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IThjSpotgoodsdepositMapper.java

@@ -0,0 +1,16 @@
+package com.muchinfo.mtp3interface.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.muchinfo.mtp3pojos.entity.ThjSpotgoodsdeposit;
+
+/**
+ * <p>
+ * 现货商品定金比例设置表 Mapper 接口
+ * </p>
+ *
+ * @author XKF
+ * @since 2024-12-04
+ */
+public interface IThjSpotgoodsdepositMapper extends BaseMapper<ThjSpotgoodsdeposit> {
+
+}

+ 5 - 6
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/ITradeOrderdetailMapper.java

@@ -17,10 +17,7 @@ import com.muchinfo.mtp3pojos.vo.query.goodstrade.GoodsTradeQueryParam;
 import com.muchinfo.mtp3pojos.vo.query.goodstrade.GoodsTradeQueryResult;
 import com.muchinfo.mtp3pojos.vo.query.investorsum.InvestorSumQueryParam;
 import com.muchinfo.mtp3pojos.vo.query.investorsum.InvestorSumQueryResult;
-import com.muchinfo.mtp3pojos.vo.query.other.EsignrecordQueryParam;
-import com.muchinfo.mtp3pojos.vo.query.other.EsignrecordQueryResult;
-import com.muchinfo.mtp3pojos.vo.query.other.InvestorQueryParam;
-import com.muchinfo.mtp3pojos.vo.query.other.InvestorQueryResult;
+import com.muchinfo.mtp3pojos.vo.query.other.*;
 import com.muchinfo.mtp3pojos.vo.query.position.*;
 import com.muchinfo.mtp3pojos.vo.query.tradesum.TradeSumQueryParam;
 import com.muchinfo.mtp3pojos.vo.query.tradesum.TradeSumQueryResult;
@@ -134,7 +131,9 @@ public interface ITradeOrderdetailMapper extends BaseMapper<TradeOrderdetail> {
 
     int failDeliveryOffline(@Param("tradedate") String tradedate, @Param("deliveryorderid") String deliveryorderid, @Param("auditremark") String auditremark);
 
-    IPage<EsignrecordQueryResult> queryesignrecord(IPage<EsignrecordQueryResult> page,@Param("vo")  EsignrecordQueryParam param);
+    IPage<EsignrecordQueryResult> queryesignrecord(IPage<EsignrecordQueryResult> page, @Param("vo") EsignrecordQueryParam param);
 
-    IPage<InvestorQueryResult> queryinvestor(IPage<InvestorQueryResult> page, @Param("vo")  InvestorQueryParam param);
+    IPage<InvestorQueryResult> queryinvestor(IPage<InvestorQueryResult> page, @Param("vo") InvestorQueryParam param);
+
+    IPage<HoldtransferQueryResult> holdtransferquery(IPage<HoldtransferQueryResult> page, @Param("vo") HoldtransferQueryParam param);
 }

+ 19 - 16
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IUseraccountMapper.java

@@ -9,7 +9,7 @@ import com.muchinfo.mtp3pojos.vo.common.OrganSelectParam;
 import com.muchinfo.mtp3pojos.vo.common.OrganSelectResult;
 import com.muchinfo.mtp3pojos.vo.investor.*;
 import com.muchinfo.mtp3pojos.vo.organ.UserAccountReqParam;
-import com.muchinfo.mtp3pojos.vo.organ.UserAccountVo;
+import com.muchinfo.mtp3pojos.vo.organ.UserAccountRspResult;
 import com.muchinfo.mtp3pojos.vo.profitshar.ProfitSharGroupOrganResult;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -29,12 +29,13 @@ public interface IUseraccountMapper extends BaseMapper<Useraccount> {
 
     List<OrganSelectResult> queryOrganSelect(@Param("vo") OrganSelectParam vo);
 
-    IPage<UserAccountVo> queryOrganPage(IPage<UserAccountVo> page,@Param("vo") UserAccountReqParam userInfoReqParam);
+    IPage<UserAccountRspResult> queryOrganPage(IPage<UserAccountRspResult> page, @Param("vo") UserAccountReqParam userInfoReqParam);
 
-    IPage<UserAccountVo> querySonOrganPage(IPage<UserAccountVo> page,@Param("vo") UserAccountReqParam userInfoReqParam);
+    IPage<UserAccountRspResult> querySonOrganPage(IPage<UserAccountRspResult> page, @Param("vo") UserAccountReqParam userInfoReqParam);
 
     /**
      * 获取交易商列表信息 分页查询
+     *
      * @param page
      * @param dealerQueryParam
      * @return
@@ -43,7 +44,7 @@ public interface IUseraccountMapper extends BaseMapper<Useraccount> {
 
     List<DealerQueryResult> queryInvestorPage(@Param("vo") DealerQueryParam dealerQueryParam);
 
-    List<InvestorSelectResult> queryInvestorSelect(@Param("vo")InvestorSelectParam investorSelectParam);
+    List<InvestorSelectResult> queryInvestorSelect(@Param("vo") InvestorSelectParam investorSelectParam);
 
     UserAccountDetailVo selectDetail(@Param("userid") Long userid);
 
@@ -51,31 +52,33 @@ public interface IUseraccountMapper extends BaseMapper<Useraccount> {
 
     String selectOrganName(@Param("userid") Long userid);
 
-    List<InvestorSelectResult> getOrganListAll(@Param("userId")  Long userId,@Param("searchCode") String searchCode);
+    List<InvestorSelectResult> getOrganListAll(@Param("userId") Long userId, @Param("searchCode") String searchCode);
 
-    String selectUserName(@Param("matchaccountid")Long matchaccountid);
+    String selectUserName(@Param("matchaccountid") Long matchaccountid);
 
-    void updateAccount(@Param("userid")Long userid);
+    void updateAccount(@Param("userid") Long userid);
 
-    IPage<InvestorModifyResult> queryModifyPage(IPage<InvestorModifyResult> page,@Param("vo") InvestorModifyParam param);
+    IPage<InvestorModifyResult> queryModifyPage(IPage<InvestorModifyResult> page, @Param("vo") InvestorModifyParam param);
 
-    List<UserAccountVo> getAreaAndAllChilds(@Param("areaid") Long areaid);
+    List<UserAccountRspResult> getAreaAndAllChilds(@Param("areaid") Long areaid);
 
-    Integer querySonOrganLevel(@Param("userid")Long userid,@Param("memberuserid") Long memberuserid);
+    Integer querySonOrganLevel(@Param("userid") Long userid, @Param("memberuserid") Long memberuserid);
 
     List<ProfitSharGroupOrganResult> getNoGroupSubOrgan(@Param("areauserid") Long areauserid);
 
-    IPage<InvestorPersonalizedResult> queryPersonalized(IPage<InvestorPersonalizedResult> page,@Param("groupname") String groupname, @Param("userid")Long userid);
+    IPage<InvestorPersonalizedResult> queryPersonalized(IPage<InvestorPersonalizedResult> page, @Param("groupname") String groupname, @Param("userid") Long userid);
 
     IPage<InvestorPerDetailQueryResult> queryPersonalizedDetail(IPage<InvestorPerDetailQueryResult> page, @Param("vo") InvestorPerDetailQueryParam param);
 
-    IPage<AccountRiskConfigResult> queryAccountRiskConfigPage(IPage<AccountRiskConfigResult> page, @Param("vo")AccountRiskConfigParam param);
+    IPage<AccountRiskConfigResult> queryAccountRiskConfigPage(IPage<AccountRiskConfigResult> page, @Param("vo") AccountRiskConfigParam param);
 
-    List<InvestorInitBZResult> getCustomerTypeByGoodsid(@Param("goodsid")Long goodsid,@Param("customertypeid")Integer customertypeid);
+    List<InvestorInitBZResult> getCustomerTypeByGoodsid(@Param("goodsid") Long goodsid, @Param("customertypeid") Integer customertypeid);
 
-    List<RulesConfigVo> getTradeRuleDescriptions(@Param("marketid")Long marketid,@Param("goodsid") Long goodsid,@Param("areauserid") Long areauserid,@Param("usergroupid")Long usergroupid);
+    List<RulesConfigVo> getTradeRuleDescriptions(@Param("marketid") Long marketid, @Param("goodsid") Long goodsid, @Param("areauserid") Long areauserid, @Param("usergroupid") Long usergroupid);
 
-    List<FeesConfigVo> getTradeFeeDescriptions(@Param("marketid")Long marketid,@Param("goodsid") Long goodsid,@Param("areauserid") Long areauserid,@Param("usergroupid")Long usergroupid);
+    List<FeesConfigVo> getTradeFeeDescriptions(@Param("marketid") Long marketid, @Param("goodsid") Long goodsid, @Param("areauserid") Long areauserid, @Param("usergroupid") Long usergroupid);
 
-    List<OrganSelectResult> queryOrganSelect2And3(@Param("vo")OrganSelectParam param);
+    List<OrganSelectResult> queryOrganSelect2And3(@Param("vo") OrganSelectParam param);
+
+    List<Useraccount> queryUserAccount(@Param("userid") Long userid);
 }

+ 9 - 2
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IWroutinapplyMapper.java

@@ -2,6 +2,7 @@ package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.muchinfo.mtp3pojos.entity.Dgfactoryitem;
 import com.muchinfo.mtp3pojos.entity.Wrcategory;
 import com.muchinfo.mtp3pojos.entity.Wroutinapply;
 import com.muchinfo.mtp3pojos.vo.common.OrganSelectResult;
@@ -30,9 +31,15 @@ public interface IWroutinapplyMapper extends BaseMapper<Wroutinapply> {
 
     List<WslistQueryResult> querywslist(@Param("userid") Long userid);
 
-    List<WhlistQueryResult> querywhlist(@Param("userid") Long userid,@Param("wrstandardid") Long wrstandardid);
+    List<WhlistQueryResult> querywhlist(@Param("userid") Long userid, @Param("wrstandardid") Long wrstandardid);
 
     List<WrHoldLBResult> queryWRHoldLB(@Param("vo") WrHoldLBParam param);
 
-    IPage<WarehouseReceiptResult> receiptquery(IPage<WarehouseReceiptResult> page, @Param("vo")WarehouseReceiptParam param);
+    IPage<WarehouseReceiptResult> receiptquery(IPage<WarehouseReceiptResult> page, @Param("vo") WarehouseReceiptParam param);
+
+    IPage<WarehouseVarietyResult> queryWRStandardSet(IPage<WarehouseVarietyResult> page, @Param("vo") WarehouseVarietyParam param);
+
+    List<WarehouseVarietyResult> queryWRStandardSet(@Param("vo") WarehouseVarietyParam param);
+
+    List<Dgfactoryitem> queryDGFactoryItemList(@Param("wrstandardid")Long wrstandardid, @Param("deliverygoodsid")Long deliverygoodsid);
 }

+ 3 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/Dgfactoryitem.java

@@ -60,6 +60,9 @@ public class Dgfactoryitem extends Model<Dgfactoryitem> {
     @TableField(select = false)
     private Integer ischecked;
 
+    @TableField(select = false)
+    private Long wrstandardid;
+
     @Override
     public Serializable pkVal() {
         return this.dgfactoryitemid;

+ 63 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/ThjSpotgoodsdeposit.java

@@ -0,0 +1,63 @@
+package com.muchinfo.mtp3pojos.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 现货商品定金比例设置表
+ * </p>
+ *
+ * @author XKF
+ * @since 2024-12-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("THJ_SPOTGOODSDEPOSIT")
+@ApiModel(value="ThjSpotgoodsdeposit对象", description="现货商品定金比例设置表")
+@KeySequence(value = "SEQ_THJ_SPOTGOODSDEPOSIT")
+public class ThjSpotgoodsdeposit extends Model<ThjSpotgoodsdeposit> {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "自增ID(SEQ_THJ_SPOTGOODSDEPOSIT)")
+    @TableId(value = "AUTOID", type = IdType.INPUT)
+    private Long autoid;
+
+    @ApiModelProperty(value = "现货商品ID")
+    @TableField("WRSTANDARDID")
+    private Long wrstandardid;
+
+    @ApiModelProperty(value = "定金比例")
+    @TableField("DEPOSITRATE")
+    private BigDecimal depositrate;
+
+    @ApiModelProperty(value = "优惠金额(每吨)")
+    @TableField("DISCOUNTAMOUNT")
+    private BigDecimal discountamount;
+
+    @ApiModelProperty(value = "更新人")
+    @TableField("UPDATORID")
+    private Long updatorid;
+
+    @ApiModelProperty(value = "更新时间")
+    @TableField("UPDATETIME")
+    private Date updatetime;
+
+
+    @Override
+    public Serializable pkVal() {
+        return this.autoid;
+    }
+
+}

+ 2 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/Userinfo.java

@@ -286,6 +286,8 @@ public class Userinfo extends Model<Userinfo> {
     @TableField("LOGINCODE")
     private String logincode;
 
+    @TableField(select = false)
+    private BigDecimal creditquota;
 
     @Override
     public Serializable pkVal() {

+ 8 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/common/GoodsSelectParam.java

@@ -1,6 +1,7 @@
 package com.muchinfo.mtp3pojos.vo.common;
 
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
@@ -22,4 +23,11 @@ public class GoodsSelectParam {
     private String deliveryflag;
 
     private String trademodels;
+
+    @ApiModelProperty(value = "管理员所属机构角色类型")
+    private String orgztypes;
+
+    private Long areauserid;
+
+    private Long yyareauserid;
 }

+ 2 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/common/GoodsSelectResult.java

@@ -22,4 +22,6 @@ public class GoodsSelectResult {
 
     @ApiModelProperty(value = "商品名称")
     private String goodsName;
+
+    private Long goodunitid;
 }

+ 49 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/organ/UserAccountDetailResult.java

@@ -0,0 +1,49 @@
+package com.muchinfo.mtp3pojos.vo.organ;
+
+import com.muchinfo.mtp3pojos.entity.DraftUseraccountNew;
+import com.muchinfo.mtp3pojos.entity.DraftUserinfo;
+import com.muchinfo.mtp3pojos.entity.Systemmanager;
+import com.muchinfo.mtp3pojos.entity.Userinfo;
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Builder
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel(value = "UserAccountDetailResult对象", description = "机构资料管理")
+public class UserAccountDetailResult {
+
+    private UserAccountRspResult rspResult;
+
+    private DraftUseraccountNew draftUseraccountNew;
+
+    private String refereeusername;
+
+    private String borkername;
+
+    private String afterrefereeusername;
+
+    private String afterborkername;
+
+    private Userinfo userinfo;
+
+    private DraftUserinfo draftUserinfo;
+
+    private List<String> otherurl;
+
+    private String division;
+
+    private Systemmanager users;
+
+    private String openUrl;
+    private String mobileUrl;
+    private String weixinUrl;
+    private String sanfangUrl;
+    private String rolename;
+}

+ 12 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/organ/UserAccountReqParam.java

@@ -20,6 +20,9 @@ public class UserAccountReqParam {
     @ApiModelProperty(value = "机构")
     private String accountName;
 
+    @ApiModelProperty(value = "市场权限")
+    private Long markets;
+
     @ApiModelProperty(value = "机构状态")
     private Integer accountStatus;
 
@@ -29,6 +32,15 @@ public class UserAccountReqParam {
     @ApiModelProperty(value = "")
     private Long parentuserid;
 
+    @ApiModelProperty(value = "开始时间")
+    private String starttime;
+
+    @ApiModelProperty(value = "结束时间")
+    private String endtime;
+
+    @ApiModelProperty(value = "角色")
+    private String roles;
+
     private Integer pageNum;
 
     private Integer pageSize;

+ 1 - 1
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/organ/UserAccountVo.java → mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/organ/UserAccountRspResult.java

@@ -10,7 +10,7 @@ import lombok.*;
 @AllArgsConstructor
 @NoArgsConstructor
 @ApiModel(value = "UserInfoVo对象", description = "机构资料信息")
-public class UserAccountVo extends Useraccount {
+public class UserAccountRspResult extends Useraccount {
 
     private String userName;
 

+ 2 - 2
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/organ/OrganParam.java → mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/organ/son/OrganAddSonOrganParam.java

@@ -1,4 +1,4 @@
-package com.muchinfo.mtp3pojos.vo.organ;
+package com.muchinfo.mtp3pojos.vo.organ.son;
 
 
 import io.swagger.annotations.ApiModel;
@@ -13,7 +13,7 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 @ApiModel(value = "OrganAddSonOrganParam对象", description = "子机构管理新增请求")
-public class OrganParam {
+public class OrganAddSonOrganParam {
 
     @ApiModelProperty(value = "平台、机构新增、修改固定为3 ")
     private Integer usertype;

+ 43 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/query/other/HoldtransferQueryParam.java

@@ -0,0 +1,43 @@
+package com.muchinfo.mtp3pojos.vo.query.other;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Builder
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel(value = "HoldtransferQueryParam对象", description = "协议转让查询")
+public class HoldtransferQueryParam {
+
+    @ApiModelProperty(value = "申请状态")
+    private Integer applystatus;
+
+    private String transfertypestr;
+
+    @ApiModelProperty(value = "商品")
+    private Long goodsid;
+
+    @ApiModelProperty(value = "转出方")
+    private Long outaccountid;
+
+    @ApiModelProperty(value = "转入方")
+    private Long inaccountid;
+
+    @ApiModelProperty(value = "申请日期")
+    private String applydate;
+
+    @ApiModelProperty(value = "* 页码 *")
+    private Integer pageNum;
+
+    @ApiModelProperty(value = "* 页大小 *")
+    private Integer pageSize;
+
+    private Long yyareauserid;
+
+    private Integer ishis;
+}

+ 17 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/query/other/HoldtransferQueryResult.java

@@ -0,0 +1,17 @@
+package com.muchinfo.mtp3pojos.vo.query.other;
+
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Builder
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel(value = "HoldtransferQueryResult对象", description = "协议转让")
+public class HoldtransferQueryResult {
+
+    private String tradedate;
+}

+ 3 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/query/other/InvestorQueryParam.java

@@ -51,4 +51,7 @@ public class InvestorQueryParam {
 
     @ApiModelProperty(value = "机构角色")
     private String roles;
+
+    @ApiModelProperty(value = "交易商 5,机构 2")
+    private Integer type;
 }

+ 1 - 1
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/query/other/InvestorQueryResult.java

@@ -23,7 +23,7 @@ public class InvestorQueryResult {
     private String accountcodename;
 
     @ApiModelProperty(value = "登录账号")
-    private Long invloginids;
+    private String invloginids;
 
     @ApiModelProperty(value = "资金账户")
     private Long accountid;

+ 1 - 1
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/taaccount/TaAccountReportParam.java

@@ -25,5 +25,5 @@ public class TaAccountReportParam {
 
     private Integer type;
 
-    private Integer usertype;
+    private String userType;
 }

+ 56 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/warehouse/WarehouseVarietyDetailResult.java

@@ -0,0 +1,56 @@
+package com.muchinfo.mtp3pojos.vo.warehouse;
+
+import com.muchinfo.mtp3pojos.entity.Dgfactoryitem;
+import com.muchinfo.mtp3pojos.entity.ThjSpotgoodsdeposit;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Builder
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel(value="WarehouseVarietyDetailResult对象", description="现货品种详情")
+public class WarehouseVarietyDetailResult {
+
+    private Integer isimg;
+
+    private Integer isShowEntry;
+
+    private Integer isShowTHJ;
+
+    @ApiModelProperty(value = "供应链提供商")
+    private String providername;
+
+    private Long wrstandardid;
+
+    @ApiModelProperty(value = "仓单标准")
+    private String fullname;
+
+    private String wrstandardname;
+
+    @ApiModelProperty(value = "增值税(%)")
+    private BigDecimal vatrate;
+
+    @ApiModelProperty(value = "期货合约")
+    private BigDecimal refgoodscode;
+
+    @ApiModelProperty(value = "仓储费(元/吨)")
+    private BigDecimal storagefee;
+
+    @ApiModelProperty(value = "最小变动值")
+    private BigDecimal minivalue2;
+
+    @ApiModelProperty(value = "单位")
+    private String unitid;
+
+    private List<Dgfactoryitem> dgFactoryItems;
+
+    private List<ThjSpotgoodsdeposit> thjspotgoodsdeposits;
+}

+ 27 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/warehouse/WarehouseVarietyParam.java

@@ -0,0 +1,27 @@
+package com.muchinfo.mtp3pojos.vo.warehouse;
+
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Builder
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel(value="WarehouseVarietyParam对象", description="现货品种")
+public class WarehouseVarietyParam {
+
+    private Long deliverygoodsid;
+
+    private String wrstandardname;
+
+    private Integer isvalid;
+
+    private Long wrstandardid;
+
+    private Integer pageNum;
+
+    private Integer pageSize;
+}

+ 49 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/warehouse/WarehouseVarietyResult.java

@@ -0,0 +1,49 @@
+package com.muchinfo.mtp3pojos.vo.warehouse;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Builder
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel(value="WarehouseVarietyResult对象", description="现货品种响应")
+public class WarehouseVarietyResult {
+
+    @ApiModelProperty(value = "商品分类")
+    private String fullname;
+
+    @ApiModelProperty(value = "标准代码/名称")
+    private String wrstandardname;
+
+    private Long wrstandardcode;
+
+    @ApiModelProperty(value = "单位")
+    private String unitid;
+
+    @ApiModelProperty(value = "最小变动值")
+    private BigDecimal minivalue2;
+
+    @ApiModelProperty(value = "更新时间")
+    private Date updatetime;
+
+    private Long wrstandardid;
+
+    private Long deliverygoodsid;
+
+    private Long provideruserid;
+
+    private BigDecimal vatrate;
+
+    private String refgoodscode;
+
+    private BigDecimal storagefee;
+
+}