From 4417a8d3799a03afc5e9c7333914359f0e3052be Mon Sep 17 00:00:00 2001
From: gdg <764716047@qq.com>
Date: 星期三, 30 十二月 2020 11:02:10 +0800
Subject: [PATCH] 修改库存个数bug问题
---
src/main/java/com/nanometer/smartlab/service/SysControllerServiceImpl.java | 139 +++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 135 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/nanometer/smartlab/service/SysControllerServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysControllerServiceImpl.java
index 01d13b4..4c5aa0e 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysControllerServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysControllerServiceImpl.java
@@ -1,13 +1,25 @@
package com.nanometer.smartlab.service;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.io.InputStream;
+import java.math.BigDecimal;
+import java.util.*;
import javax.annotation.Resource;
+import com.nanometer.smartlab.dao.SysLaboratoryContainerDao;
+import com.nanometer.smartlab.entity.BaseMeta;
+import com.nanometer.smartlab.entity.SysLaboratoryContainer;
+import com.nanometer.smartlab.entity.enumtype.ValidFlag;
+import com.nanometer.smartlab.util.ExcelUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.primefaces.event.FileUploadEvent;
+import org.primefaces.model.UploadedFile;
import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Service;
@@ -16,6 +28,7 @@
import com.nanometer.smartlab.exception.BusinessException;
import com.nanometer.smartlab.exception.ExceptionEnumCode;
import com.nanometer.smartlab.util.MessageUtil;
+import org.springframework.transaction.annotation.Transactional;
@Service("sysControllerService")
public class SysControllerServiceImpl implements SysControllerService {
@@ -23,7 +36,12 @@
private static Logger logger = Logger.getLogger(SysControllerServiceImpl.class);
@Resource(name = "sysControllerDao")
SysControllerDao sysControllerDao;
-
+ @Resource(name = "sysLaboratoryContainerDao")
+ SysLaboratoryContainerDao sysLaboratoryContainerDao;
+ @Resource(name = "sysControllerService")
+ SysControllerService sysControllerService;
+ @Resource(name = "baseMetaService")
+ BaseMetaService baseMetaService;
@Override
public List<SysController> getAllControllerList() {
try {
@@ -48,8 +66,13 @@
}
@Override
+ @Transactional
public int updateSysController(SysController sysController) {
try {
+ Map params = new HashMap();
+ params.put("id", sysController.getId());
+ params.put("code", sysController.getControllerCode());
+ sysLaboratoryContainerDao.updateSysLabContainer(params);
return this.sysControllerDao.updateSysControllerById(sysController);
} catch (DataAccessException e) {
logger.error(e.getMessage(), e);
@@ -89,6 +112,114 @@
}
}
+ @Override
+ public void uploadFile(FileUploadEvent event) throws Exception{
+ List<SysController> sysControllers=sysControllerService.getAllControllerList();
+ List<BaseMeta> typeList=baseMetaService.getBaseMetaList("controller_type");
+ //主控名字和条码
+ HashSet<String> controllerInfo = new HashSet<>();
+ if (sysControllers != null && sysControllers.size()>0){
+ sysControllers.forEach(sysController -> {
+ controllerInfo.add(sysController.getControllerCode());
+ controllerInfo.add(sysController.getControllerName());
+ });
+
+ }
+ //主控类型
+ Map<String, String> typeMap = new HashMap<>();
+ if (typeList != null && typeList.size() > 0) {
+ typeList.forEach(type->{
+ typeMap.put(type.getMetaValue(), type.getId());
+ });
+ }
+
+ UploadedFile file = event.getFile();
+ InputStream is = file.getInputstream();
+ boolean isExcel2003 = true;
+ if (file.getFileName().matches("^.+\\.(?i)(xlsx)$")) {
+ isExcel2003 = false;
+ }
+ Workbook wb = null;
+ if (isExcel2003) {
+ wb = new HSSFWorkbook(is);
+ } else {
+ wb = new XSSFWorkbook(is);
+ }
+ Sheet sheet = wb.getSheetAt(0);
+ List<SysLaboratoryContainer> sysLaboratoryContainers = new ArrayList<>();
+ int totalRows = sheet.getPhysicalNumberOfRows();
+ Row row = null;
+ int totalCells = 0;
+ for (int i = 1; i < totalRows; i++) {
+ List<String> valuesList=new ArrayList<String>();
+ row=sheet.getRow(i);
+
+ totalCells= row.getPhysicalNumberOfCells();
+
+ for (int t = 0; t < totalCells; t++) {
+ String cellInfo="";
+ if (row.getCell(t) != null) {
+
+ if (row.getCell(t).getCellTypeEnum().toString().equals("NUMERIC")) {
+ cellInfo = String.valueOf(row.getCell(t).getNumericCellValue());
+ if(t==2){
+ cellInfo=new BigDecimal(Double.valueOf(row.getCell(t).getNumericCellValue())).toString();
+ }
+
+ } else {
+ cellInfo = row.getCell(t).getStringCellValue();
+ }
+
+ }
+ valuesList.add(cellInfo);
+ }
+ //重名判断
+ String controlName = valuesList.get(0);
+ if (controllerInfo.contains(controlName)){
+ throw new Exception("设备名称重复:"+controlName);
+ }
+
+ //条码重复
+ String controlCode = valuesList.get(1);
+ if (controllerInfo.contains(controlCode)){
+ throw new Exception("条码重复:"+controlCode);
+ }
+
+ //设备类型填写判断
+ String controlType = valuesList.get(2).trim();
+ if (!typeMap.containsKey(controlType)){
+ throw new Exception("设备类型填写不符合要求:"+controlType);
+ }
+
+ SysController sysController = new SysController();
+ sysController.setValidFlag(ValidFlag.VALID);
+ sysController.setControllerCode(controlCode);
+ sysController.setControllerName(controlName);
+ sysController.setType(typeMap.get(controlType));
+ sysControllerService.insertSysController(sysController);
+ controllerInfo.add(controlName);
+ controllerInfo.add(controlCode);
+ }
+
+ }
+
+ @Override
+ public List<Map> exportExcelList(String name, String code) {
+ Map<String, String> params = new HashMap<>();
+ params.put("name", name);
+ params.put("code", code);
+ return sysControllerDao.exportExcelList(params);
+ }
+
+ @Override
+ public void export2Excel(List<Map> list) throws Exception {
+ Map<String, String> map = new LinkedHashMap<>();
+ map.put("name", "设备名称");
+ map.put("code", "设备代码");
+ map.put("type", "设备类型");
+ ExcelUtils.export2Excel(list,"主控设备信息",map);
+ }
+
@Override
public SysController getSysController(Integer id) {
try {
--
Gitblit v1.9.2