|
@@ -5,6 +5,7 @@ import com.mixsmart.utils.ListUtils;
|
|
import com.mixsmart.utils.StringUtils;
|
|
import com.mixsmart.utils.StringUtils;
|
|
import lombok.Data;
|
|
import lombok.Data;
|
|
import org.springblade.business.feign.MileageClient;
|
|
import org.springblade.business.feign.MileageClient;
|
|
|
|
+import org.springblade.core.tool.utils.Func;
|
|
import org.springblade.manager.dto.ElementData;
|
|
import org.springblade.manager.dto.ElementData;
|
|
import org.springblade.manager.dto.FormData;
|
|
import org.springblade.manager.dto.FormData;
|
|
import org.springblade.manager.formula.FormulaStrategy;
|
|
import org.springblade.manager.formula.FormulaStrategy;
|
|
@@ -29,7 +30,7 @@ public class FormulaMileage implements FormulaStrategy {
|
|
@Override
|
|
@Override
|
|
public void execute(List<FormData> fds, Map<String,Object> constantMap) {
|
|
public void execute(List<FormData> fds, Map<String,Object> constantMap) {
|
|
List<ElementData> eds = cur.getValues();
|
|
List<ElementData> eds = cur.getValues();
|
|
- Map<String,String[]> mileages = (Map<String, String[]>) constantMap.get("mileages");
|
|
|
|
|
|
+ Map<String,String[]> mileages = getCoordinate(cur.getFormula().getFormula(),fds, Func.toLong(constantMap.get("contractId")));
|
|
if(ListUtils.isNotEmpty(eds)){
|
|
if(ListUtils.isNotEmpty(eds)){
|
|
Matcher m= MILE_ARGS.matcher(cur.getCode());
|
|
Matcher m= MILE_ARGS.matcher(cur.getCode());
|
|
if(m.find()){
|
|
if(m.find()){
|
|
@@ -89,19 +90,22 @@ public class FormulaMileage implements FormulaStrategy {
|
|
}
|
|
}
|
|
public static final Pattern MILE_P = Pattern.compile("(?<=MILE<)([^,]+),([^,]+)(?=,)");
|
|
public static final Pattern MILE_P = Pattern.compile("(?<=MILE<)([^,]+),([^,]+)(?=,)");
|
|
|
|
|
|
- public void test(String tmp,List<FormData> fds){
|
|
|
|
|
|
+ public Map<String,String[]> getCoordinate(String tmp,List<FormData> fds,Long contractId){
|
|
Matcher mile=MILE_P.matcher(tmp);
|
|
Matcher mile=MILE_P.matcher(tmp);
|
|
List<String> zhs;
|
|
List<String> zhs;
|
|
List<String> jzs;
|
|
List<String> jzs;
|
|
if (mile.find()){
|
|
if (mile.find()){
|
|
String zh= mile.group(1);
|
|
String zh= mile.group(1);
|
|
String jz= mile.group(2);
|
|
String jz= mile.group(2);
|
|
|
|
+ /*查找桩号元素*/
|
|
Optional<FormData> op=fds.stream().filter(e->e.getCode().equals(zh)).findFirst();
|
|
Optional<FormData> op=fds.stream().filter(e->e.getCode().equals(zh)).findFirst();
|
|
if(op.isPresent()){
|
|
if(op.isPresent()){
|
|
|
|
+ /*获取桩号数据*/
|
|
zhs=op.get().getValues().stream().map(ElementData::getValue).map(StringUtils::handleNull).collect(Collectors.toList());
|
|
zhs=op.get().getValues().stream().map(ElementData::getValue).map(StringUtils::handleNull).collect(Collectors.toList());
|
|
if(zhs.size()>0){
|
|
if(zhs.size()>0){
|
|
Optional<FormData> op2=fds.stream().filter(e->e.getCode().equals(jz)).findFirst();
|
|
Optional<FormData> op2=fds.stream().filter(e->e.getCode().equals(jz)).findFirst();
|
|
if(op2.isPresent()){
|
|
if(op2.isPresent()){
|
|
|
|
+ /*获取偏位数据*/
|
|
jzs=op2.get().getValues().stream().map(ElementData::getValue).map(StringUtils::handleNull).collect(Collectors.toList());
|
|
jzs=op2.get().getValues().stream().map(ElementData::getValue).map(StringUtils::handleNull).collect(Collectors.toList());
|
|
List<String> mileages = new ArrayList<>();
|
|
List<String> mileages = new ArrayList<>();
|
|
int size = Math.min(zhs.size(),jzs.size());
|
|
int size = Math.min(zhs.size(),jzs.size());
|
|
@@ -112,13 +116,13 @@ public class FormulaMileage implements FormulaStrategy {
|
|
mileages.add(s1+"@"+s2);
|
|
mileages.add(s1+"@"+s2);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- mileageClient.mileage2Coordinate(mileages,111111L);
|
|
|
|
-// constantMap.put("mileages",mileageClient.mileage2Coordinate(mileages,contractId));
|
|
|
|
|
|
+ return mileageClient.mileage2Coordinate(mileages,contractId);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+ return new HashMap<>();
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|