|
@@ -6,21 +6,21 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.google.common.base.Strings;
|
|
import com.google.common.base.Strings;
|
|
|
|
|
+import com.muchinfo.mtp.proto.AccountRedis;
|
|
|
|
|
+import com.muchinfo.mtp.proto.Common;
|
|
|
import com.muchinfo.mtp.proto.QuoteMI1;
|
|
import com.muchinfo.mtp.proto.QuoteMI1;
|
|
|
|
|
+import com.muchinfo.mtp.proto.TkernelMI2;
|
|
|
import com.muchinfo.mtp3century.service.ICommonService;
|
|
import com.muchinfo.mtp3century.service.ICommonService;
|
|
|
import com.muchinfo.mtp3century.service.IQueryService;
|
|
import com.muchinfo.mtp3century.service.IQueryService;
|
|
|
import com.muchinfo.mtp3century.utils.RedisServiceUtil;
|
|
import com.muchinfo.mtp3century.utils.RedisServiceUtil;
|
|
|
-import com.muchinfo.mtp3common.enumtype.Constants;
|
|
|
|
|
-import com.muchinfo.mtp3common.enumtype.MessageType;
|
|
|
|
|
-import com.muchinfo.mtp3common.enumtype.SysConstants;
|
|
|
|
|
-import com.muchinfo.mtp3common.enumtype.SysEnums;
|
|
|
|
|
-import com.muchinfo.mtp3common.vo.AjaxResult;
|
|
|
|
|
|
|
+import com.muchinfo.mtp3common.enumtype.*;
|
|
|
|
|
+import com.muchinfo.mtp3common.utils.SerialNumberUtils;
|
|
|
|
|
+import com.muchinfo.mtp3common.vo.*;
|
|
|
import com.muchinfo.mtp3common.utils.DateTimeUtils;
|
|
import com.muchinfo.mtp3common.utils.DateTimeUtils;
|
|
|
import com.muchinfo.mtp3common.utils.ExportUtil;
|
|
import com.muchinfo.mtp3common.utils.ExportUtil;
|
|
|
-import com.muchinfo.mtp3common.vo.PageResult;
|
|
|
|
|
-import com.muchinfo.mtp3common.vo.ExportResult;
|
|
|
|
|
import com.muchinfo.mtp3interface.mapper.*;
|
|
import com.muchinfo.mtp3interface.mapper.*;
|
|
|
import com.muchinfo.mtp3pojos.entity.*;
|
|
import com.muchinfo.mtp3pojos.entity.*;
|
|
|
|
|
+import com.muchinfo.mtp3pojos.vo.ProtoErrorCodes;
|
|
|
import com.muchinfo.mtp3pojos.vo.common.OrganSelectParam;
|
|
import com.muchinfo.mtp3pojos.vo.common.OrganSelectParam;
|
|
|
import com.muchinfo.mtp3pojos.vo.common.OrganSelectResult;
|
|
import com.muchinfo.mtp3pojos.vo.common.OrganSelectResult;
|
|
|
import com.muchinfo.mtp3pojos.vo.query.accounttransaction.AccountTransactionQueryParam;
|
|
import com.muchinfo.mtp3pojos.vo.query.accounttransaction.AccountTransactionQueryParam;
|
|
@@ -32,12 +32,19 @@ import com.muchinfo.mtp3pojos.vo.query.goodstrade.GoodsTradeQueryParam;
|
|
|
import com.muchinfo.mtp3pojos.vo.query.goodstrade.GoodsTradeQueryResult;
|
|
import com.muchinfo.mtp3pojos.vo.query.goodstrade.GoodsTradeQueryResult;
|
|
|
import com.muchinfo.mtp3pojos.vo.query.investorsum.InvestorSumQueryParam;
|
|
import com.muchinfo.mtp3pojos.vo.query.investorsum.InvestorSumQueryParam;
|
|
|
import com.muchinfo.mtp3pojos.vo.query.investorsum.InvestorSumQueryResult;
|
|
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.position.*;
|
|
import com.muchinfo.mtp3pojos.vo.query.position.*;
|
|
|
import com.muchinfo.mtp3pojos.vo.query.tradesum.TradeSumQueryParam;
|
|
import com.muchinfo.mtp3pojos.vo.query.tradesum.TradeSumQueryParam;
|
|
|
import com.muchinfo.mtp3pojos.vo.query.tradesum.TradeSumQueryResult;
|
|
import com.muchinfo.mtp3pojos.vo.query.tradesum.TradeSumQueryResult;
|
|
|
import com.muchinfo.mtp3pojos.vo.query.warehouse.*;
|
|
import com.muchinfo.mtp3pojos.vo.query.warehouse.*;
|
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
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.beans.BeanUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
@@ -90,7 +97,11 @@ public class QueryServiceImpl implements IQueryService {
|
|
|
@Resource
|
|
@Resource
|
|
|
private IWarehouseinfoMapper iWarehouseinfoMapper;
|
|
private IWarehouseinfoMapper iWarehouseinfoMapper;
|
|
|
@Resource
|
|
@Resource
|
|
|
- private IWrfactortypeitemMapper iWrfactortypeitemMapper;
|
|
|
|
|
|
|
+ private IMarketrunMapper iMarketrunMapper;
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private IUseresignrecordMapper iUseresignrecordMapper;
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private RabbitTemplate rabbitTemplate;
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public PageResult<CommissionSheetResult> commissionSheetQuery(CommissionSheetParam commissionSheetParam, HttpServletRequest request) {
|
|
public PageResult<CommissionSheetResult> commissionSheetQuery(CommissionSheetParam commissionSheetParam, HttpServletRequest request) {
|
|
@@ -609,7 +620,7 @@ public class QueryServiceImpl implements IQueryService {
|
|
|
public AjaxResult<PositionSheetResultDetail> positionSheetDetail(String tradeid, Integer buyorsell, Integer ishis, String histradedate, HttpServletRequest request) {
|
|
public AjaxResult<PositionSheetResultDetail> positionSheetDetail(String tradeid, Integer buyorsell, Integer ishis, String histradedate, HttpServletRequest request) {
|
|
|
Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
PositionSheetResultDetail resultDetail = iTradeOrderdetailMapper.queryTradeHolderDetailById(ishis, tradeid, buyorsell, histradedate);
|
|
PositionSheetResultDetail resultDetail = iTradeOrderdetailMapper.queryTradeHolderDetailById(ishis, tradeid, buyorsell, histradedate);
|
|
|
- if (!iCommonService.checkTaAccountReport(systemmanager, resultDetail.getAccountid())) {
|
|
|
|
|
|
|
+ if (iCommonService.checkTaAccountReport(systemmanager, resultDetail.getAccountid())) {
|
|
|
return AjaxResult.error(Constants.Error_Code_Design, MessageType.QUERY_ERROR_CODE_004.getCode(), request.getHeader("Accept-Language"));
|
|
return AjaxResult.error(Constants.Error_Code_Design, MessageType.QUERY_ERROR_CODE_004.getCode(), request.getHeader("Accept-Language"));
|
|
|
} else {
|
|
} else {
|
|
|
return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), resultDetail);
|
|
return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), resultDetail);
|
|
@@ -720,7 +731,7 @@ public class QueryServiceImpl implements IQueryService {
|
|
|
dto.setIsyijia(1);
|
|
dto.setIsyijia(1);
|
|
|
}
|
|
}
|
|
|
//校验
|
|
//校验
|
|
|
- if (!iCommonService.checkTaAccountReport(systemmanager, dto.getWrTradeOrderDetail().getAccountid())) {
|
|
|
|
|
|
|
+ if (iCommonService.checkTaAccountReport(systemmanager, dto.getWrTradeOrderDetail().getAccountid())) {
|
|
|
return AjaxResult.error(Constants.Error_Code_Design, MessageType.QUERY_ERROR_CODE_004.getCode(), request.getHeader("Accept-Language"));
|
|
return AjaxResult.error(Constants.Error_Code_Design, MessageType.QUERY_ERROR_CODE_004.getCode(), request.getHeader("Accept-Language"));
|
|
|
}
|
|
}
|
|
|
return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), dto);
|
|
return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), dto);
|
|
@@ -1104,6 +1115,8 @@ public class QueryServiceImpl implements IQueryService {
|
|
|
@Override
|
|
@Override
|
|
|
public AjaxResult<DeliveryOrderDetailResult> deliveryOrderDetail(String deliveryorderid, String histradedate, HttpServletRequest request) {
|
|
public AjaxResult<DeliveryOrderDetailResult> deliveryOrderDetail(String deliveryorderid, String histradedate, HttpServletRequest request) {
|
|
|
DeliveryOrderDetailResult deliveryOrderParam = iTradeOrderdetailMapper.queryDeliveryOrderById(deliveryorderid, histradedate);
|
|
DeliveryOrderDetailResult deliveryOrderParam = iTradeOrderdetailMapper.queryDeliveryOrderById(deliveryorderid, histradedate);
|
|
|
|
|
+ deliveryOrderParam.setAccountname(iUseraccountMapper.selectUserName(deliveryOrderParam.getAccountid()));
|
|
|
|
|
+ deliveryOrderParam.setMatchaccountname(iUseraccountMapper.selectUserName(deliveryOrderParam.getMatchaccountid()));
|
|
|
List<Wrfactortypeitem> list = iTradeOrderdetailMapper.queryWRFactorTypeItemNew(deliveryOrderParam.getWrfactortypeid());
|
|
List<Wrfactortypeitem> list = iTradeOrderdetailMapper.queryWRFactorTypeItemNew(deliveryOrderParam.getWrfactortypeid());
|
|
|
deliveryOrderParam.setWrFactorTypeItemList(list);
|
|
deliveryOrderParam.setWrFactorTypeItemList(list);
|
|
|
return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), deliveryOrderParam);
|
|
return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), deliveryOrderParam);
|
|
@@ -1139,7 +1152,7 @@ public class QueryServiceImpl implements IQueryService {
|
|
|
@Override
|
|
@Override
|
|
|
public AjaxResult<SettlementDealDetailResult> settlementDealDetail(SettlementDealDetailParam param, HttpServletRequest request) {
|
|
public AjaxResult<SettlementDealDetailResult> settlementDealDetail(SettlementDealDetailParam param, HttpServletRequest request) {
|
|
|
Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
- if (iCommonService.checkUserAccountRole(systemmanager, systemmanager.getAreauserid())) {
|
|
|
|
|
|
|
+ if (!iCommonService.checkUserAccountRole(systemmanager, systemmanager.getAreauserid())) {
|
|
|
return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM003.getCode(), request.getHeader("Accept-Language"));
|
|
return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM003.getCode(), request.getHeader("Accept-Language"));
|
|
|
}
|
|
}
|
|
|
SettlementDealDetailResult result = iTradeOrderdetailMapper.settlementDealDetail(param);
|
|
SettlementDealDetailResult result = iTradeOrderdetailMapper.settlementDealDetail(param);
|
|
@@ -1160,7 +1173,7 @@ public class QueryServiceImpl implements IQueryService {
|
|
|
public AjaxResult<ApplyOrderDetailResult> applyOrderDetail(String deliveryorderid, String histradedate, HttpServletRequest request) {
|
|
public AjaxResult<ApplyOrderDetailResult> applyOrderDetail(String deliveryorderid, String histradedate, HttpServletRequest request) {
|
|
|
Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
ApplyOrderDetailResult result;
|
|
ApplyOrderDetailResult result;
|
|
|
- List<DeliveryDetailResult> detailResult = new ArrayList<>();
|
|
|
|
|
|
|
+ List<DeliveryDetailResult> detailResult;
|
|
|
String sellId = null;
|
|
String sellId = null;
|
|
|
String buyId = null;
|
|
String buyId = null;
|
|
|
if (StringUtils.isNotBlank(histradedate)) {
|
|
if (StringUtils.isNotBlank(histradedate)) {
|
|
@@ -1196,6 +1209,359 @@ public class QueryServiceImpl implements IQueryService {
|
|
|
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
|
|
|
|
|
+ public PageResult<OfflineDeliveryResult> queryoffline(OfflineDeliveryParam param, HttpServletRequest request) {
|
|
|
|
|
+ Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
|
|
+ if (systemmanager.getReletype() != 1) {
|
|
|
|
|
+ // 不是平台,产业会员只查对手为自己的单据
|
|
|
|
|
+ param.setMatchuserid(systemmanager.getAreauserid());
|
|
|
|
|
+ }
|
|
|
|
|
+ IPage<OfflineDeliveryResult> page = new Page<>(param.getPageNum(), param.getPageSize());
|
|
|
|
|
+ IPage<OfflineDeliveryResult> resultIPage = iTradeOrderdetailMapper.queryDeliveryOfflinePage(page, param);
|
|
|
|
|
+ PageResult<OfflineDeliveryResult> pageResult = new PageResult<>();
|
|
|
|
|
+ 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;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public AjaxResult<OfflineDeliveryDetailResult> offlineDetail(String deliveryorderid, HttpServletRequest request) {
|
|
|
|
|
+ OfflineDeliveryDetailResult result = iTradeOrderdetailMapper.queryDeliveryOfflineDetail(deliveryorderid);
|
|
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public AjaxResult offlineclose(String deliveryorderid, Long marketid, HttpServletRequest request) {
|
|
|
|
|
+ Marketrun marketRun = iMarketrunMapper.selectOne(new QueryWrapper<Marketrun>().eq("marketid", marketid));
|
|
|
|
|
+ if (Objects.nonNull(marketRun) && marketRun.getRunstatus().equals(2)) {
|
|
|
|
|
+ int result = closeDeliveryOffline(deliveryorderid);
|
|
|
|
|
+ if (result == -1) {
|
|
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.QUERY_ERROR_CODE_009.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 市场错误或市场状态不为开市场状态
|
|
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.QUERY_ERROR_CODE_008.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public AjaxResult offlinefail(String deliveryorderid, Long marketid, String auditremark, HttpServletRequest request) {
|
|
|
|
|
+ Marketrun marketRun = iMarketrunMapper.selectOne(new QueryWrapper<Marketrun>().eq("marketid", marketid));
|
|
|
|
|
+ if (Objects.nonNull(marketRun) && marketRun.getRunstatus().equals(2)) {
|
|
|
|
|
+ int result = failDeliveryOffline(deliveryorderid, auditremark);
|
|
|
|
|
+ if (result == -1) {
|
|
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.QUERY_ERROR_CODE_009.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 市场错误或市场状态不为开市场状态
|
|
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.QUERY_ERROR_CODE_008.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public AjaxResult offlineexport(OfflineDeliveryParam param, HttpServletRequest request) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ List<OfflineDeliveryResult> results = iTradeOrderdetailMapper.queryDeliveryOfflinePage(param);
|
|
|
|
|
+ String fileName = "线下交收单_" + DateTimeUtils.getDateTime("yyyyMMdd");
|
|
|
|
|
+ if (CollectionUtils.isEmpty(results)) {
|
|
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.QUERY_ERROR_CODE_005.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ }
|
|
|
|
|
+ ExportResult exportResult = ExportUtil.write(fileName, OfflineDeliveryResult.class, results);
|
|
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), exportResult);
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("线下交收单导出失败,失败原因:" + e);
|
|
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.QUERY_ERROR_CODE_006.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public PageResult<EsignrecordQueryResult> queryesignrecord(EsignrecordQueryParam param, HttpServletRequest request) {
|
|
|
|
|
+ IPage<EsignrecordQueryResult> page = new Page<>(param.getPageNum(), param.getPageSize());
|
|
|
|
|
+ IPage<EsignrecordQueryResult> resultIPage = iTradeOrderdetailMapper.queryesignrecord(page, param);
|
|
|
|
|
+ // Go查询腾讯电子签子客URL地址\爱签查询
|
|
|
|
|
+ resultIPage.getRecords().forEach(a -> {
|
|
|
|
|
+ String sp1005 = iCommonService.getSystemParam(Constants.REDIS_HEADER_SYSPARAM, "1005");
|
|
|
|
|
+ if (!Strings.isNullOrEmpty(sp1005)) {
|
|
|
|
|
+ //处理请求url
|
|
|
|
|
+ if (sp1005.contains("/api/")) {
|
|
|
|
|
+ a.setSp1005Url(sp1005 + "Asign/SyncContractStatus");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ a.setSp1005Url(sp1005 + "/Asign/SyncContractStatus");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ PageResult<EsignrecordQueryResult> pageResult = new PageResult<>();
|
|
|
|
|
+ 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;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public AjaxResult changeStatus(Long recordid, Integer newStatus, HttpServletRequest request) {
|
|
|
|
|
+ Useresignrecord record = iUseresignrecordMapper.selectOne(new QueryWrapper<Useresignrecord>().eq("recordid", recordid));
|
|
|
|
|
+
|
|
|
|
|
+ if (record == null) {
|
|
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM002.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ }
|
|
|
|
|
+ if (newStatus == 1L) {
|
|
|
|
|
+ // 2:签署中\4:签署拒绝的可重置为未签署
|
|
|
|
|
+ if (!record.getRecordstatus().equals(2L) && !record.getRecordstatus().equals(4L)) {
|
|
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM002.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ }
|
|
|
|
|
+ } else if (newStatus == 3L) {
|
|
|
|
|
+ // 1:未签署\4:签署拒绝更新为3:已签署
|
|
|
|
|
+ if (!record.getRecordstatus().equals(1L) && !record.getRecordstatus().equals(4L)) {
|
|
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM002.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM002.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ }
|
|
|
|
|
+ record.setRecordstatus(newStatus);
|
|
|
|
|
+ record.setUpdatetime(new Date());
|
|
|
|
|
+ iUseresignrecordMapper.updateById(record);
|
|
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public PageResult<InvestorQueryResult> queryinvestor(InvestorQueryParam param, HttpServletRequest request) {
|
|
|
|
|
+ Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
|
|
+ if (systemmanager.getReletype() != 1) {
|
|
|
|
|
+ if (("," + param.getOrgztypes() + ",").contains(",3,")) {
|
|
|
|
|
+ param.setChangeflag(3);
|
|
|
|
|
+ }
|
|
|
|
|
+ param.setAreauserid(systemmanager.getAreauserid());
|
|
|
|
|
+ }
|
|
|
|
|
+ IPage<InvestorQueryResult> page = new Page<>(param.getPageNum(), param.getPageSize());
|
|
|
|
|
+ IPage<InvestorQueryResult> resultIPage = iTradeOrderdetailMapper.queryinvestor(page, param);
|
|
|
|
|
+ //处理金额
|
|
|
|
|
+ getRiskFromRedis(resultIPage.getRecords());
|
|
|
|
|
+ PageResult<InvestorQueryResult> pageResult = new PageResult<>();
|
|
|
|
|
+ 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 void getRiskFromRedis(List<InvestorQueryResult> records) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ String floatplFlag = iCommonService.getSystemParam(Constants.REDIS_HEADER_SYSPARAM, "113");
|
|
|
|
|
+ String creditFlag = iCommonService.getSystemParam(Constants.REDIS_HEADER_SYSPARAM, "946");
|
|
|
|
|
+ String closeplFlag = iCommonService.getSystemParam(Constants.REDIS_HEADER_SYSPARAM, "112");
|
|
|
|
|
+ String inamountFlag = iCommonService.getSystemParam(Constants.REDIS_HEADER_SYSPARAM, "111");
|
|
|
|
|
+ for (InvestorQueryResult record : records) {
|
|
|
|
|
+ byte[] valuebts = redisServiceUtil.getBytes("risk:" + record.getAccountid());
|
|
|
|
|
+ AccountRedis.AccRiskInfo accRiskInfo = null;
|
|
|
|
|
+ if (valuebts != null) {
|
|
|
|
|
+ accRiskInfo = AccountRedis.AccRiskInfo.newBuilder().mergeFrom(valuebts).build();
|
|
|
|
|
+ log.info("risk:" + record.getAccountid() + "--------------accRiskInfo:" + accRiskInfo);
|
|
|
|
|
+
|
|
|
|
|
+ record.setCur_risk_rate(BigDecimal.valueOf(accRiskInfo.getCURRISKRATE()).multiply(BigDecimal.valueOf(100d)).setScale(2, RoundingMode.DOWN));
|
|
|
|
|
+ record.setFloatpl(BigDecimal.valueOf(accRiskInfo.getTOTALFLOATPL()));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // Redis无记录,风险率、浮动盈亏设置为0
|
|
|
|
|
+ record.setCur_risk_rate(BigDecimal.ZERO);
|
|
|
|
|
+ record.setFloatpl(BigDecimal.ZERO);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 更新可用
|
|
|
|
|
+ setAvaliableAmount(record, floatplFlag);
|
|
|
|
|
+
|
|
|
|
|
+ // 更新可出
|
|
|
|
|
+ setAvaliableOutAmount(record, floatplFlag, creditFlag, closeplFlag, inamountFlag);
|
|
|
|
|
+
|
|
|
|
|
+ // 更新当前净值= 期末余额+浮动盈亏(收益权)
|
|
|
|
|
+ record.setFloatnetvalue(record.getCurrentbalance().add(record.getFloatpl()));
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("设置风险率失败,请检查!");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private void setAvaliableOutAmount(InvestorQueryResult vo, String floatplFlag, String creditFlag, String closeplFlag, String inamountFlag) {
|
|
|
|
|
+ //根据系统参数计算s1(946 是否可设置收益权市场的交易授信 0:不显示 1:显示 默认0)
|
|
|
|
|
+ //946 = 0:
|
|
|
|
|
+ //s1=期末余额-交易占用-交易冻结-手续费冻结-出金冻结-其它冻结-授信金额-其它授信金额+浮动盈亏-[平仓盈利(正值)](当日平仓盈利不可出112)-[浮动盈利(正值)](当日浮动盈利不可出113)
|
|
|
|
|
+ //946 = 1:
|
|
|
|
|
+ //s1=期末余额-交易占用-交易冻结-手续费冻结-出金冻结-其它冻结-授信金额-其它授信金额+浮动盈亏-[平仓盈利(正值)](当日平仓盈利不可出112)-[浮动盈利(正值)](当日浮动盈利不可出113)
|
|
|
|
|
+ //s2=期初余额+子账号期初余额汇总+当日出金(负值)-出金冻结+[当日入金](当日入金可出111)
|
|
|
|
|
+ //可出资金=min(s1,s2)
|
|
|
|
|
+ BigDecimal s1 = BigDecimal.ZERO;
|
|
|
|
|
+ if ("1".equals(creditFlag)) {
|
|
|
|
|
+ s1 = vo.getCurrentbalance().subtract(vo.getUsedmargin())
|
|
|
|
|
+ .subtract(vo.getFreezemargin()).subtract(vo.getOtherfreezemargin()).subtract(vo.getFreezecharge())
|
|
|
|
|
+ .subtract(vo.getOutamountfreeze()).subtract(vo.getOthercredit()).add(vo.getFloatpl());
|
|
|
|
|
+
|
|
|
|
|
+ } else {
|
|
|
|
|
+ s1 = vo.getCurrentbalance().subtract(vo.getUsedmargin())
|
|
|
|
|
+ .subtract(vo.getFreezemargin()).subtract(vo.getOtherfreezemargin()).subtract(vo.getFreezecharge())
|
|
|
|
|
+ .subtract(vo.getOutamountfreeze()).subtract(vo.getMortgagecredit()).subtract(vo.getOthercredit())
|
|
|
|
|
+ .add(vo.getFloatpl());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if ("0".equals(closeplFlag) && vo.getClosepl().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
|
|
+ s1 = s1.subtract(vo.getClosepl());
|
|
|
|
|
+ }
|
|
|
|
|
+ if ("0".equals(floatplFlag) && vo.getFloatpl().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
|
|
+ s1 = s1.subtract(vo.getFloatpl());
|
|
|
|
|
+ }
|
|
|
|
|
+ BigDecimal s2 = vo.getBalance();
|
|
|
|
|
+ if (vo.getOutamount().compareTo(BigDecimal.ZERO) < 0) {
|
|
|
|
|
+ s2 = s2.add(vo.getOutamount());
|
|
|
|
|
+ }
|
|
|
|
|
+ s2.subtract(vo.getOutamountfreeze());
|
|
|
|
|
+ if ("1".equals(inamountFlag)) {
|
|
|
|
|
+ s2 = s2.add(vo.getInamount());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if ("0".equals(closeplFlag)) {
|
|
|
|
|
+ vo.setAvaiableoutmoney(s1.compareTo(s2) > 0 ? s2 : s1);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ vo.setAvaiableoutmoney(s1);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 减去账户出金阀值
|
|
|
|
|
+ if (vo.getOutthreshold() != null) {
|
|
|
|
|
+ if (vo.getOutthreshold().compareTo(vo.getAvaiableoutmoney()) > -1) {
|
|
|
|
|
+ vo.setAvaiableoutmoney(BigDecimal.ZERO);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ vo.setAvaiableoutmoney(vo.getAvaiableoutmoney().subtract(vo.getOutthreshold()));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 可出小于0,显示时强制值为0
|
|
|
|
|
+ if (BigDecimal.ZERO.compareTo(vo.getAvaiableoutmoney()) > -1) {
|
|
|
|
|
+ vo.setAvaiableoutmoney(BigDecimal.ZERO);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private void setAvaliableAmount(InvestorQueryResult vo, String floatplFlag) {
|
|
|
|
|
+ //可用资金:
|
|
|
|
|
+ // 账户总浮动盈亏为负:
|
|
|
|
|
+ // =期末余额+总浮动盈亏(收益权)-占用-冻结-其它冻结-手续费冻结-出金冻结
|
|
|
|
|
+ // 账户总浮动盈亏为正 且 113 = 0 :
|
|
|
|
|
+ // =期末余额-占用-冻结-其它冻结-手续费冻结-出金冻结
|
|
|
|
|
+ // 账户总浮动盈亏为正 且 113 = 1 :
|
|
|
|
|
+ // =期末余额+总浮动盈亏(收益权)-占用-冻结-其它冻结-手续费冻结-出金冻结
|
|
|
|
|
+ // *系统参数”113“(当日浮动盈利是否可用) 0:不可用 1:可用
|
|
|
|
|
+ if (vo == null) return;
|
|
|
|
|
+
|
|
|
|
|
+ if (floatplFlag.equals("1") || vo.getFloatpl().compareTo(new BigDecimal(0)) < 0) {
|
|
|
|
|
+ vo.setAvaiablemoney(vo.getCurrentbalance().add(vo.getFloatpl()).subtract(vo.getUsedmargin())
|
|
|
|
|
+ .subtract(vo.getFreezemargin()).subtract(vo.getOtherfreezemargin()).subtract(vo.getFreezecharge())
|
|
|
|
|
+ .subtract(vo.getOutamountfreeze()));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ vo.setAvaiablemoney(vo.getCurrentbalance().subtract(vo.getUsedmargin())
|
|
|
|
|
+ .subtract(vo.getFreezemargin()).subtract(vo.getOtherfreezemargin()).subtract(vo.getFreezecharge())
|
|
|
|
|
+ .subtract(vo.getOutamountfreeze()));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public PageResult<PositionSumSheetResult> queryinvestortradeposition(PositionSumSheetParam param, HttpServletRequest request) {
|
|
|
|
|
+ Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
|
|
|
|
|
+ PageResult<PositionSumSheetResult> pageResult = new PageResult<>();
|
|
|
|
|
+ if (iCommonService.checkTaaccountReport(systemmanager, param.getAccountid())) {
|
|
|
|
|
+ pageResult.setCode(Constants.Error_Code_Design);
|
|
|
|
|
+ pageResult.setMessage(AjaxResult.dealMsg(MessageType.QUERY_ERROR_CODE_004.getCode(), request.getHeader("Accept-Language")));
|
|
|
|
|
+ return pageResult;
|
|
|
|
|
+ }
|
|
|
|
|
+ IPage<PositionSumSheetResult> page = new Page<>(param.getPageNum(), param.getPageSize());
|
|
|
|
|
+ IPage<PositionSumSheetResult> resultIPage = iTradeOrderdetailMapper.queryTradePositionPage(page, param);
|
|
|
|
|
+ //处理金额
|
|
|
|
|
+ dealSunAmount(resultIPage.getRecords());
|
|
|
|
|
+ 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;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public AjaxResult sellGoods(String deliveryorderid, Long marketid, HttpServletRequest request) {
|
|
|
|
|
+ Marketrun marketRun = iMarketrunMapper.selectOne(new QueryWrapper<Marketrun>().eq("marketid", marketid));
|
|
|
|
|
+ if (marketRun != null && marketRun.getRunstatus().equals(2)) {
|
|
|
|
|
+ log.info("支付交收货款处理开始");
|
|
|
|
|
+ Long uuid = SerialNumberUtils.getNewSerialNumber(SerialNumberUtils.prefix_capacity);
|
|
|
|
|
+ Calculator ca = new Calculator(uuid, FunCodeConstants.FuncCode_DeliveryProviderPaySellAmountReq);
|
|
|
|
|
+ SerialNumberUtils.lockMap.put(uuid, ca);
|
|
|
|
|
+
|
|
|
|
|
+ TkernelMI2.DeliveryProviderPaySellAmountReq.Builder builder = TkernelMI2.DeliveryProviderPaySellAmountReq.newBuilder();
|
|
|
|
|
+ Common.MessageHead.Builder hd = Common.MessageHead.newBuilder();
|
|
|
|
|
+ hd.setFunCode(FunCodeConstants.FuncCode_DeliveryProviderPaySellAmountReq);
|
|
|
|
|
+ hd.setUUID(String.valueOf(uuid));
|
|
|
|
|
+ hd.setClientTime(System.currentTimeMillis());
|
|
|
|
|
+ hd.setMarketID(Integer.parseInt(String.valueOf(marketid)));
|
|
|
|
|
+ builder.setHeader(hd);
|
|
|
|
|
+ builder.setDeliveryOrderID(Long.parseLong(deliveryorderid));
|
|
|
|
|
+
|
|
|
|
|
+ byte[] body = ProtoHelper.getNTAS(builder.build().toByteArray(),
|
|
|
|
|
+ FunCodeConstants.FuncCode_DeliveryProviderPaySellAmountReq);
|
|
|
|
|
+
|
|
|
|
|
+ rabbitTemplate.send(SysConstants.TradeCpReq, new Message(body, new MessageProperties()));
|
|
|
|
|
+
|
|
|
|
|
+ synchronized (ca) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ ca.wait(6000);
|
|
|
|
|
+ Object o = ca.obj;
|
|
|
|
|
+ if (o != null) {
|
|
|
|
|
+ TkernelMI2.DeliveryProviderPaySellAmountRsp rsp_ = (TkernelMI2.DeliveryProviderPaySellAmountRsp) o;
|
|
|
|
|
+ if (rsp_.getRetCode() == 0) {
|
|
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM012.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, ProtoErrorCodes.resultMsg(rsp_.getRetCode()), "", null);
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM006.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (InterruptedException e) {
|
|
|
|
|
+ log.error("DeliveryProviderPaySellAmountRsp 获取响应失败,失败原因:" + e.getMessage());
|
|
|
|
|
+ } finally {
|
|
|
|
|
+ SerialNumberUtils.lockMap.remove(uuid);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return AjaxResult.error(Constants.Error_Code_Design, MessageType.QUERY_ERROR_CODE_008.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ }
|
|
|
|
|
+ return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private int failDeliveryOffline(String deliveryorderid, String auditremark) {
|
|
|
|
|
+ Marketrun mr = iMarketrunMapper.selectOne(new QueryWrapper<Marketrun>().eq("marketid", 0L));
|
|
|
|
|
+ if (mr != null && deliveryorderid != null) {
|
|
|
|
|
+ return iTradeOrderdetailMapper.failDeliveryOffline(mr.getTradedate(), deliveryorderid, auditremark);
|
|
|
|
|
+ }
|
|
|
|
|
+ return -1;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private int closeDeliveryOffline(String deliveryorderid) {
|
|
|
|
|
+ Marketrun mr = iMarketrunMapper.selectOne(new QueryWrapper<Marketrun>().eq("marketid", 0L));
|
|
|
|
|
+ if (mr != null && deliveryorderid != null) {
|
|
|
|
|
+ return iTradeOrderdetailMapper.closeDeliveryOffline(mr.getTradedate(), deliveryorderid);
|
|
|
|
|
+ }
|
|
|
|
|
+ return -1;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
private void getPerformanceTemplateById(WarehouseCommissionResultDetail dto) {
|
|
private void getPerformanceTemplateById(WarehouseCommissionResultDetail dto) {
|
|
|
Performanceplantemplate plantemplate = iPerformanceplantemplateMapper.selectOne(
|
|
Performanceplantemplate plantemplate = iPerformanceplantemplateMapper.selectOne(
|
|
|
new QueryWrapper<Performanceplantemplate>().eq("autoid", dto.getWrTradeOrderDetail().getPerformancetemplateid()));
|
|
new QueryWrapper<Performanceplantemplate>().eq("autoid", dto.getWrTradeOrderDetail().getPerformancetemplateid()));
|