官方流程

This commit is contained in:
qimingjin 2022-02-20 21:19:09 +08:00
parent a8a5052afb
commit fcfcd3f0b9
6 changed files with 638 additions and 0 deletions

View File

@ -0,0 +1,115 @@
<!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-payment-add">
<div class="form-group">
<label class="col-sm-3 control-label">支付单号:</label>
<div class="col-sm-8">
<input name="paymentNo" 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="orderPrice" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">支付金额:</label>
<div class="col-sm-8">
<input name="paymentPrice" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">支付标题:</label>
<div class="col-sm-8">
<input name="paymentTitle" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">关联单号:</label>
<div class="col-sm-8">
<input name="relateNo" 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="relateNoType" class="form-control m-b">
<option value="">所有</option>
</select>
<span class="help-block m-b-none"><i class="fa fa-info-circle"></i> 代码生成请选择字典属性</span>
</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="paymentTime" 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">
<select name="paymentStatus" class="form-control m-b" th:with="type=${@dict.getType('sys_payment_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">
<select name="processStatus" 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="paymentUser" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">null</label>
<div class="col-sm-8">
<input name="isDelete" 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="paymentRemark" class="form-control"></textarea>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: datetimepicker-js" />
<script th:inline="javascript">
var prefix = ctx + "system/payment"
$("#form-payment-add").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/add", $('#form-payment-add').serialize());
}
}
$("input[name='paymentTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
</script>
</body>
</html>

View File

@ -0,0 +1,110 @@
<!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-payment-edit" th:object="${sysFnPayment}">
<input name="id" th:field="*{id}" type="hidden">
<div class="form-group">
<label class="col-sm-3 control-label">支付单号:</label>
<div class="col-sm-8">
<input name="paymentNo" th:field="*{paymentNo}" 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="orderPrice" th:field="*{orderPrice}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">支付金额:</label>
<div class="col-sm-8">
<input name="paymentPrice" th:field="*{paymentPrice}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">支付标题:</label>
<div class="col-sm-8">
<input name="paymentTitle" th:field="*{paymentTitle}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">关联单号:</label>
<div class="col-sm-8">
<input name="relateNo" th:field="*{relateNo}" 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="relateNoType" class="form-control m-b">
<option value="">所有</option>
</select>
<span class="help-block m-b-none"><i class="fa fa-info-circle"></i> 代码生成请选择字典属性</span>
</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="paymentTime" th:value="${#dates.format(sysFnPayment.paymentTime, 'yyyy-MM-dd')}" 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">
<select name="paymentStatus" class="form-control m-b" th:with="type=${@dict.getType('sys_payment_status')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{paymentStatus}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">流程状态:</label>
<div class="col-sm-8">
<select name="processStatus" 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}" th:field="*{processStatus}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">申请人:</label>
<div class="col-sm-8">
<input name="paymentUser" th:field="*{paymentUser}" 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="paymentRemark" class="form-control">[[*{paymentRemark}]]</textarea>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: datetimepicker-js" />
<script th:inline="javascript">
var prefix = ctx + "system/payment";
$("#form-payment-edit").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/edit", $('#form-payment-edit').serialize());
}
}
$("input[name='paymentTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
</script>
</body>
</html>

View File

@ -0,0 +1,165 @@
<!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="paymentNo"/>
</li>
<li>
<label>支付标题:</label>
<input type="text" name="paymentTitle"/>
</li>
<li>
<label>关联单号:</label>
<input type="text" name="relateNo"/>
</li>
<li>
<label>关联单号类型:</label>
<select name="relateNoType">
<option value="">所有</option>
<option value="-1">代码生成请选择字典属性</option>
</select>
</li>
<li class="select-time">
<label>支付时间:</label>
<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginPaymentTime]"/>
<span>-</span>
<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endPaymentTime]"/>
</li>
<li>
<label>支付状态:</label>
<select name="paymentStatus" th:with="type=${@dict.getType('sys_payment_status')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<label>流程状态:</label>
<select name="processStatus" 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>
<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="system:payment:add">
<i class="fa fa-plus"></i> 添加
</a>
<a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="system:payment:edit">
<i class="fa fa-edit"></i> 修改
</a>
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:payment:remove">
<i class="fa fa-remove"></i> 删除
</a>
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:payment: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('system:payment:edit')}]];
var removeFlag = [[${@permission.hasPermi('system:payment:remove')}]];
var paymentStatusDatas = [[${@dict.getType('sys_payment_status')}]];
var processStatusDatas = [[${@dict.getType('process_status')}]];
var prefix = ctx + "system/payment";
$(function() {
var options = {
url: prefix + "/list",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "支付申请",
columns: [{
checkbox: true
},
{
field: 'id',
title: 'id',
visible: false
},
{
field: 'paymentNo',
title: '支付单号'
},
{
field: 'orderPrice',
title: '订单金额'
},
{
field: 'paymentPrice',
title: '支付金额'
},
{
field: 'paymentTitle',
title: '支付标题'
},
{
field: 'relateNo',
title: '关联单号'
},
{
field: 'relateNoType',
title: '关联单号类型'
},
{
field: 'paymentTime',
title: '支付时间'
},
{
field: 'paymentStatus',
title: '支付状态',
formatter: function(value, row, index) {
return $.table.selectDictLabel(paymentStatusDatas, value);
}
},
{
field: 'processStatus',
title: '流程状态',
formatter: function(value, row, index) {
return $.table.selectDictLabel(processStatusDatas, value);
}
},
{
field: 'paymentRemark',
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.id + '\')"><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.id + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join('');
}
}]
};
$.table.init(options);
});
</script>
</body>
</html>

