Browse Source

添加设备调拨申请相关接口

humingfen 5 years ago
parent
commit
6220bd64b9

+ 149 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/iot/device/IotDeviceTransfersDO.java

@ -0,0 +1,149 @@
package com.yihu.jw.entity.iot.device;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
/**
 * 设备调拨记录表
 *
 * @author humingfen on 2020.5.6.
 */
@Entity
@Table(name = "iot_device_transfers")
public class IotDeviceTransfersDO extends UuidIdentityEntity implements Serializable {
    @Column(name = "saas_id")
    private String saasId;
    @Column(name = "product_id")
    private String productId;//产品id
    @Column(name = "product_name")
    private String productName;//设备名称
    @Column(name = "category_code")
    private String categoryCode;//设备类型标识
    @Column(name = "category_name")
    private String categoryName;//设备类型名称
    @Column(name = "hospital")
    private String hospital;//归属社区
    @Column(name = "hospital_name")
    private String hospitalName;//归属社区名称
    @Column(name = "num")
    private String num;//数量
    @Column(name = "contacts_name")
    private String contactsName;//联系人
    @Column(name = "contacts_mobile")
    private String contactsMobile;//联系人
    @Column(name = "status")
    private Integer status;//调拨状态(-1已拒绝 0待调拨 1已调拨)
    @Column(name = "create_time")
    protected Date createTime;//创建时间
    @Column(name = "update_time")
    protected Date updateTime;//更新时间
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public String getProductId() {
        return productId;
    }
    public void setProductId(String productId) {
        this.productId = productId;
    }
    public String getProductName() {
        return productName;
    }
    public void setProductName(String productName) {
        this.productName = productName;
    }
    public String getCategoryCode() {
        return categoryCode;
    }
    public void setCategoryCode(String categoryCode) {
        this.categoryCode = categoryCode;
    }
    public String getCategoryName() {
        return categoryName;
    }
    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }
    public String getHospital() {
        return hospital;
    }
    public void setHospital(String hospital) {
        this.hospital = hospital;
    }
    public String getHospitalName() {
        return hospitalName;
    }
    public void setHospitalName(String hospitalName) {
        this.hospitalName = hospitalName;
    }
    public String getNum() {
        return num;
    }
    public void setNum(String num) {
        this.num = num;
    }
    public String getContactsName() {
        return contactsName;
    }
    public void setContactsName(String contactsName) {
        this.contactsName = contactsName;
    }
    public String getContactsMobile() {
        return contactsMobile;
    }
    public void setContactsMobile(String contactsMobile) {
        this.contactsMobile = contactsMobile;
    }
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
}

+ 6 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/iot/IotRequestMapping.java

