Bladeren bron

新增接口以及修改bug

xie.kaifeng 3 maanden geleden
bovenliggende
commit
e26fc9665a
27 gewijzigde bestanden met toevoegingen van 850 en 11 verwijderingen
  1. 11 5
      mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/TradingMarketSetController.java
  2. 77 0
      mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/TradingWarehouseSetController.java
  3. 6 4
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/ITradingMarketSetService.java
  4. 28 0
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/ITradingWarehouseSetService.java
  5. 3 1
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/CommonServiceImpl.java
  6. 146 0
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/TradingMarketSetServiceImpl.java
  7. 241 0
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/TradingWarehouseSetServiceImpl.java
  8. 6 0
      mtp3-century/src/main/resources/mapper/GoodsMapper.xml
  9. 32 0
      mtp3-century/src/main/resources/mapper/MarketMapper.xml
  10. 79 0
      mtp3-century/src/main/resources/mapper/PerformanceplantemplateMapper.xml
  11. 7 0
      mtp3-century/src/main/resources/message_en.properties
  12. 7 0
      mtp3-century/src/main/resources/message_th.properties
  13. 7 0
      mtp3-century/src/main/resources/message_vi.properties
  14. 7 0
      mtp3-century/src/main/resources/message_zh-cn.properties
  15. 7 0
      mtp3-century/src/main/resources/message_zh-hk.properties
  16. 7 0
      mtp3-century/src/main/resources/message_zh-tw.properties
  17. 7 0
      mtp3-common/src/main/java/com/muchinfo/mtp3common/enumtype/MessageType.java
  18. 6 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IMarketMapper.java
  19. 8 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IPerformanceplantemplateMapper.java
  20. 2 1
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/Performancesteptemplate.java
  21. 4 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/common/GoodsSelectParam.java
  22. 23 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/tradingmarket/MarketRunSectiionParam.java
  23. 21 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/tradingmarket/MarketRunSectiionResult.java
  24. 22 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/tradingmarket/QuoteSourceGroupRunStepParam.java
  25. 30 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/tradingmarket/SpotFulfillmentDelParam.java
  26. 33 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/tradingmarket/SpotFulfillmentResult.java
  27. 23 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/tradingmarket/SpotFulfillmentViewResult.java

+ 11 - 5
mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/TradingMarketSetController.java

@@ -3,10 +3,8 @@ package com.muchinfo.mtp3century.controller;
 import com.muchinfo.mtp3century.service.ITradingMarketSetService;
 import com.muchinfo.mtp3century.utils.AjaxResult;
 import com.muchinfo.mtp3common.vo.PageResult;
-import com.muchinfo.mtp3pojos.entity.Externalexchange;
-import com.muchinfo.mtp3pojos.entity.Quotesourcegroup;
-import com.muchinfo.mtp3pojos.entity.Summertimegroup;
-import com.muchinfo.mtp3pojos.entity.Summertimegroupconfig;
+import com.muchinfo.mtp3pojos.entity.*;
+import com.muchinfo.mtp3pojos.vo.tradingmarket.QuoteSourceGroupRunStepParam;
 import com.muchinfo.mtp3pojos.vo.tradingmarket.TradingGroupSetResult;
 import com.muchinfo.mtp3pojos.vo.tradingmarket.TradingMarketSetGroupConfigParam;
 import io.swagger.annotations.Api;
@@ -19,6 +17,8 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
 
 @RestController
 @RequestMapping("/marketset")
@@ -141,9 +141,15 @@ public class TradingMarketSetController {
     }
 
     @RequestMapping(method = RequestMethod.GET, value = "/quoteSourceGroupRunStepDetail")
-    @ApiOperation("交易市场管理--> 行情设置 --> 外部平台管理-->  详情")
+    @ApiOperation("交易市场管理--> 行情设置 --> 分组时段管理-->  详情")
     @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
     public AjaxResult<Quotesourcegroup> quoteSourceGroupRunStepDetail(Long autoId, HttpServletRequest request) {
         return iTradingMarketSetService.quoteSourceGroupRunStepDetail(autoId, request);
     }
+    @RequestMapping(method = RequestMethod.POST, value = "/editSave")
+    @ApiOperation("交易市场管理--> 行情设置 --> 分组时段管理 --> 修改保存")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
+    public AjaxResult editSave(HttpServletRequest request,@RequestBody QuoteSourceGroupRunStepParam param) {
+        return iTradingMarketSetService.editSave(request, param);
+    }
 }

+ 77 - 0
mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/TradingWarehouseSetController.java

@@ -0,0 +1,77 @@
+package com.muchinfo.mtp3century.controller;
+
+import com.muchinfo.mtp3century.service.ITradingWarehouseSetService;
+import com.muchinfo.mtp3century.utils.AjaxResult;
+import com.muchinfo.mtp3common.vo.PageResult;
+import com.muchinfo.mtp3pojos.entity.Market;
+import com.muchinfo.mtp3pojos.entity.Marketrunstepdetail;
+import com.muchinfo.mtp3pojos.entity.Summertimegroup;
+import com.muchinfo.mtp3pojos.vo.tradingmarket.MarketRunSectiionResult;
+import com.muchinfo.mtp3pojos.vo.tradingmarket.SpotFulfillmentDelParam;
+import com.muchinfo.mtp3pojos.vo.tradingmarket.SpotFulfillmentResult;
+import com.muchinfo.mtp3pojos.vo.tradingmarket.SpotFulfillmentViewResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/warehouseSet")
+@Api(value = "交易市场API", description = "交易市场管理-->仓单市场管理")
+public class TradingWarehouseSetController {
+
+    @Resource
+    private ITradingWarehouseSetService iTradingWarehouseSetService;
+
+    @RequestMapping(method = RequestMethod.GET, value = "/querySpotFulfillment")
+    @ApiOperation("交易市场管理--> 仓单市场管理 --> 现货履约模板 --> 获取列表")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    public PageResult<SpotFulfillmentResult> querySpotFulfillment(Integer pageNum, Integer pageSize, HttpServletRequest request) {
+        return iTradingWarehouseSetService.querySpotFulfillment(pageNum, pageSize, request);
+    }
+
+    @RequestMapping(method = RequestMethod.GET, value = "/spotFulfillmentView")
+    @ApiOperation("交易市场管理--> 仓单市场管理 --> 现货履约模板 --> 详情")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
+    public AjaxResult<SpotFulfillmentViewResult> spotFulfillmentView(Long autoid, HttpServletRequest request) {
+        return iTradingWarehouseSetService.spotFulfillmentView(autoid, request);
+    }
+
+    @RequestMapping(method = RequestMethod.POST, value = "/spotFulfillmentDel")
+    @ApiOperation("交易市场管理--> 仓单市场管理 --> 现货履约模板 --> 修改(此页面对templatetype需要特殊处理)")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
+    public AjaxResult spotFulfillmentDel(@RequestBody SpotFulfillmentDelParam param, HttpServletRequest request) {
+        return iTradingWarehouseSetService.spotFulfillmentDel(param, request);
+    }
+
+    @RequestMapping(method = RequestMethod.GET, value = "/marketrunsectiion")
+    @ApiOperation("交易市场管理--> 仓单市场管理 --> 运行时段管理 --> 初始化下拉列表")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
+    public AjaxResult<Market> marketrunsectiion(HttpServletRequest request) {
+        return iTradingWarehouseSetService.marketrunsectiion(request);
+    }
+
+    @RequestMapping(method = RequestMethod.GET, value = "/querymarketrunsectiion")
+    @ApiOperation("交易市场管理--> 仓单市场管理 --> 运行时段管理 --> 获取列表")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    public PageResult<MarketRunSectiionResult> querymarketrunsectiion(Integer pageNum, Integer pageSize, HttpServletRequest request) {
+        return iTradingWarehouseSetService.querymarketrunsectiion(pageNum, pageSize, request);
+    }
+
+    @RequestMapping(method = RequestMethod.GET, value = "/queryMarketRunSectiionById")
+    @ApiOperation("交易市场管理--> 仓单市场管理 --> 现货履约模板 --> 详情")
+    @ApiResponse(code = 200, message = "成功", response = AjaxResult.class)
+    public AjaxResult<Map<Integer, List<Marketrunstepdetail>>> queryMarketRunSectiionById(Long markerid, HttpServletRequest request) {
+        return iTradingWarehouseSetService.queryMarketRunSectiionById(markerid, request);
+    }
+
+
+}