View File

@ -0,0 +1,62 @@
package com.snow.system.mapper;
import java.util.List;
import com.snow.system.domain.SysFnPayment;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* 支付申请Mapper接口
*
* @author Agee
* @date 2022-02-19
*/
public interface SysFnPaymentMapper extends BaseMapper<SysFnPayment>
{
/**
* 查询支付申请
*
* @param id 支付申请ID
* @return 支付申请
*/
public SysFnPayment selectSysFnPaymentById(Long id);
/**
* 查询支付申请列表
*
* @param sysFnPayment 支付申请
* @return 支付申请集合
*/
public List<SysFnPayment> selectSysFnPaymentList(SysFnPayment sysFnPayment);
/**
* 新增支付申请
*
* @param sysFnPayment 支付申请
* @return 结果
*/
public int insertSysFnPayment(SysFnPayment sysFnPayment);
/**
* 修改支付申请
*
* @param sysFnPayment 支付申请
* @return 结果
*/
public int updateSysFnPayment(SysFnPayment sysFnPayment);
/**
* 删除支付申请
*
* @param id 支付申请ID
* @return 结果
*/
public int deleteSysFnPaymentById(Long id);
/**
* 批量删除支付申请
*
* @param ids 需要删除的数据ID
* @return 结果
*/
public int deleteSysFnPaymentByIds(String[] ids);
}

View File

@ -0,0 +1,62 @@
package com.snow.system.service;
import java.util.List;
import com.snow.system.domain.SysFnPayment;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* 支付申请Service接口
*
* @author Agee
* @date 2022-02-19
*/
public interface ISysFnPaymentService extends IService<SysFnPayment>
{
/**
* 查询支付申请
*
* @param id 支付申请ID
* @return 支付申请
*/
public SysFnPayment selectSysFnPaymentById(Long id);
/**
* 查询支付申请列表
*
* @param sysFnPayment 支付申请
* @return 支付申请集合
*/
public List<SysFnPayment> selectSysFnPaymentList(SysFnPayment sysFnPayment);
/**
* 新增支付申请
*
* @param sysFnPayment 支付申请
* @return 结果
*/
public int insertSysFnPayment(SysFnPayment sysFnPayment);
/**
* 修改支付申请
*
* @param sysFnPayment 支付申请
* @return 结果
*/
public int updateSysFnPayment(SysFnPayment sysFnPayment);
/**
* 批量删除支付申请
*
* @param ids 需要删除的数据ID
* @return 结果
*/
public int deleteSysFnPaymentByIds(String ids);
/**
* 删除支付申请信息
*
* @param id 支付申请ID
* @return 结果
*/
public int deleteSysFnPaymentById(Long id);
}

View File

