物资工程量清单暂时复原

This commit is contained in:
2025-09-15 11:18:19 +08:00
parent 2d7f9ea42d
commit af81b1b740
6 changed files with 189 additions and 172 deletions

View File

@ -24,6 +24,7 @@ import org.dromara.land.domain.BusLandTransferLedger;
import org.dromara.land.service.IBusLandBlockService;
import org.dromara.land.service.IBusLandTransferLedgerService;
import org.dromara.manager.weathermanager.vo.WeatherVo;
import org.dromara.other.domain.OthYs7Device;
import org.dromara.other.service.IOthYs7DeviceService;
import org.dromara.project.domain.BusProject;
import org.dromara.project.domain.vo.project.BusProjectSafetyDayVo;
@ -274,16 +275,16 @@ public class ProjectBigScreenController {
public R<List<Map<String, Object>>> getClientList(@NotNull(message = "主键不能为空")
@PathVariable Long projectId) {
List<GpsEquipmentSonVo> voList = gpsEquipmentService.getClientList(projectId);
// List<OthYs7Device> othYs7DeviceList = othYs7DeviceService.lambdaQuery()
// .eq(OthYs7Device::getProjectId, projectId)
// .list();
List<OthYs7Device> othYs7DeviceList = othYs7DeviceService.lambdaQuery()
.eq(OthYs7Device::getProjectId, projectId)
.list();
List<Map<String, Object>> maps = new ArrayList<>();
Map<String, Object> gpsMap = new HashMap<>();
Map<String, Object> wrjMap = new HashMap<>();
Map<String, Object> sxtMap = new HashMap<>();
List<Map<String, Object>> gpsChildrenMap = new ArrayList<>();
// List<Map<String, Object>> wrjChildrenMap = new ArrayList<>();
// List<Map<String, Object>> sxtChildrenMap = new ArrayList<>();
List<Map<String, Object>> wrjChildrenMap = new ArrayList<>();
List<Map<String, Object>> sxtChildrenMap = new ArrayList<>();
if (voList != null && !voList.isEmpty()) {
for (GpsEquipmentSonVo item : voList) {
Map<String, Object> gps = new HashMap<>();
@ -297,20 +298,20 @@ public class ProjectBigScreenController {
gpsChildrenMap.add(gps);
}
}
// if (othYs7DeviceList != null && !othYs7DeviceList.isEmpty()) {
// for (OthYs7Device item : othYs7DeviceList) {
// Map<String, Object> sxt = new HashMap<>();
// sxt.put("id", item.getDeviceSerial());
// sxt.put("label", item.getDeviceSerial());
// sxt.put("name", item.getDeviceName());
// sxt.put("type", "shexiangtou");
//// sxt.put("lat", item.getLocLatitude());
//// sxt.put("lng", item.getLocLongitude());
//// sxt.put("alt", item.getLocAltitude());
// sxtChildrenMap.add(sxt);
// }
// }
List<Map<String, Object>> maps1 = setSxt();
if (othYs7DeviceList != null && !othYs7DeviceList.isEmpty()) {
for (OthYs7Device item : othYs7DeviceList) {
Map<String, Object> sxt = new HashMap<>();
sxt.put("id", item.getDeviceSerial());
sxt.put("label", item.getDeviceSerial());
sxt.put("name", item.getDeviceName());
sxt.put("type", "shexiangtou");
sxt.put("lat", item.getLatitude());
sxt.put("lng", item.getLongitude());
sxt.put("alt", item.getAltitude());
sxtChildrenMap.add(sxt);
}
}
// List<Map<String, Object>> maps1 = setSxt();
List<Map<String, Object>> maps2 = setWrj();
gpsMap.put("id", 1);
@ -318,8 +319,8 @@ public class ProjectBigScreenController {
gpsMap.put("children", gpsChildrenMap);
sxtMap.put("id", 2);
sxtMap.put("label", "摄像头");
// sxtMap.put("children",sxtChildrenMap);
sxtMap.put("children", maps1);
sxtMap.put("children",sxtChildrenMap);
// sxtMap.put("children", maps1);
wrjMap.put("id", 3);
wrjMap.put("label", "无人机");
// wrjMap.put("children",wrjChildrenMap);
@ -354,111 +355,111 @@ public class ProjectBigScreenController {
}
public List<Map<String, Object>> setSxt() {
List<Map<String, Object>> sxtChildrenMap = new ArrayList<>();
HashMap<String, Object> map1 = new HashMap<>();
map1.put("id", "55");
map1.put("label", "那荷4号方阵-1");
map1.put("name", "22");
map1.put("type", "camera");
map1.put("lng", 107.111325);
map1.put("lat", 23.820919);
map1.put("alt", 0);
HashMap<String, Object> map2 = new HashMap<>();
map2.put("id", "56");
map2.put("label", "甫必 1号方阵");
map2.put("name", "23");
map2.put("type", "camera");
map2.put("lng", 107.091297);
map2.put("lat", 23.813567);
map2.put("alt", 0);
HashMap<String, Object> map3 = new HashMap<>();
map3.put("id", "57");
map3.put("label", "1222224");
map3.put("name", "24");
map3.put("type", "camera");
map3.put("lng", 107.085442);
map3.put("lat", 23.811958);
map3.put("alt", 0);
HashMap<String, Object> map4 = new HashMap<>();
map4.put("id", "58");
map4.put("label", "甫必2号方阵-1");
map4.put("name", "25");
map4.put("type", "camera");
map4.put("lng", 107.085181);
map4.put("lat", 23.810556);
map4.put("alt", 0);
HashMap<String, Object> map5 = new HashMap<>();
map5.put("id", "58");
map5.put("label", "甫必 4号方阵");
map5.put("name", "25");
map5.put("type", "camera");
map5.put("lng", 107.081747);
map5.put("lat", 23.808131);
map5.put("alt", 0);
HashMap<String, Object> map6 = new HashMap<>();
map6.put("id", "58");
map6.put("label", "甫必 7号方阵-1");
map6.put("name", "25");
map6.put("type", "camera");
map6.put("lng", 107.077922);
map6.put("lat", 23.798344);
map6.put("alt", 0);
HashMap<String, Object> map7 = new HashMap<>();
map7.put("id", "58");
map7.put("label", "68甫必6");
map7.put("name", "25");
map7.put("type", "camera");
map7.put("lng", 107.077333);
map7.put("lat", 23.797969);
map7.put("alt", 0);
HashMap<String, Object> map8 = new HashMap<>();
map8.put("id", "58");
map8.put("label", "甫必5号方阵");
map8.put("name", "25");
map8.put("type", "camera");
map8.put("lng", 107.075853);
map8.put("lat", 23.796711);
map8.put("alt", 0);
HashMap<String, Object> map9 = new HashMap<>();
map9.put("id", "58");
map9.put("label", "西牛2号方阵");
map9.put("name", "25");
map9.put("type", "camera");
map9.put("lng", 107.078942);
map9.put("lat", 23.789306);
map9.put("alt", 0);
HashMap<String, Object> map10 = new HashMap<>();
map10.put("id", "58");
map10.put("label", "福绿1号方阵");
map10.put("name", "25");
map10.put("type", "camera");
map10.put("lng", 107.090061);
map10.put("lat", 23.790411);
map10.put("alt", 0);
HashMap<String, Object> map11 = new HashMap<>();
map11.put("id", "58");
map11.put("label", "福绿6号方阵-2");
map11.put("name", "25");
map11.put("type", "camera");
map11.put("lng", 107.112883);
map11.put("lat", 23.771378);
map11.put("alt", 0);
sxtChildrenMap.add(map1);
sxtChildrenMap.add(map2);
sxtChildrenMap.add(map3);
sxtChildrenMap.add(map4);
sxtChildrenMap.add(map5);
sxtChildrenMap.add(map6);
sxtChildrenMap.add(map7);
sxtChildrenMap.add(map8);
sxtChildrenMap.add(map9);
sxtChildrenMap.add(map10);
sxtChildrenMap.add(map11);
return sxtChildrenMap;
}
// public List<Map<String, Object>> setSxt() {
// List<Map<String, Object>> sxtChildrenMap = new ArrayList<>();
// HashMap<String, Object> map1 = new HashMap<>();
// map1.put("id", "55");
// map1.put("label", "那荷4号方阵-1");
// map1.put("name", "22");
// map1.put("type", "camera");
// map1.put("lng", 107.111325);
// map1.put("lat", 23.820919);
// map1.put("alt", 0);
// HashMap<String, Object> map2 = new HashMap<>();
// map2.put("id", "56");
// map2.put("label", "甫必 1号方阵");
// map2.put("name", "23");
// map2.put("type", "camera");
// map2.put("lng", 107.091297);
// map2.put("lat", 23.813567);
// map2.put("alt", 0);
// HashMap<String, Object> map3 = new HashMap<>();
// map3.put("id", "57");
// map3.put("label", "1222224");
// map3.put("name", "24");
// map3.put("type", "camera");
// map3.put("lng", 107.085442);
// map3.put("lat", 23.811958);
// map3.put("alt", 0);
// HashMap<String, Object> map4 = new HashMap<>();
// map4.put("id", "58");
// map4.put("label", "甫必2号方阵-1");
// map4.put("name", "25");
// map4.put("type", "camera");
// map4.put("lng", 107.085181);
// map4.put("lat", 23.810556);
// map4.put("alt", 0);
// HashMap<String, Object> map5 = new HashMap<>();
// map5.put("id", "58");
// map5.put("label", "甫必 4号方阵");
// map5.put("name", "25");
// map5.put("type", "camera");
// map5.put("lng", 107.081747);
// map5.put("lat", 23.808131);
// map5.put("alt", 0);
// HashMap<String, Object> map6 = new HashMap<>();
// map6.put("id", "58");
// map6.put("label", "甫必 7号方阵-1");
// map6.put("name", "25");
// map6.put("type", "camera");
// map6.put("lng", 107.077922);
// map6.put("lat", 23.798344);
// map6.put("alt", 0);
// HashMap<String, Object> map7 = new HashMap<>();
// map7.put("id", "58");
// map7.put("label", "68甫必6");
// map7.put("name", "25");
// map7.put("type", "camera");
// map7.put("lng", 107.077333);
// map7.put("lat", 23.797969);
// map7.put("alt", 0);
// HashMap<String, Object> map8 = new HashMap<>();
// map8.put("id", "58");
// map8.put("label", "甫必5号方阵");
// map8.put("name", "25");
// map8.put("type", "camera");
// map8.put("lng", 107.075853);
// map8.put("lat", 23.796711);
// map8.put("alt", 0);
// HashMap<String, Object> map9 = new HashMap<>();
// map9.put("id", "58");
// map9.put("label", "西牛2号方阵");
// map9.put("name", "25");
// map9.put("type", "camera");
// map9.put("lng", 107.078942);
// map9.put("lat", 23.789306);
// map9.put("alt", 0);
// HashMap<String, Object> map10 = new HashMap<>();
// map10.put("id", "58");
// map10.put("label", "福绿1号方阵");
// map10.put("name", "25");
// map10.put("type", "camera");
// map10.put("lng", 107.090061);
// map10.put("lat", 23.790411);
// map10.put("alt", 0);
// HashMap<String, Object> map11 = new HashMap<>();
// map11.put("id", "58");
// map11.put("label", "福绿6号方阵-2");
// map11.put("name", "25");
// map11.put("type", "camera");
// map11.put("lng", 107.112883);
// map11.put("lat", 23.771378);
// map11.put("alt", 0);
//
// sxtChildrenMap.add(map1);
// sxtChildrenMap.add(map2);
// sxtChildrenMap.add(map3);
// sxtChildrenMap.add(map4);
// sxtChildrenMap.add(map5);
// sxtChildrenMap.add(map6);
// sxtChildrenMap.add(map7);
// sxtChildrenMap.add(map8);
// sxtChildrenMap.add(map9);
// sxtChildrenMap.add(map10);
// sxtChildrenMap.add(map11);
//
// return sxtChildrenMap;
// }
public List<Map<String, Object>> setWrj() {
List<Map<String, Object>> sxtChildrenMap = new ArrayList<>();

View File

@ -179,7 +179,8 @@ public class BusMrpBaseController extends BaseController {
*/
@SaCheckPermission("cailiaoshebei:purchaseDoc:coryEngineeringList")
@GetMapping("/coryEngineeringList")
public R<List<ObtainTheListRes>> obtainTheList(CoryObtainTheListReq req) {
public R<List<BusBillofquantities>> obtainTheList(CoryObtainTheListReq req) {
// public R<List<ObtainTheListRes>> obtainTheList(CoryObtainTheListReq req) {
BusBillofquantitiesVersions one = busBillofquantitiesVersionsService.getOne(Wrappers.<BusBillofquantitiesVersions>lambdaQuery()
.eq(BusBillofquantitiesVersions::getWorkOrderType, "3") //物资工程量清单
.eq(BusBillofquantitiesVersions::getProjectId, req.getProjectId())
@ -193,19 +194,20 @@ public class BusMrpBaseController extends BaseController {
List<BusBillofquantities> list = busBillofquantitiesService.list(Wrappers.<BusBillofquantities>lambdaQuery()
.eq(BusBillofquantities::getVersions, one.getVersions())
);
List<ObtainTheListRes> obtainTheListRes = new ArrayList<>();
list.forEach(billofquantities -> {
ObtainTheListRes res = new ObtainTheListRes();
BeanUtils.copyProperties(billofquantities, res);
obtainTheListRes.add(res);
});
Map<String, List<ObtainTheListRes>> parentMap = obtainTheListRes.stream()
.collect(Collectors.groupingBy(ObtainTheListRes::getPid));
// 3. 递归组装树形结构从顶级节点pid=0开始
List<ObtainTheListRes> treeList = buildTree("0", parentMap);
return R.ok(treeList);
// List<ObtainTheListRes> obtainTheListRes = new ArrayList<>();
// list.forEach(billofquantities -> {
// ObtainTheListRes res = new ObtainTheListRes();
// BeanUtils.copyProperties(billofquantities, res);
// obtainTheListRes.add(res);
// });
//
// Map<String, List<ObtainTheListRes>> parentMap = obtainTheListRes.stream()
// .collect(Collectors.groupingBy(ObtainTheListRes::getPid));
//
// // 3. 递归组装树形结构从顶级节点pid=0开始
// List<ObtainTheListRes> treeList = buildTree("0", parentMap);
// return R.ok(treeList);
return R.ok(list);
}
private List<ObtainTheListRes> buildTree(String parentId, Map<String, List<ObtainTheListRes>> parentMap) {

View File

@ -232,11 +232,11 @@ public class BusMrpBaseServiceImpl extends ServiceImpl<BusMrpBaseMapper, BusMrpB
// 转换并保存数据
List<BusMaterialbatchdemandplan> plans = MapstructUtils.convert(dto.getPlanList(), BusMaterialbatchdemandplan.class);
plans.forEach(item -> {
BusBillofquantities byId = busBillofquantitiesService.getById(item.getSuppliespriceId());
if (!"0".equals(byId.getPid())) {
BusBillofquantities one = busBillofquantitiesService.getOne(new LambdaQueryWrapper<BusBillofquantities>().eq(BusBillofquantities::getSid, byId.getPid()));
item.setSuppliespricePid(one.getId());
}
// BusBillofquantities byId = busBillofquantitiesService.getById(item.getSuppliespriceId());
// if (!"0".equals(byId.getPid())) {
// BusBillofquantities one = busBillofquantitiesService.getOne(new LambdaQueryWrapper<BusBillofquantities>().eq(BusBillofquantities::getSid, byId.getPid()));
// item.setSuppliespricePid(one.getId());
// }
item.setMrpBaseId(convert.getId());
item.setProjectId(convert.getProjectId());
});

View File

@ -217,7 +217,7 @@ public class BusBillofquantitiesVersionsServiceImpl extends ServiceImpl<BusBillo
//1、获取到解析数据
ExcelReader.ExcelData excelData = ExcelReader.readExcelFromMultipartFile(file);
//走正常的工程清单
// if (!Objects.equals(bo.getWorkOrderType(), "3")) {
if (!Objects.equals(bo.getWorkOrderType(), "3")) {
// 2. 解析所有工作表转换为带父子关系的ExcelMaterial列表 解析所有Sheet数据按规则生成sid和pid
List<BusBillofquantities> allMaterials = new ArrayList<>();
for (ExcelReader.SheetData sheetData : excelData.getSheetDataList()) {
@ -239,26 +239,26 @@ public class BusBillofquantitiesVersionsServiceImpl extends ServiceImpl<BusBillo
throw new RuntimeException("导入失败");
}
return true;
// } else {
// // 跳过1行表头读取0到6列共7列映射到ExcelData实体类
// List<MaterialsAndEquipmentExcelDto> dataList = ExcelDynamicReader.readExcel(
// file, // 上传的文件
// 1, // 跳过1行表头
// 0, // 从第0列开始
// 5, // 到第5列结束
// MaterialsAndEquipmentExcelDto.class // 目标实体类
// );
// List<BusBillofquantities> busBillofquantities = BeanUtil.copyToList(dataList, BusBillofquantities.class);
// for (BusBillofquantities busBillofquantity : busBillofquantities) {
// busBillofquantity.setProjectId(bo.getProjectId());
// busBillofquantity.setVersions(banBen);
// }
// boolean b = busBillofquantitiesService.saveBatch(busBillofquantities);
// if (!b) {
// throw new RuntimeException("导入失败");
// }
// return true;
// }
} else {
// 跳过1行表头读取0到6列共7列映射到ExcelData实体类
List<MaterialsAndEquipmentExcelDto> dataList = ExcelDynamicReader.readExcel(
file, // 上传的文件
1, // 跳过1行表头
0, // 从第0列开始
5, // 到第5列结束
MaterialsAndEquipmentExcelDto.class // 目标实体类
);
List<BusBillofquantities> busBillofquantities = BeanUtil.copyToList(dataList, BusBillofquantities.class);
for (BusBillofquantities busBillofquantity : busBillofquantities) {
busBillofquantity.setProjectId(bo.getProjectId());
busBillofquantity.setVersions(banBen);
}
boolean b = busBillofquantitiesService.saveBatch(busBillofquantities);
if (!b) {
throw new RuntimeException("导入失败");
}
return true;
}
}
@ -270,9 +270,9 @@ public class BusBillofquantitiesVersionsServiceImpl extends ServiceImpl<BusBillo
return Collections.emptyList();
}
// sheet为空表示不走下面的代码
// if (StringUtils.isBlank(bo.getSheet())) {
// return flatList;
// }
if (StringUtils.isBlank(bo.getSheet())) {
return flatList;
}
// 2. 构建父子映射key=父节点pidvalue=该父节点的所有子节点
Map<String, List<ObtainTheListRes>> parentMap = flatList.stream()
.collect(Collectors.groupingBy(ObtainTheListRes::getPid));

View File

@ -6,6 +6,7 @@ import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
@ -67,6 +68,19 @@ public class OthYs7Device implements Serializable {
*/
private String position;
/**
* 纬度精确到6位小数
*/
private BigDecimal latitude;
/**
* 经度精确到6位小数
*/
private BigDecimal longitude;
/**
* 海拔高度单位未明确默认0
*/
private BigDecimal altitude;
/**
* 设备添加时间
*/

View File

@ -203,9 +203,9 @@ public class BusBillofquantitiesLimitListServiceImpl extends ServiceImpl<BusBill
.forEach(item -> {
item.setPrice(item.getUnitPrice().multiply(item.getQuantity()).setScale(4, RoundingMode.HALF_UP));
});
// if (bo.getType().equals(LimitListTypeEnum.SPECIAL.getCode())) {
// return listVoList;
// }
if (bo.getType().equals(LimitListTypeEnum.SPECIAL.getCode())) {
return listVoList;
}
//构建父子映射
Map<String, List<BusBillofquantitiesLimitListVo>> parentMap = listVoList.stream()