Commit 5e62f23a by 罗承锋

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	old-user/src/main/java/com/winsun/controller/PackageUpgradeController.java
parents 6c287abe 6497a078
......@@ -534,7 +534,7 @@ public class PackageUpgradeController extends BaseController {
order.setOrderStatus("待受理");
order.setUserType("1"); // 老客户办理
order.setNowPackage(oldPackage);
order.setBusinessPackage(kapin);
order.setBusinessPackage("5G加装包");
order.setHehuorenId(partner);
if(!partnerInfo.isEmpty()) {
order.setHehuorenArea(partnerInfo.get(0).get("area").toString());
......
......@@ -99,6 +99,12 @@ public class OrderController extends BaseController {
private static String BUSINESS_NUMBER = "办理号码(必填)";
private static String BUSINESS_ICCID = "iccid(必填)";
/**
* 5G加装包清单模板列名
*/
private static String ORDER_STATUS = "受理状态(已完成,异常单)";
private static OrderMapper orderMapper;
private static OrderViewMapper orderViewMapper;
......@@ -126,6 +132,9 @@ public class OrderController extends BaseController {
private SalesListController salesListController;
@Autowired
private SalesListMapper salesListMapper;
@Autowired
private IHhrUserService hhrUserService;
private InputStream in = this.getClass().getResourceAsStream("/txtfiledetail.properties");
......@@ -1187,7 +1196,7 @@ public class OrderController extends BaseController {
}
/**
* 上传快递清单
* 上传预制卡批量选号清单
*
* @param file 上传预制卡批量选号的数据文件
* @return
......@@ -1389,6 +1398,138 @@ public class OrderController extends BaseController {
error.append("成功更新" + number + "条数据!");
return ResponseData.success(error.toString(), "导入完成");
}
/**
* 上传5G加装包批量受理清单
*
* @param file 上传5G加装包批量受理的数据文件
* @return
*/
@Permission(menuname = "上传5G加装包批量受理清单", value = "importPackageOrder", method = RequestMethod.POST)
public ResponseData<String> importPackageOrder(@RequestParam(name = "file") MultipartFile file) {
StringBuffer error = new StringBuffer();
if (!StringUtils.endsWithAny(file.getOriginalFilename(), "xlsx", "xls")) {
return ResponseData.error("手工上传数据仅支持Excel文件,其他格式不支持!");
}
if ((double) file.getSize() / 1048576 > 100) {
return ResponseData.error("文件过大,无法上传");
}
ShiroUser user = getShiroUser();
// 当前是否有数据权限
boolean hasDataPermission = user.getRoleNames().stream().anyMatch(data -> StringUtils.equalsAny(data, "营业员", "超级管理员"));
if (!hasDataPermission) {
return ResponseData.error("无数据权限!");
}
ImportExcel importExcel = null;
try {
importExcel = new ImportExcel(file, HEADER_NUM, SHEET_INDEX);
} catch (Exception e) {
log.error("上传5G加装包批量受理清单导入异常", e.getMessage());
return ResponseData.error("导入异常!");
}
List<Map<String, Object>> listMap = importExcel.getDataListMap();
if (listMap.size() == 0) {
return ResponseData.error("文件不能为空");
}
if (listMap.get(0).size() != 2) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
if (!listMap.get(0).get("a").toString().equals(BUSINESS_NUMBER)) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
if (!listMap.get(0).get("b").toString().equals(ORDER_STATUS)) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
//校验数据
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) + "行的办理号码不能为空");
}
if (StringUtils.isBlank(temp.get("a").toString())) {
return ResponseData.error("第" + (i + 1) + "行的办理号码不能为空");
}
if (!temp.containsKey("b")) {
return ResponseData.error("第" + (i + 1) + "行的受理状态不能为空");
}
if (StringUtils.isBlank(temp.get("b").toString())) {
return ResponseData.error("第" + (i + 1) + "行的受理状态不能为空");
}
}
//检查excel表中是否有重复办理号码
int size = listMap.size();
Set<String> accountSet = new HashSet<>(size);
StringBuffer stringBuffer = new StringBuffer();
for (int i = 1; i < size; i++) {
Map<String, Object> temp = listMap.get(i);
accountSet.add((String) temp.get("a"));
stringBuffer = new StringBuffer(temp.get("b").toString());
if(!("已完成".equals(stringBuffer.toString()) || "异常单".equals(stringBuffer.toString()))){
return ResponseData.error("文件中订单状态格式有误!");
}
}
if (accountSet.size()+1 != size) {
return ResponseData.error("文件中有重复的办理号码,请确认办理号码不能重复!");
}
} catch (Exception e) {
log.error("5G加装包清单导入异常", e.getMessage());
return ResponseData.error("导入异常!");
}
int number = 0;
Integer integer = 0;
for (int i = 1; i < listMap.size(); i++) {
integer = 0;
Map<String, Object> map = listMap.get(i);
String businessNumber = map.get("a").toString();
String orderStatus = map.get("b").toString();
Wrapper<Order> wrapper = new EntityWrapper();
wrapper.eq(StringUtils.isNotBlank(businessNumber),"business_number",businessNumber);
wrapper.eq("kapin","5G加装包");
wrapper.ne("user_type","1");
List<Order> orderByNumber = orderMapper.selectList(wrapper);
if(orderByNumber.size()==0){
continue;
}
Order dataOrder = new Order();
dataOrder.setOrderStatus(orderStatus);
SalesList sales = new SalesList();
Date date = new Date();
try {
integer = orderMapper.update(dataOrder,wrapper);
// 新增受理记录
appMapper.inserOrderHis(dataOrder.getId(), "5G加装包受理状态:"+orderStatus, date, user.getName());
} catch (Exception e) {
e.printStackTrace();
}
if (integer == 1) {
sales.setOrderPhone(businessNumber);
sales.setUserId(orderByNumber.get(0).getHehuorenId());
sales.setName(orderByNumber.get(0).getHehuorenName());
sales.setAccount(user.getAccount());
sales.setCreateTime(date);
sales.setSalesSubst(orderByNumber.get(0).getHehuorenArea());
sales.setSalesSchool(orderByNumber.get(0).getHehuorenSchool());
sales.setOrderType(orderByNumber.get(0).getUserType());
sales.setOrderNum(orderByNumber.get(0).getOrderNumber());
sales.setUpgradeCombo(orderByNumber.get(0).getBusinessPackage());
sales.setOldCombo(orderByNumber.get(0).getNowPackage());
sales.setDelFlag("0");
sales.setLockState("0");
salesListMapper.insert(sales);
number++;
} else {
error.append("第" + (i + 1) + "行的更新失败,");
}
}
error.append("成功更新" + number + "条数据!");
return ResponseData.success(error.toString(), "导入完成");
}
/**
* 受理订单模板下载
*
......@@ -1522,6 +1663,42 @@ public class OrderController extends BaseController {
return ResponseData.error("预制卡批量填号模板出错");
}
@Permission(menuname = "5G批量受理导入模板", method = RequestMethod.POST, value = "downloadMoBanPackageOrder")
public ResponseData downloadMoBanPackageOrder() {
ArrayList<String> columns = new ArrayList<>();
columns.add(BUSINESS_NUMBER);
columns.add(ORDER_STATUS);
ServletOutputStream os = null;
XSSFWorkbook workbook = new XSSFWorkbook();
try {
//创建工作表
XSSFSheet sheet = workbook.createSheet("5G批量受理清单");
sheet.setColumnWidth(0, 5000);
sheet.setColumnWidth(1, 9000);
//添加表头
final XSSFRow row = sheet.createRow(0);
XSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setAlignment(HorizontalAlignment.CENTER);
columns.forEach(val -> {
XSSFCell cell = row.createCell(Math.max(row.getLastCellNum(), 0));
cell.setCellValue(val);
});
HttpServletResponse response = getHttpServletResponse();
response.reset();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;fileName=data.xlsx");
os = response.getOutputStream();
workbook.write(os);
os.flush();
} catch (IOException e) {
log.error("模板文件出错!" + e.getMessage(), e);
} finally {
IOUtils.closeQuite(workbook, os);
}
return ResponseData.error("模板出错");
}
XSSFSheet getXSSFSheet(XSSFSheet sheet, List<String> datas, int firstcol, int lastcol) {
if (datas.size() == 0) {
......
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