|
@ -72,16 +72,17 @@ public class FacilitiesController extends EnvelopRestEndpoint {
|
|
|
return success(facilityList, (null == facilityList) ? 0 : facilityList.size(), page, size);
|
|
|
}
|
|
|
|
|
|
@ApiOperation(value = "创建/更新(id存在)设施,包含设施与服务的关联关系")
|
|
|
@ApiOperation(value = "创建设施,包含设施与服务的关联关系")
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@PostMapping(value = HealthyHouseMapping.HealthyHouse.Facilities.CREATE)
|
|
|
public ObjEnvelop<Facility> createFacilities(
|
|
|
@ApiParam(name = "facility", value = "设施JSON结构")
|
|
|
@RequestParam(value = "facility") String facility,
|
|
|
@ApiParam(name = "facilityServerJson", value = "设施与服务关联关系")
|
|
|
@ApiParam(name = "facilityServerJson", value = "设施关联的服务字符串用,号隔开")
|
|
|
@RequestParam(value = "facilityServerJson") String facilityServerJson) throws IOException {
|
|
|
Facility facility1 = toEntity(facility, Facility.class);
|
|
|
List<Facility> facilityList = null;
|
|
|
List<FacilityServerRelation> facilityServerRelationList = new ArrayList<>();
|
|
|
if (StringUtils.isEmpty(facility1.getCode())) {
|
|
|
return failed("设施编码不能为空!", ObjEnvelop.class);
|
|
|
} else {
|
|
@ -108,24 +109,62 @@ public class FacilitiesController extends EnvelopRestEndpoint {
|
|
|
return failed("设施类别不正确,请参考系统字典:设施类别!", ObjEnvelop.class);
|
|
|
}
|
|
|
Facility facilityBack = facilityService.save(facility1);
|
|
|
JavaType javaType = objectMapper.getTypeFactory().constructParametricType(List.class, FacilityServerRelation.class);
|
|
|
List<FacilityServerRelation> models = objectMapper.readValue(facilityServerJson, javaType);
|
|
|
if (null != models && models.size() > 0) {
|
|
|
for (FacilityServerRelation facilityServerRelation : models) {
|
|
|
facilityServerRelationService.save(facilityServerRelation);
|
|
|
//添加设施的时候,追加改服务的使用设施数量。
|
|
|
List<FacilityServer> facilityServerList = facilityServerService.findByField("code", facilityServerRelation.getServiceCode());
|
|
|
for (FacilityServer facilityServer : facilityServerList) {
|
|
|
Integer num = Integer.valueOf(facilityServer.getNum()) + 1;
|
|
|
facilityServer.setNum(num.toString());
|
|
|
facilityServerService.save(facilityServer);
|
|
|
}
|
|
|
createRelationByServerCode(facility1,facilityServerJson);
|
|
|
facilityBack.setFacilityServerRelation(facilityServerRelationList);
|
|
|
return success(facilityBack);
|
|
|
}
|
|
|
|
|
|
@ApiOperation(value = "更新(id存在)设施,包含设施与服务的关联关系")
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@PostMapping(value = HealthyHouseMapping.HealthyHouse.Facilities.UPDATE_FACILITIES_AND_RELATION)
|
|
|
public ObjEnvelop<Facility> updateFacilitieAndRelations(
|
|
|
@ApiParam(name = "facility", value = "设施JSON结构")
|
|
|
@RequestParam(value = "facility") String facility,
|
|
|
@ApiParam(name = "facilityServerJson", value = "设施关联的服务字符串用,号隔开")
|
|
|
@RequestParam(value = "facilityServerJson") String facilityServerJson) throws Exception {
|
|
|
Facility facility1 = toEntity(facility, Facility.class);
|
|
|
List<Facility> facilityList = null;
|
|
|
List<FacilityServerRelation> facilityServerRelationList = new ArrayList<>();
|
|
|
List<Facility> faList = facilityService.findByField("id", facility1.getId());
|
|
|
if (!(faList != null && faList.size() > 0)) {
|
|
|
return failed("设施不存在!", ObjEnvelop.class);
|
|
|
}
|
|
|
if (StringUtils.isNotEmpty(facility1.getId())) {
|
|
|
//删除设施,设施关联关系,设施服务使用设施数
|
|
|
deleteFacilityByCode(facility1);
|
|
|
}
|
|
|
if (StringUtils.isEmpty(facility1.getCode())) {
|
|
|
return failed("设施编码不能为空!", ObjEnvelop.class);
|
|
|
} else {
|
|
|
facilityList = facilityService.findByField("code", facility1.getCode());
|
|
|
if (null != facilityList && facilityList.size() > 0) {
|
|
|
return failed("设施编码已存在!", ObjEnvelop.class);
|
|
|
}
|
|
|
}
|
|
|
if (StringUtils.isEmpty(facility1.getName())) {
|
|
|
return failed("设施名称不能为空!", ObjEnvelop.class);
|
|
|
} else {
|
|
|
facilityList = facilityService.findByField("name", facility1.getName());
|
|
|
if (null != facilityList && facilityList.size() > 0) {
|
|
|
return failed("设施名称已存在!", ObjEnvelop.class);
|
|
|
}
|
|
|
}
|
|
|
facilityBack.setFacilityServerRelation(models);
|
|
|
if (!(facility1.getLongitude() > 0)) {
|
|
|
return failed("设施经度不能为空!", ObjEnvelop.class);
|
|
|
}
|
|
|
if (!(facility1.getLatitude() > 0)) {
|
|
|
return failed("设施纬度不能为空!", ObjEnvelop.class);
|
|
|
}
|
|
|
if (StringUtils.isEmpty(facility1.getCategory().toString())) {
|
|
|
return failed("设施类别不正确,请参考系统字典:设施类别!", ObjEnvelop.class);
|
|
|
}
|
|
|
Facility facilityBack = facilityService.save(facility1);
|
|
|
createRelationByServerCode(facility1,facilityServerJson);
|
|
|
facilityBack.setFacilityServerRelation(facilityServerRelationList);
|
|
|
return success(facilityBack);
|
|
|
}
|
|
|
|
|
|
|
|
|
@ApiOperation(value = "获取设施")
|
|
|
@GetMapping(value = HealthyHouseMapping.HealthyHouse.Facilities.GET_FACILITIES_BY_ID)
|
|
|
public ObjEnvelop<Facility> getFacilitie(
|
|
@ -188,18 +227,7 @@ public class FacilitiesController extends EnvelopRestEndpoint {
|
|
|
if (null == facility) {
|
|
|
return failed("设施不存在!");
|
|
|
}
|
|
|
List<FacilityServerRelation> facilityServerRelationList = facilityServerRelationService.findByField("facilitieCode", facility.getCode());
|
|
|
//通过设施与服务关系,变更设施服务使用数量
|
|
|
for (FacilityServerRelation facilityServerRelation : facilityServerRelationList) {
|
|
|
List<FacilityServer> facilityServiceList = facilityServerService.findByField("code", facilityServerRelation.getServiceCode());
|
|
|
for (FacilityServer facilityServer : facilityServiceList) {
|
|
|
Integer num = Integer.valueOf(facilityServer.getNum()) - 1;
|
|
|
facilityServer.setNum(num.toString());
|
|
|
facilityServerService.save(facilityServer);
|
|
|
}
|
|
|
}
|
|
|
facilityServerRelationService.deleteByFacilitieCode(facility.getCode());
|
|
|
facilityService.delete(facility);
|
|
|
deleteFacilityByCode(facility);
|
|
|
return success("success");
|
|
|
}
|
|
|
|
|
@ -248,16 +276,16 @@ public class FacilitiesController extends EnvelopRestEndpoint {
|
|
|
@ApiOperation(value = "设施列表导出excel")
|
|
|
public void exportToExcel(
|
|
|
HttpServletResponse response,
|
|
|
@ApiParam(name = "filters", value = "过滤条件", required = false)@RequestParam(required = false, name = "filters") String filters,
|
|
|
@ApiParam(name = "sorts", value = "排序", required = false)@RequestParam(required = false, name = "sorts") String sorts) throws ManageException {
|
|
|
@ApiParam(name = "filters", value = "过滤条件", required = false) @RequestParam(required = false, name = "filters") String filters,
|
|
|
@ApiParam(name = "sorts", value = "排序", required = false) @RequestParam(required = false, name = "sorts") String sorts) throws ManageException {
|
|
|
//获取设施数据
|
|
|
List<Facility> facilityList = null;
|
|
|
try {
|
|
|
facilityList = facilityService.search( filters, sorts);
|
|
|
facilityList = facilityService.search(filters, sorts);
|
|
|
} catch (ParseException e) {
|
|
|
throw new ManageException("获取设施列表异常",e);
|
|
|
throw new ManageException("获取设施列表异常", e);
|
|
|
}
|
|
|
facilityService.exportFacilityExcel(response,facilityList);
|
|
|
facilityService.exportFacilityExcel(response, facilityList);
|
|
|
}
|
|
|
|
|
|
|
|
@ -269,13 +297,13 @@ public class FacilitiesController extends EnvelopRestEndpoint {
|
|
|
AExcelReader excelReader = new FacilityMsgReader();
|
|
|
excelReader.read(file);
|
|
|
List<FacilityMsg> dataList = excelReader.getCorrectLs();
|
|
|
if(dataList.size()>0) {
|
|
|
Map<String,Object> result = facilityService.batchInsertFacility(dataList);
|
|
|
return ObjEnvelop.getSuccess("导入成功!",result);
|
|
|
if (dataList.size() > 0) {
|
|
|
Map<String, Object> result = facilityService.batchInsertFacility(dataList);
|
|
|
return ObjEnvelop.getSuccess("导入成功!", result);
|
|
|
}
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
throw new ManageException("导入设施列表异常!",e);
|
|
|
throw new ManageException("导入设施列表异常!", e);
|
|
|
}
|
|
|
return ObjEnvelop.getError("导入失败");
|
|
|
}
|
|
@ -300,15 +328,15 @@ public class FacilitiesController extends EnvelopRestEndpoint {
|
|
|
Map<String, Long> map = new HashMap<>();
|
|
|
//今日使用设施数
|
|
|
long countUsedFacilitieToday = facilityServerRelationService.countDistinctByFacilitieCodeAndCreateTimeBetween();
|
|
|
map.put("countUsedFacilitieToday",countUsedFacilitieToday);
|
|
|
map.put("countUsedFacilitieToday", countUsedFacilitieToday);
|
|
|
long countAllFacilitie = facilityService.getCount("");
|
|
|
map.put("countAllFacilitie",countAllFacilitie);
|
|
|
map.put("countAllFacilitie", countAllFacilitie);
|
|
|
//今日新增设施:false
|
|
|
String todayStart = DateUtil.getStringDateShort() + " " + "00:00:00";
|
|
|
String todayEnd = DateUtil.getStringDateShort() + " " + "23:59:59";
|
|
|
String filters = "createTime>=" + todayStart + ";createTime<=" + todayEnd;
|
|
|
String filters = "createTime>=" + todayStart + ";createTime<=" + todayEnd;
|
|
|
long countCreatedFacilitieToday = facilityService.getCount(filters);
|
|
|
map.put("countCreatedFacilitieToday",countCreatedFacilitieToday);
|
|
|
map.put("countCreatedFacilitieToday", countCreatedFacilitieToday);
|
|
|
return ObjEnvelop.getSuccess("获取成功", map);
|
|
|
}
|
|
|
|
|
@ -329,4 +357,61 @@ public class FacilitiesController extends EnvelopRestEndpoint {
|
|
|
// }
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 根据设施,删除设施关联服务,变更设施服务关联设施数,删除设施
|
|
|
* @param facility 设施
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
private void deleteFacilityByCode(Facility facility) throws Exception {
|
|
|
List<FacilityServerRelation> facilityServerRelationList = facilityServerRelationService.findByField("facilitieCode", facility.getCode());
|
|
|
//通过设施与服务关系,变更设施服务使用数量
|
|
|
for (FacilityServerRelation facilityServerRelation : facilityServerRelationList) {
|
|
|
List<FacilityServer> facilityServiceList = facilityServerService.findByField("code", facilityServerRelation.getServiceCode());
|
|
|
for (FacilityServer facilityServer : facilityServiceList) {
|
|
|
Integer num = Integer.valueOf(facilityServer.getNum()) - 1;
|
|
|
facilityServer.setNum(num.toString());
|
|
|
facilityServerService.save(facilityServer);
|
|
|
}
|
|
|
}
|
|
|
facilityServerRelationService.deleteByFacilitieCode(facility.getCode());
|
|
|
facilityService.delete(facility);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据设施及服务编码管理关联关系
|
|
|
*
|
|
|
* @param facility1 设施
|
|
|
* @param facilityServerJson 设施服务编码
|
|
|
* @return
|
|
|
*/
|
|
|
public List<FacilityServerRelation> createRelationByServerCode(Facility facility1, String facilityServerJson) {
|
|
|
List<FacilityServerRelation> list = new ArrayList<>();
|
|
|
if (StringUtils.isNotEmpty(facilityServerJson)) {
|
|
|
//设施编码
|
|
|
String[] fs = facilityServerJson.split(",");
|
|
|
FacilityServerRelation facilityServerRelation;
|
|
|
for (String code : fs) {
|
|
|
List<FacilityServer> facilityServerList = facilityServerService.findByField("code", code);
|
|
|
for (FacilityServer facilityServer : facilityServerList) {
|
|
|
facilityServerRelation = new FacilityServerRelation();
|
|
|
facilityServerRelation.setFacilitieCode(facility1.getCode());
|
|
|
facilityServerRelation.setFacilitieName(facility1.getName());
|
|
|
facilityServerRelation.setServiceCode(facilityServer.getCode());
|
|
|
facilityServerRelation.setServiceName(facilityServer.getName());
|
|
|
facilityServerRelation.setCreateUser(facility1.getCreateUser());
|
|
|
facilityServerRelation.setCreateUserName(facility1.getCreateUserName());
|
|
|
//追加设施与服务的关联关系
|
|
|
facilityServerRelationService.save(facilityServerRelation);
|
|
|
//添加设施的时候,追加改服务的使用设施数量。
|
|
|
Integer num = Integer.valueOf(facilityServer.getNum()) + 1;
|
|
|
facilityServer.setNum(num.toString());
|
|
|
facilityServerService.save(facilityServer);
|
|
|
list.add(facilityServerRelation);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|