Browse Source

Merge branch 'medicare' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

chenjiasheng 3 years ago
parent
commit
6b52449de8

+ 36 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/DrugDO.java

@ -0,0 +1,36 @@
package com.yihu.jw.entity.a1entity;
import java.io.Serializable;
public class DrugDO implements Serializable {
    /**
     * 状态
     */
    private String drugId;
    /**
     * 名称
     */
    private Integer qty;
    public String getDrugId() {
        return drugId;
    }
    public void setDrugId(String drugId) {
        this.drugId = drugId;
    }
    public Integer getQty() {
        return qty;
    }
    public void setQty(Integer qty) {
        this.qty = qty;
    }
}

+ 106 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/MediicinecabinetInventory.java

@ -0,0 +1,106 @@
package com.yihu.jw.entity.a1entity;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
@Entity
@Table(name="t_mediicinecabinet_inventory")
public class MediicinecabinetInventory extends UuidIdentityEntityWithOperator implements Serializable {
    /**
     * 设备id
     */
    private String idDevice;
    /**
     * sku
     */
    private String sku;
    /**
     * state
     */
    private String state;
    /**
     * num
     */
    private String num;
    /**
     * num
     */
    private Date longtime;
    /**
     * 药品编号
     */
    private String barcode;
    /**
     * 层
     */
    private String layerNo;
    /**
     * 列
     */
    private String wayerNo;
    /**
     * 数量
     */
    private String qty;
    public MediicinecabinetInventory() {
    }
    
    public String getIdDevice() {
        return idDevice;
    }
    public void setIdDevice(String idDevice) {
        this.idDevice = idDevice;
    }
    public String getSku() {
        return sku;
    }
    public void setSku(String sku) {
        this.sku = sku;
    }
    public String getState() {
        return state;
    }
    public void setState(String state) {
        this.state = state;
    }
    public String getNum() {
        return num;
    }
    public void setNum(String num) {
        this.num = num;
    }
    public Date getLongtime() {
        return longtime;
    }
    public void setLongtime(Date longtime) {
        this.longtime = longtime;
    }
}

+ 53 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/Mediicinedevice.java

@ -139,6 +139,27 @@ public class Mediicinedevice extends UuidIdentityEntityWithOperator implements S
     */
    private String status;
    /**
     * 货道数
     */
    private String aisles;
    /**
     * 容量
     */
    private String capacity;
    /**
     * 缺货比例
     */
    private String ratio;
    /**
     * 货道容量,数据库默认5
     */
    private String cargoCapacity;
    public Mediicinedevice() {
    }
@ -343,4 +364,36 @@ public class Mediicinedevice extends UuidIdentityEntityWithOperator implements S
    public void setStatus(String status) {
        this.status = status;
    }
    public String getAisles() {
        return aisles;
    }
    public void setAisles(String aisles) {
        this.aisles = aisles;
    }
    public String getCapacity() {
        return capacity;
    }
    public void setCapacity(String capacity) {
        this.capacity = capacity;
    }
    public String getRatio() {
        return ratio;
    }
    public void setRatio(String ratio) {
        this.ratio = ratio;
    }
    public String getCargoCapacity() {
        return cargoCapacity;
    }
    public void setCargoCapacity(String cargoCapacity) {
        this.cargoCapacity = cargoCapacity;
    }
}

+ 53 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/Mediicinestockupdetail.java

@ -67,6 +67,27 @@ public class Mediicinestockupdetail extends UuidIdentityEntityWithOperator imple
     */
    private String productPic;
    /**
     * 药品名称
     */
    private String drugName;
    /**
     * 缺货数
     */
    private String outofstock;
    /**
     * 申领数
     */
    private String claim;
    /**
     * 审核出库数
     */
    private String warehouses;
    public Mediicinestockupdetail() {
    }