+ 6 - 4
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/ITradingMarketSetService.java

@@ -2,14 +2,14 @@ package com.muchinfo.mtp3century.service;
 
 import com.muchinfo.mtp3century.utils.AjaxResult;
 import com.muchinfo.mtp3common.vo.PageResult;
-import com.muchinfo.mtp3pojos.entity.Externalexchange;
-import com.muchinfo.mtp3pojos.entity.Quotesourcegroup;
-import com.muchinfo.mtp3pojos.entity.Summertimegroup;
-import com.muchinfo.mtp3pojos.entity.Summertimegroupconfig;
+import com.muchinfo.mtp3pojos.entity.*;
+import com.muchinfo.mtp3pojos.vo.tradingmarket.QuoteSourceGroupRunStepParam;
 import com.muchinfo.mtp3pojos.vo.tradingmarket.TradingGroupSetResult;
 import com.muchinfo.mtp3pojos.vo.tradingmarket.TradingMarketSetGroupConfigParam;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
 
 public interface ITradingMarketSetService {
     PageResult<Summertimegroup> querysummertimegroup(Integer pageNum, Integer pageSize, HttpServletRequest request);
@@ -45,4 +45,6 @@ public interface ITradingMarketSetService {
     AjaxResult quotecopy(HttpServletRequest request, Long source, Long target);
 
     AjaxResult<Quotesourcegroup> quoteSourceGroupRunStepDetail(Long autoId, HttpServletRequest request);
+
+    AjaxResult editSave(HttpServletRequest request, QuoteSourceGroupRunStepParam param);
 }

+ 28 - 0
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/ITradingWarehouseSetService.java

@@ -0,0 +1,28 @@
+package com.muchinfo.mtp3century.service;
+
+import com.muchinfo.mtp3century.utils.AjaxResult;
+import com.muchinfo.mtp3common.vo.PageResult;
+import com.muchinfo.mtp3pojos.entity.Market;
+import com.muchinfo.mtp3pojos.entity.Marketrunstepdetail;
+import com.muchinfo.mtp3pojos.vo.tradingmarket.MarketRunSectiionResult;
+import com.muchinfo.mtp3pojos.vo.tradingmarket.SpotFulfillmentDelParam;
+import com.muchinfo.mtp3pojos.vo.tradingmarket.SpotFulfillmentResult;
+import com.muchinfo.mtp3pojos.vo.tradingmarket.SpotFulfillmentViewResult;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
+
+public interface ITradingWarehouseSetService {
+    PageResult<SpotFulfillmentResult> querySpotFulfillment(Integer pageNum, Integer pageSize, HttpServletRequest request);
+
+    AjaxResult<SpotFulfillmentViewResult> spotFulfillmentView(Long autoid, HttpServletRequest request);
+
+    AjaxResult spotFulfillmentDel(SpotFulfillmentDelParam param, HttpServletRequest request);
+
+    AjaxResult<Market> marketrunsectiion(HttpServletRequest request);
+
+    PageResult<MarketRunSectiionResult> querymarketrunsectiion(Integer pageNum, Integer pageSize, HttpServletRequest request);
+
+    AjaxResult<Map<Integer, List<Marketrunstepdetail>>> queryMarketRunSectiionById(Long markerid, HttpServletRequest request);
+}

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

@@ -227,7 +227,9 @@ public class CommonServiceImpl implements ICommonService {
         if (StringUtils.isNotBlank(param.getTrademodels())) {
             param.setTradeModeSplit(param.getTrademodels().split(","));
         }
-
+        if (StringUtils.isNotBlank(param.getExcludetrademodels())) {
+            param.setExcludetrademodelarray(param.getExcludetrademodels().split(","));
+        }
         List<GoodsSelectResult> goodsSelectResults = iGoodsMapper.queryGoodsSelect(param);
         return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), goodsSelectResults);
     }

+ 146 - 0
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/TradingMarketSetServiceImpl.java

@@ -11,6 +11,7 @@ import com.muchinfo.mtp3common.enumtype.MessageType;
 import com.muchinfo.mtp3common.vo.PageResult;
 import com.muchinfo.mtp3interface.mapper.*;
 import com.muchinfo.mtp3pojos.entity.*;
+import com.muchinfo.mtp3pojos.vo.tradingmarket.QuoteSourceGroupRunStepParam;
 import com.muchinfo.mtp3pojos.vo.tradingmarket.TradingGroupSetResult;
 import com.muchinfo.mtp3pojos.vo.tradingmarket.TradingMarketSetGroupConfigParam;
 import org.slf4j.Logger;
@@ -321,6 +322,151 @@ public class TradingMarketSetServiceImpl implements ITradingMarketSetService {
         return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), quoteSourceGroup);
     }
 
