|
@ -1,16 +1,22 @@
|
|
|
package com.yihu.jw.healthyhouse.controller.facilities;
|
|
|
|
|
|
import com.fasterxml.jackson.databind.JavaType;
|
|
|
import com.yihu.jw.healthyhouse.model.facility.Facility;
|
|
|
import com.yihu.jw.healthyhouse.model.facility.FacilityServerRelation;
|
|
|
import com.yihu.jw.healthyhouse.service.facility.FacilityServerRelationService;
|
|
|
import com.yihu.jw.healthyhouse.service.facility.FacilityService;
|
|
|
import com.yihu.jw.restmodel.web.*;
|
|
|
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
|
|
|
import com.yihu.jw.rm.health.house.HealthyHouseMapping;
|
|
|
import com.yihu.jw.util.date.DateUtil;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import io.swagger.annotations.ApiParam;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.http.MediaType;
|
|
|
import org.springframework.transaction.annotation.Propagation;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import java.io.IOException;
|
|
@ -32,10 +38,12 @@ public class FacilitiesController extends EnvelopRestEndpoint {
|
|
|
|
|
|
@Autowired
|
|
|
private FacilityService facilityService;
|
|
|
@Autowired
|
|
|
private FacilityServerRelationService facilityServerRelationService;
|
|
|
|
|
|
@ApiOperation(value = "获取设施列表", responseContainer = "List")
|
|
|
@GetMapping(value = HealthyHouseMapping.HealthyHouse.Facilities.PAGE)
|
|
|
public PageEnvelop<Facility> getDictionaries(
|
|
|
public PageEnvelop<Facility> getFacilities(
|
|
|
@ApiParam(name = "fields", value = "返回的字段,为空返回全部字段", defaultValue = "")
|
|
|
@RequestParam(value = "fields", required = false) String fields,
|
|
|
@ApiParam(name = "filters", value = "过滤器", defaultValue = "")
|
|
@ -47,71 +55,89 @@ public class FacilitiesController extends EnvelopRestEndpoint {
|
|
|
@ApiParam(name = "page", value = "页码", defaultValue = "1")
|
|
|
@RequestParam(value = "page", required = false) Integer page) throws Exception {
|
|
|
List<Facility> facilityList = facilityService.search(fields, filters, sorts, page, size);
|
|
|
return success(facilityList, facilityList.size(), page, size);
|
|
|
return success(facilityList, (null == facilityList) ? 0 : facilityList.size(), page, size);
|
|
|
}
|
|
|
|
|
|
@ApiOperation(value = "创建设施")
|
|
|
@ApiOperation(value = "创建/更新(id存在)设施,包含设施与服务的关联关系")
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@PostMapping(value = HealthyHouseMapping.HealthyHouse.Facilities.CREATE)
|
|
|
public ObjEnvelop<Facility> createDictionary(
|
|
|
public ObjEnvelop<Facility> createFacilities(
|
|
|
@ApiParam(name = "facility", value = "设施JSON结构")
|
|
|
@RequestBody Facility facility) throws IOException {
|
|
|
@RequestParam(value = "facility") String facility,
|
|
|
@ApiParam(name = "facilityServerJson", value = "设施与服务关联关系")
|
|
|
@RequestParam(value = "facilityServerJson") String facilityServerJson) throws IOException {
|
|
|
Facility facility1 = toEntity(facility, Facility.class);
|
|
|
List<Facility> facilityList = null;
|
|
|
if (StringUtils.isEmpty(facility.getCode())) {
|
|
|
if (StringUtils.isEmpty(facility1.getCode())) {
|
|
|
return failed("设施编码不能为空!", ObjEnvelop.class);
|
|
|
} else {
|
|
|
facilityList = facilityService.findByField("code", facility.getCode());
|
|
|
facilityList = facilityService.findByField("code", facility1.getCode());
|
|
|
if (null != facilityList && facilityList.size() > 0) {
|
|
|
return failed("设施编码已存在!", ObjEnvelop.class);
|
|
|
}
|
|
|
}
|
|
|
if (StringUtils.isEmpty(facility.getName())) {
|
|
|
if (StringUtils.isEmpty(facility1.getName())) {
|
|
|
return failed("设施名称不能为空!", ObjEnvelop.class);
|
|
|
} else {
|
|
|
facilityList = facilityService.findByField("name", facility.getName());
|
|
|
facilityList = facilityService.findByField("name", facility1.getName());
|
|
|
if (null != facilityList && facilityList.size() > 0) {
|
|
|
return failed("设施名称已存在!", ObjEnvelop.class);
|
|
|
}
|
|
|
}
|
|
|
if (!(facility.getLongitude() > 0)) {
|
|
|
if (!(facility1.getLongitude() > 0)) {
|
|
|
return failed("设施经度不能为空!", ObjEnvelop.class);
|
|
|
}
|
|
|
if (!(facility.getLatitude() > 0)) {
|
|
|
if (!(facility1.getLatitude() > 0)) {
|
|
|
return failed("设施纬度不能为空!", ObjEnvelop.class);
|
|
|
}
|
|
|
if (StringUtils.isEmpty(facility.getCategory().toString())) {
|
|
|
if (StringUtils.isEmpty(facility1.getCategory().toString())) {
|
|
|
return failed("设施类别不正确,请参考系统字典:设施类别!", ObjEnvelop.class);
|
|
|
}
|
|
|
Facility Facility = facilityService.save(facility);
|
|
|
return success(Facility);
|
|
|
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);
|
|
|
}
|
|
|
}
|
|
|
facilityBack.setFacilityServerRelation(models);
|
|
|
return success(facilityBack);
|
|
|
}
|
|
|
|
|
|
@ApiOperation(value = "获取设施")
|
|
|
@GetMapping(value = HealthyHouseMapping.HealthyHouse.Facilities.GET_FACILITIES_BY_ID)
|
|
|
public ObjEnvelop<Facility> getDictionary(
|
|
|
public ObjEnvelop<Facility> getFacilitie(
|
|
|
@ApiParam(name = "id", value = "设施ID", defaultValue = "")
|
|
|
@RequestParam(value = "id") String id) throws Exception {
|
|
|
Facility facility = facilityService.findById(id);
|
|
|
List<FacilityServerRelation> facilityServerRelationList = facilityServerRelationService.findByField("facilitieCode", facility.getCode());
|
|
|
if (facility == null) {
|
|
|
return failed("设施不存在!", ObjEnvelop.class);
|
|
|
}
|
|
|
facility.setFacilityServerRelation(facilityServerRelationList);
|
|
|
return success(facility);
|
|
|
}
|
|
|
|
|
|
@ApiOperation(value = "获取设施")
|
|
|
@GetMapping(value = HealthyHouseMapping.HealthyHouse.Facilities.GET_FACILITIES_BY_FIELD)
|
|
|
public ListEnvelop<Facility> getDictionaryByPhoneticCode(
|
|
|
public ListEnvelop<Facility> getFacilitiesByfield(
|
|
|
@ApiParam(name = "field", value = "查找字段名", required = true)
|
|
|
@RequestParam(value = "field") String field,
|
|
|
@ApiParam(name = "value", value = "检索值")
|
|
|
@RequestParam(value = "value") String value) throws Exception {
|
|
|
List<Facility> facilityList = facilityService.findByField(field, value);
|
|
|
for (Facility facility : facilityList) {
|
|
|
List<FacilityServerRelation> facilityServerRelationList = facilityServerRelationService.findByField("facilitieCode", facility.getCode());
|
|
|
facility.setFacilityServerRelation(facilityServerRelationList);
|
|
|
}
|
|
|
return success(facilityList);
|
|
|
}
|
|
|
|
|
|
@ApiOperation(value = "更新设施")
|
|
|
@ApiOperation(value = "新增/更新(idy已存在)设施")
|
|
|
@PutMapping(value = HealthyHouseMapping.HealthyHouse.Facilities.UPDATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
|
|
|
public ObjEnvelop<Facility> updateDictionary(
|
|
|
@ApiParam(name = "facility", value = "设施JSON结构")
|
|
|
public ObjEnvelop<Facility> updateFacilities(
|
|
|
@ApiParam(name = "facility", value = "设施JSON结构(不包括设施与服务关联关系)")
|
|
|
@RequestBody Facility facility) throws Exception {
|
|
|
if (StringUtils.isEmpty(facility.getCode())) {
|
|
|
return failed("设施编码不能为空!", ObjEnvelop.class);
|
|
@ -134,14 +160,34 @@ public class FacilitiesController extends EnvelopRestEndpoint {
|
|
|
|
|
|
@ApiOperation(value = "删除设施")
|
|
|
@DeleteMapping(value = HealthyHouseMapping.HealthyHouse.Facilities.DELETE)
|
|
|
public Envelop deleteDictionary(
|
|
|
public Envelop deleteFacilities(
|
|
|
@ApiParam(name = "facilitiesId", value = "设施ID")
|
|
|
@RequestParam(value = "facilitiesId") String facilitiesId) throws Exception {
|
|
|
Facility facility = new Facility();
|
|
|
facility.setId(facilitiesId);
|
|
|
Facility facility = facilityService.findById(facilitiesId);
|
|
|
facilityServerRelationService.deleteByFacilitieCode(facility.getCode());
|
|
|
facilityService.delete(facility);
|
|
|
return success("success");
|
|
|
}
|
|
|
|
|
|
@ApiOperation(value = "设施统计:设施总数/今日新增设施")
|
|
|
@DeleteMapping(value = HealthyHouseMapping.HealthyHouse.Facilities.COUNT_FACILITIES)
|
|
|
public ObjEnvelop<Long> countFacilities(
|
|
|
@ApiParam(name = "totalCountFlag", value = "设施总数:true;今日新增设施:false", defaultValue = "true")
|
|
|
@RequestParam(value = "totalCountFlag") boolean totalCountFlag) throws Exception {
|
|
|
String filters = "";
|
|
|
long count;
|
|
|
//设施总数:true
|
|
|
if (totalCountFlag) {
|
|
|
count = facilityService.getCount(filters);
|
|
|
} else {
|
|
|
//今日新增设施:false
|
|
|
String todayStart = DateUtil.getStringDateShort() + " " + "00:00:00";
|
|
|
String todayEnd = DateUtil.getStringDateShort() + " " + "23:59:59";
|
|
|
filters = "createTime>=" + todayStart + ";createTime<=" + todayEnd;
|
|
|
count = facilityService.getCount(filters);
|
|
|
}
|
|
|
return success("success", count);
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|