@ -158,4 +179,36 @@ public class Mediicinestockupdetail extends UuidIdentityEntityWithOperator imple
    public void setProductPic(String productPic) {
        this.productPic = productPic;
    }
    public String getDrugName() {
        return drugName;
    }
    public void setDrugName(String drugName) {
        this.drugName = drugName;
    }
    public String getOutofstock() {
        return outofstock;
    }
    public void setOutofstock(String outofstock) {
        this.outofstock = outofstock;
    }
    public String getClaim() {
        return claim;
    }
    public void setClaim(String claim) {
        this.claim = claim;
    }
    public String getWarehouses() {
        return warehouses;
    }
    public void setWarehouses(String warehouses) {
        this.warehouses = warehouses;
    }
}

+ 37 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/UpDO.java

@ -0,0 +1,37 @@
package com.yihu.jw.entity.a1entity;
import java.io.Serializable;
import java.util.List;
public class UpDO implements Serializable {
    /**
     * 状态
     */
    private String deviceId;
    /**
     * 名称
     */
    private List<DrugDO> drugs;
    public String getDeviceId() {
        return deviceId;
    }
    public void setDeviceId(String deviceId) {
        this.deviceId = deviceId;
    }
    public List<DrugDO> getDrugs() {
        return drugs;
    }
    public void setDrugs(List<DrugDO> drugs) {
        this.drugs = drugs;
    }
}

+ 3 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseRequestMapping.java