+    @Override
+    public AjaxResult editSave(HttpServletRequest request, QuoteSourceGroupRunStepParam param) {
+        //删除旧数据
+        iQuotesourcegrouprunstepMapper.delete(new QueryWrapper<Quotesourcegrouprunstep>().eq("groupId", param.getGroupId()));
+
+        if(CollectionUtils.isNotEmpty(param.getQuoteSourceGroupRunStep())) {
+            //根据归属日分组
+            int sectionid = 0; //时间段号
+            Map<Integer, List<Quotesourcegrouprunstep>> group = new HashMap<>();
+            for (Quotesourcegrouprunstep item : param.getQuoteSourceGroupRunStep()) {
+                if (item != null && item.getTradeweekday() != null) {
+                    item.setGroupid(param.getGroupId());
+                    //-1:上日 0:当日 1:次日
+                    if (item.getTradeweekday().equals(item.getStartweekday())) {
+                        item.setStartflag(0);
+                    }
+                    if (item.getTradeweekday().equals(item.getEndweekday())) {
+                        item.setEndflag(0);
+                    }
+
+                    if (item.getTradeweekday() == 1) {
+                        //  5 6 0 1 2
+                        //上日
+                        if (item.getStartweekday() == 5 || item.getStartweekday() == 6 || item.getStartweekday() == 0) {
+                            item.setStartflag(-1);
+                        }
+                        if (item.getEndweekday() == 5 || item.getEndweekday() == 6 || item.getEndweekday() == 0) {
+                            item.setEndflag(-1);
+                        }
+                        //次日
+                        if (item.getStartweekday() == 2) {
+                            item.setStartflag(1);
+                        }
+                        if (item.getEndweekday() == 2) {
+                            item.setEndflag(1);
+                        }
+                    } else if (item.getTradeweekday() == 5) {
+                        //0 1 4 5 6
+                        //上日
+                        if (item.getStartweekday() == 5
+                                || item.getStartweekday() == 4
+                                || item.getStartweekday() == 1
+                                || item.getStartweekday() == 0) {
+                            item.setStartflag(-1);
+                        }
+                        if (item.getStartweekday() == 5
+                                || item.getStartweekday() == 4
+                                || item.getStartweekday() == 1
+                                || item.getStartweekday() == 0) {
+                            item.setEndflag(-1);
+                        }
+                        //次日
+                        if (item.getTradeweekday() < item.getStartweekday()) {
+                            item.setStartflag(1);
+                        }
+                        if (item.getTradeweekday() < item.getEndweekday()) {
+                            item.setEndflag(1);
+                        }
+
+                    } else {
+                        if (item.getTradeweekday() == 6) {//5 6 0
+                            //上日
+                            if (item.getStartweekday() == 5) {
+                                item.setStartflag(-1);
+                            }
+                            if (item.getEndweekday() == 5) {
+                                item.setEndflag(-1);
+                            }
+
+                            //次日
+                            if (item.getStartweekday() == 0) {
+                                item.setStartflag(1);
+                            }
+                            if (item.getEndweekday() == 0) {
+                                item.setEndflag(1);
+                            }
+
+                        } else if (item.getTradeweekday() == 0) {//  6 0 1
+                            //上日
+                            if (item.getStartweekday() == 6) {
+                                item.setStartflag(-1);
+                            }
+                            if (item.getEndweekday() == 6) {
+                                item.setEndflag(-1);
+                            }
+
+                            //次日
+                            if (item.getStartweekday() == 1) {
+                                item.setStartflag(1);
+                            }
+                            if (item.getEndweekday() == 1) {
+                                item.setEndflag(1);
+                            }
+                        } else {
+                            //上日
+                            if (item.getTradeweekday() > item.getStartweekday()) {
+                                item.setStartflag(-1);
+                            }
+                            if (item.getTradeweekday() > item.getEndweekday()) {
+                                item.setEndflag(-1);
+                            }
+                            //次日
+                            if (item.getTradeweekday() < item.getStartweekday()) {
+                                item.setStartflag(1);
+                            }
+                            if (item.getTradeweekday() < item.getEndweekday()) {
+                                item.setEndflag(1);
+                            }
+                        }
+                    }
+
+                    if (group.containsKey(item.getTradeweekday())) {
+                        if (item.getRunstep() == 0) {
+                            item.setSectionid(0);//清盘结算时间  时间段好为0
+                        } else {
+                            item.setSectionid(++sectionid);////每个交易日的时间段号 ,都从1开始,然后递增
+                        }
+                        group.get(item.getTradeweekday()).add(item);
+                    } else {
+                        List<Quotesourcegrouprunstep> list = new ArrayList<>();
+                        sectionid = 1; //每个交易日的时间段号 ,都从1开始
+                        if (item.getRunstep() == 0) {
+                            item.setSectionid(0);
+                        } else {
+                            item.setSectionid(sectionid);
+                        }
+                        list.add(item);
+                        group.put(item.getTradeweekday(), list);
+                    }
+                }
+            }
+
+            //保存数据,每组都增加 开市、休市记录
+            for (Map.Entry<Integer, List<Quotesourcegrouprunstep>> entry : group.entrySet()) {
+                List<Quotesourcegrouprunstep> list = entry.getValue();
+                int j = list.size() - 1;
+                for (int i = 0; i <= j; i++) {
+                    Quotesourcegrouprunstep det = list.get(i);
+                    iQuotesourcegrouprunstepMapper.insert(det);
+                }
+            }
+        }
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+    }
+
     private List<Quotesourcegrouprunstep> quoteSort(List<Quotesourcegrouprunstep> parm){
         if(parm.isEmpty()){
             return parm;

+ 241 - 0
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/TradingWarehouseSetServiceImpl.java

@@ -0,0 +1,241 @@
+package com.muchinfo.mtp3century.service.impl;
+
+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.extension.plugins.pagination.Page;
+import com.muchinfo.mtp3century.service.ICommonService;
+import com.muchinfo.mtp3century.service.ITradingWarehouseSetService;
+import com.muchinfo.mtp3century.utils.AjaxResult;
+import com.muchinfo.mtp3common.enumtype.Constants;
+import com.muchinfo.mtp3common.enumtype.MessageType;
+import com.muchinfo.mtp3common.enumtype.SysConstants;
+import com.muchinfo.mtp3common.vo.PageResult;
+import com.muchinfo.mtp3interface.mapper.*;
+import com.muchinfo.mtp3pojos.entity.*;
+import com.muchinfo.mtp3pojos.vo.tradingmarket.MarketRunSectiionResult;
+import com.muchinfo.mtp3pojos.vo.tradingmarket.SpotFulfillmentDelParam;
+import com.muchinfo.mtp3pojos.vo.tradingmarket.SpotFulfillmentResult;
+import com.muchinfo.mtp3pojos.vo.tradingmarket.SpotFulfillmentViewResult;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
+import java.util.*;
+
+@Service
+public class TradingWarehouseSetServiceImpl implements ITradingWarehouseSetService {
+
+    @Resource
+    private ICommonService iCommonService;
+    @Resource
+    private ISystemmanagerMapper iSystemmanagerMapper;
+    @Resource
+    private IPerformanceplantemplateMapper iPerformanceplantemplateMapper;
+    @Resource
+    private IPerformancesteptemplateMapper iPerformancesteptemplateMapper;
+    @Resource
+    private IMarketMapper iMarketMapper;
+    @Resource
+    private IMarketrunstepdetailMapper iMarketrunstepdetailMapper;
+
+    @Override
+    public PageResult<SpotFulfillmentResult> querySpotFulfillment(Integer pageNum, Integer pageSize, HttpServletRequest request) {
+        PageResult<SpotFulfillmentResult> pageResult = new PageResult<>();
+        IPage<SpotFulfillmentResult> page = new Page<>(pageNum, pageSize);
+        IPage<SpotFulfillmentResult> resultIPage = iPerformanceplantemplateMapper.querySpotFulfillment(page, 2);
+        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<SpotFulfillmentViewResult> spotFulfillmentView(Long autoid, HttpServletRequest request) {
+        SpotFulfillmentViewResult param = new SpotFulfillmentViewResult();
+        Performanceplantemplate plantemplate = iPerformanceplantemplateMapper.selectById(autoid);
+        param.setParam(plantemplate);
+        List<Performancesteptemplate> pstList = iPerformanceplantemplateMapper.getPerformanceStepByTmpId(autoid);
+        if (CollectionUtils.isNotEmpty(pstList)) {
+            pstList.sort(new Comparator<Performancesteptemplate>() {
+                @Override
+                public int compare(Performancesteptemplate arg0, Performancesteptemplate arg1) {
+                    return arg0.getStepindex() - arg1.getStepindex();
+                }
+            });
+            param.setPerformancesteps(pstList);
+        }
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), param);
+    }
+
+    @Override
+    public AjaxResult spotFulfillmentDel(SpotFulfillmentDelParam param, HttpServletRequest request) {
+        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
+
+        AjaxResult ajaxResult = check(param, request);
+        if (ajaxResult.getCode() == 500) {
+            return ajaxResult;
+        }
+        if (param.getAutoid() == null) {
+            Performanceplantemplate plantemplate = new Performanceplantemplate();
+            BeanUtils.copyProperties(param, plantemplate);
+            plantemplate.setCreatorid(systemmanager.getAutoid());
+            plantemplate.setCreatetime(new Date());
+            if (plantemplate.getUserid() == null) {
+                plantemplate.setUserid(1L);
+            }
+            iPerformanceplantemplateMapper.insert(plantemplate);
+            for (Performancesteptemplate pst : param.getList()) {
+                Performancesteptemplate steptemplate = new Performancesteptemplate();
+                BeanUtils.copyProperties(pst, steptemplate);
+                steptemplate.setTemplateid(plantemplate.getAutoid());
+                if (steptemplate.getStepvalue() != null) {
+                    steptemplate.setStepvalue(steptemplate.getStepvalue().divide(new BigDecimal(100)));
+                }
+                if (pst.getIsauto() == null) {
+                    steptemplate.setIsauto(0);
+                }
+                iPerformancesteptemplateMapper.insert(steptemplate);
+            }
+        } else {
+            Performanceplantemplate plantemplate = iPerformanceplantemplateMapper.selectById(param.getAutoid());
+            plantemplate.setPaymenttype(param.getPaymenttype());
+            plantemplate.setTemplatename(param.getTemplatename());
+            plantemplate.setTakemode(param.getTakemode());
+            iPerformanceplantemplateMapper.updateById(plantemplate);
+            //履约步骤先删除再插入
+            iPerformancesteptemplateMapper.delete(new QueryWrapper<Performancesteptemplate>().eq("templateid", param.getAutoid()));
+            for (Performancesteptemplate pst : param.getList()) {
+                Performancesteptemplate steptemplate = new Performancesteptemplate();
+                BeanUtils.copyProperties(pst, steptemplate);
+                steptemplate.setTemplateid(plantemplate.getAutoid());
+                if (steptemplate.getStepvalue() != null) {
+                    steptemplate.setStepvalue(steptemplate.getStepvalue().divide(new BigDecimal(100)));
+                }
+                if (pst.getIsauto() == null) {
+                    steptemplate.setIsauto(0);
+                }
+                iPerformancesteptemplateMapper.insert(steptemplate);
+            }
+        }
+
+        return ajaxResult;
+    }
+
+    @Override
+    public AjaxResult<Market> marketrunsectiion(HttpServletRequest request) {
+        List<Integer> status = new ArrayList<>();
+        status.add(1);
+        status.add(2);
+        //处理不同的账户类型查询
+        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
+        Long exchareaid = null;
+        //如果不是平台管理员
+        if (!SysConstants.SYS_TYPE_MANAGE.equals(systemmanager.getReletype())) {
+            exchareaid = systemmanager.getAreauserid();
+        }
+        List<Market> markets = iMarketMapper.getMarketsByTradeMode(exchareaid, status);
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), markets);
+    }
+
+    @Override
+    public PageResult<MarketRunSectiionResult> querymarketrunsectiion(Integer pageNum, Integer pageSize, HttpServletRequest request) {
+        Systemmanager systemmanager = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
+        Long exchareaid = null;
+        //如果不是平台管理员
+        if (!SysConstants.SYS_TYPE_MANAGE.equals(systemmanager.getReletype())) {
+            exchareaid = systemmanager.getAreauserid();
+        }
+        PageResult<MarketRunSectiionResult> pageResult = new PageResult<>();
+        IPage<MarketRunSectiionResult> page = new Page<>(pageNum, pageSize);
+        IPage<MarketRunSectiionResult> resultIPage = iMarketMapper.querymarketrunsectiion(page, 3, exchareaid);
+        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<Map<Integer, List<Marketrunstepdetail>>> queryMarketRunSectiionById(Long markerid, HttpServletRequest request) {
+        List<Marketrunstepdetail> list = iMarketrunstepdetailMapper.selectList(new QueryWrapper<Marketrunstepdetail>()
+                .eq("marketid", markerid));
+        Map<Integer, List<Marketrunstepdetail>> group = new HashMap<>();
+        for(Marketrunstepdetail item:list){
+            if(item !=null && item.getTradeweekday() !=null){
+                if(group.containsKey(item.getTradeweekday())){
+                    group.get(item.getTradeweekday()).add(item);
+                }else{
+                    List<Marketrunstepdetail> list_ = new ArrayList<>();
+                    list_.add(item);
+                    group.put(item.getTradeweekday(), list_);
+                }
+            }
+        }
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), group);
+    }
+
+    private AjaxResult check(SpotFulfillmentDelParam param, HttpServletRequest request) {
+        Performanceplantemplate p = iPerformanceplantemplateMapper.selectOne(new QueryWrapper<Performanceplantemplate>()
+                .eq("templatename", param.getTemplatename())
+                .eq("autoid", param.getAutoid()));
+        if (p != null) {
+            return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM056.getCode(), request.getHeader("Accept-Language"));
+        }
+        BigDecimal buysum = BigDecimal.ZERO;
+        BigDecimal sellsum = BigDecimal.ZERO;
+        Map<Integer, Integer> map = new HashMap<Integer, Integer>();
+        int i = 0;
+        for (Performancesteptemplate pst : param.getList()) {
+            i++;
+            if (pst.getSteptypeid() == 1 || pst.getSteptypeid() == 92) {
+                buysum = buysum.add(pst.getStepvalue());
+            }
+            if (pst.getSteptypeid() == 2) {
+                sellsum = sellsum.add(pst.getStepvalue());
+            }
+            if (sellsum.compareTo(buysum) > 0) {
+                Object[] str = {i};
+                return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM057.getCode(), str, request.getHeader("Accept-Language"));
+            }
+            if (pst.getSteptypeid() == 5 && !map.containsKey(4)) {
+                return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM058.getCode(), request.getHeader("Accept-Language"));
+            }
+            if (pst.getSteptypeid() == 7 && !map.containsKey(6)) {
+                return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM059.getCode(), request.getHeader("Accept-Language"));
+            }
+            map.put(pst.getSteptypeid(), pst.getSteptypeid());
+        }
+        if (buysum.compareTo(BigDecimal.valueOf(100)) != 0) {
+            return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM060.getCode(), request.getHeader("Accept-Language"));
+        }
+        if (sellsum.compareTo(BigDecimal.valueOf(100)) != 0) {
+            return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM061.getCode(), request.getHeader("Accept-Language"));
+        }
+        i = 0;
+        if (map.containsKey(3)) {
+            i++;
+        }
+        if (map.containsKey(4)) {
+            i++;
+        }
+        if (map.containsKey(8)) {
+            i++;
+        }
+        if (i != 1) {
+            return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM062.getCode(), request.getHeader("Accept-Language"));
+        }
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+    }
+
+
+}

