|
@@ -24,6 +24,8 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.text.DecimalFormat;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -507,4 +509,94 @@ public class YljgsqJcxxServiceImpl implements IYljgsqJcxxService
|
|
|
YljgsqJcxx old = yljgsqJcxxMapper.selectYljgsqJcxxByIdZH(id);
|
|
|
yljgsqJcxxMapper.insertYljgsqJcxxDeleteHi(old);
|
|
|
}
|
|
|
+
|
|
|
+ public String importSqJcxx(List<YljgsqJcxx> sqJcxxList) {
|
|
|
+
|
|
|
+ Long userId = SecurityUtils.getUserId();
|
|
|
+ if( userId == 1 ){
|
|
|
+ throw new ServiceException("超级管理员用户无法导入信息,请您使用所对应的业务管理员账号!");
|
|
|
+ }else{
|
|
|
+ /**-----------------------------第一块 检查Excel信息 是否有问题 -----------------------------*/
|
|
|
+
|
|
|
+ if (StringUtils.isNull(sqJcxxList) || sqJcxxList.size() == 0)
|
|
|
+ {
|
|
|
+ throw new ServiceException("导入账号数据不能为空!");
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Map<String,Object>> list = new ArrayList<>();
|
|
|
+ sqJcxxList.forEach( d->{
|
|
|
+ if(StringUtils.isNotBlank(d.getJgmc()) && StringUtils.isNotBlank(d.getTyshxydm()) && StringUtils.isNotBlank(d.getFrxm()) && StringUtils.isNotBlank(d.getFrlxfs())){
|
|
|
+ Map<String,Object> map = new HashMap<>();
|
|
|
+ map.put("社区养老服务机构和设施名称",d.getJgmc());
|
|
|
+ map.put("统一社会信用代码",d.getTyshxydm());
|
|
|
+ map.put("负责人",d.getFrxm());
|
|
|
+ map.put("负责人联系电话",d.getFrlxfs());
|
|
|
+ list.add(map);
|
|
|
+ } else{
|
|
|
+ throw new ServiceException("社区养老服务机构和设施名称、社区养老服务机构和设施名称、负责人、负责人联系电话必须填写,请检查Excel信息!");
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ // 流特性去掉重复Map
|
|
|
+ long count = list.stream().distinct().count();
|
|
|
+ boolean isRepeat = count < list.size();
|
|
|
+ if (isRepeat)
|
|
|
+ {
|
|
|
+ throw new ServiceException("导入的Excel有重复信息,请检查。") ;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**-----------------------------第二块 检查添加的账号是否存在 -----------------------------*/
|
|
|
+ int successNum = 0;
|
|
|
+ int failureNum = 0;
|
|
|
+ StringBuilder successMsg = new StringBuilder();
|
|
|
+ StringBuilder failureMsg = new StringBuilder();
|
|
|
+ List<Map<String,Object>> lists = yljgsqJcxxMapper.selectJgxxByZh();
|
|
|
+
|
|
|
+ int index = 0;
|
|
|
+ for (YljgsqJcxx sqJcxx : sqJcxxList)
|
|
|
+ {
|
|
|
+ index++;
|
|
|
+
|
|
|
+ // 不重复校验
|
|
|
+ Map<String,Object> map = new HashMap();
|
|
|
+ map.put("jgmc",sqJcxx.getJgmc());
|
|
|
+ map.put("tyshxydm",sqJcxx.getTyshxydm());
|
|
|
+ map.put("frxm",sqJcxx.getFrxm());
|
|
|
+ map.put("frlxfs",sqJcxx.getFrlxfs());
|
|
|
+ if(lists.contains(map)){
|
|
|
+ failureNum++;
|
|
|
+ failureMsg.append("<br/>" + failureNum + "<" + "机构名称:" + sqJcxx.getJgmc() + "> "+ "统一社会信用代码:" + sqJcxx.getTyshxydm() + " 已存在,请修改。");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**-----------------------------第三块 导入账号 -----------------------------*/
|
|
|
+ List<YljgsqJcxx> sqInsertList = new ArrayList<YljgsqJcxx>();
|
|
|
+ for (int i = 0; i < sqJcxxList.size(); i++) {
|
|
|
+ // 导入账号
|
|
|
+ YljgsqJcxx sq = new YljgsqJcxx();
|
|
|
+ sq.setJgmc(sqJcxxList.get(i).getJgmc());
|
|
|
+ sq.setTyshxydm(sqJcxxList.get(i).getTyshxydm());
|
|
|
+ sq.setFrxm(sqJcxxList.get(i).getFrxm());
|
|
|
+ sq.setFrlxfs(sqJcxxList.get(i).getFrlxfs());
|
|
|
+ sq.setSsxzqh(SecurityUtils.getAreaCode());
|
|
|
+ sqInsertList.add(sq);
|
|
|
+ successNum++;
|
|
|
+ successMsg.append("<br/>" + successNum + "、社区养老机构: " + sqJcxxList.get(i).getJgmc() + " 账号导入成功");
|
|
|
+ }
|
|
|
+ if (failureNum > 0)
|
|
|
+ {
|
|
|
+ failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
|
|
|
+ throw new ServiceException(failureMsg.toString());
|
|
|
+ } else
|
|
|
+ {
|
|
|
+ successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
|
|
|
+ }
|
|
|
+ if (sqInsertList.size() > 0)
|
|
|
+ {
|
|
|
+ yljgsqJcxxMapper.batchSqYljgJcxx(sqInsertList);
|
|
|
+ }
|
|
|
+ return successMsg.toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
}
|