|
|
@@ -17,6 +17,7 @@ import com.zd.chemical.service.IHxpChemicalService;
|
|
|
import com.zd.chemical.util.SmsSydUtil;
|
|
|
import com.zd.common.core.annotation.DataScope;
|
|
|
import com.zd.common.core.exception.ServiceException;
|
|
|
+import com.zd.common.core.redis.RedisService;
|
|
|
import com.zd.common.core.utils.*;
|
|
|
import com.zd.model.domain.per.PerPrefix;
|
|
|
import com.zd.system.api.entity.SysDictData;
|
|
|
@@ -33,6 +34,7 @@ import org.springframework.stereotype.Service;
|
|
|
import javax.annotation.Resource;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
import java.util.concurrent.atomic.DoubleAdder;
|
|
|
import java.util.stream.Collectors;
|
|
|
import java.util.stream.Stream;
|
|
|
@@ -59,6 +61,8 @@ public class HxpChemicalServiceImpl implements IHxpChemicalService {
|
|
|
private RemoteAlarmService remoteAlarmService;
|
|
|
@Resource
|
|
|
private SmsSydUtil smsSydUtil;
|
|
|
+ @Autowired
|
|
|
+ RedisService redisService;
|
|
|
|
|
|
|
|
|
/**
|
|
|
@@ -134,19 +138,38 @@ public class HxpChemicalServiceImpl implements IHxpChemicalService {
|
|
|
}
|
|
|
chemical.getFailRemark().append("分类名称不能为空、");
|
|
|
}else{
|
|
|
- HxpChemicalClassify hxpChemicalClassify = new HxpChemicalClassify();
|
|
|
- hxpChemicalClassify.setClassifyName(chemical.getClassifyName());
|
|
|
- List<HxpChemicalClassify> classifyList = hxpChemicalClassifyMapper.selectHxpChemicalClassifyList(hxpChemicalClassify);
|
|
|
- if(classifyList.size()>0){
|
|
|
- HxpChemicalClassify classify = classifyList.get(0);
|
|
|
- hxpChemical.setChemicalClassify(classify.getId());
|
|
|
+ //化学品分类配置读取
|
|
|
+ List<HxpChemicalClassify> classifyList = redisService.getCacheObject("chemical_classify");
|
|
|
+ if (classifyList==null || classifyList.size()==0){
|
|
|
+ HxpChemicalClassify hxpChemicalClassify = new HxpChemicalClassify();
|
|
|
+ classifyList = hxpChemicalClassifyMapper.selectHxpChemicalClassifyList(hxpChemicalClassify);
|
|
|
+ redisService.setCacheObject("chemical_classify",classifyList, 60L, TimeUnit.SECONDS);
|
|
|
+ classifyList = redisService.getCacheObject("chemical_classify");
|
|
|
+ }
|
|
|
+
|
|
|
+ if(classifyList!=null && classifyList.size()>0){
|
|
|
+ //化学品分类是否匹配到
|
|
|
+ Boolean flg=false;
|
|
|
+ for (HxpChemicalClassify chemicalClassify:classifyList) {
|
|
|
+ if (chemicalClassify.getClassifyName().equals(chemical.getClassifyName())) {
|
|
|
+ hxpChemical.setChemicalClassify(chemicalClassify.getId());
|
|
|
+ flg=true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(checkBox && !flg){
|
|
|
+ chemical.getFailRemark().append("失败:");
|
|
|
+ failChemicalList.add(chemical);
|
|
|
+ checkBox = false;
|
|
|
+ chemical.getFailRemark().append("分类名称不存在、");
|
|
|
+ }
|
|
|
}else{
|
|
|
if(checkBox){
|
|
|
chemical.getFailRemark().append("失败:");
|
|
|
failChemicalList.add(chemical);
|
|
|
checkBox = false;
|
|
|
}
|
|
|
- chemical.getFailRemark().append("分类名称不存在、");
|
|
|
+ chemical.getFailRemark().append("分类名称未在字典配置、");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -160,34 +183,57 @@ public class HxpChemicalServiceImpl implements IHxpChemicalService {
|
|
|
chemical.getFailRemark().append("形态不能为空、");
|
|
|
}else{
|
|
|
List<SysDictData> proDictDatas = DictUtils.getDictCache("chemical_shape");
|
|
|
+ //化学品形态比对标识
|
|
|
+ boolean flgshape= false;
|
|
|
for(SysDictData dictData : proDictDatas){
|
|
|
if(dictData.getDictLabel().equals(chemical.getChemicalShapeInfo().trim())){
|
|
|
hxpChemical.setChemicalShape(Integer.parseInt(dictData.getDictValue()));
|
|
|
+ flgshape=true;
|
|
|
}
|
|
|
}
|
|
|
if(StringUtils.isNull(hxpChemical.getChemicalShape())){
|
|
|
- if(checkBox){
|
|
|
+ if(checkBox && !flgshape){
|
|
|
chemical.getFailRemark().append("失败:");
|
|
|
failChemicalList.add(chemical);
|
|
|
checkBox = false;
|
|
|
}
|
|
|
- chemical.getFailRemark().append("形态不存在、");
|
|
|
+ chemical.getFailRemark().append("形态未在字典配置、");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//计量单位
|
|
|
if(StringUtils.isNotEmpty(chemical.getChemicalUnit())){
|
|
|
- if(chemical.getChemicalUnit().length()>8){
|
|
|
+ if(checkBox) {
|
|
|
+ if (chemical.getChemicalUnit().length() > 8) {
|
|
|
+ chemical.getFailRemark().append("失败:");
|
|
|
+ failChemicalList.add(chemical);
|
|
|
+ checkBox = false;
|
|
|
+ }
|
|
|
+ chemical.getFailRemark().append("计量单位过长、");
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取化学品单位集合
|
|
|
+ List<SysDictData> dictDataList = DictUtils.getDictCache("chemicals_measuring_unit");
|
|
|
+ boolean flgunit=false;
|
|
|
+ for (SysDictData sysdic: dictDataList) {
|
|
|
+ if(chemical.getChemicalUnit().equals(sysdic.getDictValue())){
|
|
|
+ flgunit=true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(checkBox && !flgunit){
|
|
|
chemical.getFailRemark().append("失败:");
|
|
|
failChemicalList.add(chemical);
|
|
|
checkBox = false;
|
|
|
- chemical.getFailRemark().append("计量单位过长、");
|
|
|
}
|
|
|
+ chemical.getFailRemark().append("字典表未配置单位、");
|
|
|
hxpChemical.setChemicalUnit(chemical.getChemicalUnit());
|
|
|
}else{
|
|
|
- chemical.getFailRemark().append("失败:");
|
|
|
- failChemicalList.add(chemical);
|
|
|
- checkBox = false;
|
|
|
+ if(checkBox) {
|
|
|
+ chemical.getFailRemark().append("失败:");
|
|
|
+ failChemicalList.add(chemical);
|
|
|
+ checkBox = false;
|
|
|
+ }
|
|
|
chemical.getFailRemark().append("计量单位不能为空、");
|
|
|
}
|
|
|
|
|
|
@@ -200,15 +246,19 @@ public class HxpChemicalServiceImpl implements IHxpChemicalService {
|
|
|
}else if("个数".equals(chemical.getMeasuringMethod())){
|
|
|
hxpChemical.setMeasuringMethod(3);
|
|
|
}else{
|
|
|
+ if(checkBox) {
|
|
|
+ chemical.getFailRemark().append("失败:");
|
|
|
+ failChemicalList.add(chemical);
|
|
|
+ checkBox = false;
|
|
|
+ }
|
|
|
+ chemical.getFailRemark().append("计量方式不存在、");
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ if(checkBox) {
|
|
|
chemical.getFailRemark().append("失败:");
|
|
|
failChemicalList.add(chemical);
|
|
|
checkBox = false;
|
|
|
- chemical.getFailRemark().append("计量方式不存在、");
|
|
|
}
|
|
|
- }else {
|
|
|
- chemical.getFailRemark().append("失败:");
|
|
|
- failChemicalList.add(chemical);
|
|
|
- checkBox = false;
|
|
|
chemical.getFailRemark().append("计量方式不能为空、");
|
|
|
}
|
|
|
|
|
|
@@ -317,7 +367,7 @@ public class HxpChemicalServiceImpl implements IHxpChemicalService {
|
|
|
//这里需要查询危险品分类的级别
|
|
|
HxpChemicalClassify hxpChemicalClassify = hxpChemicalClassifyMapper.selectHxpChemicalClassifyById(hxpChemical.getChemicalClassify());
|
|
|
if(StringUtils.isNull(hxpChemicalClassify)){
|
|
|
- throw new ServiceException("危险品分类级别未配置,请联系管理员!!");
|
|
|
+ throw new ServiceException("危险品分类级别未配置,请联系管理员!!");
|
|
|
}
|
|
|
if(hxpChemicalClassify.getClassifyName().length()<2){
|
|
|
throw new ServiceException("分类名称错误,请联系管理员");
|