+ 6 - 0
mtp3-century/src/main/resources/mapper/GoodsMapper.xml

@@ -106,6 +106,12 @@
                     ${item}
                 </foreach>
             </if>
+            <if test="vo.excludetrademodelarray!=null and vo.excludetrademodelarray.length>0">
+                <foreach collection="vo.excludetrademodelarray" item="item" open=" and m.trademode not in (" close=")"
+                         separator=",">
+                    ${item}
+                </foreach>
+            </if>
         </where>
         order by g.goodscode) t where rownum &lt;= 10
     </select>

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

@@ -167,4 +167,36 @@
         CONNECT BY REGEXP_SUBSTR(mscn.marketids, '[^,]+', 1, LEVEL) IS NOT NULL)
         order by m.trademode
     </select>
+    <select id="getMarketsByTradeMode" resultType="com.muchinfo.mtp3pojos.entity.Market">
+        select * from MARKET where markettype = 2
+        <if test="status!=null">
+            and marketStatus in
+            <foreach item="item" index="index" collection="status"
+                     open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="exchareaid != null and exchareaid != ''">
+            AND exchareaid = #{exchareaid,jdbcType=DECIMAL}
+        </if>
+    </select>
+    <select id="querymarketrunsectiion"
+            resultType="com.muchinfo.mtp3pojos.vo.tradingmarket.MarketRunSectiionResult">
+        SELECT
+        M .marketid,
+        M .marketname,
+        wm_concat(DISTINCT T .TRADEWEEKDAY)weekPlan
+        FROM MARKET M
+        LEFT JOIN MARKETRUNSTEPDETAIL T ON T .marketid = M .marketid
+        WHERE m.MarketStatus != 3 and m.markettype = 2 and m.trademode not in (97,99)
+        and M.marketid > 1000
+        <if test="exchareaid != null and exchareaid != ''">
+            AND m.exchareaid = #{exchareaid,jdbcType=DECIMAL}
+        </if>
+        <if test="trademarkettype != null and trademarkettype != ''">
+            AND m.trademarkettype = #{trademarkettype,jdbcType=DECIMAL}
+        </if>
+        GROUP BY m.marketid, m.marketname
+        ORDER BY m.marketId, m.marketname
+    </select>
 </mapper>