@ -50,6 +50,7 @@ public class BaseRequestMapping {
        public static final String PREFIX  = "/baseUp";
        public static final String DOCINFO  = "/docInfo";
        public static final String CREATE  = "/create";
        public static final String createUp  = "/createUp";
        public static final String getUpDetailListById  = "/getUpDetailListById";
        public static final String getRecordDetailListById  = "/getRecordDetailListById";
        public static final String getOrgListByTown  = "/getOrgListByTown";
@ -136,6 +137,8 @@ public class BaseRequestMapping {
        public static final String DOCINFO  = "/docInfo";
        public static final String CREATE  = "/create";
        public static final String getDeviceListByUserId  = "/getDeviceListByUserId";
        public static final String getOutOfStockDeviceList  = "/getOutOfStockDeviceList";
        public static final String getDetialOutOfStock  = "/getDetialOutOfStock";
        public static final String countall  = "/countall";
        public static final String countOnline  = "/countOnline";
        public static final String getDevicesByMoreContent  = "/getDevicesByMoreContent";

+ 27 - 3
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/a4endpoint/MedicineDeviceEndpoint.java

@ -150,7 +150,7 @@ public class MedicineDeviceEndpoint extends EnvelopRestEndpoint {
        if (jsonObject.getString("response").equalsIgnoreCase(ConstantUtils.FAIL)) {
            return failed(jsonObject.getString("msg"));
        }
        return success(jsonObject.getString("msg"));
        return success(jsonObject.getJSONObject("msg"));
    }
@ -162,7 +162,7 @@ public class MedicineDeviceEndpoint extends EnvelopRestEndpoint {
        if (jsonObject.getString("response").equalsIgnoreCase(ConstantUtils.FAIL)) {
            return failed(jsonObject.getString("msg"));
        }
        return success(jsonObject.getString("msg"));
        return success(jsonObject.getJSONObject("msg"));
    }
@ -181,7 +181,7 @@ public class MedicineDeviceEndpoint extends EnvelopRestEndpoint {
        if (jsonObject.getString("response").equalsIgnoreCase(ConstantUtils.FAIL)) {
            return failed(jsonObject.getString("msg"));
        }
        return success(jsonObject.getString("msg"));
        return success(jsonObject.getJSONObject("msg"));
    }
//    @ApiOperation(value = "获取在线设备总数量", notes="参数未添加通过数据区域查询获取")
@ -190,4 +190,28 @@ public class MedicineDeviceEndpoint extends EnvelopRestEndpoint {
//        return deviceService.countOnline();
//    }
    @GetMapping(value = BaseRequestMapping.BaseDevice.getOutOfStockDeviceList)
    @ApiOperation(value = "获取缺货设备列表" , notes="获取缺货设备列表")
    public Envelop getOutOfStockDeviceList( @ApiParam(name = "replenishEr", value = "补货员")
                                                @RequestParam(value = "replenishEr", required = false) String replenishEr,
                                            @ApiParam(name = "address", value = "地址")
                                            @RequestParam(value = "address", required = false) String address) throws Exception {
        JSONObject jsonObject = deviceService.getOutOfStockDeviceList(replenishEr, address);
//        List<Mediicinedevice> list = JSONObject.parseArray(jsonObject.getJSONArray("msg").toJSONString(), Mediicinedevice.class);
        return success(jsonObject.getJSONArray("msg"));
    }
    @PostMapping(value = BaseRequestMapping.BaseDevice.getDetialOutOfStock)
    @ApiOperation(value = "获取缺货信息")
    public Envelop getDetialOutOfStock(
            @ApiParam(name = "ids", value = "id串,中间用,分隔", required = true)
            @RequestParam(value = "ids") String ids) throws Exception {
        JSONObject jsonObject = deviceService.getDetialOutOfStock(ids);
        return success(jsonObject.getJSONArray("msg"));
    }
}

+ 4 - 4
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/a4endpoint/MedicineOrderEndpoint.java

@ -50,7 +50,7 @@ public class MedicineOrderEndpoint extends EnvelopRestEndpoint {
        if (jsonObject.getString("response").equalsIgnoreCase(ConstantUtils.FAIL)) {
            return failed(jsonObject.getString("msg"));
        }
        return success(jsonObject.getString("msg"));
        return success(jsonObject.getJSONObject("msg"));
    }
    @PostMapping(value = BaseRequestMapping.BaseOrder.DELETE)
@ -120,7 +120,7 @@ public class MedicineOrderEndpoint extends EnvelopRestEndpoint {
            if (jsonObject.getString("response").equalsIgnoreCase(ConstantUtils.FAIL)) {
                return failed(jsonObject.getString("msg"));
            }
            return success(jsonObject.getString("msg"));
            return success(jsonObject.getJSONObject("msg"));
    }
@ -146,7 +146,7 @@ public class MedicineOrderEndpoint extends EnvelopRestEndpoint {
        if (jsonObject.getString("response").equalsIgnoreCase(ConstantUtils.FAIL)) {
            return failed(jsonObject.getString("msg"));
        }
        return success(jsonObject.getString("msg"));
        return success(jsonObject.getJSONObject("msg"));
    }
@ -171,7 +171,7 @@ public class MedicineOrderEndpoint extends EnvelopRestEndpoint {
        if (jsonObject.getString("response").equalsIgnoreCase(ConstantUtils.FAIL)) {
            return failed(jsonObject.getString("msg"));
        }
        return success(jsonObject.getString("msg"));
        return success(jsonObject.getJSONObject("msg"));
    }
//    @ApiOperation(value = "获时间段内的取药品销售数量合计", notes="获取处方订单信息")

+ 15 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/a4endpoint/MedicineUpEndpoint.java

@ -36,6 +36,21 @@ public class MedicineUpEndpoint extends EnvelopRestEndpoint {
    @Value("${wechat.id}")
    private String wechatId;
    @PostMapping(value = BaseRequestMapping.BaseUp.createUp)
    @ApiOperation(value = "生成备货单信息")
    public Envelop createUp(
            @ApiParam(name = "jsonData", value = "Json数据", required = true)
            @RequestParam String jsonData) throws Exception {
        JSONObject jsonObject = null;
        String str = stockupService.createDetailUp(jsonData);
        jsonObject = JSONObject.parseObject(str);
        if (jsonObject.getString("response").equalsIgnoreCase(ConstantUtils.FAIL)) {
            return failed(jsonObject.getString("msg"));
        }
        return success(jsonObject.getString("response"));
    }
    @PostMapping(value = BaseRequestMapping.BaseUp.CREATE)
    @ApiOperation(value = "新增备货单信息")
    public Envelop create(

+ 15 - 4
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineOrderService.java

@ -1,6 +1,7 @@
package com.yihu.jw.base.service.a3service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.base.dao.a2dao.*;
@ -250,12 +251,14 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
    public  JSONObject sumamount(String beg, String end) throws Exception {
        JSONObject result = new JSONObject();
        String sql = "select sum(t.amount) from t_mediicine_order t where t.prescribe_time >= '" + beg + "' and t.prescribe_time <= '" + end + "'";
        int count = jdbcTemplate.queryForObject(sql,Integer.class);
        float count = jdbcTemplate.queryForObject(sql,Float.class);
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("count", count);
        Date startDate = DateUtil.strToDateShort(beg);
        Date endDate = DateUtil.strToDateShort(end);
        result.put("response",ConstantUtils.SUCCESS);
//        result.put("msg", orderDao.getsumamount(startDate, endDate));
        result.put("msg", count);
        result.put("msg", jsonObject);
        return result;
    }
    //时间范围内的订单数量
@ -268,10 +271,15 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
     */
    public JSONObject getcount(String beg, String end) {
        JSONObject result = new JSONObject();
        String sql = "select count(1) from t_mediicine_order t where t.prescribe_time >= '" + beg + "' and t.prescribe_time <= '" + end + "'";
        int count = jdbcTemplate.queryForObject(sql,Integer.class);
        Date startDate = DateUtil.strToDateShort(beg);
        Date endDate = DateUtil.strToDateShort(end);
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("count", count);
        result.put("response",ConstantUtils.SUCCESS);
        result.put("msg", orderDao.getsumamount(startDate, endDate));
//        result.put("msg", orderDao.getcount(startDate, endDate));
        result.put("msg", jsonObject);
        return result;
    }
@ -280,11 +288,14 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
        JSONObject result = new JSONObject();
        String sql = "select sum(t.quantity) from t_mediicine_order_detail t where t.prescribe_time >= '" + beg + "' and t.prescribe_time <= '" + end + "'";
        int count = jdbcTemplate.queryForObject(sql,Integer.class);
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("quantity", count);
        Date startDate = DateUtil.strToDateShort(beg);
        Date endDate = DateUtil.strToDateShort(end);
        result.put("response",ConstantUtils.SUCCESS);
//        result.put("msg", orderDao.getsumamount(startDate, endDate));
        result.put("msg", count);
        result.put("msg", jsonObject);
        return result;
    }

+ 66 - 7
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineStockUpService.java

@ -4,15 +4,10 @@ package com.yihu.jw.base.service.a3service;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.base.dao.a2dao.MediicinestockoutDao;
import com.yihu.jw.base.dao.a2dao.MediicinestockupDao;
import com.yihu.jw.base.dao.a2dao.MediicinestockupdetailDao;
import com.yihu.jw.base.dao.a2dao.*;
import com.yihu.jw.base.util.ConstantUtils;
import com.yihu.jw.base.util.JavaBeanUtils;
import com.yihu.jw.entity.a1entity.Mediicinestockout;
import com.yihu.jw.entity.a1entity.Mediicinestockrecorddetail;
import com.yihu.jw.entity.a1entity.Mediicinestockup;
import com.yihu.jw.entity.a1entity.Mediicinestockupdetail;
import com.yihu.jw.entity.a1entity.*;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.beans.factory.annotation.Autowired;
@ -21,6 +16,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
@ -36,12 +32,75 @@ public class MedicineStockUpService extends BaseJpaService<Mediicinestockup, Med
    @Autowired
    private MediicinestockupdetailDao updetailDao;
    @Autowired
    private MediicineDeviceDao deviceDao;
    @Autowired
    private MediicinedrugsDao drugsDao;
    @Autowired
    private ObjectMapper objectMapper;
    @Autowired
    private HibenateUtils hibenateUtils;
    /**
     * 生成备货单
     * @param jsonData
     * @return
     */
    @Transactional(rollbackFor = Exception.class)
    public String createDetailUp(String jsonData) {
        JSONObject result = new JSONObject();
        if(StringUtils.isEmpty(jsonData)){
            result.put("msg","jsonData is null");
            result.put("response", ConstantUtils.FAIL);
            return result.toJSONString();
        }
        JSONObject up = JSONObject.parseObject(jsonData);
        List<UpDO> list = JSONObject.parseArray(up.getJSONArray("list").toJSONString(), UpDO.class);
        if (list == null || list.size() == 0) {
            result.put("msg", "list is empty!");
            result.put("response", ConstantUtils.FAIL);
            return result.toJSONString();
        }
        for (UpDO upDO : list) {
            Mediicinedevice mediicinedevice = deviceDao.findOne(upDO.getDeviceId());
            Mediicinestockup mediicinestockup = new Mediicinestockup();
            //社区
            mediicinestockup.setCommunity(mediicinedevice.getBelongCommunity());
            mediicinestockup.setDocTime(new Date());
            mediicinestockup.setDocNum(String.valueOf(System.currentTimeMillis()));
            mediicinestockup.setReplenishEqu(upDO.getDeviceId());
            mediicinestockup.setState("1");
            mediicinestockup.setReplenishInventory(String.valueOf(upDO.getDrugs().stream().mapToInt(DrugDO::getQty).sum()));
            mediicinestockup.setReplenishEr("123");
            upDao.save(mediicinestockup);
            for (DrugDO drug : upDO.getDrugs()) {
                Mediicinedrugs mediicinedrugs = drugsDao.findOne(drug.getDrugId());
                Mediicinestockupdetail mediicinestockupdetail = new Mediicinestockupdetail();
                mediicinestockupdetail.setIdstockup(mediicinestockup.getId());
                mediicinestockupdetail.setDrugCode(mediicinedrugs.getDrugCode());
                mediicinestockupdetail.setDrugName(mediicinedrugs.getDrugName());
                mediicinestockupdetail.setProductPic(mediicinedrugs.getPic());
                mediicinestockupdetail.setOutofstock(drug.getQty().toString());
                mediicinestockupdetail.setWarehouses(drug.getQty().toString());
                mediicinestockupdetail.setQuantity(drug.getQty().toString());
                updetailDao.save(mediicinestockupdetail);
            }
        }
        result.put("response",ConstantUtils.SUCCESS);
        result.put("msg",ConstantUtils.SUCCESS);
        return result.toJSONString();
    }
    /**
     * 新增备货单
     * @param jsonData

+ 215 - 6
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicinedeviceService.java

@ -10,6 +10,7 @@ import com.yihu.jw.base.util.ConstantUtils;
import com.yihu.jw.base.util.JavaBeanUtils;
import com.yihu.jw.entity.a1entity.Mediicinedevice;
import com.yihu.jw.entity.a1entity.Mediicinedrugs;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.mysql.query.BaseJpaService;
@ -176,7 +177,11 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
                "    t.create_user_name as createUserName,\n" +
                "    t.update_time as updateTime,\n" +
                "    t.update_user as updateUser,\n" +
                "    t.update_user_name as updateUserName\n" +
                "    t.update_user_name as updateUserName,\n" +
                "    t.aisles as aisles,\n" +
                "    t.capacity as capacity,\n" +
                "    t.ratio as ratio,\n" +
                "    t.cargo_capacity as cargoCapacity\n" +
                "FROM\n" +
                "    t_mediicine_device AS t where 1=1\n";
@ -255,7 +260,11 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
                "    t.create_user_name as createUserName,\n" +
                "    t.update_time as updateTime,\n" +
                "    t.update_user as updateUser,\n" +
                "    t.update_user_name as updateUserName\n" +
                "    t.update_user_name as updateUserName,\n" +
                "    t.aisles as aisles,\n" +
                "    t.capacity as capacity,\n" +
                "    t.ratio as ratio,\n" +
                "    t.cargo_capacity as cargoCapacity\n" +
                "FROM\n" +
                "    t_mediicine_device AS t where 1=1\n";
@ -363,7 +372,11 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
                "    t.create_user_name as createUserName,\n" +
                "    t.update_time as updateTime,\n" +
                "    t.update_user as updateUser,\n" +
                "    t.update_user_name as updateUserName\n" +
                "    t.update_user_name as updateUserName,\n" +
                "    t.aisles as aisles,\n" +
                "    t.capacity as capacity,\n" +
                "    t.ratio as ratio,\n" +
                "    t.cargo_capacity as cargoCapacity\n" +
                "FROM\n" +
                "    t_mediicine_device AS t where\n";
@ -425,10 +438,13 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
     */
    public  JSONObject countAll() throws Exception {
        JSONObject result = new JSONObject();
        JSONObject jsonObject = new JSONObject();
        String sql = "select count(1) from t_mediicine_device a";
        int count = jdbcTemplate.queryForObject(sql,Integer.class);
        jsonObject.put("count", count);
        result.put("response",ConstantUtils.SUCCESS);
        result.put("msg", count);
        result.put("msg", jsonObject);
        return result;
    }
@ -445,9 +461,10 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
     */
    public JSONObject countOnline() throws Exception{
        JSONObject result = new JSONObject();
        String sql = "select count(1) from t_mediicine_device a where a.status = 1";
        int count = jdbcTemplate.queryForObject(sql,Integer.class);
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("count",deviceDao.countOnline());
        jsonObject.put("count",count);
        result.put("response",ConstantUtils.SUCCESS);
        result.put("msg",jsonObject);
        return result;
@ -498,4 +515,196 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
//        result.put(ResponseContant.resultMsg,"success");
        return result;
    }
    /**
     * 获取缺货设备列表
     * @param replenishEr
     * @param address
     * @return
     * @throws Exception
     */
    public JSONObject getOutOfStockDeviceList(String replenishEr, String address) throws Exception {
        JSONObject result = new JSONObject();
        String sql = "SELECT\n" +
                "\tifnull(sum(tmi.qty), 0) AS totalQty,\n" +
                "\tifnull(\n" +
                "\t\tt.aisles - count(tmi.id),\n" +
                "\t\tt.aisles\n" +
                "\t) AS unusedAisles,\n" +
                "\tifnull(\n" +
                "\t\tt.capacity - sum(tmi.qty),\n" +
                "\t\tt.capacity\n" +
                "\t) AS unuserdCapacity,\n" +
                "\tifnull((t.capacity - sum(tmi.qty)) / t.capacity, 0) AS idleRate,\n" +
                "\tt.id as id,\n" +
                "\tt.belong_community as belongCommunity,\n" +
                "\tt.community as community,\n" +
                "\tt.del as del,\n" +
                "\tt.delivery_address as deliveryAddress,\n" +
                "\tt.detail_address as detailAddress,\n" +
                "\tt.equ_area as equArea,\n" +
                "\tt.equ_class as equClass,\n" +
                "\tt.equ_info as equInfo,\n" +
                "\tt.equ_name as equName,\n" +
                "\tt.equ_num as equNum,\n" +
                "\tt.equ_type as equType,\n" +
                "\tt.fbelong_community as fbelongCommunity,\n" +
                "\tt.machine_code as machineCode,\n" +
                "\tt.network_status as networkStatus,\n" +
                "\tt.poweron_test as poweronTest,\n" +
                "\tt.reg_date as regDate,\n" +
                "\tt.sale_status as saleStatus,\n" +
                "\tt.signalintensity as signalintensity,\n" +
                "\tt.upgr_adesit as upgrAdesit,\n" +
                "\tt.`status` as `status`,\n" +
                "\tt.card_status as cardStatus,\n" +
                "\tt.operator as operator,\n" +
                "\tt.pack_age as packAge,\n" +
                "\tt.usage_flow as usageFlow,\n" +
                "\tt.flow as flow,\n" +
                "\tt.create_time as createTime,\n" +
                "\tt.create_user as createUser,\n" +
                "\tt.create_user_name as createUserName,\n" +
                "\tt.update_time as updateTime,\n" +
                "\tt.update_user as updateUser,\n" +
                "\tt.update_user_name as updateUserName,\n" +
                "\tt.aisles as aisles,\n" +
                "\tt.capacity as capacity,\n" +
                "\tt.ratio as ratio,\n" +
                "\tt.cargo_capacity as cargoCapacity\n" +
                "FROM\n" +
                "\tt_mediicine_device t\n" +
                "LEFT JOIN t_mediicinecabinet_inventory tmi ON t.id = tmi.id_device\n" +
                "WHERE 1=1\n" ;
        if (!StringUtils.isEmpty(replenishEr)) {
            sql +=" AND t.id in (select device_id from t_mediicine_device_user tmdu left join t_mediicine_user tmu on tmdu.user_id = tmu.id where tmdu.del = 1 and CONCAT(tmu.name,tmu.account) like '%" + replenishEr + "%')\n";
        }
        if (!StringUtils.isEmpty(address)) {
            sql += " AND CONCAT(t.detail_address,t.delivery_address) like '%" + address + "%'\n";
        }
       sql += "GROUP BY\n" +
            "\tt.id\n" +
            "HAVING\n" +
            "\tsum(tmi.qty) < t.capacity * t.ratio\n" +
            "OR sum(tmi.qty) IS NULL";
        List<Map<String,Object>> list=null;
        list = hibenateUtils.createSQLQuery(sql);
        result.put("response", ConstantUtils.SUCCESS);
        result.put("msg",list);
        return result;
    }
    public JSONObject getDetialOutOfStock(String ids) throws Exception {
        JSONObject result = new JSONObject();
        String sql = "SELECT\n" +
                "    t.id AS id,\n" +
                "    t.belong_community AS belongCommunity,\n" +
                "    t.community AS community,\n" +
                "    t.del AS del,\n" +
                "    t.delivery_address AS deliveryAddress,\n" +
                "    t.detail_address AS detailAddress,\n" +
                "    t.equ_area AS equArea,\n" +
                "    t.equ_class AS equClass,\n" +
                "    t.equ_info AS equInfo,\n" +
                "    t.equ_name AS equName,\n" +
                "    t.equ_num AS equNum,\n" +
                "    t.equ_type AS equType,\n" +
                "    t.fbelong_community AS fbelongCommunity,\n" +
                "    t.machine_code AS machineCode,\n" +
                "    t.network_status AS networkStatus,\n" +
                "    t.poweron_test AS poweronTest,\n" +
                "    t.reg_date AS regDate,\n" +
                "    t.sale_status AS saleStatus,\n" +
                "    t.signalintensity AS signalintensity,\n" +
                "    t.upgr_adesit AS upgrAdesit,\n" +
                "    t.`status` AS `status`,\n" +
                "    t.card_status AS cardStatus,\n" +
                "    t.operator AS operator,\n" +
                "    t.pack_age AS packAge,\n" +
                "    t.usage_flow AS usageFlow,\n" +
                "    t.flow AS flow,\n" +
                "    t.create_time AS createTime,\n" +
                "    t.create_user AS createUser,\n" +
                "    t.create_user_name AS createUserName,\n" +
                "    t.update_time AS updateTime,\n" +
                "    t.update_user AS updateUser,\n" +
                "    t.update_user_name AS updateUserName,\n" +
                "    t.aisles AS aisles,\n" +
                "    t.capacity AS capacity,\n" +
                "    t.ratio AS ratio,\n" +
                "    t.cargo_capacity AS cargoCapacity\n" +
                "FROM\n" +
                "    t_mediicine_device AS t WHERE id in(" + ids + ",'')";
        String sencordSql = "SELECT\n" +
                "\ttmi.layer_no AS layerNo,\n" +
                "\ttmi.wayer_no AS wayerNo,\n" +
                "\ttmi.qty AS qty,\n" +
                "\ttmd.id AS id,\n" +
                "\ttmd.approval_num AS approvalNum,\n" +
                "\ttmd.barcode AS barcode,\n" +
                "\ttmd.brand AS brand,\n" +
                "\ttmd.dos_form AS dosForm,\n" +
                "\ttmd.state AS state,\n" +
                "\ttmd.drug_bar_code AS drugBarCode,\n" +
                "\ttmd.drug_class AS drugClass,\n" +
                "\ttmd.drug_class_code AS drugClassCode,\n" +
                "\ttmd.drug_code AS drugCode,\n" +
                "\ttmd.drug_name AS drugName,\n" +
                "\ttmd.drug_name_alies AS drugNameAlies,\n" +
                "\ttmd.drug_short_code AS drugShortCode,\n" +
                "\ttmd.drug_type_code AS drugTypeCode,\n" +
                "\ttmd.earlywarningcate AS earlywarningcate,\n" +
                "\ttmd.inventory AS inventory,\n" +
                "\ttmd.manufactor AS manufactor,\n" +
                "\ttmd.med_cabinet AS medCabinet,\n" +
                "\ttmd.pic AS pic,\n" +
                "\ttmd.price AS price,\n" +
                "\ttmd.sale_volume AS saleVolume,\n" +
                "\ttmd.self_code AS selfCode,\n" +
                "\ttmd.specif AS specif,\n" +
                "\ttmd.unit AS unit,\n" +
                "\ttmd.create_time AS createTime,\n" +
                "\ttmd.create_user AS createUser,\n" +
                "\ttmd.create_user_name AS createUserName,\n" +
                "\ttmd.update_time AS updateTime,\n" +
                "\ttmd.update_user AS updateUser,\n" +
                "\ttmd.update_user_name AS updateUserName,\n" +
                "\ttmd.drug_sku AS drugSku,\n" +
                "\ttmd.drug_num AS drugNum,\n" +
                "\ttmd.use_num AS useNum,\n" +
                "\ttmd.use_way AS useWay,\n" +
                "\ttmd.use_rate AS useRate,\n" +
                "\ttmd.use_dose AS useDose,\n" +
                "\ttmd.use_way_add AS useWayAdd,\n" +
                "\ttmd.org_code AS orgCode,\n" +
                "\ttmd.org_name AS orgName\n" +
                "FROM\n" +
                "\tt_mediicinecabinet_inventory tmi\n" +
                "LEFT JOIN t_mediicine_drugs tmd ON tmi.barcode = tmd.id";
        List<Map<String,Object>> list=null;
        list = hibenateUtils.createSQLQuery(sql);
        for (Map<String, Object> stringObjectMap : list) {
            sencordSql += " where tmi.id_device = " + stringObjectMap.get("id");
            List<Map<String, Object>> childList = null;
            childList = hibenateUtils.createSQLQuery(sencordSql);
            if (childList != null) {
                for (Map<String, Object> objectMap : childList) {
                    objectMap.put("upInventory", Integer.parseInt(stringObjectMap.get("cargoCapacity").toString()) - Integer.parseInt(objectMap.get("qty").toString()));
                }
                stringObjectMap.put("children", childList);
            }
        }
        result.put("response", ConstantUtils.SUCCESS);
        result.put("msg",list);
        return result;
    }
}