@ -183,6 +183,12 @@ public class IotRequestMapping {
        public static final String getDeviceInventoryLog = "getDeviceInventoryLog";
        public static final String getDeviceInventoryLogDetail = "getDeviceInventoryLogDetail";
        //设备调拨
        public static final String getDeviceTransfersList = "getDeviceTransfersList";
        public static final String createDeviceTransfers = "createDeviceTransfers";
        public static final String deleteDeviceTransfers = "deleteDeviceTransfers";
        public static final String updateTransfersStatusById = "updateTransfersStatusById";
        public static final String isSnExist = "isSnExist";
        public static final String isSimExist = "isSimExist";
        public static final String updSim = "updSim";

+ 9 - 1
svr/svr-iot/src/main/java/com/yihu/iot/controller/device/IotDeviceController.java

@ -173,6 +173,14 @@ public class IotDeviceController extends EnvelopRestEndpoint {
                                                           @RequestParam(value = "purcharseId", required = false) String purcharseId,
                                                              @ApiParam(name = "isBinding", value = "是否绑定(1已绑定,2未绑定)", defaultValue = "")
                                                           @RequestParam(value = "isBinding", required = false) Integer isBinding,
                                                                           @ApiParam(name = "productId", value = "产品id")
                                                                               @RequestParam(value = "productId", required = false) String productId,
                                                                           @ApiParam(name = "name", value = "设备名称")
                                                                               @RequestParam(value = "name", required = false) String name,
                                                                           @ApiParam(name = "categoryCode", value = "设备类型标识")
                                                                               @RequestParam(value = "categoryCode", required = false) String categoryCode,
                                                                           @ApiParam(name = "manufacturerId", value = "供应厂商id")
                                                                               @RequestParam(value = "manufacturerId", required = false) String manufacturerId,
                                                              @ApiParam(name = "page", value = "第几页", defaultValue = "")
                                                           @RequestParam(value = "page", required = false) Integer page,
                                                              @ApiParam(name = "size", value = "每页记录数", defaultValue = "")
@ -185,7 +193,7 @@ public class IotDeviceController extends EnvelopRestEndpoint {
                size = 10;
            }
            if(isBinding==null){
                return iotDeviceService.queryPage(sn, hospital, orderId, purcharseId, page, size);
                return iotDeviceService.queryPage(sn, hospital, orderId, purcharseId, productId, name, categoryCode, manufacturerId, page, size);
            }else {
                return iotDeviceService.queryPage(sn, hospital, orderId, purcharseId, isBinding, page, size);
            }

+ 1 - 1
svr/svr-iot/src/main/java/com/yihu/iot/controller/device/IotDeviceInventoryController.java

@ -82,7 +82,7 @@ public class IotDeviceInventoryController extends EnvelopRestEndpoint {
                                                                                              @RequestParam(value = "id", required = true) String id) {
        try {
            IotDeviceInventoryLogVO deviceInventoryLogVO = deviceInventoryService.getDeviceInventoryLogDetail(id);
            return MixEnvelop.getSuccess(IotRequestMapping.Device.message_success_updateInventory, deviceInventoryLogVO);
            return MixEnvelop.getSuccess(IotRequestMapping.Common.message_success_find, deviceInventoryLogVO);
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());

+ 84 - 0
svr/svr-iot/src/main/java/com/yihu/iot/controller/device/IotDeviceTransfersController.java

@ -0,0 +1,84 @@
package com.yihu.iot.controller.device;
import com.yihu.iot.service.device.IotDeviceTransfersService;
import com.yihu.jw.entity.iot.device.IotDeviceTransfersDO;
import com.yihu.jw.restmodel.iot.device.IotDeviceVO;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.iot.IotRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
 * @author humingfen on 2020.4.29
 */
@RestController
@RequestMapping(IotRequestMapping.Common.device)
@Api(tags = "设备调拨管理相关操作", description = "设备调拨管理相关操作")
public class IotDeviceTransfersController extends EnvelopRestEndpoint {
    @Autowired
    private IotDeviceTransfersService deviceTransfersService;
    @GetMapping(value = IotRequestMapping.Device.getDeviceTransfersList)
    @ApiOperation(value = "获取设备调拨申请列表", notes = "获取设备调拨申请列表")
    public MixEnvelop<IotDeviceTransfersDO, IotDeviceTransfersDO> getDeviceTransfersList(@ApiParam(name = "name", value = "设备名称")
                                                                                         @RequestParam(value = "name", required = false) String name,
                                                                                         @ApiParam(name = "categoryCode", value = "设备类型标识")
                                                                                         @RequestParam(value = "categoryCode", required = false) String categoryCode,
                                                                                         @ApiParam(name = "page", value = "第几页", defaultValue = "1")
                                                                                         @RequestParam(value = "page", required = false) Integer page,
                                                                                         @ApiParam(name = "pageSize", value = "每页记录数")
                                                                                         @RequestParam(value = "pageSize", required = false) Integer pageSize) {
        try {
            return deviceTransfersService.getDeviceTransfersList(name, categoryCode, page, pageSize);
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
    @PostMapping(value = IotRequestMapping.Device.createDeviceTransfers)
    @ApiOperation(value = "新增编辑设备调拨申请记录", notes = "新增编辑设备调拨申请记录")
    public MixEnvelop<IotDeviceTransfersDO, IotDeviceTransfersDO> createDeviceTransfers(@ApiParam(name = "jsonData", value = "设备调拨申请json", defaultValue = "")
                                                                                        @RequestParam(value = "jsonData", required = true) String jsonData) {
        try {
            IotDeviceTransfersDO deviceTransfersDO = deviceTransfersService.createDeviceTransfers(jsonData);
            return MixEnvelop.getSuccess(IotRequestMapping.Common.message_success_update, deviceTransfersDO);
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
    @PostMapping(value = IotRequestMapping.Device.deleteDeviceTransfers)
    @ApiOperation(value = "删除设备调拨申请记录", notes = "删除编辑设备调拨申请记录")
    public MixEnvelop<IotDeviceTransfersDO, IotDeviceTransfersDO> deleteDeviceTransfers(@ApiParam(name = "id", value = "设备调拨申请记录id")
                                                                                        @RequestParam(value = "id", required = true) String id) {
        try {
            deviceTransfersService.deleteDeviceTransfers(id);
            return MixEnvelop.getSuccess(IotRequestMapping.Common.message_success_delete);
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
    @PostMapping(value = IotRequestMapping.Device.updateTransfersStatusById)
    @ApiOperation(value = "根据id更新设备调拨申请记录状态", notes = "根据id更新设备调拨申请记录状态")
    public MixEnvelop<IotDeviceTransfersDO, IotDeviceTransfersDO> updateTransfersStatusById(@ApiParam(name = "id", value = "设备调拨申请记录id")
                                                                                            @RequestParam(value = "id", required = true) String id,
                                                                                            @ApiParam(name = "status", value = "设备调拨状态(-1已拒绝 0待调拨 1已调拨)")
                                                                                            @RequestParam(value = "status", required = true) Integer status) {
        try {
            IotDeviceTransfersDO deviceTransfersDO = deviceTransfersService.updateTransfersStatusById(id, status);
            return MixEnvelop.getSuccess(IotRequestMapping.Common.message_success_update, deviceTransfersDO);
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
}

+ 8 - 0
svr/svr-iot/src/main/java/com/yihu/iot/dao/device/IotDeviceTransfersDao.java

@ -0,0 +1,8 @@
package com.yihu.iot.dao.device;
import com.yihu.jw.entity.iot.device.IotDeviceTransfersDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
public interface IotDeviceTransfersDao extends PagingAndSortingRepository<IotDeviceTransfersDO, String>, JpaSpecificationExecutor<IotDeviceTransfersDO> {
}

+ 21 - 2
svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotDeviceService.java

@ -184,11 +184,14 @@ public class IotDeviceService extends BaseJpaService<IotDeviceDO,IotDeviceDao> {
     * @param hospital
     * @param orderId
     * @param purcharseId
     * @param name
     * @param categoryCode
     * @param manufacturerId
     * @param page
     * @param size
     * @return
     */
    public MixEnvelop<IotDeviceVO, IotDeviceVO> queryPage(String sn, String hospital, String orderId, String purcharseId, Integer page, Integer size) throws Exception{
    public MixEnvelop<IotDeviceVO, IotDeviceVO> queryPage(String sn, String hospital, String orderId, String purcharseId, String productId, String name, String categoryCode, String manufacturerId, Integer page, Integer size) throws Exception{
        String filters = "del=1;";
        String semicolon = "";
        if(StringUtils.isNotBlank(orderId)){
@ -204,7 +207,23 @@ public class IotDeviceService extends BaseJpaService<IotDeviceDO,IotDeviceDao> {
            semicolon = ";";
        }
        if(StringUtils.isNotBlank(sn)){
            filters += semicolon + "deviceSn?"+sn+" g1;name?"+sn+" g1";
            filters += semicolon + "deviceSn?"+sn+" g1;simNo?" + sn + " g1";
            semicolon = ";";
        }
        if(StringUtils.isNotBlank(productId)){
            filters += semicolon +"productId="+productId;
            semicolon = ";";
        }
        if(StringUtils.isNotBlank(name)){
            filters += semicolon + "name?"+name+"";
            semicolon = ";";
        }
        if(StringUtils.isNotBlank(categoryCode)){
            filters += semicolon +"categoryCode="+categoryCode;
            semicolon = ";";
        }
        if(StringUtils.isNotBlank(manufacturerId)){
            filters += semicolon +"manufacturerId="+manufacturerId;
            semicolon = ";";
        }
        String sorts = "-updateTime";

+ 103 - 0
svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotDeviceTransfersService.java

@ -0,0 +1,103 @@
package com.yihu.iot.service.device;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.iot.dao.device.IotDeviceTransfersDao;
import com.yihu.jw.entity.iot.device.IotDeviceTransfersDO;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.rm.iot.IotRequestMapping;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.Date;
import java.util.List;
import static com.yihu.jw.util.common.BeanUtils.getNullPropertyNames;
@Service
public class IotDeviceTransfersService extends BaseJpaService<IotDeviceTransfersDO, IotDeviceTransfersDao> {
    @Autowired
    private JdbcTemplate jdbcTempalte;
    @Autowired
    private ObjectMapper objectMapper;
    @Autowired
    private IotDeviceTransfersDao deviceTransfersDao;
    /**
     * 获取调拨申请列表
     *
     * @param name
     * @param categoryCode
     * @param page
     * @param pageSize
     * @return
     */
    public MixEnvelop<IotDeviceTransfersDO, IotDeviceTransfersDO> getDeviceTransfersList(String name, String categoryCode, Integer page, Integer pageSize) {
        String sql = "SELECT * FROM `iot_device_transfers` t where t.`status` != -1 ";
        if (StringUtils.isNotBlank(name)) {
            sql += "and t.product_name like '%" + name + "%' ";
        }
        if (StringUtils.isNotBlank(categoryCode)) {
            sql += "and t.category_code = '" + categoryCode + "' ";
        }
        sql += "ORDER BY t.update_time desc ";
        //判断是否需要分页
        if (page != null && pageSize != null) {
            Long count = Long.valueOf(jdbcTempalte.queryForList(sql).size());
            sql += "limit " + (page - 1) * pageSize + "," + pageSize;
            List<IotDeviceTransfersDO> deviceTransfersDOList = jdbcTempalte.query(sql, new BeanPropertyRowMapper<>(IotDeviceTransfersDO.class));
            return MixEnvelop.getSuccessListWithPage(IotRequestMapping.Common.message_success_find, deviceTransfersDOList, page, pageSize, count);
        } else {
            List<IotDeviceTransfersDO> deviceTransfersDOList = jdbcTempalte.query(sql, new BeanPropertyRowMapper<>(IotDeviceTransfersDO.class));
            return MixEnvelop.getSuccessList(IotRequestMapping.Common.message_success_find, deviceTransfersDOList);
        }
    }
    public IotDeviceTransfersDO createDeviceTransfers(String jsonData) {
        IotDeviceTransfersDO deviceTransfersDO = new IotDeviceTransfersDO();
        try {
            deviceTransfersDO = objectMapper.readValue(jsonData, IotDeviceTransfersDO.class);
        } catch (IOException e) {
            e.printStackTrace();
        }
        //判断新增或者编辑
        if (StringUtils.isBlank(deviceTransfersDO.getId())) {
            deviceTransfersDO.setSaasId(getCode());
            deviceTransfersDO.setStatus(0);
            deviceTransfersDO.setCreateTime(new Date());
            deviceTransfersDO.setUpdateTime(new Date());
            deviceTransfersDao.save(deviceTransfersDO);
            return deviceTransfersDO;
        }else {
            IotDeviceTransfersDO oldDeviceTransfers = deviceTransfersDao.findOne(deviceTransfersDO.getId());
            BeanUtils.copyProperties(deviceTransfersDO, oldDeviceTransfers, getNullPropertyNames(deviceTransfersDO));
            oldDeviceTransfers.setUpdateTime(new Date());
            deviceTransfersDao.save(oldDeviceTransfers);
            return oldDeviceTransfers;
        }
    }
    public void deleteDeviceTransfers(String id) {
        deviceTransfersDao.delete(id);
    }
    /**
     * 根据申请记录id更新调拨状态
     *
     * @param id
     * @param status
     * @return
     */
    public IotDeviceTransfersDO updateTransfersStatusById(String id, Integer status) {
        IotDeviceTransfersDO deviceTransfersDO = deviceTransfersDao.findOne(id);
        deviceTransfersDO.setStatus(status);
        deviceTransfersDao.save(deviceTransfersDO);
        return deviceTransfersDO;
    }
}