+ 79 - 0
mtp3-century/src/main/resources/mapper/PerformanceplantemplateMapper.xml

@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.muchinfo.mtp3interface.mapper.IPerformanceplantemplateMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.muchinfo.mtp3pojos.entity.Performanceplantemplate">
+        <id column="AUTOID" property="autoid" />
+        <result column="TEMPLATENAME" property="templatename" />
+        <result column="PAYMENTTYPE" property="paymenttype" />
+        <result column="CREATETIME" property="createtime" />
+        <result column="CREATORID" property="creatorid" />
+        <result column="TEMPLATETYPE" property="templatetype" />
+        <result column="TAKEMODE" property="takemode" />
+        <result column="USERID" property="userid" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        AUTOID, TEMPLATENAME, PAYMENTTYPE, CREATETIME, CREATORID, TEMPLATETYPE, TAKEMODE, USERID
+    </sql>
+    <select id="querySpotFulfillment"
+            resultType="com.muchinfo.mtp3pojos.vo.tradingmarket.SpotFulfillmentResult">
+        SELECT
+        ppt.AUTOID,
+        ppt.TEMPLATENAME,
+        ppt.PAYMENTTYPE,
+        ppt.TEMPLATETYPE TYPE,
+        ppt.CREATETIME,
+        ppt.CREATORID,
+        ppt.userid,
+        SM.username as creatorname
+        FROM
+        PERFORMANCEPLANTEMPLATE ppt
+        LEFT JOIN SYSTEMMANAGER sm ON PPT.CREATORID = SM.AUTOID
+        <where>
+            <choose>
+                <when test="type != null and type == 1">
+                    and ppt.TEMPLATETYPE in (0,1)
+                </when>
+                <when test="type != null and type == 2">
+                    and ppt.TEMPLATETYPE in (0,2,3,7,8,9)
+                </when>
+                <otherwise>
+
+                </otherwise>
+            </choose>
+        </where>
+        ORDER BY ppt.CREATETIME DESC
+    </select>
+    <select id="getPerformanceStepByTmpId" resultType="com.muchinfo.mtp3pojos.entity.Performancesteptemplate"
+            parameterType="java.lang.Long">
+        select p.performancestepid,
+               p.planid,
+               p.stepindex,
+               p.stepdays,
+               p.steptypeid,
+               pt.StepTypeName,
+               p.stepvalue,
+               p.stepamount,
+               p.realamount,
+               p.remaindays,
+               p.delaydays,
+               p.isauto,
+               p.islastreceivestep,
+               p.stepstatus,
+               p.steplanchtype,
+               p.executeside,
+               p.starttime,
+               p.endtime,
+               p.remark,
+               p.stepremark
+        from PerformanceStep p
+                 left join PerformancePlan pl on pl.PerformancePlanID = p.planid
+                 left join PerformanceStepType pt on p.StepTypeID = pt.StepTypeID
+        where p.planid = #{autoid}
+        order by p.starttime asc
+    </select>
+
+</mapper>

+ 7 - 0
mtp3-century/src/main/resources/message_en.properties

@@ -84,6 +84,13 @@ message_error_code_system052=This year has already been set under this group
 message_error_code_system053=Market source grouping code already exists
 message_error_code_system054=Market source grouping has been referenced
 message_error_code_system055=Already used and cannot be deleted
+message_error_code_system056=Template name already exists
+message_error_code_system057=Step {0}, the seller's payment value cannot exceed the previous buyer's payment value!
+message_error_code_system058=The buyer can only confirm the goods after the seller has shipped them
+message_error_code_system059=Only after configuring the seller's invoice can the buyer's confirmation ticket be configured
+message_error_code_system060=The buyer must pay a total remittance value equal to 100%
+message_error_code_system061=The seller's collection summary value must be equal to 100%
+message_error_code_system062=Only one can be set for buyer's self pickup, seller's shipment, and warehouse receipt transfer
 login_error_code_001=Account or password error
 login_error_code_002=Unauthorized access is not allowed! Please contact the administrator to handle it!
 login_error_code_003=Login locked!

+ 7 - 0
mtp3-century/src/main/resources/message_th.properties

@@ -84,6 +84,13 @@ message_error_code_system052=\u0E1B\u0E35\u0E19\u0E35\u0E49\u0E16\u0E39\u0E01\u0
 message_error_code_system053=\u0E21\u0E35\u0E42\u0E04\u0E49\u0E14\u0E41\u0E1E\u0E47\u0E04\u0E40\u0E01\u0E47\u0E15\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E15\u0E25\u0E32\u0E14\u0E2D\u0E22\u0E39\u0E48\u0E41\u0E25\u0E49\u0E27
 message_error_code_system054=\u0E01\u0E25\u0E38\u0E48\u0E21\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E15\u0E25\u0E32\u0E14\u0E16\u0E39\u0E01\u0E2D\u0E49\u0E32\u0E07\u0E2D\u0E34\u0E07\u0E41\u0E25\u0E49\u0E27
 message_error_code_system055=\u0E43\u0E0A\u0E49\u0E41\u0E25\u0E49\u0E27 \u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E25\u0E1A\u0E44\u0E14\u0E49
