change - 报警信息导入

master
wenjy 2 years ago
parent ff59aba215
commit ff84a4afb6

@ -9,7 +9,7 @@ ruoyi:
# 实例演示开关
demoEnabled: false
# 文件路径 示例( Windows配置D:/ruoyi/uploadPathLinux配置 /home/ruoyi/uploadPath
profile: E:/RFID物料追溯项目/RFID物料追溯平台/uploadPath
profile: D:/RFID物料追溯项目/RFID物料追溯平台/uploadPath
# 获取ip地址开关
addressEnabled: false

@ -1,6 +1,8 @@
package com.ruoyi.traceability.controller;
import java.util.List;
import com.ruoyi.common.core.domain.entity.SysUser;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@ -18,6 +20,7 @@ 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;
import org.springframework.web.multipart.MultipartFile;
/**
* Controller
@ -124,4 +127,25 @@ public class BaseAlarminfoController extends BaseController
{
return toAjax(baseAlarminfoService.deleteBaseAlarminfoByObjIds(ids));
}
@Log(title = "报警信息", businessType = BusinessType.IMPORT)
@RequiresPermissions("traceability:alarminfo:import")
@PostMapping("/importData")
@ResponseBody
public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
{
ExcelUtil<BaseAlarminfo> util = new ExcelUtil<BaseAlarminfo>(BaseAlarminfo.class);
List<BaseAlarminfo> alarminfoList = util.importExcel(file.getInputStream());
String message = baseAlarminfoService.importAlarmInfo(alarminfoList, updateSupport, getLoginName());
return AjaxResult.success(message);
}
@RequiresPermissions("traceability:alarminfo:view")
@GetMapping("/importTemplate")
@ResponseBody
public AjaxResult importTemplate()
{
ExcelUtil<BaseAlarminfo> util = new ExcelUtil<BaseAlarminfo>(BaseAlarminfo.class);
return util.importTemplateExcel("报警信息");
}
}

@ -27,7 +27,7 @@ public class BaseAlarminfo extends BaseEntity
private String alarmMessage;
/** 解决建议 */
@Excel(name = "解决建议")
/*@Excel(name = "解决建议")*/
private String alarmPropose;
public void setObjId(Long objId)

@ -19,6 +19,13 @@ public interface BaseAlarminfoMapper
*/
public BaseAlarminfo selectBaseAlarminfoByObjId(Long objId);
/**
*
* @param code
* @return
*/
public BaseAlarminfo selectBaseAlarmInfoByAlarmCode(String code);
/**
*
*

@ -1,6 +1,8 @@
package com.ruoyi.traceability.service;
import java.util.List;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.traceability.domain.BaseAlarminfo;
/**
@ -58,4 +60,13 @@ public interface IBaseAlarminfoService
* @return
*/
public int deleteBaseAlarminfoByObjId(Long objId);
/**
*
* @param alarminfoList
* @param isUpdateSupport
* @param operName
* @return
*/
public String importAlarmInfo(List<BaseAlarminfo> alarminfoList, Boolean isUpdateSupport, String operName);
}

