Browse Source

设施与设施服务关系处理

zdm 6 years ago
parent
commit
f22aab41b1

+ 42 - 24
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/controller/facilities/FacilitiesController.java

@ -1,6 +1,9 @@
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;
@ -12,6 +15,8 @@ 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;
@ -33,6 +38,8 @@ public class FacilitiesController extends EnvelopRestEndpoint {
    @Autowired
    private FacilityService facilityService;
    @Autowired
    private FacilityServerRelationService facilityServerRelationService;
    @ApiOperation(value = "获取设施列表", responseContainer = "List")
    @GetMapping(value = HealthyHouseMapping.HealthyHouse.Facilities.PAGE)
@ -47,20 +54,19 @@ public class FacilitiesController extends EnvelopRestEndpoint {
            @RequestParam(value = "size", required = false) Integer size,
            @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, (null==facilityList)?0:facilityList.size(), page, size);
        List<Facility> facilityList = facilityService.search(fields, filters, sorts, 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> createFacilities(
            @ApiParam(name = "facility", value = "设施JSON结构")
            @RequestParam(value = "facility")String facility,
            @ApiParam(name = "facilityServerStr", value = "服务字符串,使用‘,’隔开")
            @RequestParam(value = "facilityServerStr")String facilityServerStr) throws IOException {
        Facility facility1=toEntity(facility,Facility.class);
        String[] server=facilityServerStr.split(",");
            @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(facility1.getCode())) {
            return failed("设施编码不能为空!", ObjEnvelop.class);
@ -87,8 +93,16 @@ public class FacilitiesController extends EnvelopRestEndpoint {
        if (StringUtils.isEmpty(facility1.getCategory().toString())) {
            return failed("设施类别不正确,请参考系统字典:设施类别!", ObjEnvelop.class);
        }
        Facility Facility = facilityService.save(facility1);
        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 = "获取设施")
@ -97,9 +111,11 @@ public class FacilitiesController extends EnvelopRestEndpoint {
            @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);
    }
@ -111,13 +127,17 @@ public class FacilitiesController extends EnvelopRestEndpoint {
            @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> updateFacilities(
            @ApiParam(name = "facility", value = "设施JSON结构")
            @ApiParam(name = "facility", value = "设施JSON结构(不包括设施与服务关联关系)")
            @RequestBody Facility facility) throws Exception {
        if (StringUtils.isEmpty(facility.getCode())) {
            return failed("设施编码不能为空!", ObjEnvelop.class);
@ -143,8 +163,8 @@ public class FacilitiesController extends EnvelopRestEndpoint {
    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");
    }
@ -152,24 +172,22 @@ public class FacilitiesController extends EnvelopRestEndpoint {
    @ApiOperation(value = "设施统计:设施总数/今日新增设施")
    @DeleteMapping(value = HealthyHouseMapping.HealthyHouse.Facilities.COUNT_FACILITIES)
    public ObjEnvelop<Long> countFacilities(
            @ApiParam(name = "totalCountFlag", value = "设施总数:true;今日新增设施:false",defaultValue = "true")
            @ApiParam(name = "totalCountFlag", value = "设施总数:true;今日新增设施:false", defaultValue = "true")
            @RequestParam(value = "totalCountFlag") boolean totalCountFlag) throws Exception {
        String filters="";
        String filters = "";
        long count;
        //设施总数:true
        if (totalCountFlag) {
            count= facilityService.getCount(filters);
            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);
            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);
    }
}

+ 20 - 0
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/dao/facility/FacilityServerRelationDao.java

@ -0,0 +1,20 @@
package com.yihu.jw.healthyhouse.dao.facility;
import com.yihu.jw.healthyhouse.model.facility.FacilityServerRelation;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
/**
 * 设施与服务关系 dao
 * @author zdm
 * @version 1.0
 * @created 2018.09.20
 */
public interface FacilityServerRelationDao extends JpaRepository<FacilityServerRelation, Long> {
    FacilityServerRelation findById(String id);
    @Modifying
    void deleteByFacilitieCode(String facilitieCode);
}

+ 10 - 0
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/model/facility/Facility.java

@ -4,6 +4,7 @@ package com.yihu.jw.healthyhouse.model.facility;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.*;
import java.util.List;
/**
 * 设施
@ -82,6 +83,7 @@ public class Facility extends UuidIdentityEntityWithOperator {
    private String imgPath;
    private String statusName;
    private List<FacilityServerRelation> facilityServerRelation;
    public String getCode() {
        return code;
@ -267,4 +269,12 @@ public class Facility extends UuidIdentityEntityWithOperator {
    public void setStatusName(String statusName) {
        this.statusName = statusName;
    }
    @Transient
    public List<FacilityServerRelation> getFacilityServerRelation() {
        return facilityServerRelation;
    }
    public void setFacilityServerRelation(List<FacilityServerRelation> facilityServerRelation) {
        this.facilityServerRelation = facilityServerRelation;
    }
}

+ 61 - 0
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/model/facility/FacilityServerRelation.java

@ -0,0 +1,61 @@
package com.yihu.jw.healthyhouse.model.facility;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.*;
/**
 * 设施与服务关联关系
 * @author zdm
 * @version 1.0
 * @created 2018.09.20
 */
@Entity
@Table(name = "facility_server_relation")
public class FacilityServerRelation extends UuidIdentityEntityWithOperator {
    //设施编码
    @Column(name = "facilitie_code", nullable = false)
    private String facilitieCode;
    //设施名称
    @Column(name = "facilitie_name")
    private String facilitieName;
    //设施服务编码
    @Column(name = "service_code", nullable = false )
    private String serviceCode ;
    //设施服务名称
    @Column(name = "service_name")
    private String serviceName;
    public String getFacilitieCode() {
        return facilitieCode;
    }
    public void setFacilitieCode(String facilitieCode) {
        this.facilitieCode = facilitieCode;
    }
    public String getFacilitieName() {
        return facilitieName;
    }
    public void setFacilitieName(String facilitieName) {
        this.facilitieName = facilitieName;
    }
    public String getServiceCode() {
        return serviceCode;
    }
    public void setServiceCode(String serviceCode) {
        this.serviceCode = serviceCode;
    }
    public String getServiceName() {
        return serviceName;
    }
    public void setServiceName(String serviceName) {
        this.serviceName = serviceName;
    }
}

+ 32 - 0
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/service/facility/FacilityServerRelationService.java

@ -0,0 +1,32 @@
package com.yihu.jw.healthyhouse.service.facility;
import com.yihu.jw.healthyhouse.dao.facility.FacilityServerRelationDao;
import com.yihu.jw.healthyhouse.model.facility.FacilityServerRelation;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
 * 设施与服务关系 管理器.
 *
 * @author zdm
 * @version 1.0
 * @created 2018.09.20
 */
@Service
@Transactional
public class FacilityServerRelationService extends BaseJpaService<FacilityServerRelation, FacilityServerRelationDao> {
    @Autowired
    private FacilityServerRelationDao facilityServerRelationDao;
    public FacilityServerRelation findById(String id) {
        return facilityServerRelationDao.findById(id);
    }
    public void deleteByFacilitieCode(String facilitieCode) {
        facilityServerRelationDao.deleteByFacilitieCode(facilitieCode);
    }
}