+message_error_code_system056=\u0E21\u0E35\u0E0A\u0E37\u0E48\u0E2D\u0E41\u0E21\u0E48\u0E41\u0E1A\u0E1A\u0E2D\u0E22\u0E39\u0E48\u0E41\u0E25\u0E49\u0E27
+message_error_code_system057=\u0E02\u0E31\u0E49\u0E19\u0E15\u0E2D\u0E19\u0E17\u0E35\u0E48 {0} \u0E21\u0E39\u0E25\u0E04\u0E48\u0E32\u0E01\u0E32\u0E23\u0E40\u0E01\u0E47\u0E1A\u0E23\u0E27\u0E1A\u0E23\u0E27\u0E21\u0E02\u0E2D\u0E07\u0E1C\u0E39\u0E49\u0E02\u0E32\u0E22\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32\u0E21\u0E39\u0E25\u0E04\u0E48\u0E32\u0E17\u0E35\u0E48\u0E1C\u0E39\u0E49\u0E0B\u0E37\u0E49\u0E2D\u0E08\u0E48\u0E32\u0E22\u0E44\u0E1B\u0E01\u0E48\u0E2D\u0E19\u0E2B\u0E19\u0E49\u0E32\u0E19\u0E35\u0E49!
+message_error_code_system058=\u0E01\u0E32\u0E23\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E04\u0E48\u0E32 [\u0E01\u0E32\u0E23\u0E08\u0E31\u0E14\u0E2A\u0E48\u0E07\u0E42\u0E14\u0E22\u0E1C\u0E39\u0E49\u0E02\u0E32\u0E22] \u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E04\u0E48\u0E32\u0E44\u0E14\u0E49\u0E40\u0E17\u0E48\u0E32\u0E19\u0E31\u0E49\u0E19 [\u0E1C\u0E39\u0E49\u0E0B\u0E37\u0E49\u0E2D\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19\u0E2A\u0E34\u0E19\u0E04\u0E49\u0E32]
+message_error_code_system059=\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E04\u0E48\u0E32\u0E44\u0E14\u0E49\u0E2B\u0E25\u0E31\u0E07\u0E08\u0E32\u0E01\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E04\u0E48\u0E32 [\u0E43\u0E1A\u0E41\u0E08\u0E49\u0E07\u0E2B\u0E19\u0E35\u0E49\u0E02\u0E2D\u0E07\u0E1C\u0E39\u0E49\u0E02\u0E32\u0E22] [\u0E15\u0E31\u0E4B\u0E27\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19\u0E1C\u0E39\u0E49\u0E0B\u0E37\u0E49\u0E2D]
+message_error_code_system060=\u0E1C\u0E39\u0E49\u0E0B\u0E37\u0E49\u0E2D\u0E15\u0E49\u0E2D\u0E07\u0E0A\u0E33\u0E23\u0E30\u0E04\u0E48\u0E32\u0E02\u0E19\u0E2A\u0E48\u0E07\u0E23\u0E27\u0E21 100%
+message_error_code_system061=\u0E21\u0E39\u0E25\u0E04\u0E48\u0E32\u0E23\u0E27\u0E21\u0E02\u0E2D\u0E07\u0E1C\u0E39\u0E49\u0E02\u0E32\u0E22\u0E15\u0E49\u0E2D\u0E07\u0E40\u0E17\u0E48\u0E32\u0E01\u0E31\u0E1A 100%
+message_error_code_system062=\u0E1C\u0E39\u0E49\u0E0B\u0E37\u0E49\u0E2D\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\u0E14\u0E49\u0E27\u0E22\u0E15\u0E19\u0E40\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E08\u0E31\u0E14\u0E2A\u0E48\u0E07\u0E42\u0E14\u0E22\u0E1C\u0E39\u0E49\u0E02\u0E32\u0E22\u0E42\u0E2D\u0E19\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E2A\u0E34\u0E19\u0E04\u0E49\u0E32\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32\u0E44\u0E14\u0E49\u0E40\u0E1E\u0E35\u0E22\u0E07\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E40\u0E14\u0E35\u0E22\u0E27
 login_error_code_001=\u0E1A\u0E31\u0E0D\u0E0A\u0E35\u0E2B\u0E23\u0E37\u0E2D\u0E23\u0E2B\u0E31\u0E2A\u0E1C\u0E48\u0E32\u0E19\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07
 login_error_code_002=\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E02\u0E49\u0E32\u0E16\u0E36\u0E07\u0E44\u0E14\u0E49\u0E42\u0E14\u0E22\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A\u0E2D\u0E19\u0E38\u0E0D\u0E32\u0E15! \u0E01\u0E23\u0E38\u0E13\u0E32\u0E15\u0E34\u0E14\u0E15\u0E48\u0E2D\u0E1C\u0E39\u0E49\u0E14\u0E39\u0E41\u0E25\u0E23\u0E30\u0E1A\u0E1A\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23!
 login_error_code_003=\u0E25\u0E47\u0E2D\u0E01\u0E2D\u0E34\u0E19!

+ 7 - 0
mtp3-century/src/main/resources/message_vi.properties

@@ -84,6 +84,13 @@ message_error_code_system051=Tr\u01B0\u1EDBc ti\u00EAn h\u00E3y x\u00F3a t\u1EA5
 message_error_code_system053=M\u00E3 ngu\u1ED3n \u0111\u00E3 t\u1ED3n t\u1EA1i
 message_error_code_system054=Nh\u00F3m ngu\u1ED3n \u0111\u00E3 \u0111\u01B0\u1EE3c tr\u00EDch d\u1EABn
 message_error_code_system055=\u0110\u00E3 \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng Kh\u00F4ng th\u1EC3 x\u00F3a
+message_error_code_system056=T\u00EAn m\u1EABu \u0111\u00E3 t\u1ED3n t\u1EA1i
+message_error_code_system057=B\u01B0\u1EDBc {0} Gi\u00E1 tr\u1ECB thu c\u1EE7a ng\u01B0\u1EDDi b\u00E1n kh\u00F4ng \u0111\u01B0\u1EE3c v\u01B0\u1EE3t qu\u00E1 gi\u00E1 tr\u1ECB thanh to\u00E1n c\u1EE7a ng\u01B0\u1EDDi mua tr\u01B0\u1EDBc \u0111\u00F3!
+message_error_code_system058=Sau khi c\u1EA5u h\u00ECnh [Ng\u01B0\u1EDDi b\u00E1n giao h\u00E0ng] m\u1EDBi c\u00F3 th\u1EC3 c\u1EA5u h\u00ECnh [Ng\u01B0\u1EDDi mua x\u00E1c nh\u1EADn h\u00E0ng]
+message_error_code_system059=Sau khi c\u1EA5u h\u00ECnh [H\u00F3a \u0111\u01A1n c\u1EE7a ng\u01B0\u1EDDi b\u00E1n] m\u1EDBi c\u00F3 th\u1EC3 c\u1EA5u h\u00ECnh [Phi\u1EBFu x\u00E1c nh\u1EADn c\u1EE7a ng\u01B0\u1EDDi mua]
+message_error_code_system060=T\u1ED5ng gi\u00E1 tr\u1ECB thanh to\u00E1n c\u1EE7a ng\u01B0\u1EDDi mua ph\u1EA3i b\u1EB1ng 100%
+message_error_code_system061=T\u1ED5ng gi\u00E1 tr\u1ECB thu c\u1EE7a ng\u01B0\u1EDDi b\u00E1n ph\u1EA3i b\u1EB1ng 100%
+message_error_code_system062=Self-Pick-Up c\u1EE7a ng\u01B0\u1EDDi mua, v\u1EADn chuy\u1EC3n c\u1EE7a ng\u01B0\u1EDDi b\u00E1n, chuy\u1EC3n h\u00F3a \u0111\u01A1n, ch\u1EC9 c\u00F3 th\u1EC3 thi\u1EBFt l\u1EADp m\u1ED9t
 login_error_code_001=L\u1ED7i t\u00E0i kho\u1EA3n ho\u1EB7c m\u1EADt kh\u1EA9u
 login_error_code_002=Kh\u00F4ng \u0111\u01B0\u1EE3c ph\u00E9p, kh\u00F4ng th\u1EC3 truy c\u1EADp! Vui l\u00F2ng li\u00EAn h\u1EC7 v\u1EDBi qu\u1EA3n tr\u1ECB vi\u00EAn \u0111\u1EC3 x\u1EED l\u00FD!
 login_error_code_003=Kh\u00F3a \u0111\u0103ng nh\u1EADp!

+ 7 - 0
mtp3-century/src/main/resources/message_zh-cn.properties

@@ -84,6 +84,13 @@ message_error_code_system052=\u8BE5\u5206\u7EC4\u4E0B\u6B64\u5E74\u4EFD\u5DF2\u8
 message_error_code_system053=\u884C\u60C5\u6E90\u5206\u7EC4\u4EE3\u7801\u5DF2\u5B58\u5728
 message_error_code_system054=\u884C\u60C5\u6E90\u5206\u7EC4\u5DF2\u88AB\u5F15\u7528
 message_error_code_system055=\u5DF2\u88AB\u4F7F\u7528\u4E0D\u80FD\u5220\u9664
