wangzhinan преди 3 години
родител
ревизия
17445ae9f2

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

@ -83,6 +83,7 @@ public class BaseRequestMapping {
        public static final String getUpDetailListById  = "/getUpDetailListById";
        public static final String getUpDetailById  = "/getUpDetailById";
        public static final String getRecordDetailListById  = "/getRecordDetailListById";
        public static final String getUpDetailByUserIdAndDeviceId  = "/getUpDetailByUserIdAndDeviceId";
        public static final String getOrgListByTown  = "/getOrgListByTown";
        public static final String enableOrDis  = "/enableOrDis";
        public static final String docFullInfo  = "/docFullInfo";
@ -201,6 +202,7 @@ public class BaseRequestMapping {
        public static final String getOutOfStockDeviceListByUserId  = "/getOutOfStockDeviceListByUserId";
        public static final String getDevicesDeliveryList  = "/getDevicesDeliveryList";
        public static final String getDetialOutOfStock  = "/getDetialOutOfStock";
        public static final String getOutOfStockInfoByDeviceWithPage  = "/getOutOfStockInfoByDeviceWithPage";
        public static final String getDevInventory  = "/getDevInventory";
        public static final String getDevInventoryByUserId  = "/getDevInventoryByUserId";
        public static final String countall  = "/countall";

+ 37 - 18
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/a4endpoint/MedicineDeviceEndpoint.java

@ -20,6 +20,7 @@ import com.yihu.jw.rm.base.BaseRequestMapping;
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.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
@ -606,6 +607,20 @@ public class MedicineDeviceEndpoint extends EnvelopRestEndpoint {
    }
    @GetMapping(value = BaseRequestMapping.BaseDevice.getOutOfStockInfoByDeviceWithPage)
    @ApiOperation(value = "通过设备id获取设备的缺货信息")
    public PageEnvelop getOutOfStockInfoByDeviceWithPage(
            @ApiParam(name = "deviceId", value = "设备id")
            @RequestParam(value = "deviceId") String deviceId,
            @ApiParam(name = "page", value = "页码", required = true, defaultValue = "1")
            @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "分页大小", required = true, defaultValue = "15")
            @RequestParam(value = "size") int size) throws Exception {
        JSONObject result = deviceService.getOutOfStockInfoByDeviceWithPage(deviceId, page,size);
        return success(result.getJSONArray("msg"),result.getInteger("count"),page,size);
    }
    @GetMapping(value = BaseRequestMapping.BaseDevice.getDevInventory)
    @ApiOperation(value = "获取设备库存")
    public Envelop getDevInventory(
@ -751,24 +766,28 @@ public class MedicineDeviceEndpoint extends EnvelopRestEndpoint {
    }
    /**
     * 设备端系统更新
     * @param equNum
     * @param type
     * @param mess
     * @return
     * @throws Exception
     */
    @PostMapping(value = BaseRequestMapping.BaseDevice.SYSTEMUPDATE)
    @ApiOperation(value = "设备端系统更新")
    public Envelop systemUpdate(
            @ApiParam(name = "equNum", value = "设备编码", required = false)
            @RequestParam(value = "equNum", required = false) String equNum,
            @ApiParam(name = "type", value = "事件类型", required = true)
            @RequestParam(value = "type", required = true) String type,
            @ApiParam(name = "mess", value = "事件说明", required = true)
            @RequestParam(value = "mess", required = true) String mess) throws Exception {
        return success(medicineServive.systemUpdate(equNum,type,mess));
    @PostMapping(value = BaseRequestMapping.BaseDevice.setWarrayRule)
    @ApiOperation(value = "设置设备药品库存报警规则")
    public Envelop setWarrayRule(
            @ApiParam(name = "isAll", value = "是否全部设备", required = true)
            @RequestParam(value = "isAll") Boolean isAll,
            @ApiParam(name = "equNums", value = "设备编号串,多个用英文逗号隔开")
            @RequestParam(value = "equNums", required = false) String equNums,
            @ApiParam(name = "rules", value = "规则json")
            @RequestParam(value = "rules", required = false ) String jsonRules,
            @ApiParam(name = "userId", value = "用户id", required = true)
            @RequestParam(value = "userId") String userId) throws Exception {
        if (!isAll && StringUtils.isEmpty(equNums)) {
            return failed("未选择设备");
        }
        String str = deviceService.setMedicineWarrayRule(isAll, equNums, jsonRules, userId);
        JSONObject jsonObject = JSONObject.parseObject(str);
        if (jsonObject.getString("response").equalsIgnoreCase(ConstantUtils.FAIL)) {
            return failed(jsonObject.getString("msg"));
        }
        return success(jsonObject.getString("response"));
    }
}

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

@ -213,4 +213,19 @@ public class MedicineUpEndpoint extends EnvelopRestEndpoint {
    }
    //补货记录-----------------------------
    @GetMapping(value = BaseRequestMapping.BaseUp.getUpDetailByUserIdAndDeviceId)
    @ApiOperation(value = "根据用户和设备获取备货单详情" , notes="根据用户和设备获取备货单详情")
    public ListEnvelop<Mediicinestockupdetail> getUpDetailByUserIdAndDeviceId  (
            @ApiParam(name = "userId", value = "用户id", required = true)
            @RequestParam(value = "userId") String userId,
            @ApiParam(name = "deviceId", value = "设备id", required = true)
            @RequestParam(value = "deviceId") String deviceId) throws Exception {
        JSONObject jsonObject = stockupService.getUpDetailByUserIdAndDeviceId(deviceId, userId);
        List<Mediicinestockupdetail> list = JSONObject.parseArray(jsonObject.getJSONArray("msg").toJSONString(), Mediicinestockupdetail.class);
        return success(list, Mediicinestockupdetail.class);
    }
}

+ 52 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineOrderService.java

@ -112,6 +112,9 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
    @Autowired
    private WlyyHospitalSysDictDao hospitalSysDictDao;
    @Autowired
    private MedicineWarrayRuleDao medicineWarrayRuleDao;
    /**
     * 新增药品信息
     *
@ -868,6 +871,8 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
            mediicineorder.setShippingTime(new Date());
            mediicineorder.setShippingType(shippingType);
            orderDao.save(mediicineorder);
            //更新设备缺货状态
            updateDeviceState(medicineShipmentLog);
        }
        //查询更新订单信息start
@ -893,6 +898,51 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
        return result;
    }
    /**
     * 更新设备缺货信息
     * @param medicineShipmentLog
     */
    public void updateDeviceState(MedicineShipmentLog medicineShipmentLog) {
        //包含原来药品信息
//        MediicinecabinetInventory inventory =  inventoryDao.findOne(cargoId);
        List<Map<String, Object>> collect = inventoryDao.selectsomethingBysomeConditionWithEquNum(medicineShipmentLog.getDeviceId(), new String[]{"1", "21"});
        Iterator<Map<String, Object>> it = collect.iterator();
        while (it.hasNext()) {
            Map<String, Object> stringObjectMap = it.next();
            if (String.valueOf(stringObjectMap.get("drugCode")).equals(medicineShipmentLog.getDrugCode()) &&
                        String.valueOf(stringObjectMap.get("orgCode")).equals(medicineShipmentLog.getOrgCode())) {
                stringObjectMap.put("qty", String.valueOf(Integer.parseInt(stringObjectMap.get("qty") + "") - 1));
            }
        }
        Mediicinedevice mediicinedevice = deviceDao.findMediicinedeviceByEquNum(medicineShipmentLog.getDeviceId());
        //该设备库存预警规则
        List<MedicineWarrayRule> rules = medicineWarrayRuleDao.findMedicineWarrayRulesByEquNumAndDel(medicineShipmentLog.getDeviceId(), 1);
        //不缺货
        mediicinedevice.setStatus("1");
        quit:for (MedicineWarrayRule rule : rules) {
            for (Map<String, Object> stringObjectMap : collect) {
                Integer ratedInventory = Integer.parseInt(stringObjectMap.get("ratedInventory") + "");
                if (ratedInventory > rule.getLower() && ratedInventory < rule.getUpper()) {
                    Integer tempQty = Integer.parseInt(stringObjectMap.get("qty") + "");
                    if ("%".equals(rule.getMatchUnit())) {
                        Integer matchValue = (int) Math.ceil((rule.getUpper() * rule.getMatchValue()) / 100.0);
                        if (tempQty <= matchValue) {
                            mediicinedevice.setStatus("0");
                            break quit;
                        }
                    }
                    if ("件".equals(rule.getMatchUnit())) {
                        if (tempQty <= rule.getMatchValue()) {
                            mediicinedevice.setStatus("0");
                            break quit;
                        }
                    }
                }
            }
        }
        deviceDao.save(mediicinedevice);
    }
    public JSONObject checkOrderComplete(String orderId) {
@ -930,6 +980,8 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
        result.put("msg", "订单未完成,请联系管理员!");
        return result;
    }
    //=================================调用i健康接口=================================//
    public String getEhcCardInfo(String ehealthCode) throws Exception {

+ 20 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineStockUpService.java

@ -521,4 +521,24 @@ public class MedicineStockUpService extends BaseJpaService<Mediicinestockup, Med
        return result;
    }
    /**
     * 根据用户和设备获取备货单详情
     * @param deviceId
     * @param userId
     * @return
     * @throws Exception
     */
    public JSONObject getUpDetailByUserIdAndDeviceId(String deviceId, String userId) throws Exception {
        JSONObject result = new JSONObject();
        //
        List<String> upIds = upDao.selectUpIdsByReplenishErAndReplenishEquAndState(userId, deviceId, "1");
        List<Mediicinestockupdetail> list = updetailDao.findMediicinestockupdetailsByIdstockupInOrderByIdstockupAscCreateTimeDesc(upIds);
        result.put("msg", JavaBeanUtils.getInstance().mapListJson(list));
        return result;
    }
}

