|  | @ -1,7 +1,6 @@
 | 
	
		
			
				|  |  | package com.yihu.jw.healthyhouse.controller.facilities;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import com.fasterxml.jackson.databind.JavaType;
 | 
	
		
			
				|  |  | import com.fasterxml.jackson.databind.cfg.ContextAttributes;
 | 
	
		
			
				|  |  | import com.fasterxml.jackson.core.JsonProcessingException;
 | 
	
		
			
				|  |  | import com.yihu.jw.exception.business.ManageException;
 | 
	
		
			
				|  |  | import com.yihu.jw.healthyhouse.model.facility.Facility;
 | 
	
		
			
				|  |  | import com.yihu.jw.healthyhouse.model.facility.FacilityServer;
 | 
	
	
		
			
				|  | @ -28,6 +27,7 @@ import org.springframework.web.bind.annotation.*;
 | 
	
		
			
				|  |  | import java.io.File;
 | 
	
		
			
				|  |  | import java.io.IOException;
 | 
	
		
			
				|  |  | import java.text.ParseException;
 | 
	
		
			
				|  |  | import java.text.SimpleDateFormat;
 | 
	
		
			
				|  |  | import java.util.*;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.web.Envelop;
 | 
	
	
		
			
				|  | @ -45,7 +45,7 @@ import javax.servlet.http.HttpServletResponse;
 | 
	
		
			
				|  |  |  */
 | 
	
		
			
				|  |  | @RestController
 | 
	
		
			
				|  |  | @RequestMapping(HealthyHouseMapping.api_healthyHouse_common)
 | 
	
		
			
				|  |  | @Api(value = "Facility", description = "设施管理", tags = {"设施管理"})
 | 
	
		
			
				|  |  | @Api(value = "Facility", description = "设施管理", tags = {"3设施管理"})
 | 
	
		
			
				|  |  | public class FacilitiesController extends EnvelopRestEndpoint {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
	
		
			
				|  | @ -72,13 +72,13 @@ 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;
 | 
	
	
		
			
				|  | @ -108,24 +108,61 @@ 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);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |         List<FacilityServerRelation> facilityServerRelationList = 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<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);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         facilityBack.setFacilityServerRelation(models);
 | 
	
		
			
				|  |  |         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);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         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);
 | 
	
		
			
				|  |  |         List<FacilityServerRelation> facilityServerRelationList = createRelationByServerCode(facility1, facilityServerJson);
 | 
	
		
			
				|  |  |         facilityBack.setFacilityServerRelation(facilityServerRelationList);
 | 
	
		
			
				|  |  |         return success(facilityBack);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @ApiOperation(value = "获取设施")
 | 
	
		
			
				|  |  |     @GetMapping(value = HealthyHouseMapping.HealthyHouse.Facilities.GET_FACILITIES_BY_ID)
 | 
	
		
			
				|  |  |     public ObjEnvelop<Facility> getFacilitie(
 | 
	
	
		
			
				|  | @ -156,7 +193,7 @@ public class FacilitiesController extends EnvelopRestEndpoint {
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @ApiOperation(value = "新增/更新(idy已存在)设施")
 | 
	
		
			
				|  |  |     @PutMapping(value = HealthyHouseMapping.HealthyHouse.Facilities.UPDATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
 | 
	
		
			
				|  |  |     @PostMapping(value = HealthyHouseMapping.HealthyHouse.Facilities.UPDATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
 | 
	
		
			
				|  |  |     public ObjEnvelop<Facility> updateFacilities(
 | 
	
		
			
				|  |  |             @ApiParam(name = "facility", value = "设施JSON结构(不包括设施与服务关联关系)")
 | 
	
		
			
				|  |  |             @RequestBody Facility facility) throws Exception {
 | 
	
	
		
			
				|  | @ -188,18 +225,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 +274,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 +295,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("导入失败");
 | 
	
		
			
				|  |  |     }
 | 
	
	
		
			
				|  | @ -288,8 +314,30 @@ public class FacilitiesController extends EnvelopRestEndpoint {
 | 
	
		
			
				|  |  |             @ApiParam(name = "filters", value = "过滤器", defaultValue = "")
 | 
	
		
			
				|  |  |             @RequestParam(value = "filters", required = false) String filters,
 | 
	
		
			
				|  |  |             @ApiParam(name = "sorts", value = "排序", defaultValue = "")
 | 
	
		
			
				|  |  |             @RequestParam(value = "sorts", required = false) String sorts) throws Exception {
 | 
	
		
			
				|  |  |         List<Facility> facilityList = facilityService.search(fields, filters, sorts);
 | 
	
		
			
				|  |  |             @RequestParam(value = "sorts", required = false) String sorts,
 | 
	
		
			
				|  |  |             @ApiParam(name = "facilityCategory", value = "设施分类:1小屋、2步道、3餐厅", defaultValue = "1")
 | 
	
		
			
				|  |  |             @RequestParam(value = "facilityCategory", required = false) String facilityCategory,
 | 
	
		
			
				|  |  |             @ApiParam(name = "facilityServerType", value = "非必传参数:设施服务类型:dinner吃饭、measure测量、sports运动", defaultValue = "measure")
 | 
	
		
			
				|  |  |             @RequestParam(value = "facilityServerType", required = false) String facilityServerType,
 | 
	
		
			
				|  |  |             @ApiParam(name = "facilityServerCodes", value = "非必传参数:设施服务编码,可多个,用逗号隔开", defaultValue = "jkxwServer003,HFHS7C5B5")
 | 
	
		
			
				|  |  |             @RequestParam(value = "facilityServerCodes", required = false) String facilityServerCodes) throws Exception {
 | 
	
		
			
				|  |  |         List<Facility> facilityList = new ArrayList<>();
 | 
	
		
			
				|  |  |         //设施服务编码存在,查找使用该服务的设施
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(facilityServerCodes)) {
 | 
	
		
			
				|  |  |             String[] faServerCodes = facilityServerCodes.split(",");
 | 
	
		
			
				|  |  |             List<String> facilityCodeList = facilityService.getFacilityCodeByServerCode(faServerCodes);
 | 
	
		
			
				|  |  |             facilityList = facilityService.getFacilityByFacilityCode(facilityCodeList);
 | 
	
		
			
				|  |  |         } else if (StringUtils.isNotEmpty(facilityServerType)) {
 | 
	
		
			
				|  |  |             //设施编码为空,设施服务类型不为空,按设施服务类型获取设施
 | 
	
		
			
				|  |  |             List<String> facilityCodeList = facilityService.getFacilityCodeByServerType(facilityServerType);
 | 
	
		
			
				|  |  |             facilityList = facilityService.getFacilityByFacilityCode(facilityCodeList);
 | 
	
		
			
				|  |  |         } else if (StringUtils.isNotEmpty(facilityCategory)) {
 | 
	
		
			
				|  |  |             //设施编码为空,设施服务类型为空,按照设施分类获取按设施服务类型获取设施
 | 
	
		
			
				|  |  |             filters = "category=" + facilityCategory;
 | 
	
		
			
				|  |  |             facilityList = facilityService.search(fields, filters, sorts);
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             facilityList = facilityService.search(fields, filters, sorts);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return success(facilityList);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -300,17 +348,93 @@ 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);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | //    @ApiOperation(value = "搜索附近的小屋", responseContainer = "List")
 | 
	
		
			
				|  |  | //    @GetMapping(value = HealthyHouseMapping.HealthyHouse.Facilities.NEARBY_FACILITY)
 | 
	
		
			
				|  |  | //    public PageEnvelop<Facility> nearbyFacility(
 | 
	
		
			
				|  |  | //            @ApiParam(name = "lng", value = "当前经度", defaultValue = "")
 | 
	
		
			
				|  |  | //            @RequestParam(value = "lng", required = false) String lng,
 | 
	
		
			
				|  |  | //            @ApiParam(name = "lat", value = "当前纬度", defaultValue = "")
 | 
	
		
			
				|  |  | //            @RequestParam(value = "lat", required = false) String lat,
 | 
	
		
			
				|  |  | //            @ApiParam(name = "page", value = "页码", defaultValue = "1")
 | 
	
		
			
				|  |  | //            @RequestParam(value = "page", required = false) Integer page,
 | 
	
		
			
				|  |  | //            @ApiParam(name = "size", value = "分页大小", defaultValue = "15")
 | 
	
		
			
				|  |  | //            @RequestParam(value = "size", required = false) Integer size) throws Exception {
 | 
	
		
			
				|  |  | //        List<Facility> facilityList = facilityService.search(fields, filters, sorts, page, size);
 | 
	
		
			
				|  |  | //        return success(facilityList, (null == facilityList) ? 0 : facilityList.size(), page, size);
 | 
	
		
			
				|  |  | //    }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 根据设施,删除设施关联服务,变更设施服务关联设施数,删除设施
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @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 = (null == facilityServer.getNum() ? 0 : (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) {
 | 
	
		
			
				|  |  |                 if (StringUtils.isNotEmpty(code)) {
 | 
	
		
			
				|  |  |                     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 = (null == facilityServer.getNum() ? 0 + 1 : (Integer.valueOf(facilityServer.getNum()) + 1));
 | 
	
		
			
				|  |  |                         facilityServer.setNum(num.toString());
 | 
	
		
			
				|  |  |                         facilityServerService.save(facilityServer);
 | 
	
		
			
				|  |  |                         list.add(facilityServerRelation);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return list;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | }
 |