+message_error_code_system056=\u6A21\u677F\u540D\u79F0\u5DF2\u5B58\u5728
+message_error_code_system057=\u7B2C{0}\u6B65\uFF0C\u5356\u65B9\u6536\u6B3E\u503C\u4E0D\u80FD\u591A\u4E8E\u4E4B\u524D\u7684\u4E70\u65B9\u652F\u4ED8\u503C\uFF01
+message_error_code_system058=\u914D\u7F6E\u3010\u5356\u65B9\u53D1\u8D27\u3011\u540E\u624D\u53EF\u914D\u7F6E\u3010\u4E70\u65B9\u786E\u8BA4\u8D27\u3011
+message_error_code_system059=\u914D\u7F6E\u3010\u5356\u65B9\u53D1\u7968\u3011\u540E\u624D\u53EF\u914D\u7F6E\u3010\u4E70\u65B9\u786E\u8BA4\u7968\u3011
+message_error_code_system060=\u4E70\u65B9\u652F\u4ED8\u6C47\u603B\u503C\u5FC5\u987B\u7B49\u4E8E100%
+message_error_code_system061=\u5356\u65B9\u6536\u6B3E\u6C47\u603B\u503C\u5FC5\u987B\u7B49\u4E8E100%
+message_error_code_system062=\u4E70\u65B9\u81EA\u63D0\u3001\u5356\u65B9\u53D1\u8D27\u3001\u4ED3\u5355\u8F6C\u79FB\uFF0C\u53EA\u80FD\u8BBE\u7F6E\u4E00\u4E2A
 login_error_code_001=\u8D26\u6237\u6216\u5BC6\u7801\u9519\u8BEF
 login_error_code_002=\u672A\u7ECF\u5141\u8BB8\uFF0C\u4E0D\u53EF\u8BBF\u95EE\uFF01\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u5904\u7406\uFF01
 login_error_code_003=\u767B\u5F55\u9501\u5B9A\uFF01

+ 7 - 0
mtp3-century/src/main/resources/message_zh-hk.properties

@@ -84,6 +84,13 @@ message_error_code_system052=\u8A72\u5206\u7D44\u4E0B\u6B64\u5E74\u4EFD\u5DF2\u8
 message_error_code_system053=\u884C\u60C5\u6E90\u5206\u7D44\u7A0B\u5F0F\u78BC\u5DF2\u5B58\u5728
 message_error_code_system054=\u884C\u60C5\u6E90\u5206\u7D44\u5DF2\u88AB\u5F15\u7528
 message_error_code_system055=\u5DF2\u88AB\u4F7F\u7528\u4E0D\u80FD\u5220\u9664
+message_error_code_system056=\u7BC4\u672C\u540D\u7A31\u5DF2\u5B58\u5728
+message_error_code_system057=\u7B2C{0}\u6B65\uFF0C\u8CE3\u65B9\u6536\u6B3E\u503C\u4E0D\u80FD\u591A\u65BC\u4E4B\u524D\u7684\u8CB7\u65B9\u652F\u4ED8\u503C\uFF01
+message_error_code_system058=\u914D\u5BD8\u3010\u8CE3\u65B9\u767C\u8CA8\u3011\u5F8C\u624D\u53EF\u914D\u7F6E\u3010\u8CB7\u65B9\u78BA\u8A8D\u8CA8\u3011
+message_error_code_system059=\u914D\u5BD8\u3010\u8CE3\u65B9\u767C\u7968\u3011\u5F8C\u624D\u53EF\u914D\u7F6E\u3010\u8CB7\u65B9\u78BA\u8A8D\u7968\u3011
+message_error_code_system060=\u8CB7\u65B9\u652F\u4ED8\u532F\u7E3D\u503C\u5FC5\u9808\u7B49\u65BC100%
+message_error_code_system061=\u8CE3\u65B9\u6536\u6B3E\u532F\u7E3D\u503C\u5FC5\u9808\u7B49\u65BC100%
+message_error_code_system062=\u8CB7\u65B9\u81EA\u63D0\u3001\u8CE3\u65B9\u767C\u8CA8\u3001\u5009\u55AE\u8F49\u79FB\uFF0C\u53EA\u80FD\u8A2D\u5B9A\u4E00\u500B
 login_error_code_001=\u5E33\u6236\u6216\u5BC6\u78BC\u932F\u8AA4
 login_error_code_002=\u672A\u7D93\u5141\u8A31\uFF0C\u4E0D\u53EF\u8A2A\u554F\uFF01 \u8ACB\u806F\u7CFB\u7BA1\u7406\u54E1\u8655\u7406\uFF01
 login_error_code_003=\u767B\u5165\u9396\u5B9A\uFF01

+ 7 - 0
mtp3-century/src/main/resources/message_zh-tw.properties

@@ -84,6 +84,13 @@ message_error_code_system052=\u8A72\u5206\u7D44\u4E0B\u6B64\u5E74\u4EFD\u5DF2\u8
 message_error_code_system053=\u884C\u60C5\u6E90\u5206\u7D44\u7A0B\u5F0F\u78BC\u5DF2\u5B58\u5728
 message_error_code_system054=\u884C\u60C5\u6E90\u5206\u7D44\u5DF2\u88AB\u5F15\u7528
 message_error_code_system055=\u5DF2\u88AB\u4F7F\u7528\u4E0D\u80FD\u5220\u9664
+message_error_code_system056=\u7BC4\u672C\u540D\u7A31\u5DF2\u5B58\u5728
+message_error_code_system057=\u7B2C{0}\u6B65\uFF0C\u8CE3\u65B9\u6536\u6B3E\u503C\u4E0D\u80FD\u591A\u65BC\u4E4B\u524D\u7684\u8CB7\u65B9\u652F\u4ED8\u503C\uFF01
+message_error_code_system058=\u914D\u5BD8\u3010\u8CE3\u65B9\u767C\u8CA8\u3011\u5F8C\u624D\u53EF\u914D\u7F6E\u3010\u8CB7\u65B9\u78BA\u8A8D\u8CA8\u3011
+message_error_code_system059=\u914D\u5BD8\u3010\u8CE3\u65B9\u767C\u7968\u3011\u5F8C\u624D\u53EF\u914D\u7F6E\u3010\u8CB7\u65B9\u78BA\u8A8D\u7968\u3011
+message_error_code_system060=\u8CB7\u65B9\u652F\u4ED8\u532F\u7E3D\u503C\u5FC5\u9808\u7B49\u65BC100%
+message_error_code_system061=\u8CE3\u65B9\u6536\u6B3E\u532F\u7E3D\u503C\u5FC5\u9808\u7B49\u65BC100%
+message_error_code_system062=\u8CB7\u65B9\u81EA\u63D0\u3001\u8CE3\u65B9\u767C\u8CA8\u3001\u5009\u55AE\u8F49\u79FB\uFF0C\u53EA\u80FD\u8A2D\u5B9A\u4E00\u500B
 login_error_code_001=\u5E33\u6236\u6216\u5BC6\u78BC\u932F\u8AA4
 login_error_code_002=\u672A\u7D93\u5141\u8A31\uFF0C\u4E0D\u53EF\u8A2A\u554F\uFF01 \u8ACB\u806F\u7CFB\u7BA1\u7406\u54E1\u8655\u7406\uFF01
 login_error_code_003=\u767B\u5165\u9396\u5B9A\uFF01