+ 294 - 61
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicinedeviceService.java

@ -2921,6 +2921,100 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
    }
    /**
     * 通过设备id获取设备的缺货信息
     * @param deviceId
     * @param page
     * @param size
     * @return
     * @throws Exception
     */
    public JSONObject getOutOfStockInfoByDeviceWithPage(String deviceId, int page, int size) throws Exception {
        JSONObject result = new JSONObject();
        String sql = "";
        {
            sql = "SELECT\n" +
                    "tmd.id AS id,\n" +
                    "tmd.approval_num AS approvalNum,\n" +
                    "tmd.barcode AS barcode,\n" +
                    "tmd.brand AS brand,\n" +
                    "tmd.dos_form AS dosForm,\n" +
                    "tmd.state AS state,\n" +
                    "tmd.drug_bar_code AS drugBarCode,\n" +
                    "tmd.drug_class AS drugClass,\n" +
                    "tmd.drug_class_code AS drugClassCode,\n" +
                    "tmd.drug_code AS drugCode,\n" +
                    "tmd.drug_name AS drugName,\n" +
                    "tmd.drug_name_alies AS drugNameAlies,\n" +
                    "tmd.drug_short_code AS drugShortCode,\n" +
                    "tmd.drug_type_code AS drugTypeCode,\n" +
                    "tmd.earlywarningcate AS earlywarningcate,\n" +
                    "tmd.inventory AS inventory,\n" +
                    "tmd.manufactor AS manufactor,\n" +
                    "tmd.med_cabinet AS medCabinet,\n" +
                    "tmd.pic AS pic,\n" +
                    "tmd.price AS price,\n" +
                    "tmd.sale_volume AS saleVolume,\n" +
                    "tmd.self_code AS selfCode,\n" +
                    "tmd.specif AS specif,\n" +
                    "tmd.unit AS unit,\n" +
                    "tmd.create_time AS createTime,\n" +
                    "tmd.create_user AS createUser,\n" +
                    "tmd.create_user_name AS createUserName,\n" +
                    "tmd.update_time AS updateTime,\n" +
                    "tmd.update_user AS updateUser,\n" +
                    "tmd.update_user_name AS updateUserName,\n" +
                    "tmd.drug_sku AS drugSku,\n" +
                    "tmd.drug_num AS drugNum,\n" +
                    "tmd.use_num AS useNum,\n" +
                    "tmd.use_way AS useWay,\n" +
                    "tmd.use_rate AS useRate,\n" +
                    "tmd.use_dose AS useDose,\n" +
                    "tmd.use_way_add AS useWayAdd,\n" +
                    "tmd.org_code AS orgCode,\n" +
                    "tmd.org_name AS orgName,\n" +
                    "tmd.quantity_unit AS quantityUnit,\n" +
                    "tmd.pack_unit AS packUnit,\n" +
                    "tmd.spell_code AS spellCode,\n" +
                    "\tsum(tmi.qty) AS qty,\n" +
                    "\t(\n" +
                    "\t\ttmi.rated_inventory - CAST(tmi.qty AS UNSIGNED)\n" +
                    "\t) AS daibukucun\n" +
                    "FROM\n" +
                    "\tt_mediicinecabinet_inventory tmi LEFT JOIN t_mediicine_drugs tmd ON tmi.drug_id = tmd.id\n" +
                    "WHERE" +
                    "\ttmi.id_device = '" + deviceId + "'\n" +
                    "AND CAST(tmi.qty as UNSIGNED) < tmi.rated_inventory\n" +
                    "AND tmi.drug_code IS NOT NULL\n" +
                    "AND tmi.org_code IS NOT NULL\n" +
                    "AND (tmi.state = 1 OR tmi.state = 21)\n" +
                    "ORDER BY\n" +
                    "\ttmi.drug_code,\n" +
                    "\ttmi.org_code";
        }
        List<Map<String, Object>> list = null;
        list = hibenateUtils.createSQLQuery(sql,page,size);
        String countSql = "SELECT\n" +
                "COUNT(DISTINCT(id))" +
                "FROM\n" +
                "\tt_mediicinecabinet_inventory\n" +
                "WHERE" +
                "\tid_device = '" + deviceId + "'\n" +
                "AND CAST(qty as UNSIGNED) < rated_inventory\n" +
                "AND drug_code IS NOT NULL\n" +
                "AND org_code IS NOT NULL\n" +
                "AND (state = 1 OR state = 21)\n" +
                "ORDER BY\n" +
                "\tdrug_code,\n" +
                "\torg_code";
        Logger.getAnonymousLogger().info("finalCountSql="+countSql);
        int count = jdbcTemplate.queryForObject(countSql,Integer.class);
        result.put("count", count);
        result.put("msg", JavaBeanUtils.getInstance().mapListJson(list));
        return result;
    }
    /**
     * 获取设备库存
     * @param belongCommunity
@ -3504,7 +3598,7 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
     * @return
     * @throws Exception
     */
    @Transactional(rollbackFor = Exception.class)
