|
|
@@ -18,6 +18,7 @@ import org.apache.commons.io.FileUtils;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.http.MediaType;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
@@ -26,12 +27,15 @@ import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.io.File;
|
|
|
import java.io.IOException;
|
|
|
+import java.text.DecimalFormat;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
+import static com.onemap.apply.utils.ExcelReader.readExcel;
|
|
|
+
|
|
|
|
|
|
@Service
|
|
|
public class ZbsbServiceImpl implements ZbsbService {
|
|
|
@@ -47,6 +51,7 @@ public class ZbsbServiceImpl implements ZbsbService {
|
|
|
private String password;
|
|
|
@Value("${zbsb.zbsbUrl}")
|
|
|
private String zbsbUrl;
|
|
|
+
|
|
|
/**
|
|
|
* 查询记录
|
|
|
*
|
|
|
@@ -54,10 +59,9 @@ public class ZbsbServiceImpl implements ZbsbService {
|
|
|
* @return 记录
|
|
|
*/
|
|
|
@Override
|
|
|
- public ZbsbDTO selectByUuid(String uuid)
|
|
|
- {
|
|
|
+ public ZbsbDTO selectByUuid(String uuid) {
|
|
|
QueryWrapper<ZbsbDTO> wrapper = new QueryWrapper<>();
|
|
|
- wrapper.eq("uuid",uuid);
|
|
|
+ wrapper.eq("uuid", uuid);
|
|
|
return zbsbMapper.selectOne(wrapper);
|
|
|
}
|
|
|
|
|
|
@@ -68,19 +72,18 @@ public class ZbsbServiceImpl implements ZbsbService {
|
|
|
* @return 记录
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<ZbsbDTO> selectList(ZbsbDTO tbFilesDataOpt)
|
|
|
- {
|
|
|
+ public List<ZbsbDTO> selectList(ZbsbDTO tbFilesDataOpt) {
|
|
|
QueryWrapper<ZbsbDTO> giswrapper = new QueryWrapper<>();
|
|
|
return zbsbMapper.selectList(giswrapper);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 新增记录
|
|
|
+ *
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
- public String insert(ZbsbDTO zbsbDTO)
|
|
|
- {
|
|
|
+ public String insert(ZbsbDTO zbsbDTO) {
|
|
|
String uuid = IdUtils.simpleUUID();
|
|
|
zbsbDTO.setUuid(uuid);
|
|
|
zbsbDTO.setUploadTime(new Date());
|
|
|
@@ -96,12 +99,11 @@ public class ZbsbServiceImpl implements ZbsbService {
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
- public int update(ZbsbDTO tbFilesDataOpt)
|
|
|
- {
|
|
|
- if(tbFilesDataOpt!=null && StringUtils.isNotEmpty(tbFilesDataOpt.getUuid())){
|
|
|
+ public int update(ZbsbDTO tbFilesDataOpt) {
|
|
|
+ if (tbFilesDataOpt != null && StringUtils.isNotEmpty(tbFilesDataOpt.getUuid())) {
|
|
|
QueryWrapper<ZbsbDTO> wrapper = new QueryWrapper<>();
|
|
|
- wrapper.eq("uuid",tbFilesDataOpt.getUuid());
|
|
|
- return zbsbMapper.update(tbFilesDataOpt,wrapper);
|
|
|
+ wrapper.eq("uuid", tbFilesDataOpt.getUuid());
|
|
|
+ return zbsbMapper.update(tbFilesDataOpt, wrapper);
|
|
|
}
|
|
|
return 0;
|
|
|
}
|
|
|
@@ -113,11 +115,10 @@ public class ZbsbServiceImpl implements ZbsbService {
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
- public int deleteByUuid(String uuid)
|
|
|
- {
|
|
|
+ public int deleteByUuid(String uuid) {
|
|
|
int r = 0;
|
|
|
ZbsbDTO zbsbDTO = selectByUuid(uuid);
|
|
|
- if(zbsbDTO!=null) {
|
|
|
+ if (zbsbDTO != null) {
|
|
|
String filePath = zbsbDTO.getFilePath();
|
|
|
QueryWrapper<ZbsbDTO> wrapper = new QueryWrapper<>();
|
|
|
wrapper.eq("uuid", uuid);
|
|
|
@@ -135,6 +136,7 @@ public class ZbsbServiceImpl implements ZbsbService {
|
|
|
}
|
|
|
return r;
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 上传Excel文件
|
|
|
*/
|
|
|
@@ -143,9 +145,9 @@ public class ZbsbServiceImpl implements ZbsbService {
|
|
|
try {
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
|
|
|
String fileName = file.getOriginalFilename();
|
|
|
- String fileDir = temp+ File.separator+"zbsb"+File.separator + sdf.format(new Date());
|
|
|
- File dirFile= new File(fileDir);
|
|
|
- if(!dirFile.exists()) {
|
|
|
+ String fileDir = temp + File.separator + "zbsb" + File.separator + sdf.format(new Date());
|
|
|
+ File dirFile = new File(fileDir);
|
|
|
+ if (!dirFile.exists()) {
|
|
|
dirFile.mkdirs();
|
|
|
}
|
|
|
File desc = new File(dirFile.getAbsolutePath() + File.separator + fileName);
|
|
|
@@ -184,25 +186,148 @@ public class ZbsbServiceImpl implements ZbsbService {
|
|
|
System.out.println("reStrFileUpload :" + reStrFileUpload);
|
|
|
if (reStrFileUpload.containsKey("code") && !"200".equals(reStrFileUpload.getString("code"))) {
|
|
|
zbsbDTO.setUploadStatus(-1);
|
|
|
- if(reStrFileUpload.containsKey("msg")){
|
|
|
+ if (reStrFileUpload.containsKey("msg")) {
|
|
|
zbsbDTO.setContent(reStrFileUpload.getString("msg"));
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
zbsbDTO.setContent(reStrFileUpload.getString("message"));
|
|
|
}
|
|
|
update(zbsbDTO);
|
|
|
return AjaxResult.error("上传数据失败:" + reStrFileUpload.getString("msg") + "!");
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
zbsbDTO.setContent(reStrFileUpload.getString("msg"));
|
|
|
zbsbDTO.setStatus("2");
|
|
|
update(zbsbDTO);
|
|
|
}
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
error = tokenJson.toJSONString();
|
|
|
}
|
|
|
- if(StringUtils.isNotEmpty(error)){
|
|
|
+ if (StringUtils.isNotEmpty(error)) {
|
|
|
return AjaxResult.error(error);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
return AjaxResult.success("上报成功");
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 新增记录
|
|
|
+ *
|
|
|
+ * @return 结果
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public AjaxResult tjpg(ZbsbDTO zbsbDTO) {
|
|
|
+ String filepath = zbsbDTO.getFilePath();
|
|
|
+ if (StringUtils.isNotEmpty(filepath)) {
|
|
|
+ try {
|
|
|
+ System.out.println("Start Import Tjpg Excel!!!");
|
|
|
+ List<List<String>> excelData = readExcel(filepath);
|
|
|
+
|
|
|
+ //TODO 获取前一年与当年的年份数据
|
|
|
+ List<String> header = excelData.get(0);
|
|
|
+ String preYear = header.get(9).substring(0, 4);
|
|
|
+ String curYear = header.get(10).substring(0, 4);
|
|
|
+
|
|
|
+ //TODO wanger 获取基期年
|
|
|
+ String JQN = excelData.get(1).get(6);
|
|
|
+
|
|
|
+ //TODO wanger 删除两年监测数据
|
|
|
+ String deleteSQL = String.format("delete from T_ZBMX_ZBJCZ t where t.zbbh not in ('A-150','A-151','A-152','A-153','A-154') and t.jcn in ('%s' , '%s' )", preYear, curYear);
|
|
|
+ zbsbMapper.deleteSQL(deleteSQL);
|
|
|
+
|
|
|
+ //TODO wanger 删除基期值数据
|
|
|
+ deleteSQL = String.format("delete from T_ZBMX_ZBJQZ t where t.zbbh not in ('A-150','A-151','A-152','A-153','A-154') and t.jqn = '%s'", JQN);
|
|
|
+ zbsbMapper.deleteSQL(deleteSQL);
|
|
|
+
|
|
|
+ //TODO wanger 删除指标项数据
|
|
|
+ deleteSQL = String.format("delete from T_ZBMX_ZBX t where t.zbbh not in ('A-150','A-151','A-152','A-153','A-154')");
|
|
|
+ zbsbMapper.deleteSQL(deleteSQL);
|
|
|
+
|
|
|
+ //TODO wanger 删除规划值数据
|
|
|
+ deleteSQL = String.format("delete from T_ZBMX_ZBGHZ t where t.zbbh not in ('A-150','A-151','A-152','A-153','A-154')");
|
|
|
+ zbsbMapper.deleteSQL(deleteSQL);
|
|
|
+
|
|
|
+ DecimalFormat df1 = new DecimalFormat("#.######");
|
|
|
+ // 打印每行数据
|
|
|
+ for (int i = 1; i < excelData.size(); i++) {
|
|
|
+ //TODO wanger 获取当前行数据
|
|
|
+ List<String> rowData = excelData.get(i);
|
|
|
+ String zbbh = rowData.get(2);//指标编号
|
|
|
+ String xzqdm = rowData.get(12);//行政区代码
|
|
|
+ String xzqmc = rowData.get(13);//行政区名称
|
|
|
+ String jqn = rowData.get(6);//基期年
|
|
|
+ String jqz = rowData.get(5).replaceAll("——", "");//基期值
|
|
|
+ String ghn = rowData.get(8);//规划年
|
|
|
+ String ghz = rowData.get(7);//规划值
|
|
|
+ String preValue = rowData.get(9).replaceAll("—", "");//前一年上报值
|
|
|
+ String curValue = rowData.get(10).replaceAll("—", "");//今年上报值
|
|
|
+
|
|
|
+ String insertSQL = "";
|
|
|
+
|
|
|
+ String zbmctext = rowData.get(3);//指标名称
|
|
|
+ if (zbmctext.contains("(")) {
|
|
|
+ String zblx = rowData.get(4);//指标类型
|
|
|
+ String[] res = zbmctext.split("\\(");
|
|
|
+ String zbmc = res[0];
|
|
|
+ String zbdw = res[1].split("\\)")[0];
|
|
|
+ //TODO wanger 指标项
|
|
|
+ insertSQL = String.format("insert into T_ZBMX_ZBX (zbbh , zbmc , zblx , ghsx , zbdw , zblh , zbfw , pgzq , sjly , cjsj) " +
|
|
|
+ "values ('%s' , '%s' , '%s' , '约束性' , '%s' , '' , '全域', '每年', 1, SYSDATE )"
|
|
|
+ , zbbh, zbmc, zblx, zbdw);
|
|
|
+ zbsbMapper.insertSQL(insertSQL);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isNotEmpty(ghz)) {
|
|
|
+ if (ghz.contains(":")) {
|
|
|
+ String[] vs = ghz.split(":");
|
|
|
+ ghz = df1.format((Double.valueOf(vs[0]) / Double.valueOf(vs[1])));
|
|
|
+ }
|
|
|
+ //TODO wanger 规划值
|
|
|
+ insertSQL = String.format("insert into T_ZBMX_ZBGHZ (bsm , zbbh, xzqdm , xzqmc, Jqmbtj , Jqmbz , Ghmbtj , ghmbz) " +
|
|
|
+ "values (sys_guid() , '%s', '%s' , '%s', '=' , %s , '=', %s)"
|
|
|
+ , zbbh, xzqdm, xzqmc, ghz, ghz);
|
|
|
+ zbsbMapper.insertSQL(insertSQL);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isNotEmpty(preValue) && !preValue.contains("涉及")) {
|
|
|
+ if (preValue.contains(":")) {
|
|
|
+ String[] vs = preValue.split(":");
|
|
|
+ preValue = df1.format((Double.valueOf(vs[0]) / Double.valueOf(vs[1])));
|
|
|
+ }
|
|
|
+ //TODO wanger 当年监测值插入
|
|
|
+ insertSQL = String.format("insert into T_ZBMX_ZBJCZ t (bsm , zbbh , xzqdm , xzqmc , jcsj , jcz , jcyh , tjsj , jcn , jcy) " +
|
|
|
+ "values(sys_guid() , '%s', '%s' , '%s', SYSDATE , %s , 'sys', SYSDATE, '%s' , '12')"
|
|
|
+ , zbbh, xzqdm, xzqmc, preValue, preYear);
|
|
|
+ zbsbMapper.insertSQL(insertSQL);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isNotEmpty(curValue) && !curValue.contains("涉及")) {
|
|
|
+ if (curValue.contains(":")) {
|
|
|
+ String[] vs = curValue.split(":");
|
|
|
+ curValue = df1.format((Double.valueOf(vs[0]) / Double.valueOf(vs[1])));
|
|
|
+ }
|
|
|
+ //TODO wanger 去年监测值插入
|
|
|
+ insertSQL = String.format("insert into T_ZBMX_ZBJCZ t (bsm , zbbh , xzqdm , xzqmc , jcsj , jcz , jcyh , tjsj , jcn , jcy) " +
|
|
|
+ "values(sys_guid() , '%s', '%s' , '%s', SYSDATE , %s , 'sys', SYSDATE, '%s' , '12')"
|
|
|
+ , zbbh, xzqdm, xzqmc, curValue, curYear);
|
|
|
+ zbsbMapper.insertSQL(insertSQL);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isNotEmpty(jqz) && !jqz.contains("涉及")) {
|
|
|
+ //TODO wanger 基期值插入
|
|
|
+ insertSQL = String.format("insert into T_ZBMX_ZBJQZ t (bsm , zbbh , xzqdm , xzqmc , jqn , jqz) " +
|
|
|
+ "values(sys_guid() , '%s', '%s' , '%s', '%s' , %s)"
|
|
|
+ , zbbh, xzqdm, xzqmc, jqn, jqz);
|
|
|
+ zbsbMapper.insertSQL(insertSQL);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ System.out.println("End Import Tjpg Excel!!!");
|
|
|
+ }
|
|
|
+
|
|
|
+ return null;
|
|
|
+ }
|
|
|
}
|