Jelajahi Sumber

新增保函订单页面及相关功能

chengpan 3 tahun lalu
induk
melakukan
6f568b22f7

+ 127 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/opt/ProcessInfoController.java

@@ -0,0 +1,127 @@
+package com.ruoyi.web.controller.opt;
+
+import java.util.List;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.opt.domain.ProcessInfo;
+import com.ruoyi.opt.service.IProcessInfoService;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 保函订单Controller
+ * 
+ * @author chengpan
+ * @date 2022-09-06
+ */
+@Controller
+@RequestMapping("/opt/process")
+public class ProcessInfoController extends BaseController
+{
+    private String prefix = "opt/process";
+
+    @Autowired
+    private IProcessInfoService processInfoService;
+
+    @RequiresPermissions("opt:process:view")
+    @GetMapping()
+    public String process()
+    {
+        return prefix + "/process";
+    }
+
+    /**
+     * 查询保函订单列表
+     */
+    @RequiresPermissions("opt:process:list")
+    @PostMapping("/list")
+    @ResponseBody
+    public TableDataInfo list(ProcessInfo processInfo)
+    {
+        startPage();
+        List<ProcessInfo> list = processInfoService.selectProcessInfoList(processInfo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出保函订单列表
+     */
+    @RequiresPermissions("opt:process:export")
+    @Log(title = "保函订单", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    @ResponseBody
+    public AjaxResult export(ProcessInfo processInfo)
+    {
+        List<ProcessInfo> list = processInfoService.selectProcessInfoList(processInfo);
+        ExcelUtil<ProcessInfo> util = new ExcelUtil<ProcessInfo>(ProcessInfo.class);
+        return util.exportExcel(list, "保函订单数据");
+    }
+
+    /**
+     * 新增保函订单
+     */
+    @GetMapping("/add")
+    public String add()
+    {
+        return prefix + "/add";
+    }
+
+    /**
+     * 新增保存保函订单
+     */
+    @RequiresPermissions("opt:process:add")
+    @Log(title = "保函订单", businessType = BusinessType.INSERT)
+    @PostMapping("/add")
+    @ResponseBody
+    public AjaxResult addSave(ProcessInfo processInfo)
+    {
+        return toAjax(processInfoService.insertProcessInfo(processInfo));
+    }
+
+    /**
+     * 修改保函订单
+     */
+    @RequiresPermissions("opt:process:edit")
+    @GetMapping("/edit/{pId}")
+    public String edit(@PathVariable("pId") Long pId, ModelMap mmap)
+    {
+        ProcessInfo processInfo = processInfoService.selectProcessInfoByPId(pId);
+        mmap.put("processInfo", processInfo);
+        return prefix + "/edit";
+    }
+
+    /**
+     * 修改保存保函订单
+     */
+    @RequiresPermissions("opt:process:edit")
+    @Log(title = "保函订单", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(ProcessInfo processInfo)
+    {
+        return toAjax(processInfoService.updateProcessInfo(processInfo));
+    }
+
+    /**
+     * 删除保函订单
+     */
+    @RequiresPermissions("opt:process:remove")
+    @Log(title = "保函订单", businessType = BusinessType.DELETE)
+    @PostMapping( "/remove")
+    @ResponseBody
+    public AjaxResult remove(String ids)
+    {
+        return toAjax(processInfoService.deleteProcessInfoByPIds(ids));
+    }
+}

+ 131 - 0
ruoyi-admin/src/main/resources/templates/opt/process/add.html

@@ -0,0 +1,131 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('新增保函订单')" />
+    <th:block th:include="include :: datetimepicker-css" />
+</head>
+<body class="white-bg">
+    <div class="wrapper wrapper-content animated fadeInRight ibox-content">
+        <form class="form-horizontal m" id="form-process-add">
+            <div class="form-group">    
+                <label class="col-sm-3 control-label">订单编号:</label>
+                <div class="col-sm-8">
+                    <input name="processId" class="form-control" type="text">
+                </div>
+            </div>
+            <div class="form-group">    
+                <label class="col-sm-3 control-label">订单状态:</label>
+                <div class="col-sm-8">
+                    <select name="processStsCd" class="form-control m-b" th:with="type=${@dict.getType('process_status')}">
+                        <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
+                    </select>
+                </div>
+            </div>
+            <div class="form-group">    
+                <label class="col-sm-3 control-label">保费金额:</label>
+                <div class="col-sm-8">
+                    <input name="premiumAmt" class="form-control" type="text">
+                </div>
+            </div>
+            <div class="form-group">    
+                <label class="col-sm-3 control-label">申请保额:</label>
+                <div class="col-sm-8">
+                    <input name="loanAmt" class="form-control" type="text">
+                </div>
+            </div>
+            <div class="form-group">
+                <label class="col-sm-3 control-label">保函签署地址:</label>
+                <div class="col-sm-8">
+                    <textarea name="policySignUrl" class="form-control"></textarea>
+                </div>
+            </div>
+            <div class="form-group">
+                <label class="col-sm-3 control-label">保函下载地址:</label>
+                <div class="col-sm-8">
+                    <textarea name="policyDlUrl" class="form-control"></textarea>
+                </div>
+            </div>
+            <div class="form-group">    
+                <label class="col-sm-3 control-label">电子发票地址:</label>
+                <div class="col-sm-8">
+                    <input name="eInvoiceUrl" class="form-control" type="text">
+                </div>
+            </div>
+            <div class="form-group">    
+                <label class="col-sm-3 control-label">项目编号:</label>
+                <div class="col-sm-8">
+                    <input name="projectId" class="form-control" type="text">
+                </div>
+            </div>
+            <div class="form-group">    
+                <label class="col-sm-3 control-label">企业编号:</label>
+                <div class="col-sm-8">
+                    <input name="companyId" class="form-control" type="text">
+                </div>
+            </div>
+            <div class="form-group">    
+                <label class="col-sm-3 control-label">保函有效期:</label>
+                <div class="col-sm-8">
+                    <input name="expireTime" class="form-control" type="text">
+                </div>
+            </div>
+            <div class="form-group">    
+                <label class="col-sm-3 control-label">审批通过时间:</label>
+                <div class="col-sm-8">
+                    <div class="input-group date">
+                        <input name="approvedTime" class="form-control" placeholder="yyyy-MM-dd" type="text">
+                        <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
+                    </div>
+                </div>
+            </div>
+            <div class="form-group">    
+                <label class="col-sm-3 control-label">打款附言:</label>
+                <div class="col-sm-8">
+                    <input name="postscript" class="form-control" type="text">
+                </div>
+            </div>
+            <div class="form-group">
+                <label class="col-sm-3 control-label">拒绝原因:</label>
+                <div class="col-sm-8">
+                    <textarea name="rejectReason" class="form-control"></textarea>
+                </div>
+            </div>
+            <div class="form-group">    
+                <label class="col-sm-3 control-label">申请时间:</label>
+                <div class="col-sm-8">
+                    <div class="input-group date">
+                        <input name="applyTime" class="form-control" placeholder="yyyy-MM-dd" type="text">
+                        <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
+                    </div>
+                </div>
+            </div>
+        </form>
+    </div>
+    <th:block th:include="include :: footer" />
+    <th:block th:include="include :: datetimepicker-js" />
+    <script th:inline="javascript">
+        var prefix = ctx + "opt/process"
+        $("#form-process-add").validate({
+            focusCleanup: true
+        });
+
+        function submitHandler() {
+            if ($.validate.form()) {
+                $.operate.save(prefix + "/add", $('#form-process-add').serialize());
+            }
+        }
+
+        $("input[name='approvedTime']").datetimepicker({
+            format: "yyyy-mm-dd",
+            minView: "month",
+            autoclose: true
+        });
+
+        $("input[name='applyTime']").datetimepicker({
+            format: "yyyy-mm-dd",
+            minView: "month",
+            autoclose: true
+        });
+    </script>
+</body>
+</html>

+ 26 - 0
ruoyi-admin/src/main/resources/templates/opt/process/edit.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('修改保函订单')" />
+</head>
+<body class="white-bg">
+    <div class="wrapper wrapper-content animated fadeInRight ibox-content">
+        <form class="form-horizontal m" id="form-process-edit" th:object="${processInfo}">
+            <input name="pId" th:field="*{pId}" type="hidden">
+        </form>
+    </div>
+    <th:block th:include="include :: footer" />
+    <script th:inline="javascript">
+        var prefix = ctx + "opt/process";
+        $("#form-process-edit").validate({
+            focusCleanup: true
+        });
+
+        function submitHandler() {
+            if ($.validate.form()) {
+                $.operate.save(prefix + "/edit", $('#form-process-edit').serialize());
+            }
+        }
+    </script>
+</body>
+</html>

+ 175 - 0
ruoyi-admin/src/main/resources/templates/opt/process/process.html

@@ -0,0 +1,175 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+    <th:block th:include="include :: header('保函订单列表')" />
+</head>
+<body class="gray-bg">
+     <div class="container-div">
+        <div class="row">
+            <div class="col-sm-12 search-collapse">
+                <form id="formId">
+                    <div class="select-list">
+                        <ul>
+                            <li>
+                                <label>订单编号:</label>
+                                <input type="text" name="processId"/>
+                            </li>
+                            <li>
+                                <label>订单状态:</label>
+                                <select name="processStsCd" th:with="type=${@dict.getType('process_status')}">
+                                    <option value="">所有</option>
+                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
+                                </select>
+                            </li>
+                            <li>
+                                <label>项目编号:</label>
+                                <input type="text" name="projectId"/>
+                            </li>
+                            <li>
+                                <label>企业编号:</label>
+                                <input type="text" name="companyId"/>
+                            </li>
+                            <li class="select-time">
+                                <label>申请时间:</label>
+                                <input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginApplyTime]"/>
+                                <span>-</span>
+                                <input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endApplyTime]"/>
+                            </li>
+                            <li>
+                                <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+                                <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+                            </li>
+                        </ul>
+                    </div>
+                </form>
+            </div>
+
+            <div class="btn-group-sm" id="toolbar" role="group">
+                <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="opt:process:add">
+                    <i class="fa fa-plus"></i> 添加
+                </a>
+                <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="opt:process:edit">
+                    <i class="fa fa-edit"></i> 修改
+                </a>
+                <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="opt:process:remove">
+                    <i class="fa fa-remove"></i> 删除
+                </a>
+                <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="opt:process:export">
+                    <i class="fa fa-download"></i> 导出
+                </a>
+            </div>
+            <div class="col-sm-12 select-table table-striped">
+                <table id="bootstrap-table"></table>
+            </div>
+        </div>
+    </div>
+    <th:block th:include="include :: footer" />
+    <script th:inline="javascript">
+        var editFlag = [[${@permission.hasPermi('opt:process:edit')}]];
+        var removeFlag = [[${@permission.hasPermi('opt:process:remove')}]];
+        var processStsCdDatas = [[${@dict.getType('process_status')}]];
+        var prefix = ctx + "opt/process";
+
+        $(function() {
+            var options = {
+                url: prefix + "/list",
+                createUrl: prefix + "/add",
+                updateUrl: prefix + "/edit/{id}",
+                removeUrl: prefix + "/remove",
+                exportUrl: prefix + "/export",
+                modalName: "保函订单",
+                columns: [{
+                    checkbox: true
+                },
+                {
+                    field: 'pId',
+                    title: '主键',
+                    visible: false
+                },
+                {
+                    field: 'processId',
+                    title: '订单编号'
+                },
+                {
+                    field: 'processStsCd',
+                    title: '订单状态',
+                    formatter: function(value, row, index) {
+                       return $.table.selectDictLabel(processStsCdDatas, value);
+                    }
+                },
+                {
+                    field: 'premiumAmt',
+                    title: '保费金额'
+                },
+                {
+                    field: 'loanAmt',
+                    title: '申请保额'
+                },
+                {
+                    field: 'policySignUrl',
+                    title: '保函签署地址'
+                },
+                {
+                    field: 'policyDlUrl',
+                    title: '保函下载地址'
+                },
+                {
+                    field: 'eInvoiceUrl',
+                    title: '电子发票地址'
+                },
+                {
+                    field: 'projectId',
+                    title: '项目编号'
+                },
+                {
+                    field: 'companyId',
+                    title: '企业编号'
+                },
+                {
+                    field: 'expireTime',
+                    title: '保函有效期'
+                },
+                {
+                    field: 'approvedTime',
+                    title: '审批通过时间'
+                },
+                {
+                    field: 'postscript',
+                    title: '打款附言'
+                },
+                {
+                    field: 'rejectReason',
+                    title: '拒绝原因'
+                },
+                {
+                    field: 'applyTime',
+                    title: '申请时间'
+                },
+                {
+                    field: 'createBy',
+                    title: '创建者'
+                },
+                {
+                    field: 'updateBy',
+                    title: '修改者'
+                },
+                {
+                    field: 'updateTime',
+                    title: '修改时间'
+                },
+                {
+                    title: '操作',
+                    align: 'center',
+                    formatter: function(value, row, index) {
+                        var actions = [];
+                        actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.pId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+                        actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.pId + '\')"><i class="fa fa-remove"></i>删除</a>');
+                        return actions.join('');
+                    }
+                }]
+            };
+            $.table.init(options);
+        });
+    </script>
+</body>
+</html>

+ 240 - 0
ruoyi-system/src/main/java/com/ruoyi/opt/domain/ProcessInfo.java

@@ -0,0 +1,240 @@
+package com.ruoyi.opt.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 保函订单对象 t_process_info
+ * 
+ * @author chengpan
+ * @date 2022-09-06
+ */
+public class ProcessInfo extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long pId;
+
+    /** 订单编号 */
+    @Excel(name = "订单编号")
+    private String processId;
+
+    /** 订单状态 */
+    @Excel(name = "订单状态")
+    private String processStsCd;
+
+    /** 保费金额 */
+    @Excel(name = "保费金额")
+    private String premiumAmt;
+
+    /** 申请保额 */
+    @Excel(name = "申请保额")
+    private String loanAmt;
+
+    /** 保函签署地址 */
+    @Excel(name = "保函签署地址")
+    private String policySignUrl;
+
+    /** 保函下载地址 */
+    @Excel(name = "保函下载地址")
+    private String policyDlUrl;
+
+    /** 电子发票地址 */
+    @Excel(name = "电子发票地址")
+    private String eInvoiceUrl;
+
+    /** 项目编号 */
+    @Excel(name = "项目编号")
+    private Long projectId;
+
+    /** 企业编号 */
+    @Excel(name = "企业编号")
+    private Long companyId;
+
+    /** 保函有效期 */
+    @Excel(name = "保函有效期")
+    private Long expireTime;
+
+    /** 审批通过时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "审批通过时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date approvedTime;
+
+    /** 打款附言 */
+    @Excel(name = "打款附言")
+    private String postscript;
+
+    /** 拒绝原因 */
+    @Excel(name = "拒绝原因")
+    private String rejectReason;
+
+    /** 申请时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date applyTime;
+
+    public void setpId(Long pId) 
+    {
+        this.pId = pId;
+    }
+
+    public Long getpId() 
+    {
+        return pId;
+    }
+    public void setProcessId(String processId) 
+    {
+        this.processId = processId;
+    }
+
+    public String getProcessId() 
+    {
+        return processId;
+    }
+    public void setProcessStsCd(String processStsCd) 
+    {
+        this.processStsCd = processStsCd;
+    }
+
+    public String getProcessStsCd() 
+    {
+        return processStsCd;
+    }
+    public void setPremiumAmt(String premiumAmt) 
+    {
+        this.premiumAmt = premiumAmt;
+    }
+
+    public String getPremiumAmt() 
+    {
+        return premiumAmt;
+    }
+    public void setLoanAmt(String loanAmt) 
+    {
+        this.loanAmt = loanAmt;
+    }
+
+    public String getLoanAmt() 
+    {
+        return loanAmt;
+    }
+    public void setPolicySignUrl(String policySignUrl) 
+    {
+        this.policySignUrl = policySignUrl;
+    }
+
+    public String getPolicySignUrl() 
+    {
+        return policySignUrl;
+    }
+    public void setPolicyDlUrl(String policyDlUrl) 
+    {
+        this.policyDlUrl = policyDlUrl;
+    }
+
+    public String getPolicyDlUrl() 
+    {
+        return policyDlUrl;
+    }
+    public void seteInvoiceUrl(String eInvoiceUrl) 
+    {
+        this.eInvoiceUrl = eInvoiceUrl;
+    }
+
+    public String geteInvoiceUrl() 
+    {
+        return eInvoiceUrl;
+    }
+    public void setProjectId(Long projectId) 
+    {
+        this.projectId = projectId;
+    }
+
+    public Long getProjectId() 
+    {
+        return projectId;
+    }
+    public void setCompanyId(Long companyId) 
+    {
+        this.companyId = companyId;
+    }
+
+    public Long getCompanyId() 
+    {
+        return companyId;
+    }
+    public void setExpireTime(Long expireTime) 
+    {
+        this.expireTime = expireTime;
+    }
+
+    public Long getExpireTime() 
+    {
+        return expireTime;
+    }
+    public void setApprovedTime(Date approvedTime) 
+    {
+        this.approvedTime = approvedTime;
+    }
+
+    public Date getApprovedTime() 
+    {
+        return approvedTime;
+    }
+    public void setPostscript(String postscript) 
+    {
+        this.postscript = postscript;
+    }
+
+    public String getPostscript() 
+    {
+        return postscript;
+    }
+    public void setRejectReason(String rejectReason) 
+    {
+        this.rejectReason = rejectReason;
+    }
+
+    public String getRejectReason() 
+    {
+        return rejectReason;
+    }
+    public void setApplyTime(Date applyTime) 
+    {
+        this.applyTime = applyTime;
+    }
+
+    public Date getApplyTime() 
+    {
+        return applyTime;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("pId", getpId())
+            .append("processId", getProcessId())
+            .append("processStsCd", getProcessStsCd())
+            .append("premiumAmt", getPremiumAmt())
+            .append("loanAmt", getLoanAmt())
+            .append("policySignUrl", getPolicySignUrl())
+            .append("policyDlUrl", getPolicyDlUrl())
+            .append("eInvoiceUrl", geteInvoiceUrl())
+            .append("projectId", getProjectId())
+            .append("companyId", getCompanyId())
+            .append("expireTime", getExpireTime())
+            .append("approvedTime", getApprovedTime())
+            .append("postscript", getPostscript())
+            .append("rejectReason", getRejectReason())
+            .append("applyTime", getApplyTime())
+            .append("createBy", getCreateBy())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .toString();
+    }
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/opt/mapper/ProcessInfoMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.opt.mapper;
+
+import java.util.List;
+import com.ruoyi.opt.domain.ProcessInfo;
+
+/**
+ * 保函订单Mapper接口
+ * 
+ * @author chengpan
+ * @date 2022-09-06
+ */
+public interface ProcessInfoMapper 
+{
+    /**
+     * 查询保函订单
+     * 
+     * @param pId 保函订单主键
+     * @return 保函订单
+     */
+    public ProcessInfo selectProcessInfoByPId(Long pId);
+
+    /**
+     * 查询保函订单列表
+     * 
+     * @param processInfo 保函订单
+     * @return 保函订单集合
+     */
+    public List<ProcessInfo> selectProcessInfoList(ProcessInfo processInfo);
+
+    /**
+     * 新增保函订单
+     * 
+     * @param processInfo 保函订单
+     * @return 结果
+     */
+    public int insertProcessInfo(ProcessInfo processInfo);
+
+    /**
+     * 修改保函订单
+     * 
+     * @param processInfo 保函订单
+     * @return 结果
+     */
+    public int updateProcessInfo(ProcessInfo processInfo);
+
+    /**
+     * 删除保函订单
+     * 
+     * @param pId 保函订单主键
+     * @return 结果
+     */
+    public int deleteProcessInfoByPId(Long pId);
+
+    /**
+     * 批量删除保函订单
+     * 
+     * @param pIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteProcessInfoByPIds(String[] pIds);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/opt/service/IProcessInfoService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.opt.service;
+
+import java.util.List;
+import com.ruoyi.opt.domain.ProcessInfo;
+
+/**
+ * 保函订单Service接口
+ * 
+ * @author chengpan
+ * @date 2022-09-06
+ */
+public interface IProcessInfoService 
+{
+    /**
+     * 查询保函订单
+     * 
+     * @param pId 保函订单主键
+     * @return 保函订单
+     */
+    public ProcessInfo selectProcessInfoByPId(Long pId);
+
+    /**
+     * 查询保函订单列表
+     * 
+     * @param processInfo 保函订单
+     * @return 保函订单集合
+     */
+    public List<ProcessInfo> selectProcessInfoList(ProcessInfo processInfo);
+
+    /**
+     * 新增保函订单
+     * 
+     * @param processInfo 保函订单
+     * @return 结果
+     */
+    public int insertProcessInfo(ProcessInfo processInfo);
+
+    /**
+     * 修改保函订单
+     * 
+     * @param processInfo 保函订单
+     * @return 结果
+     */
+    public int updateProcessInfo(ProcessInfo processInfo);
+
+    /**
+     * 批量删除保函订单
+     * 
+     * @param pIds 需要删除的保函订单主键集合
+     * @return 结果
+     */
+    public int deleteProcessInfoByPIds(String pIds);
+
+    /**
+     * 删除保函订单信息
+     * 
+     * @param pId 保函订单主键
+     * @return 结果
+     */
+    public int deleteProcessInfoByPId(Long pId);
+}

+ 96 - 0
ruoyi-system/src/main/java/com/ruoyi/opt/service/impl/ProcessInfoServiceImpl.java

@@ -0,0 +1,96 @@
+package com.ruoyi.opt.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.opt.mapper.ProcessInfoMapper;
+import com.ruoyi.opt.domain.ProcessInfo;
+import com.ruoyi.opt.service.IProcessInfoService;
+import com.ruoyi.common.core.text.Convert;
+
+/**
+ * 保函订单Service业务层处理
+ * 
+ * @author chengpan
+ * @date 2022-09-06
+ */
+@Service
+public class ProcessInfoServiceImpl implements IProcessInfoService 
+{
+    @Autowired
+    private ProcessInfoMapper processInfoMapper;
+
+    /**
+     * 查询保函订单
+     * 
+     * @param pId 保函订单主键
+     * @return 保函订单
+     */
+    @Override
+    public ProcessInfo selectProcessInfoByPId(Long pId)
+    {
+        return processInfoMapper.selectProcessInfoByPId(pId);
+    }
+
+    /**
+     * 查询保函订单列表
+     * 
+     * @param processInfo 保函订单
+     * @return 保函订单
+     */
+    @Override
+    public List<ProcessInfo> selectProcessInfoList(ProcessInfo processInfo)
+    {
+        return processInfoMapper.selectProcessInfoList(processInfo);
+    }
+
+    /**
+     * 新增保函订单
+     * 
+     * @param processInfo 保函订单
+     * @return 结果
+     */
+    @Override
+    public int insertProcessInfo(ProcessInfo processInfo)
+    {
+        return processInfoMapper.insertProcessInfo(processInfo);
+    }
+
+    /**
+     * 修改保函订单
+     * 
+     * @param processInfo 保函订单
+     * @return 结果
+     */
+    @Override
+    public int updateProcessInfo(ProcessInfo processInfo)
+    {
+        processInfo.setUpdateTime(DateUtils.getNowDate());
+        return processInfoMapper.updateProcessInfo(processInfo);
+    }
+
+    /**
+     * 批量删除保函订单
+     * 
+     * @param pIds 需要删除的保函订单主键
+     * @return 结果
+     */
+    @Override
+    public int deleteProcessInfoByPIds(String pIds)
+    {
+        return processInfoMapper.deleteProcessInfoByPIds(Convert.toStrArray(pIds));
+    }
+
+    /**
+     * 删除保函订单信息
+     * 
+     * @param pId 保函订单主键
+     * @return 结果
+     */
+    @Override
+    public int deleteProcessInfoByPId(Long pId)
+    {
+        return processInfoMapper.deleteProcessInfoByPId(pId);
+    }
+}

+ 127 - 0
ruoyi-system/src/main/resources/mapper/opt/ProcessInfoMapper.xml

@@ -0,0 +1,127 @@
+<?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.ruoyi.opt.mapper.ProcessInfoMapper">
+    
+    <resultMap type="ProcessInfo" id="ProcessInfoResult">
+        <result property="pId"    column="p_id"    />
+        <result property="processId"    column="process_id"    />
+        <result property="processStsCd"    column="process_sts_cd"    />
+        <result property="premiumAmt"    column="premium_amt"    />
+        <result property="loanAmt"    column="loan_amt"    />
+        <result property="policySignUrl"    column="policy_sign_url"    />
+        <result property="policyDlUrl"    column="policy_dl_url"    />
+        <result property="eInvoiceUrl"    column="e_invoice_url"    />
+        <result property="projectId"    column="project_id"    />
+        <result property="companyId"    column="company_id"    />
+        <result property="expireTime"    column="expire_time"    />
+        <result property="approvedTime"    column="approved_time"    />
+        <result property="postscript"    column="postscript"    />
+        <result property="rejectReason"    column="reject_reason"    />
+        <result property="applyTime"    column="apply_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
+    <sql id="selectProcessInfoVo">
+        select p_id, process_id, process_sts_cd, premium_amt, loan_amt, policy_sign_url, policy_dl_url, e_invoice_url, project_id, company_id, expire_time, approved_time, postscript, reject_reason, apply_time, create_by, update_by, update_time from t_process_info
+    </sql>
+
+    <select id="selectProcessInfoList" parameterType="ProcessInfo" resultMap="ProcessInfoResult">
+        <include refid="selectProcessInfoVo"/>
+        <where>  
+            <if test="processId != null  and processId != ''"> and process_id like concat('%', #{processId}, '%')</if>
+            <if test="processStsCd != null  and processStsCd != ''"> and process_sts_cd = #{processStsCd}</if>
+            <if test="projectId != null "> and project_id like concat('%', #{projectId}, '%')</if>
+            <if test="companyId != null "> and company_id like concat('%', #{companyId}, '%')</if>
+            <if test="params.beginApplyTime != null and params.beginApplyTime != '' and params.endApplyTime != null and params.endApplyTime != ''"> and apply_time between #{params.beginApplyTime} and #{params.endApplyTime}</if>
+        </where>
+    </select>
+    
+    <select id="selectProcessInfoByPId" parameterType="Long" resultMap="ProcessInfoResult">
+        <include refid="selectProcessInfoVo"/>
+        where p_id = #{pId}
+    </select>
+        
+    <insert id="insertProcessInfo" parameterType="ProcessInfo">
+        insert into t_process_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="pId != null">p_id,</if>
+            <if test="processId != null">process_id,</if>
+            <if test="processStsCd != null">process_sts_cd,</if>
+            <if test="premiumAmt != null">premium_amt,</if>
+            <if test="loanAmt != null">loan_amt,</if>
+            <if test="policySignUrl != null">policy_sign_url,</if>
+            <if test="policyDlUrl != null">policy_dl_url,</if>
+            <if test="eInvoiceUrl != null">e_invoice_url,</if>
+            <if test="projectId != null">project_id,</if>
+            <if test="companyId != null">company_id,</if>
+            <if test="expireTime != null">expire_time,</if>
+            <if test="approvedTime != null">approved_time,</if>
+            <if test="postscript != null">postscript,</if>
+            <if test="rejectReason != null">reject_reason,</if>
+            <if test="applyTime != null">apply_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="pId != null">#{pId},</if>
+            <if test="processId != null">#{processId},</if>
+            <if test="processStsCd != null">#{processStsCd},</if>
+            <if test="premiumAmt != null">#{premiumAmt},</if>
+            <if test="loanAmt != null">#{loanAmt},</if>
+            <if test="policySignUrl != null">#{policySignUrl},</if>
+            <if test="policyDlUrl != null">#{policyDlUrl},</if>
+            <if test="eInvoiceUrl != null">#{eInvoiceUrl},</if>
+            <if test="projectId != null">#{projectId},</if>
+            <if test="companyId != null">#{companyId},</if>
+            <if test="expireTime != null">#{expireTime},</if>
+            <if test="approvedTime != null">#{approvedTime},</if>
+            <if test="postscript != null">#{postscript},</if>
+            <if test="rejectReason != null">#{rejectReason},</if>
+            <if test="applyTime != null">#{applyTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateProcessInfo" parameterType="ProcessInfo">
+        update t_process_info
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="processId != null">process_id = #{processId},</if>
+            <if test="processStsCd != null">process_sts_cd = #{processStsCd},</if>
+            <if test="premiumAmt != null">premium_amt = #{premiumAmt},</if>
+            <if test="loanAmt != null">loan_amt = #{loanAmt},</if>
+            <if test="policySignUrl != null">policy_sign_url = #{policySignUrl},</if>
+            <if test="policyDlUrl != null">policy_dl_url = #{policyDlUrl},</if>
+            <if test="eInvoiceUrl != null">e_invoice_url = #{eInvoiceUrl},</if>
+            <if test="projectId != null">project_id = #{projectId},</if>
+            <if test="companyId != null">company_id = #{companyId},</if>
+            <if test="expireTime != null">expire_time = #{expireTime},</if>
+            <if test="approvedTime != null">approved_time = #{approvedTime},</if>
+            <if test="postscript != null">postscript = #{postscript},</if>
+            <if test="rejectReason != null">reject_reason = #{rejectReason},</if>
+            <if test="applyTime != null">apply_time = #{applyTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        where p_id = #{pId}
+    </update>
+
+    <delete id="deleteProcessInfoByPId" parameterType="Long">
+        delete from t_process_info where p_id = #{pId}
+    </delete>
+
+    <delete id="deleteProcessInfoByPIds" parameterType="String">
+        delete from t_process_info where p_id in 
+        <foreach item="pId" collection="array" open="(" separator="," close=")">
+            #{pId}
+        </foreach>
+    </delete>
+
+</mapper>