@ -1,6 +1,12 @@
package com.ruoyi.traceability.service.impl;
import java.util.List;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.BeanValidators;
import com.ruoyi.common.utils.security.Md5Utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.traceability.mapper.BaseAlarminfoMapper;
@ -91,4 +97,58 @@ public class BaseAlarminfoServiceImpl implements IBaseAlarminfoService
{
return baseAlarminfoMapper.deleteBaseAlarminfoByObjId(objId);
}
@Override
public String importAlarmInfo(List<BaseAlarminfo> alarminfoList, Boolean isUpdateSupport, String operName) {
if (StringUtils.isNull(alarminfoList) || alarminfoList.size() == 0)
{
throw new ServiceException("导入用户数据不能为空!");
}
int successNum = 0;
int failureNum = 0;
StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder();
for (BaseAlarminfo alarminfo : alarminfoList)
{
try
{
BaseAlarminfo info = baseAlarminfoMapper.selectBaseAlarmInfoByAlarmCode(alarminfo.getAlarmCode());
if (StringUtils.isNull(info))
{
this.insertBaseAlarminfo(alarminfo);
successNum++;
successMsg.append("<br/>" + successNum + "、编号 " + alarminfo.getAlarmCode() + " 导入成功");
}
else if (isUpdateSupport)
{
info.setAlarmMessage(alarminfo.getAlarmMessage());
info.setAlarmPropose(alarminfo.getAlarmPropose());
this.updateBaseAlarminfo(info);
successNum++;
successMsg.append("<br/>" + successNum + "、编号 " + info.getAlarmCode() + " 更新成功");
}
else
{
failureNum++;
failureMsg.append("<br/>" + failureNum + "、编号 " + info.getAlarmCode() + " 已存在");
}
}
catch (Exception e)
{
failureNum++;
String msg = "<br/>" + failureNum + "、编号 " + alarminfo.getAlarmCode() + " 导入失败:";
failureMsg.append(msg + e.getMessage());
}
}
if (failureNum > 0)
{
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
throw new ServiceException(failureMsg.toString());
}
else
{
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
}
return successMsg.toString();
}
}

@ -27,6 +27,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectBaseAlarminfoVo"/>
where objId = #{objId}
</select>
<select id="selectBaseAlarmInfoByAlarmCode" parameterType="String" resultMap="BaseAlarminfoResult">
<include refid="selectBaseAlarminfoVo"/>
where alarmCode = #{alarmCode}
</select>
<insert id="insertBaseAlarminfo" parameterType="BaseAlarminfo" useGeneratedKeys="true" keyProperty="objId">
insert into base_alarminfo

@ -18,12 +18,12 @@
<input name="alarmMessage" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<!--<div class="form-group">
<label class="col-sm-3 control-label">解决建议:</label>
<div class="col-sm-8">
<input name="alarmPropose" class="form-control" type="text">
</div>
</div>
</div>-->
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">

@ -33,6 +33,9 @@
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="traceability:alarminfo:remove">
<i class="fa fa-remove"></i> 删除
</a>
<a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="traceability:alarminfo:import">
<i class="fa fa-upload"></i> 导入
</a>
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="traceability:alarminfo:export">
<i class="fa fa-download"></i> 导出
</a>
@ -55,6 +58,8 @@
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
importUrl: prefix + "/importData",
importTemplateUrl: prefix + "/importTemplate",
modalName: "报警信息",
columns: [{
checkbox: true
@ -74,7 +79,8 @@
},
{
field: 'alarmPropose',
title: '解决建议'
title: '解决建议',
visible: false
},
{
field: 'remark',
@ -95,4 +101,19 @@
});
</script>
</body>
<!-- 导入区域 -->
<script id="importTpl" type="text/template">
<form enctype="multipart/form-data" class="mt20 mb10">
<div class="col-xs-offset-1">
<input type="file" id="file" name="file"/>
<div class="mt10 pt5">
<input type="checkbox" id="updateSupport" name="updateSupport" title="如果登录账户已经存在,更新这条数据。"> 是否更新已经存在的用户数据
&nbsp; <a onclick="$.table.importTemplate()" class="btn btn-default btn-xs"><i class="fa fa-file-excel-o"></i> 下载模板</a>
</div>
<font color="red" class="pull-left mt10">
提示仅允许导入“xls”或“xlsx”格式文件
</font>
</div>
</form>
</script>
</html>

@ -19,12 +19,12 @@
<input name="alarmMessage" th:field="*{alarmMessage}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<!--<div class="form-group">
<label class="col-sm-3 control-label">解决建议:</label>
<div class="col-sm-8">
<input name="alarmPropose" th:field="*{alarmPropose}" class="form-control" type="text">
</div>
</div>
</div>-->
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">

Loading…
Cancel
Save