Commit 8bdf41b7 by 彭祥礼

增加KPI管理导入功能

parent 9d841d57
......@@ -19,6 +19,7 @@ import com.winsun.mapper.SchoolMapper;
import com.winsun.mapper.SysUserMapper;
import com.winsun.mapper.UserSchoolMapper;
import com.winsun.utils.ExcelDealUtils;
import com.winsun.utils.ImportExcel;
import com.winsun.utils.MyBatisPlusUpdateUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
......@@ -32,14 +33,12 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* 正则校检
......@@ -423,10 +422,6 @@ public class LzKpiController extends BaseController {
@Permission(menuname = "楼长KPI管理信息导入模板", method = RequestMethod.POST, value = "downloadMoBan")
public ResponseData downloadMoBan() {
ArrayList<String> columns = new ArrayList<>();
columns.add(SL_sysuName);
columns.add(SL_account);
columns.add(SL_substName);
columns.add(SL_schoolName);
columns.add(SL_reportDaily);
columns.add(SL_collectiveSales);
columns.add(SL_weeklyMeeting);
......@@ -434,27 +429,31 @@ public class LzKpiController extends BaseController {
columns.add(SL_designPlan);
columns.add(SL_kpi);
columns.add(SL_month);
columns.add(SL_sysuName);
columns.add(SL_account);
columns.add(SL_substName);
columns.add(SL_schoolName);
ServletOutputStream os = null;
XSSFWorkbook workbook = new XSSFWorkbook();
try {
//创建工作表
XSSFSheet sheet = workbook.createSheet("楼长KPI管理信息");
sheet.setColumnWidth(0, 4000);
sheet.setColumnWidth(1, 6000);
sheet.setColumnWidth(2, 3000);
sheet.setColumnWidth(3, 9000);
sheet.setColumnWidth(0, 2000);
sheet.setColumnWidth(1, 2000);
sheet.setColumnWidth(2, 2000);
sheet.setColumnWidth(3, 2000);
sheet.setColumnWidth(4, 2000);
sheet.setColumnWidth(5, 2000);
sheet.setColumnWidth(6, 2000);
sheet.setColumnWidth(7, 2000);
sheet.setColumnWidth(8, 2000);
sheet.setColumnWidth(9, 2000);
sheet.setColumnWidth(10, 5000);
sheet.setColumnWidth(6, 5000);
sheet.setColumnWidth(7, 4000);
sheet.setColumnWidth(8, 6000);
sheet.setColumnWidth(9, 3000);
sheet.setColumnWidth(10, 9000);
//下拉选项
List<String> fengju = new ArrayList<>();
/*List<String> fengju = new ArrayList<>();
fengju.add("受理不成功");
fengju.add("受理成功");
sheet = this.getXSSFSheet(sheet, fengju, 1, 1);
sheet = this.getXSSFSheet(sheet, fengju, 1, 1);*/
//添加表头
final XSSFRow row = sheet.createRow(0);
XSSFCellStyle cellStyle = workbook.createCellStyle();
......@@ -472,11 +471,11 @@ public class LzKpiController extends BaseController {
workbook.write(os);
os.flush();
} catch (IOException e) {
log.error("受理单模板文件出错!" + e.getMessage(), e);
log.error("楼长KPI管理信息模板文件出错!" + e.getMessage(), e);
} finally {
IOUtils.closeQuite(workbook, os);
}
return ResponseData.error("受理单模板出错");
return ResponseData.error("楼长KPI管理信息模板出错");
}
XSSFSheet getXSSFSheet(XSSFSheet sheet, List<String> datas, int firstcol, int lastcol) {
......@@ -501,7 +500,7 @@ public class LzKpiController extends BaseController {
* @param file 上传的数据文件
* @return
*/
/*@Permission(menuname = "上传数据", value = "importDate", method = RequestMethod.POST)
@Permission(menuname = "上传数据", value = "importDate", method = RequestMethod.POST)
public ResponseData<String> updateDatas(@RequestParam(name = "file") MultipartFile file) {
StringBuffer error = new StringBuffer();
if (!StringUtils.endsWithAny(file.getOriginalFilename(), "xlsx", "xls")) {
......@@ -517,123 +516,143 @@ public class LzKpiController extends BaseController {
try {
importExcel = new ImportExcel(file, HEADER_NUM, SHEET_INDEX);
} catch (Exception e) {
log.error("受理单导入异常", e.getMessage());
log.error("楼长KPI管理信息导入异常", e.getMessage());
return ResponseData.error("导入异常!");
}
List<Map<String, Object>> listMap = importExcel.getDataListMap();
if (listMap.size() == 1) {
return ResponseData.error("文件不能为空");
}
if (!listMap.get(0).get("a").toString().equals(SL_sysuName)) {
if (!listMap.get(0).get("a").toString().equals(SL_reportDaily)) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
if (!listMap.get(0).get("b").toString().equals(SL_account)) {
if (!listMap.get(0).get("b").toString().equals(SL_collectiveSales)) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
if (!listMap.get(0).get("c").toString().equals(SL_substName)) {
if (!listMap.get(0).get("c").toString().equals(SL_weeklyMeeting)) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
if (!listMap.get(0).get("d").toString().equals(SL_schoolName)) {
if (!listMap.get(0).get("d").toString().equals(SL_organTraining)) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
if (!listMap.get(0).get("d").toString().equals(SL_reportDaily)) {
if (!listMap.get(0).get("e").toString().equals(SL_designPlan)) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
if (!listMap.get(0).get("d").toString().equals(SL_collectiveSales)) {
if (!listMap.get(0).get("f").toString().equals(SL_kpi)) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
if (!listMap.get(0).get("d").toString().equals(SL_weeklyMeeting)) {
if (!listMap.get(0).get("g").toString().equals(SL_month)) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
if (!listMap.get(0).get("d").toString().equals(SL_organTraining)) {
if (!listMap.get(0).get("h").toString().equals(SL_sysuName)) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
if (!listMap.get(0).get("d").toString().equals(SL_designPlan)) {
if (!listMap.get(0).get("i").toString().equals(SL_account)) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
if (!listMap.get(0).get("d").toString().equals(SL_kpi)) {
if (!listMap.get(0).get("j").toString().equals(SL_substName)) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
if (!listMap.get(0).get("d").toString().equals(SL_month)) {
if (!listMap.get(0).get("k").toString().equals(SL_schoolName)) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
if (listMap.get(0).size() != 11) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
List<String> accountList = new LinkedList<>();
List<Map<String,Object>> sysUserList = new LinkedList<>();
//校验数据
try {
//校验数据
for (int i = 1; i < listMap.size(); i++) {
Map<String, Object> temp = listMap.get(i);
if (!temp.containsKey("a")) {
return ResponseData.error("第" + (i + 1) + "行的姓名不能为空");
return ResponseData.error("第" + (i + 1) + "行的汇总任务量不能为空");
}
if (StringUtils.isBlank(temp.get("a").toString())) {
return ResponseData.error("第" + (i + 1) + "行的姓名不能为空");
return ResponseData.error("第" + (i + 1) + "行的汇总任务量不能为空");
}
if (!temp.containsKey("b")) {
return ResponseData.error("第" + (i + 1) + "行的账号不能为空");
return ResponseData.error("第" + (i + 1) + "行的参与集中营销不能为空");
}
if (StringUtils.isBlank(temp.get("b").toString())) {
return ResponseData.error("第" + (i + 1) + "行的账号不能为空");
return ResponseData.error("第" + (i + 1) + "行的参与集中营销不能为空");
}
if (!temp.containsKey("c")) {
return ResponseData.error("第" + (i + 1) + "行的县分不能为空");
return ResponseData.error("第" + (i + 1) + "行的组织周例会不能为空");
}
if (StringUtils.isBlank(temp.get("c").toString())) {
return ResponseData.error("第" + (i + 1) + "行的县分不能为空");
return ResponseData.error("第" + (i + 1) + "行的组织周例会不能为空");
}
if (!temp.containsKey("d")) {
return ResponseData.error("第" + (i + 1) + "行的学校名不能为空");
return ResponseData.error("第" + (i + 1) + "行的定制扫楼营销方案不能为空");
}
if (StringUtils.isBlank(temp.get("d").toString())) {
return ResponseData.error("第" + (i + 1) + "行的学校名不能为空");
return ResponseData.error("第" + (i + 1) + "行的定制扫楼营销方案不能为空");
}
if (!temp.containsKey("e")) {
return ResponseData.error("第" + (i + 1) + "行的汇总任务量不能为空");
return ResponseData.error("第" + (i + 1) + "行的组织培训不能为空");
}
if (StringUtils.isBlank(temp.get("e").toString())) {
return ResponseData.error("第" + (i + 1) + "行的汇总任务量不能为空");
return ResponseData.error("第" + (i + 1) + "行的组织培训不能为空");
}
if (!temp.containsKey("f")) {
return ResponseData.error("第" + (i + 1) + "行的参与集中营销不能为空");
return ResponseData.error("第" + (i + 1) + "行的KPI总值不能为空");
}
if (StringUtils.isBlank(temp.get("f").toString())) {
return ResponseData.error("第" + (i + 1) + "行的参与集中营销不能为空");
return ResponseData.error("第" + (i + 1) + "行的KPI总值不能为空");
}
if (!temp.containsKey("g")) {
return ResponseData.error("第" + (i + 1) + "行的组织周例会不能为空");
return ResponseData.error("第" + (i + 1) + "行的KPI月份不能为空");
}
if (StringUtils.isBlank(temp.get("g").toString())) {
return ResponseData.error("第" + (i + 1) + "行的组织周例会不能为空");
}
if (!temp.containsKey("h")) {
return ResponseData.error("第" + (i + 1) + "行的定制扫楼营销方案不能为空");
return ResponseData.error("第" + (i + 1) + "行的KPI月份不能为空");
}if (!temp.containsKey("h")) {
return ResponseData.error("第" + (i + 1) + "行的姓名不能为空");
}
if (StringUtils.isBlank(temp.get("h").toString())) {
return ResponseData.error("第" + (i + 1) + "行的定制扫楼营销方案不能为空");
return ResponseData.error("第" + (i + 1) + "行的姓名不能为空");
}
if (!temp.containsKey("i")) {
return ResponseData.error("第" + (i + 1) + "行的组织培训不能为空");
return ResponseData.error("第" + (i + 1) + "行的账号不能为空");
}
if (StringUtils.isBlank(temp.get("i").toString())) {
return ResponseData.error("第" + (i + 1) + "行的组织培训不能为空");
return ResponseData.error("第" + (i + 1) + "行的账号不能为空");
}
if (!temp.containsKey("j")) {
return ResponseData.error("第" + (i + 1) + "行的KPI总值不能为空");
return ResponseData.error("第" + (i + 1) + "行的县分不能为空");
}
if (StringUtils.isBlank(temp.get("j").toString())) {
return ResponseData.error("第" + (i + 1) + "行的KPI总值不能为空");
return ResponseData.error("第" + (i + 1) + "行的县分不能为空");
}
if (!temp.containsKey("k")) {
return ResponseData.error("第" + (i + 1) + "行的KPI月份不能为空");
return ResponseData.error("第" + (i + 1) + "行的学校名不能为空");
}
if (StringUtils.isBlank(temp.get("k").toString())) {
return ResponseData.error("第" + (i + 1) + "行的KPI月份不能为空");
return ResponseData.error("第" + (i + 1) + "行的学校名不能为空");
}
if (temp.containsKey("i")) {
accountList.add(temp.get("i").toString());
}
}
Wrapper<SysUser> sysWrapper = new EntityWrapper<>();
sysWrapper.setSqlSelect("id,account");
sysWrapper.in("account",accountList);
sysUserList = sysUserMapper.selectMaps(sysWrapper);
for (Map<String, Object> map : listMap) {
String account = map.get("i").toString();
for (Map<String, Object> tmap : sysUserList) {
if(account.equals(tmap.get("account").toString())){
map.put("h",tmap.get("id").toString());
break;
}
}
}
//检查excel表中是否有重复人员编号
int size = listMap.size();
/*int size = listMap.size();
Set<String> accountSet = new HashSet<>(size);
for (int i = 0; i < size; i++) {
Map<String, Object> temp = listMap.get(i);
......@@ -641,46 +660,47 @@ public class LzKpiController extends BaseController {
}
if (accountSet.size() != size) {
return ResponseData.error("文件中有重复的用户账号,请确认用户账号不能重复!");
}
}*/
} catch (Exception e) {
log.error("楼长KPI管理信息导入异常", e.getMessage());
return ResponseData.error("导入异常!");
}
int number = 0;
Date acceptDate = new Date();
Date successTime = acceptDate;
for (int i = 1; i < listMap.size(); i++) {
Map<String, Object> map = listMap.get(i);
String sysuName = map.get("a").toString();
String account = map.get("b").toString();
String substName = map.get("c").toString();
String schoolName = map.get("d").toString();
Integer reportDaily = Integer.valueOf(map.get("e").toString());
Integer collectiveSales = Integer.valueOf(map.get("f").toString());
Integer weeklyMeeting = Integer.valueOf(map.get("g").toString());
Integer organTraining = Integer.valueOf(map.get("h").toString());
Integer designPlan = Integer.valueOf(map.get("i").toString());
Integer kpi = Integer.valueOf(map.get("j").toString());
String month = map.get("k").toString();
String acceptComment = null;
if (StringUtils.isNotBlank(map.get("d").toString())) {
acceptComment = map.get("d").toString();
}
LzKpi lzKpi = new LzKpi();
Integer reportDaily = Integer.valueOf(map.get("a").toString());
lzKpi.setReportDaily(reportDaily);
Integer collectiveSales = Integer.valueOf(map.get("b").toString());
lzKpi.setCollectiveSales(collectiveSales);
Integer weeklyMeeting = Integer.valueOf(map.get("c").toString());
lzKpi.setWeeklyMeeting(weeklyMeeting);
Integer organTraining = Integer.valueOf(map.get("d").toString());
lzKpi.setOrganTraining(organTraining);
Integer designPlan = Integer.valueOf(map.get("e").toString());
lzKpi.setDesignPlan(designPlan);
Integer kpi = Integer.valueOf(map.get("f").toString());
lzKpi.setKpi(kpi);
String month = map.get("g").toString();
lzKpi.setMonth(month);
String userId = map.get("h").toString();
lzKpi.setUserId(userId);
Integer integer = null;
if (StringUtils.isNotBlank(account)) {
integer = orderMapper.updateOrderSUByOrderNumberIsNotNull(orderNumber, orderStatus, acceptName, acceptResult, acceptComment, acceptDate,successTime);
String userId0 = null;
if (StringUtils.isNotBlank(map.get("h").toString())) {
userId0 = map.get("h").toString();
}
Integer integer = lzKpiMapper.insert(lzKpi);
if (integer == 1) {
number++;
String id = orderMapper.selectIdByOrderNumber(orderNumber);
appMapper.inserOrderHis(id, status, acceptDate, user.getName());
} else {
error.append("第" + (i + 1) + "行的更新失败,");
}
}
error.append("成功更新" + number + "条数据!");
return ResponseData.success(error.toString(), "导入完成");
}*/
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment