手动结束订单;车辆报损审核

This commit is contained in:
19173159168
2025-08-25 22:24:05 +08:00
parent 2af3951b94
commit c946f7a344
15 changed files with 421 additions and 68 deletions

View File

@ -83,3 +83,5 @@ renren:
expire: 604800
header: token
pay:
refundUrl: http://115.190.8.52:8019/api/payment/refund

View File

@ -54,7 +54,6 @@
<if test="damageType != null and damageType != ''"> and a.damage_type = #{damageType}</if>
<if test="damageReason != null and damageReason != ''"> and a.damage_reason = #{damageReason}</if>
<if test="submitterName != null and submitterName != ''"> and a.submitter_name like concat('%', #{submitterName}, '%')</if>
<if test="submitTime != null "> and a.submit_time = #{submitTime}</if>
<if test="damageStatus != null "> and a.damage_status = #{damageStatus}</if>
<if test="auditorName != null and auditorName != ''"> and a.auditor_name like concat('%', #{auditorName}, '%')</if>
<if test="auditTime != null "> and a.audit_time = #{auditTime}</if>
@ -64,7 +63,13 @@
<if test="extend2 != null and extend2 != ''"> and a.extend2 = #{extend2}</if>
<if test="extend3 != null and extend3 != ''"> and a.extend3 = #{extend3}</if>
<if test="operatorId != null "> and c.operator_id = #{operatorId}</if>
<if test="storeName != null "> and c.store_name = #{storeName}</if>
<if test="storeName != null and storeName != ''"> and c.store_name = #{storeName}</if>
<if test="params.beginSubmitTime != null and params.beginSubmitTime != ''"><!-- 开始时间检索 -->
and date_format(a.submit_time,'%y%m%d') &gt;= date_format(#{beginSubmitTime},'%y%m%d')
</if>
<if test="params.endSubmitTime != null and params.endSubmitTime != ''"><!-- 结束时间检索 -->
and date_format(a.submit_time,'%y%m%d') &lt;= date_format(#{endSubmitTime},'%y%m%d')
</if>
</where>
</select>

View File

@ -126,7 +126,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="params.beginFirstOrderTime != null and params.beginFirstOrderTime != ''"><!-- 开始时间检索 -->
and date_format(a.first_order_time,'%y%m%d') &gt;= date_format(#{params.beginFirstOrderTime},'%y%m%d')
</if>
<if test="params.enstoreNamedFirstOrderTime != null and params.endFirstOrderTime != ''"><!-- 结束时间检索 -->
<if test="params.endFirstOrderTime != null and params.endFirstOrderTime != ''"><!-- 结束时间检索 -->
and date_format(a.first_order_time,'%y%m%d') &lt;= date_format(#{params.endFirstOrderTime},'%y%m%d')
</if>
</where>

View File

@ -55,7 +55,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectZcOrderSubVo"/>
where suborder_id = #{suborderId}
</select>
<select id="selectZcOrderSub" parameterType="ZcOrderSub" resultMap="ZcOrderSubResult" >
<include refid="selectZcOrderSubVo"/>
WHERE order_id = #{orderId} and suborder_type = #{suborderType}
</select>
<insert id="insertZcOrderSub" parameterType="ZcOrderSub" useGeneratedKeys="true" keyProperty="suborderId">
insert into zc_order_sub
<trim prefix="(" suffix=")" suffixOverrides=",">

View File

@ -43,6 +43,12 @@
<label>审核人:</label>
<input type="text" name="auditorName"/>
</li>
<li class="select-time">
<label>报损时间: </label>
<input type="text" class="time-input" id="beginSubmitTime" placeholder="开始时间" name="params[beginSubmitTime]"/>
<span>-</span>
<input type="text" class="time-input" id="endSubmitTime" placeholder="结束时间" name="params[endSubmitTime]"/>
</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>
@ -167,8 +173,10 @@
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + ' btnOption" 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 + ' btnOption" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
if (row.damageStatus == '0'){
actions.push('<a class="btn btn-success btn-xs ' + editFlag + ' btnOption" 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 + ' btnOption" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join('');
}
}]

View File

@ -8,70 +8,85 @@
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-carDamage-edit" th:object="${zcCarDamage}">
<input name="id" th:field="*{id}" type="hidden">
<div class="form-group">
<label class="col-sm-3 control-label is-required">报损类型</label>
<input name="id" th:field="*{carId}" type="hidden">
<div class="form-group">
<label class="col-sm-3 control-label">车架号</label>
<div class="col-sm-8">
<select name="damageType" class="form-control m-b" th:with="type=${@dict.getType('key_car_damage_type')}" required>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{damageType}"></option>
</select>
<div class="form-control-static" th:text="*{zcCar.vin}"></div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">车辆品牌:</label>
<div class="col-sm-8">
<div class="form-control-static" th:text="*{zcCar.brandName}"></div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">车辆型号:</label>
<div class="col-sm-8">
<div class="form-control-static" th:text="*{zcCar.modelName}"></div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">所属运营商:</label>
<div class="col-sm-8">
<div class="form-control-static" th:text="*{zcCar.operatorName}"></div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">所属门店:</label>
<div class="col-sm-8">
<div class="form-control-static" th:text="*{zcCar.storeName}"></div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">报损类型:</label>
<div class="col-sm-8">
<div class="form-control-static" th:text="${@dict.getLabel('key_car_damage_type', zcCarDamage.damageType)}"></div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">报损原因:</label>
<div class="col-sm-8">
<textarea name="damageReason" class="form-control">[[*{damageReason}]]</textarea>
<div class="form-control-static" th:text="*{damageReason}"></div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">报损提交人:</label>
<label class="col-sm-3 control-label">报损提交人:</label>
<div class="col-sm-8">
<input name="submitterName" th:field="*{submitterName}" class="form-control" type="text" required>
<div class="form-control-static" th:text="*{submitterName}"></div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">报损提交时间:</label>
<label class="col-sm-3 control-label">报损提交时间:</label>
<div class="col-sm-8">
<div class="input-group date">
<input name="submitTime" th:value="${#dates.format(zcCarDamage.submitTime, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text" required>
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
<div class="form-control-static" th:text="${#dates.format(zcCarDamage.submitTime, 'yyyy-MM-dd HH:mm:ss')}"></div>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">报损状态:</label>
<div class="form-group">
<label class="col-sm-3 control-label is-required">审核状态:</label>
<div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('key_car_damage_status')}">
<div class="radio-box" th:each="dict : ${@dict.getType('key_car_damage_status2')}" required>
<input type="radio" th:id="${'damageStatus_' + dict.dictCode}" name="damageStatus" th:value="${dict.dictValue}" th:field="*{damageStatus}" required>
<label th:for="${'damageStatus_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">审核人姓名:</label>
<div class="form-group">
<label class="col-sm-3 control-label is-required">审核人姓名:</label>
<div class="col-sm-8">
<input name="auditorName" th:field="*{auditorName}" class="form-control" type="text">
<input name="auditorName" th:field="*{auditorName}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">审核时间</label>
<label class="col-sm-3 control-label is-required">审核意见</label>
<div class="col-sm-8">
<div class="input-group date">
<input name="auditTime" th:value="${#dates.format(zcCarDamage.auditTime, '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">
<textarea name="auditComment" class="form-control">[[*{auditComment}]]</textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注信息:</label>
<div class="col-sm-8">
<input name="remark" th:field="*{remark}" class="form-control" type="text">
<textarea name="auditComment" class="form-control" required>[[*{auditComment}]]</textarea>
</div>
</div>

View File

@ -176,6 +176,7 @@
var suborderTypeDatas = [[${@dict.getType('key_order_suborder_type')}]];
var paymentMethodDatas = [[${@dict.getType('key_order_payment_method')}]];
var imgTypeDatas = [[${@dict.getType('key_order_img_type')}]];
var payStatusDatas = [[${@dict.getType('key_order_pay_status')}]];
$("#form-order-edit").validate({
focusCleanup: true
});
@ -262,7 +263,10 @@
{
field: 'payStatus',
align: 'center',
title: '支付状态'
title: '支付状态',
formatter: function(value, row, index) {
return $.table.selectDictLabel(payStatusDatas, value);
}
},
{
field: 'paidAt',
@ -329,7 +333,7 @@
function manualEndOrder(){
var orderId = $("#orderId").val();
$.modal.confirm("确认手动结束该订单", function() {
$.modal.confirm("确认手动结束该订单<br/><span style='color: red'>请确认车辆是否己归还,如未归还需要进行车辆丢失报损。<br/>结束此订单不再计算租车费用,己支付租金不做退款。</span>", function() {
$.operate.post(prefix + "/manualEndOrder", { "orderId": orderId}, function(result) {
if (result.code == web_status.SUCCESS) {
$.modal.msgSuccess("操作成功");