@ -0,0 +1,124 @@
<?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.snow.system.mapper.SysFnPaymentMapper">
<resultMap type="SysFnPayment" id="SysFnPaymentResult">
<result property="id" column="id" />
<result property="paymentNo" column="payment_no" />
<result property="orderPrice" column="order_price" />
<result property="paymentPrice" column="payment_price" />
<result property="paymentTitle" column="payment_title" />
<result property="relateNo" column="relate_no" />
<result property="relateNoType" column="relate_no_type" />
<result property="paymentTime" column="payment_time" />
<result property="paymentStatus" column="payment_status" />
<result property="processStatus" column="process_status" />
<result property="paymentUser" column="payment_user" />
<result property="isDelete" column="is_delete" />
<result property="createTime" column="create_time" />
<result property="createBy" column="create_by" />
<result property="updateTime" column="update_time" />
<result property="updateBy" column="update_by" />
<result property="paymentRemark" column="payment_remark" />
</resultMap>
<sql id="selectSysFnPaymentVo">
select id, payment_no, order_price, payment_price, payment_title, relate_no, relate_no_type, payment_time, payment_status, process_status, payment_user, is_delete, create_time, create_by, update_time, update_by, payment_remark from sys_fn_payment
</sql>
<select id="selectSysFnPaymentList" parameterType="SysFnPayment" resultMap="SysFnPaymentResult">
<include refid="selectSysFnPaymentVo"/>
<where>
<if test="paymentNo != null and paymentNo != ''"> and payment_no like concat('%', #{paymentNo}, '%')</if>
<if test="paymentTitle != null and paymentTitle != ''"> and payment_title = #{paymentTitle}</if>
<if test="relateNo != null and relateNo != ''"> and relate_no = #{relateNo}</if>
<if test="relateNoType != null "> and relate_no_type = #{relateNoType}</if>
<if test="paymentTime != null "> and payment_time = #{paymentTime}</if>
<if test="paymentStatus != null "> and payment_status = #{paymentStatus}</if>
<if test="processStatus != null "> and process_status = #{processStatus}</if>
<if test="paymentRemark != null and paymentRemark != ''"> and payment_remark = #{paymentRemark}</if>
</where>
</select>
<select id="selectSysFnPaymentById" parameterType="Long" resultMap="SysFnPaymentResult">
<include refid="selectSysFnPaymentVo"/>
where id = #{id}
</select>
<insert id="insertSysFnPayment" parameterType="SysFnPayment" useGeneratedKeys="true" keyProperty="id">
insert into sys_fn_payment
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="paymentNo != null">payment_no,</if>
<if test="orderPrice != null">order_price,</if>
<if test="paymentPrice != null">payment_price,</if>
<if test="paymentTitle != null and paymentTitle != ''">payment_title,</if>
<if test="relateNo != null">relate_no,</if>
<if test="relateNoType != null">relate_no_type,</if>
<if test="paymentTime != null">payment_time,</if>
<if test="paymentStatus != null">payment_status,</if>
<if test="processStatus != null">process_status,</if>
<if test="paymentUser != null">payment_user,</if>
<if test="isDelete != null">is_delete,</if>
<if test="createTime != null">create_time,</if>
<if test="createBy != null">create_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="paymentRemark != null">payment_remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="paymentNo != null">#{paymentNo},</if>
<if test="orderPrice != null">#{orderPrice},</if>
<if test="paymentPrice != null">#{paymentPrice},</if>
<if test="paymentTitle != null and paymentTitle != ''">#{paymentTitle},</if>
<if test="relateNo != null">#{relateNo},</if>
<if test="relateNoType != null">#{relateNoType},</if>
<if test="paymentTime != null">#{paymentTime},</if>
<if test="paymentStatus != null">#{paymentStatus},</if>
<if test="processStatus != null">#{processStatus},</if>
<if test="paymentUser != null">#{paymentUser},</if>
<if test="isDelete != null">#{isDelete},</if>
<if test="createTime != null">#{createTime},</if>
<if test="createBy != null">#{createBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="paymentRemark != null">#{paymentRemark},</if>
</trim>
</insert>
<update id="updateSysFnPayment" parameterType="SysFnPayment">
update sys_fn_payment
<trim prefix="SET" suffixOverrides=",">
<if test="paymentNo != null">payment_no = #{paymentNo},</if>
<if test="orderPrice != null">order_price = #{orderPrice},</if>
<if test="paymentPrice != null">payment_price = #{paymentPrice},</if>
<if test="paymentTitle != null and paymentTitle != ''">payment_title = #{paymentTitle},</if>
<if test="relateNo != null">relate_no = #{relateNo},</if>
<if test="relateNoType != null">relate_no_type = #{relateNoType},</if>
<if test="paymentTime != null">payment_time = #{paymentTime},</if>
<if test="paymentStatus != null">payment_status = #{paymentStatus},</if>
<if test="processStatus != null">process_status = #{processStatus},</if>
<if test="paymentUser != null">payment_user = #{paymentUser},</if>
<if test="isDelete != null">is_delete = #{isDelete},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="paymentRemark != null">payment_remark = #{paymentRemark},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteSysFnPaymentById" parameterType="Long">
delete from sys_fn_payment where id = #{id}
</delete>
<delete id="deleteSysFnPaymentByIds" parameterType="String">
delete from sys_fn_payment where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>