+ 7 - 0
mtp3-common/src/main/java/com/muchinfo/mtp3common/enumtype/MessageType.java

@@ -92,6 +92,13 @@ public enum MessageType {
     MESSAGE_ERROR_CODE_SYSTEM053("message_error_code_system053", "行情源分组代码已存在"),
     MESSAGE_ERROR_CODE_SYSTEM054("message_error_code_system054", "行情源分组已被引用"),
     MESSAGE_ERROR_CODE_SYSTEM055("message_error_code_system055", "已被使用不能删除"),
+    MESSAGE_ERROR_CODE_SYSTEM056("message_error_code_system056", "模板名称已存在"),
+    MESSAGE_ERROR_CODE_SYSTEM057("message_error_code_system057", "第{0}步,卖方收款值不能多于之前的买方支付值!"),
+    MESSAGE_ERROR_CODE_SYSTEM058("message_error_code_system058", "配置【卖方发货】后才可配置【买方确认货】"),
+    MESSAGE_ERROR_CODE_SYSTEM059("message_error_code_system059", "配置【卖方发票】后才可配置【买方确认票】"),
+    MESSAGE_ERROR_CODE_SYSTEM060("message_error_code_system060", "买方支付汇总值必须等于100%"),
+    MESSAGE_ERROR_CODE_SYSTEM061("message_error_code_system061", "卖方收款汇总值必须等于100%"),
+    MESSAGE_ERROR_CODE_SYSTEM062("message_error_code_system062", "买方自提、卖方发货、仓单转移,只能设置一个"),
 
     LOGIN_ERROR_CODE_001("login_error_code_001", "账户或密码错误"),
     LOGIN_ERROR_CODE_002("login_error_code_002", "未经允许,不可访问!请联系管理员处理"),

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

@@ -1,9 +1,11 @@
 package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.muchinfo.mtp3pojos.entity.Market;
 import com.muchinfo.mtp3pojos.entity.Usergroup;
 import com.muchinfo.mtp3pojos.vo.investor.PersonalizationDelParam;
+import com.muchinfo.mtp3pojos.vo.tradingmarket.MarketRunSectiionResult;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -38,4 +40,8 @@ public interface IMarketMapper extends BaseMapper<Market> {
     List<Market> queryoperatemarkets(@Param("areauserid") Long areauserid);
 
     List<Market> queryTradeModeListNew();
+
+    List<Market> getMarketsByTradeMode(@Param("exchareaid")Long exchareaid, @Param("status")List<Integer> status);
+
+    IPage<MarketRunSectiionResult> querymarketrunsectiion(IPage<MarketRunSectiionResult> page,@Param("trademarkettype") int trademarkettype, @Param("exchareaid")Long exchareaid);
 }

+ 8 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IPerformanceplantemplateMapper.java

@@ -1,9 +1,14 @@
 package com.muchinfo.mtp3interface.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.muchinfo.mtp3pojos.entity.Performanceplantemplate;
+import com.muchinfo.mtp3pojos.entity.Performancesteptemplate;
+import com.muchinfo.mtp3pojos.vo.tradingmarket.SpotFulfillmentResult;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 /**
  * <p>
  * 履约计划模板表 Mapper 接口
@@ -15,4 +20,7 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface IPerformanceplantemplateMapper extends BaseMapper<Performanceplantemplate> {
 
+    IPage<SpotFulfillmentResult> querySpotFulfillment(IPage<SpotFulfillmentResult> page, int type);
+
+    List<Performancesteptemplate> getPerformanceStepByTmpId(Long autoid);
 }

+ 2 - 1
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/Performancesteptemplate.java

@@ -67,7 +67,8 @@ public class Performancesteptemplate extends Model<Performancesteptemplate> {
     @TableField("REMARK")
     private String remark;
 
-
+    @TableField(select = false)
+    private String steptypename;;
     @Override
     public Serializable pkVal() {
         return this.autoid;

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

@@ -31,7 +31,11 @@ public class GoodsSelectParam {
 
     private Long yyareauserid;
 
+    private String excludetrademodels;
+
     private String[] tradeModeSplit;
 
+    private String[] excludetrademodelarray;
+
     private String[] split;
 }

+ 23 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/tradingmarket/MarketRunSectiionParam.java

@@ -0,0 +1,23 @@
+package com.muchinfo.mtp3pojos.vo.tradingmarket;
+
+import com.muchinfo.mtp3pojos.entity.Marketrunstepdetail;
+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="MarketRunSectiionResult对象", description="运行时段管理返回")
+public class MarketRunSectiionParam {
+
+    private Long marketid;
+
+    private String remark;
+
+    private List<Marketrunstepdetail> marketRunSectiionDet;
+}

+ 21 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/tradingmarket/MarketRunSectiionResult.java

@@ -0,0 +1,21 @@
+package com.muchinfo.mtp3pojos.vo.tradingmarket;
+
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Builder
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel(value="MarketRunSectiionResult对象", description="运行时段管理返回")
+public class MarketRunSectiionResult {
+
+    private String marketname;
+
+    private String weekPlan;
+
+    private Long marketid;
+}

+ 22 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/tradingmarket/QuoteSourceGroupRunStepParam.java

@@ -0,0 +1,22 @@
+package com.muchinfo.mtp3pojos.vo.tradingmarket;
+
+import com.muchinfo.mtp3pojos.entity.Quotesourcegrouprunstep;
+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="QuoteSourceGroupRunStepParam对象", description="交易时间保存")
+public class QuoteSourceGroupRunStepParam {
+
+    private Long groupId;
+
+    private List<Quotesourcegrouprunstep> quoteSourceGroupRunStep;
+}

+ 30 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/tradingmarket/SpotFulfillmentDelParam.java

@@ -0,0 +1,30 @@
+package com.muchinfo.mtp3pojos.vo.tradingmarket;
+
+import com.muchinfo.mtp3pojos.entity.Performancesteptemplate;
+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="SpotFulfillmentDelParam对象", description="现货履约模板新增、修改")
+public class SpotFulfillmentDelParam {
+
+    private Long autoid;
+
+    private Integer paymenttype;
+
+    private Integer takemode;
+
+    private String templatename;
+
+    private Integer templatetype;
+
+    private List<Performancesteptemplate> list;
+}

+ 33 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/tradingmarket/SpotFulfillmentResult.java

@@ -0,0 +1,33 @@
+package com.muchinfo.mtp3pojos.vo.tradingmarket;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Builder
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel(value="SpotFulfillmentResult对象", description="现货履约模板返回")
+public class SpotFulfillmentResult {
+
+    @ApiModelProperty(value = "模板ID")
+    private Long autoid;
+
+    @ApiModelProperty(value = "模板名称")
+    private String templatename;
+
+    @ApiModelProperty(value = "支付方式")
+    private Integer paymenttype;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date createtime;
+
+    @ApiModelProperty(value = "创建人")
+    private String creatorname;
+}

+ 23 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/tradingmarket/SpotFulfillmentViewResult.java

@@ -0,0 +1,23 @@
+package com.muchinfo.mtp3pojos.vo.tradingmarket;
+
+import com.muchinfo.mtp3pojos.entity.Performanceplantemplate;
+import com.muchinfo.mtp3pojos.entity.Performancesteptemplate;
+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="SpotFulfillmentResult对象", description="现货履约模板详情返回")
+public class SpotFulfillmentViewResult {
+
+    private Performanceplantemplate param;
+
+    private List<Performancesteptemplate> performancesteps;
+}