feat:报废提报

master
wanghao 3 weeks ago
parent 3c9f8053da
commit 137a892d07

@ -0,0 +1,128 @@
package com.ruoyi.manager.controller;
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.manager.domain.RecordAssetScrap;
import com.ruoyi.manager.service.IRecordAssetScrapService;
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 ruoyi
* @date 2026-06-02
*/
@Controller
@RequestMapping("/manager/asset_scrap")
public class RecordAssetScrapController extends BaseController
{
private String prefix = "manager/asset_scrap";
@Autowired
private IRecordAssetScrapService recordAssetScrapService;
@RequiresPermissions("manager:asset_scrap:view")
@GetMapping()
public String asset_scrap()
{
return prefix + "/asset_scrap";
}
/**
*
*/
@RequiresPermissions("manager:asset_scrap:list")
@PostMapping("/list")
@ResponseBody
public TableDataInfo list(RecordAssetScrap recordAssetScrap)
{
startPage();
List<RecordAssetScrap> list = recordAssetScrapService.selectRecordAssetScrapList(recordAssetScrap);
return getDataTable(list);
}
/**
*
*/
@RequiresPermissions("manager:asset_scrap:export")
@Log(title = "资产报废提报", businessType = BusinessType.EXPORT)
@PostMapping("/export")
@ResponseBody
public AjaxResult export(RecordAssetScrap recordAssetScrap)
{
List<RecordAssetScrap> list = recordAssetScrapService.selectRecordAssetScrapList(recordAssetScrap);
ExcelUtil<RecordAssetScrap> util = new ExcelUtil<RecordAssetScrap>(RecordAssetScrap.class);
return util.exportExcel(list, "资产报废提报数据");
}
/**
*
*/
@RequiresPermissions("manager:asset_scrap:add")
@GetMapping("/add")
public String add()
{
return prefix + "/add";
}
/**
*
*/
@RequiresPermissions("manager:asset_scrap:add")
@Log(title = "资产报废提报", businessType = BusinessType.INSERT)
@PostMapping("/add")
@ResponseBody
public AjaxResult addSave(RecordAssetScrap recordAssetScrap)
{
return toAjax(recordAssetScrapService.insertRecordAssetScrap(recordAssetScrap));
}
/**
*
*/
@RequiresPermissions("manager:asset_scrap:edit")
@GetMapping("/edit/{id}")
public String edit(@PathVariable("id") Long id, ModelMap mmap)
{
RecordAssetScrap recordAssetScrap = recordAssetScrapService.selectRecordAssetScrapById(id);
mmap.put("recordAssetScrap", recordAssetScrap);
return prefix + "/edit";
}
/**
*
*/
@RequiresPermissions("manager:asset_scrap:edit")
@Log(title = "资产报废提报", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
@ResponseBody
public AjaxResult editSave(RecordAssetScrap recordAssetScrap)
{
return toAjax(recordAssetScrapService.updateRecordAssetScrap(recordAssetScrap));
}
/**
*
*/
@RequiresPermissions("manager:asset_scrap:remove")
@Log(title = "资产报废提报", businessType = BusinessType.DELETE)
@PostMapping( "/remove")
@ResponseBody
public AjaxResult remove(String ids)
{
return toAjax(recordAssetScrapService.deleteRecordAssetScrapByIds(ids));
}
}

@ -0,0 +1,177 @@
package com.ruoyi.manager.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;
/**
* record_asset_scrap
*
* @author ruoyi
* @date 2026-06-02
*/
public class RecordAssetScrap extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键ID */
private Long id;
/** 资产ID */
@Excel(name = "资产ID")
private Long assetId;
/** 报废原因类型 */
@Excel(name = "报废原因类型")
private String scrapReasonType;
/** 报废说明 */
@Excel(name = "报废说明")
private String scrapRemark;
/** GPS坐标纬度,经度) */
@Excel(name = "GPS坐标", readConverterExp = "纬=度,经度")
private String gpsLocation;
/** 状态 */
@Excel(name = "状态")
private Long status;
/** 审批人 */
@Excel(name = "审批人")
private String approveBy;
/** 审批时间 */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@Excel(name = "审批时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date approveTime;
/** 驳回原因 */
@Excel(name = "驳回原因")
private String rejectReason;
/** 删除标志0=正常 1=删除 */
@Excel(name = "删除标志0=正常 1=删除")
private Long delFlag;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setAssetId(Long assetId)
{
this.assetId = assetId;
}
public Long getAssetId()
{
return assetId;
}
public void setScrapReasonType(String scrapReasonType)
{
this.scrapReasonType = scrapReasonType;
}
public String getScrapReasonType()
{
return scrapReasonType;
}
public void setScrapRemark(String scrapRemark)
{
this.scrapRemark = scrapRemark;
}
public String getScrapRemark()
{
return scrapRemark;
}
public void setGpsLocation(String gpsLocation)
{
this.gpsLocation = gpsLocation;
}
public String getGpsLocation()
{
return gpsLocation;
}
public void setStatus(Long status)
{
this.status = status;
}
public Long getStatus()
{
return status;
}
public void setApproveBy(String approveBy)
{
this.approveBy = approveBy;
}
public String getApproveBy()
{
return approveBy;
}
public void setApproveTime(Date approveTime)
{
this.approveTime = approveTime;
}
public Date getApproveTime()
{
return approveTime;
}
public void setRejectReason(String rejectReason)
{
this.rejectReason = rejectReason;
}
public String getRejectReason()
{
return rejectReason;
}
public void setDelFlag(Long delFlag)
{
this.delFlag = delFlag;
}
public Long getDelFlag()
{
return delFlag;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("assetId", getAssetId())
.append("scrapReasonType", getScrapReasonType())
.append("scrapRemark", getScrapRemark())
.append("gpsLocation", getGpsLocation())
.append("status", getStatus())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("approveBy", getApproveBy())
.append("approveTime", getApproveTime())
.append("rejectReason", getRejectReason())
.append("delFlag", getDelFlag())
.toString();
}
}

@ -0,0 +1,61 @@
package com.ruoyi.manager.mapper;
import java.util.List;
import com.ruoyi.manager.domain.RecordAssetScrap;
/**
* Mapper
*
* @author ruoyi
* @date 2026-06-02
*/
public interface RecordAssetScrapMapper
{
/**
*
*
* @param id
* @return
*/
public RecordAssetScrap selectRecordAssetScrapById(Long id);
/**
*
*
* @param recordAssetScrap
* @return
*/
public List<RecordAssetScrap> selectRecordAssetScrapList(RecordAssetScrap recordAssetScrap);
/**
*
*
* @param recordAssetScrap
* @return
*/
public int insertRecordAssetScrap(RecordAssetScrap recordAssetScrap);
/**
*
*
* @param recordAssetScrap
* @return
*/
public int updateRecordAssetScrap(RecordAssetScrap recordAssetScrap);
/**
*
*
* @param id
* @return
*/
public int deleteRecordAssetScrapById(Long id);
/**
*
*
* @param ids
* @return
*/
public int deleteRecordAssetScrapByIds(String[] ids);
}

@ -0,0 +1,61 @@
package com.ruoyi.manager.service;
import java.util.List;
import com.ruoyi.manager.domain.RecordAssetScrap;
/**
* Service
*
* @author ruoyi
* @date 2026-06-02
*/
public interface IRecordAssetScrapService
{
/**
*
*
* @param id
* @return
*/
public RecordAssetScrap selectRecordAssetScrapById(Long id);
/**
*
*
* @param recordAssetScrap
* @return
*/
public List<RecordAssetScrap> selectRecordAssetScrapList(RecordAssetScrap recordAssetScrap);
/**
*
*
* @param recordAssetScrap
* @return
*/
public int insertRecordAssetScrap(RecordAssetScrap recordAssetScrap);
/**
*
*
* @param recordAssetScrap
* @return
*/
public int updateRecordAssetScrap(RecordAssetScrap recordAssetScrap);
/**
*
*
* @param ids
* @return
*/
public int deleteRecordAssetScrapByIds(String ids);
/**
*
*
* @param id
* @return
*/
public int deleteRecordAssetScrapById(Long id);
}

@ -0,0 +1,96 @@
package com.ruoyi.manager.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.manager.mapper.RecordAssetScrapMapper;
import com.ruoyi.manager.domain.RecordAssetScrap;
import com.ruoyi.manager.service.IRecordAssetScrapService;
import com.ruoyi.common.core.text.Convert;
/**
* Service
*
* @author ruoyi
* @date 2026-06-02
*/
@Service
public class RecordAssetScrapServiceImpl implements IRecordAssetScrapService
{
@Autowired
private RecordAssetScrapMapper recordAssetScrapMapper;
/**
*
*
* @param id
* @return
*/
@Override
public RecordAssetScrap selectRecordAssetScrapById(Long id)
{
return recordAssetScrapMapper.selectRecordAssetScrapById(id);
}
/**
*
*
* @param recordAssetScrap
* @return
*/
@Override
public List<RecordAssetScrap> selectRecordAssetScrapList(RecordAssetScrap recordAssetScrap)
{
return recordAssetScrapMapper.selectRecordAssetScrapList(recordAssetScrap);
}
/**
*
*
* @param recordAssetScrap
* @return
*/
@Override
public int insertRecordAssetScrap(RecordAssetScrap recordAssetScrap)
{
recordAssetScrap.setCreateTime(DateUtils.getNowDate());
return recordAssetScrapMapper.insertRecordAssetScrap(recordAssetScrap);
}
/**
*
*
* @param recordAssetScrap
* @return
*/
@Override
public int updateRecordAssetScrap(RecordAssetScrap recordAssetScrap)
{
return recordAssetScrapMapper.updateRecordAssetScrap(recordAssetScrap);
}
/**
*
*
* @param ids
* @return
*/
@Override
public int deleteRecordAssetScrapByIds(String ids)
{
return recordAssetScrapMapper.deleteRecordAssetScrapByIds(Convert.toStrArray(ids));
}
/**
*
*
* @param id
* @return
*/
@Override
public int deleteRecordAssetScrapById(Long id)
{
return recordAssetScrapMapper.deleteRecordAssetScrapById(id);
}
}

@ -0,0 +1,101 @@
<?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.manager.mapper.RecordAssetScrapMapper">
<resultMap type="RecordAssetScrap" id="RecordAssetScrapResult">
<result property="id" column="id" />
<result property="assetId" column="asset_id" />
<result property="scrapReasonType" column="scrap_reason_type" />
<result property="scrapRemark" column="scrap_remark" />
<result property="gpsLocation" column="gps_location" />
<result property="status" column="status" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="approveBy" column="approve_by" />
<result property="approveTime" column="approve_time" />
<result property="rejectReason" column="reject_reason" />
<result property="delFlag" column="del_flag" />
</resultMap>
<sql id="selectRecordAssetScrapVo">
select id, asset_id, scrap_reason_type, scrap_remark, gps_location, status, create_by, create_time, approve_by, approve_time, reject_reason, del_flag from record_asset_scrap
</sql>
<select id="selectRecordAssetScrapList" parameterType="RecordAssetScrap" resultMap="RecordAssetScrapResult">
<include refid="selectRecordAssetScrapVo"/>
<where>
<if test="scrapReasonType != null and scrapReasonType != ''"> and scrap_reason_type = #{scrapReasonType}</if>
<if test="status != null "> and status = #{status}</if>
<if test="createBy != null and createBy != ''"> and create_by = #{createBy}</if>
<if test="params.beginCreateTime != null and params.beginCreateTime != '' and params.endCreateTime != null and params.endCreateTime != ''"> and create_time between #{params.beginCreateTime} and #{params.endCreateTime}</if>
<if test="params.beginApproveTime != null and params.beginApproveTime != '' and params.endApproveTime != null and params.endApproveTime != ''"> and approve_time between #{params.beginApproveTime} and #{params.endApproveTime}</if>
</where>
</select>
<select id="selectRecordAssetScrapById" parameterType="Long" resultMap="RecordAssetScrapResult">
<include refid="selectRecordAssetScrapVo"/>
where id = #{id}
</select>
<insert id="insertRecordAssetScrap" parameterType="RecordAssetScrap" useGeneratedKeys="true" keyProperty="id">
insert into record_asset_scrap
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="assetId != null">asset_id,</if>
<if test="scrapReasonType != null">scrap_reason_type,</if>
<if test="scrapRemark != null">scrap_remark,</if>
<if test="gpsLocation != null">gps_location,</if>
<if test="status != null">status,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="approveBy != null">approve_by,</if>
<if test="approveTime != null">approve_time,</if>
<if test="rejectReason != null">reject_reason,</if>
<if test="delFlag != null">del_flag,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="assetId != null">#{assetId},</if>
<if test="scrapReasonType != null">#{scrapReasonType},</if>
<if test="scrapRemark != null">#{scrapRemark},</if>
<if test="gpsLocation != null">#{gpsLocation},</if>
<if test="status != null">#{status},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="approveBy != null">#{approveBy},</if>
<if test="approveTime != null">#{approveTime},</if>
<if test="rejectReason != null">#{rejectReason},</if>
<if test="delFlag != null">#{delFlag},</if>
</trim>
</insert>
<update id="updateRecordAssetScrap" parameterType="RecordAssetScrap">
update record_asset_scrap
<trim prefix="SET" suffixOverrides=",">
<if test="assetId != null">asset_id = #{assetId},</if>
<if test="scrapReasonType != null">scrap_reason_type = #{scrapReasonType},</if>
<if test="scrapRemark != null">scrap_remark = #{scrapRemark},</if>
<if test="gpsLocation != null">gps_location = #{gpsLocation},</if>
<if test="status != null">status = #{status},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="approveBy != null">approve_by = #{approveBy},</if>
<if test="approveTime != null">approve_time = #{approveTime},</if>
<if test="rejectReason != null">reject_reason = #{rejectReason},</if>
<if test="delFlag != null">del_flag = #{delFlag},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteRecordAssetScrapById" parameterType="Long">
delete from record_asset_scrap where id = #{id}
</delete>
<delete id="deleteRecordAssetScrapByIds" parameterType="String">
delete from record_asset_scrap where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

@ -0,0 +1,22 @@
-- 菜单 SQL
insert into sys_menu (menu_name, parent_id, order_num, url, menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
values('资产报废提报', '2044', '7', '/manager/asset_scrap', 'C', '0', 'manager:asset_scrap:view', '#', 'admin', sysdate(), '', null, '资产报废提报菜单');
-- 按钮父菜单ID
SELECT @parentId := LAST_INSERT_ID();
-- 按钮 SQL
insert into sys_menu (menu_name, parent_id, order_num, url, menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
values('资产报废提报查询', @parentId, '1', '#', 'F', '0', 'manager:asset_scrap:list', '#', 'admin', sysdate(), '', null, '');
insert into sys_menu (menu_name, parent_id, order_num, url, menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
values('资产报废提报新增', @parentId, '2', '#', 'F', '0', 'manager:asset_scrap:add', '#', 'admin', sysdate(), '', null, '');
insert into sys_menu (menu_name, parent_id, order_num, url, menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
values('资产报废提报修改', @parentId, '3', '#', 'F', '0', 'manager:asset_scrap:edit', '#', 'admin', sysdate(), '', null, '');
insert into sys_menu (menu_name, parent_id, order_num, url, menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
values('资产报废提报删除', @parentId, '4', '#', 'F', '0', 'manager:asset_scrap:remove', '#', 'admin', sysdate(), '', null, '');
insert into sys_menu (menu_name, parent_id, order_num, url, menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
values('资产报废提报导出', @parentId, '5', '#', 'F', '0', 'manager:asset_scrap:export', '#', 'admin', sysdate(), '', null, '');

@ -0,0 +1,94 @@
<!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-asset_scrap-add">
<div class="col-xs-6">
<div class="form-group">
<label class="col-sm-4 control-label">资产ID</label>
<div class="col-sm-8">
<input name="assetId" class="form-control" type="text">
</div>
</div>
</div>
<div class="col-xs-6">
<div class="form-group">
<label class="col-sm-4 control-label">报废原因类型:</label>
<div class="col-sm-8">
<select name="scrapReasonType" class="form-control" th:with="type=${@dict.getType('asset_scrap_reason')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</div>
</div>
</div>
<div class="col-xs-6">
<div class="form-group">
<label class="col-sm-4 control-label">报废说明:</label>
<div class="col-sm-8">
<textarea name="scrapRemark" class="form-control"></textarea>
</div>
</div>
</div>
<div class="col-xs-6">
<div class="form-group">
<label class="col-sm-4 control-label">GPS坐标</label>
<div class="col-sm-8">
<input name="gpsLocation" class="form-control" type="text">
</div>
</div>
</div>
<div class="col-xs-6">
<div class="form-group">
<label class="col-sm-4 control-label">审批人:</label>
<div class="col-sm-8">
<input name="approveBy" class="form-control" type="text">
</div>
</div>
</div>
<div class="col-xs-6">
<div class="form-group">
<label class="col-sm-4 control-label">审批时间:</label>
<div class="col-sm-8">
<div class="input-group date">
<input name="approveTime" 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>
<div class="col-xs-6">
<div class="form-group">
<label class="col-sm-4 control-label">驳回原因:</label>
<div class="col-sm-8">
<input name="rejectReason" class="form-control" type="text">
</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 + "manager/asset_scrap"
$("#form-asset_scrap-add").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/add", $('#form-asset_scrap-add').serialize());
}
}
$("input[name='approveTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
</script>
</body>
</html>

@ -0,0 +1,150 @@
<!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>
报废原因类型:
<select name="scrapReasonType" th:with="type=${@dict.getType('asset_scrap_reason')}">
<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="createBy"/>
</li>
<li class="select-time">
<label>提报时间:</label>
<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginCreateTime]"/>
<span>-</span>
<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endCreateTime]"/>
</li>
<li class="select-time">
<label>审批时间:</label>
<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginApproveTime]"/>
<span>-</span>
<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endApproveTime]"/>
</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="manager:asset_scrap:add">
<i class="fa fa-plus"></i> 添加
</a>
<a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="manager:asset_scrap:edit">
<i class="fa fa-edit"></i> 修改
</a>
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="manager:asset_scrap:remove">
<i class="fa fa-remove"></i> 删除
</a>
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="manager:asset_scrap: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('manager:asset_scrap:edit')}]];
var removeFlag = [[${@permission.hasPermi('manager:asset_scrap:remove')}]];
var scrapReasonTypeDatas = [[${@dict.getType('asset_scrap_reason')}]];
var prefix = ctx + "manager/asset_scrap";
$(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: 'assetId',
title: '资产ID'
},
{
field: 'scrapReasonType',
title: '报废原因类型',
formatter: function(value, row, index) {
return $.table.selectDictLabel(scrapReasonTypeDatas, value);
}
},
{
field: 'scrapRemark',
title: '报废说明'
},
{
field: 'gpsLocation',
title: 'GPS坐标'
},
{
field: 'status',
title: '状态'
},
{
field: 'createBy',
title: '提报人'
},
{
field: 'createTime',
title: '提报时间'
},
{
field: 'approveBy',
title: '审批人'
},
{
field: 'approveTime',
title: '审批时间'
},
{
field: 'rejectReason',
title: '驳回原因'
},
{
field: 'delFlag',
title: '删除标志0=正常 1=删除',
visible: false
},
{
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>

@ -0,0 +1,95 @@
<!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-asset_scrap-edit" th:object="${recordAssetScrap}">
<input name="id" th:field="*{id}" type="hidden">
<div class="col-xs-6">
<div class="form-group">
<label class="col-sm-4 control-label">资产ID</label>
<div class="col-sm-8">
<input name="assetId" th:field="*{assetId}" class="form-control" type="text">
</div>
</div>
</div>
<div class="col-xs-6">
<div class="form-group">
<label class="col-sm-4 control-label">报废原因类型:</label>
<div class="col-sm-8">
<select name="scrapReasonType" class="form-control" th:with="type=${@dict.getType('asset_scrap_reason')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{scrapReasonType}"></option>
</select>
</div>
</div>
</div>
<div class="col-xs-6">
<div class="form-group">
<label class="col-sm-4 control-label">报废说明:</label>
<div class="col-sm-8">
<textarea name="scrapRemark" class="form-control">[[*{scrapRemark}]]</textarea>
</div>
</div>
</div>
<div class="col-xs-6">
<div class="form-group">
<label class="col-sm-4 control-label">GPS坐标</label>
<div class="col-sm-8">
<input name="gpsLocation" th:field="*{gpsLocation}" class="form-control" type="text">
</div>
</div>
</div>
<div class="col-xs-6">
<div class="form-group">
<label class="col-sm-4 control-label">审批人:</label>
<div class="col-sm-8">
<input name="approveBy" th:field="*{approveBy}" class="form-control" type="text">
</div>
</div>
</div>
<div class="col-xs-6">
<div class="form-group">
<label class="col-sm-4 control-label">审批时间:</label>
<div class="col-sm-8">
<div class="input-group date">
<input name="approveTime" th:value="${#dates.format(recordAssetScrap.approveTime, '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>
<div class="col-xs-6">
<div class="form-group">
<label class="col-sm-4 control-label">驳回原因:</label>
<div class="col-sm-8">
<input name="rejectReason" th:field="*{rejectReason}" class="form-control" type="text">
</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 + "manager/asset_scrap";
$("#form-asset_scrap-edit").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/edit", $('#form-asset_scrap-edit').serialize());
}
}
$("input[name='approveTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
</script>
</body>
</html>
Loading…
Cancel
Save