//    @Transactional(rollbackFor = Exception.class)
    public MediicinecabinetInventory updateMediicinecabineInventoryById(String id,String drugId,String qty,String userId) throws Exception {
        MediicinecabinetInventory inventory = inventoryDao.findOne(id);
        if (inventory==null){
@ -3555,7 +3649,12 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
            cargoCapacityChanged = true;
            inventory.setCargoCapacity(qty);
        }
        //设置额定库存
        inventory.setRatedInventory(Integer.parseInt(qty));
        inventoryDao.save(inventory);
        //更改设备缺货状态
        updateDeviceState(inventory.getId());
        //重算设备容量
        if (cargoCapacityChanged) {
@ -3570,6 +3669,7 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
            mediicinedevice.setCapacity(String.valueOf(jdbcTemplate.queryForObject(tempSql, Integer.class)));
            deviceDao.save(mediicinedevice);
        }
        return inventory;
    }
@ -3582,6 +3682,95 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
        return  inventoryDao.findOne(id);
    }
    /**
     * 更新设备缺货状态,cargoId,货道id
     * @param cargoId
     */
    public void updateDeviceState(String cargoId) {
        //包含原来药品信息
        MediicinecabinetInventory inventory =  inventoryDao.findOne(cargoId);
//        List<MediicinecabinetInventory> list = inventoryDao.findMediicinecabinetInventoriesByIdDeviceAndStateInAndDrugCodeNotNullAndAndOrgCodeNotNull(inventory.getIdDevice(), new String[]{"1", "21"});
        List<Map<String, Object>> collect = inventoryDao.selectsomethingBysomeCondition(inventory.getIdDevice(), new String[]{"1", "21"});
//        //药品变更
//        if (drugChanged) {
//            //变更的目标药品
//            Mediicinedrugs mediicinedrugs = mediicinedrugsDao.findOne(drugId);
//            Iterator<Map<String, Object>> it = collect.iterator();
//            //剔除旧药品的数量
//            while (it.hasNext()) {
//                Map<String, Object> stringObjectMap = it.next();
//                if (String.valueOf(stringObjectMap.get("drugCode")).equals(inventory.getDrugCode()) &&
//                        String.valueOf(stringObjectMap.get("orgCode")).equals(inventory.getOrgCode())) {
//                    //说明只有一个货道是该种药品
//                    if (Integer.parseInt(stringObjectMap.get("qty") + "") - Integer.parseInt(inventory.getQty()) == 0) {
//                        it.remove();
//                    } else {
//                        stringObjectMap.put("qty", String.valueOf(Integer.parseInt(stringObjectMap.get("qty") + "") - Integer.parseInt(inventory.getQty())));
//                    }
//
//                }
//            }
//            //
//            Map<String, Object> tempMap = new HashMap<>();
//            tempMap.put("drugCode", mediicinedrugs.getDrugCode());
//            tempMap.put("orgCode", mediicinedrugs.getOrgCode());
//            tempMap.put("qty", qty);
//            tempMap.put("ratedInventory", Integer.parseInt(qty));
//            collect.add(tempMap);
//        } else {
//            //数量变更
//            if (qtyChanged) {
//                Iterator<Map<String, Object>> it = collect.iterator();
//                while (it.hasNext()) {
//                    Map<String, Object> stringObjectMap = it.next();
//                    if (String.valueOf(stringObjectMap.get("drugCode")).equals(inventory.getDrugCode()) &&
//                            String.valueOf(stringObjectMap.get("orgCode")).equals(inventory.getOrgCode())) {
//                        //下架
//                        if ("0".equals(qty)) {
//                            it.remove();
//                        }
//
//                        if (Integer.parseInt(qty) > Integer.parseInt(inventory.getQty())) {
//                            stringObjectMap.put("qty", qty);
//                            stringObjectMap.put("ratedInventory", Integer.parseInt(qty));
//                        } else if (Integer.parseInt(qty) < Integer.parseInt(inventory.getQty())) {
//                            it.remove();
//                        }
//
//                    }
//                }
//            }
//        }
        Mediicinedevice mediicinedevice = deviceDao.findOne(inventory.getIdDevice());
        //该设备库存预警规则
        List<MedicineWarrayRule> rules = medicineWarrayRuleDao.findMedicineWarrayRulesByEquNumAndDel(inventory.getEquNum(), 1);
        //不缺货
        mediicinedevice.setStatus("1");
        quit:for (MedicineWarrayRule rule : rules) {
            for (Map<String, Object> stringObjectMap : collect) {
                Integer ratedInventory = Integer.parseInt(stringObjectMap.get("ratedInventory") + "");
                if (ratedInventory > rule.getLower() && ratedInventory < rule.getUpper()) {
                    Integer tempQty = Integer.parseInt(stringObjectMap.get("qty") + "");
                    if ("%".equals(rule.getMatchUnit())) {
                        Integer matchValue = (int) Math.ceil((rule.getUpper() * rule.getMatchValue()) / 100.0);
                        if (tempQty <= matchValue) {
                            mediicinedevice.setStatus("0");
                            break quit;
                        }
                    }
                    if ("件".equals(rule.getMatchUnit())) {
                        if (tempQty <= rule.getMatchValue()) {
                            mediicinedevice.setStatus("0");
                            break quit;
                        }
                    }
                }
            }
        }
        deviceDao.save(mediicinedevice);
    }
    /**
     * 矫正库存\ 更新容量 \下架商品
@ -3620,18 +3809,24 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
                inventory.setCargoCapacity(qty);
            }
            inventory.setQty(qty);
            //设置额定库存
            inventory.setRatedInventory(Integer.parseInt(qty));
        }
        //更改货道容量-start
        if (org.apache.commons.lang3.StringUtils.isNoneBlank(cargoCapacity)){
            if (Integer.parseInt(cargoCapacity) > 99) {
                throw new RuntimeException("货道容量最多99个,如超过请放置另一格");
                throw new Exception("货道容量最多99个,如超过请放置另一格");
            }
            inventory.setCargoCapacity(cargoCapacity);
            cargoCapacityChanged = true;
        }
        //更改货道容量-end
        if (org.apache.commons.lang3.StringUtils.isNoneBlank(status)){
            //下架时,清空库存
            if ("0".equals(status)) {
                inventory.setQty("0");
                //设置额定库存
                inventory.setRatedInventory(0);
            }
            inventory.setShelfStatus(status);
            MedicineDrugInventoryRecord inventoryRecord = new MedicineDrugInventoryRecord();
@ -3651,8 +3846,10 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
        }
        inventory.setUpdateTime(new Date());
        inventoryDao.save(inventory);
        //更改设备缺货状态
        updateDeviceState(inventory.getId());
        //重算设备容量
        if (cargoCapacityChanged) {
            //重算设备容量
            Mediicinedevice mediicinedevice = deviceDao.findOne(inventory.getIdDevice());
            String tempSql = "SELECT\n" +
                    "\tsum(t.cargo_capacity)\n" +
@ -4044,26 +4241,18 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
     * 设置设备药品库存预警规则,rule1,规则1,rule2,规则2
     * @param isAll
     * @param equNums
     * @param rule1
     * @param rule2
     * @param jsonRules
     * @return
     */
    @Transactional(rollbackFor = Exception.class)
    public String setMedicineWarrayRule(Boolean isAll,String equNums, String rule1, String rule2, String userId){
    public String setMedicineWarrayRule(Boolean isAll,String equNums, String jsonRules, String userId){
        JSONObject result = new JSONObject();
        if (!StringUtils.isEmpty(rule1)) {
            if (rule1.split(",").length != 4 ) {
                result.put("msg","rule1 doesn't right");
                result.put("response", ConstantUtils.FAIL);
                return result.toJSONString();
            }
        }
        if (!StringUtils.isEmpty(rule2)) {
            if (rule2.split(",").length != 4 ) {
                result.put("msg","rule2 doesn't right");
                result.put("response", ConstantUtils.FAIL);
                return result.toJSONString();
            }
        JSONObject jsonObject = JSONObject.parseObject(jsonRules);
        JSONArray ruleArray = jsonObject.getJSONArray("rules");
        if (ruleArray.size() == 0) {
            result.put("msg","rule is empty");
            result.put("response", ConstantUtils.FAIL);
            return result.toJSONString();
        }
        UserDO user = userDao.findOne(userId);
@ -4151,35 +4340,56 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
            }
            List<Mediicinedevice> deviceList = deviceDao.findMediicinedevicesByBelongCommunityInAndDel(belongCommunitys.split(","), "1");
            for (Mediicinedevice mediicinedevice : deviceList) {
                if (!StringUtils.isEmpty(rule1)) {
                    MedicineWarrayRule medicineWarrayRule = new MedicineWarrayRule();
                    medicineWarrayRule.setDel(1);
                    medicineWarrayRule.setEquNum(mediicinedevice.getEquNum());
                    medicineWarrayRule.setLower(Integer.parseInt(rule1.split(",")[0]));
                    medicineWarrayRule.setUpper(Integer.parseInt(rule1.split(",")[1]));
                    medicineWarrayRule.setMatchValue(Integer.parseInt(rule1.split(",")[2]));
                    medicineWarrayRule.setMatchUnit(rule1.split(",")[3]);
                    medicineWarrayRule.setUpdateUser(userId);
                    medicineWarrayRule.setUpdateTime(new Date());
                    medicineWarrayRule.setCreateTime(new Date());
                    medicineWarrayRule.setCreateUser(userId);
                    medicineWarrayRuleDao.save(medicineWarrayRule);
                }
                if (!StringUtils.isEmpty(rule2)) {
                for (Object obj : ruleArray) {
                    RuleDO ruleDO = null;
                    try {
                        ruleDO = objectMapper.readValue(obj.toString(), RuleDO.class);
                    } catch (IOException e) {
                        result.put("msg", "convert org jsonObject to RuleDO failed," + e.getCause());
                        result.put("response", ConstantUtils.FAIL);
                        return result.toJSONString();
                    }
                    MedicineWarrayRule medicineWarrayRule = new MedicineWarrayRule();
                    medicineWarrayRule.setDel(1);
                    medicineWarrayRule.setEquNum(mediicinedevice.getEquNum());
                    medicineWarrayRule.setLower(Integer.parseInt(rule2.split(",")[0]));
                    medicineWarrayRule.setUpper(Integer.parseInt(rule2.split(",")[1]));
                    medicineWarrayRule.setMatchValue(Integer.parseInt(rule2.split(",")[2]));
                    medicineWarrayRule.setMatchUnit(rule2.split(",")[3]);
                    medicineWarrayRule.setLower(ruleDO.getLower());
                    medicineWarrayRule.setUpper(ruleDO.getUpper());
                    medicineWarrayRule.setMatchValue(ruleDO.getMatchValue());
                    medicineWarrayRule.setMatchUnit(ruleDO.getMatchUnit());
                    medicineWarrayRule.setUpdateUser(userId);
                    medicineWarrayRule.setUpdateTime(new Date());
                    medicineWarrayRule.setCreateTime(new Date());
                    medicineWarrayRule.setCreateUser(userId);
                    medicineWarrayRuleDao.save(medicineWarrayRule);
                }
//                if (!StringUtils.isEmpty(rule1)) {
//                    MedicineWarrayRule medicineWarrayRule = new MedicineWarrayRule();
//                    medicineWarrayRule.setDel(1);
//                    medicineWarrayRule.setEquNum(mediicinedevice.getEquNum());
//                    medicineWarrayRule.setLower(Integer.parseInt(rule1.split(",")[0]));
//                    medicineWarrayRule.setUpper(Integer.parseInt(rule1.split(",")[1]));
//                    medicineWarrayRule.setMatchValue(Integer.parseInt(rule1.split(",")[2]));
//                    medicineWarrayRule.setMatchUnit(rule1.split(",")[3]);
//                    medicineWarrayRule.setUpdateUser(userId);
//                    medicineWarrayRule.setUpdateTime(new Date());
//                    medicineWarrayRule.setCreateTime(new Date());
//                    medicineWarrayRule.setCreateUser(userId);
//                    medicineWarrayRuleDao.save(medicineWarrayRule);
//                }
//                if (!StringUtils.isEmpty(rule2)) {
//                    MedicineWarrayRule medicineWarrayRule = new MedicineWarrayRule();
//                    medicineWarrayRule.setDel(1);
//                    medicineWarrayRule.setEquNum(mediicinedevice.getEquNum());
//                    medicineWarrayRule.setLower(Integer.parseInt(rule2.split(",")[0]));
//                    medicineWarrayRule.setUpper(Integer.parseInt(rule2.split(",")[1]));
//                    medicineWarrayRule.setMatchValue(Integer.parseInt(rule2.split(",")[2]));
//                    medicineWarrayRule.setMatchUnit(rule2.split(",")[3]);
//                    medicineWarrayRule.setUpdateUser(userId);
//                    medicineWarrayRule.setUpdateTime(new Date());
//                    medicineWarrayRule.setCreateTime(new Date());
//                    medicineWarrayRule.setCreateUser(userId);
//                    medicineWarrayRuleDao.save(medicineWarrayRule);
//                }
            }
            result.put("response", ConstantUtils.SUCCESS);
            result.put("msg", ConstantUtils.SUCCESS);
@ -4187,41 +4397,64 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
        }
        for (String equNum : equNums.split(",")) {
            if (!StringUtils.isEmpty(equNum)) {
                MedicineWarrayRule medicineWarrayRule = medicineWarrayRuleDao.findMedicineWarrayRuleByEquNumAndDel(equNum, 1);
                if (medicineWarrayRule != null) {
                List<MedicineWarrayRule> medicineWarrayRules = medicineWarrayRuleDao.findMedicineWarrayRulesByEquNumAndDel(equNum, 1);
                for (MedicineWarrayRule medicineWarrayRule : medicineWarrayRules) {
                    medicineWarrayRule.setDel(0);
                    medicineWarrayRule.setUpdateTime(new Date());
                    medicineWarrayRule.setUpdateUser(userId);
                    medicineWarrayRuleDao.save(medicineWarrayRule);
                }
                if (!StringUtils.isEmpty(rule1)) {
                    medicineWarrayRule = new MedicineWarrayRule();
                    medicineWarrayRule.setDel(1);
                    medicineWarrayRule.setEquNum(equNum);
                    medicineWarrayRule.setLower(Integer.parseInt(rule1.split(",")[0]));
                    medicineWarrayRule.setUpper(Integer.parseInt(rule1.split(",")[1]));
                    medicineWarrayRule.setMatchValue(Integer.parseInt(rule1.split(",")[2]));
                    medicineWarrayRule.setMatchUnit(rule1.split(",")[3]);
                    medicineWarrayRule.setUpdateUser(userId);
                    medicineWarrayRule.setUpdateTime(new Date());
                    medicineWarrayRule.setCreateTime(new Date());
                    medicineWarrayRule.setCreateUser(userId);
                    medicineWarrayRuleDao.save(medicineWarrayRule);
                }
                if (!StringUtils.isEmpty(rule2)) {
                    medicineWarrayRule = new MedicineWarrayRule();
                for (Object obj : ruleArray) {
                    RuleDO ruleDO = null;
                    try {
                        ruleDO = objectMapper.readValue(obj.toString(), RuleDO.class);
                    } catch (IOException e) {
                        result.put("msg", "convert org jsonObject to RuleDO failed," + e.getCause());
                        result.put("response", ConstantUtils.FAIL);
                        return result.toJSONString();
                    }
                    MedicineWarrayRule medicineWarrayRule = new MedicineWarrayRule();
                    medicineWarrayRule.setDel(1);
                    medicineWarrayRule.setEquNum(equNum);
                    medicineWarrayRule.setLower(Integer.parseInt(rule2.split(",")[0]));
                    medicineWarrayRule.setUpper(Integer.parseInt(rule2.split(",")[1]));
                    medicineWarrayRule.setMatchValue(Integer.parseInt(rule2.split(",")[2]));
                    medicineWarrayRule.setMatchUnit(rule2.split(",")[3]);
                    medicineWarrayRule.setLower(ruleDO.getLower());
                    medicineWarrayRule.setUpper(ruleDO.getUpper());
                    medicineWarrayRule.setMatchValue(ruleDO.getMatchValue());
                    medicineWarrayRule.setMatchUnit(ruleDO.getMatchUnit());
                    medicineWarrayRule.setUpdateUser(userId);
                    medicineWarrayRule.setUpdateTime(new Date());
                    medicineWarrayRule.setCreateTime(new Date());
                    medicineWarrayRule.setCreateUser(userId);
                    medicineWarrayRuleDao.save(medicineWarrayRule);
                }
//                if (!StringUtils.isEmpty(rule1)) {
//                    medicineWarrayRule = new MedicineWarrayRule();
//                    medicineWarrayRule.setDel(1);
//                    medicineWarrayRule.setEquNum(equNum);
//                    medicineWarrayRule.setLower(Integer.parseInt(rule1.split(",")[0]));
//                    medicineWarrayRule.setUpper(Integer.parseInt(rule1.split(",")[1]));
//                    medicineWarrayRule.setMatchValue(Integer.parseInt(rule1.split(",")[2]));
//                    medicineWarrayRule.setMatchUnit(rule1.split(",")[3]);
//                    medicineWarrayRule.setUpdateUser(userId);
//                    medicineWarrayRule.setUpdateTime(new Date());
//                    medicineWarrayRule.setCreateTime(new Date());
//                    medicineWarrayRule.setCreateUser(userId);
//                    medicineWarrayRuleDao.save(medicineWarrayRule);
//                }
//                if (!StringUtils.isEmpty(rule2)) {
//                    medicineWarrayRule = new MedicineWarrayRule();
//                    medicineWarrayRule.setDel(1);
//                    medicineWarrayRule.setEquNum(equNum);
//                    medicineWarrayRule.setLower(Integer.parseInt(rule2.split(",")[0]));
//                    medicineWarrayRule.setUpper(Integer.parseInt(rule2.split(",")[1]));
//                    medicineWarrayRule.setMatchValue(Integer.parseInt(rule2.split(",")[2]));
//                    medicineWarrayRule.setMatchUnit(rule2.split(",")[3]);
//                    medicineWarrayRule.setUpdateUser(userId);
//                    medicineWarrayRule.setUpdateTime(new Date());
//                    medicineWarrayRule.setCreateTime(new Date());
//                    medicineWarrayRule.setCreateUser(userId);
//                    medicineWarrayRuleDao.save(medicineWarrayRule);
//                }
            }
        }
        result.put("response", ConstantUtils.SUCCESS);