wangzhinan 3 سال پیش
والد
کامیت
951682064a

+ 2 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/a4endpoint/FundsManagementEndpoint.java

@ -41,7 +41,7 @@ public class FundsManagementEndpoint extends EnvelopRestEndpoint {
                                  HttpServletResponse response){
        MixEnvelop expressages = null;
        try {
            expressages = medicineOrderService.getSumAmount(belongCommunity,equNum,page,size);
            expressages = medicineOrderService.getSumAmount(belongCommunity,equNum,getUID(),page,size);
            List<Map<String, Object>> list = expressages.getDetailModelList();
            response.setContentType("octets/stream");
            response.setHeader("Content-Disposition", "attachment; filename=" + new String("pushDataList.xls".getBytes("utf-8"), "iso8859-1"));
@ -64,7 +64,7 @@ public class FundsManagementEndpoint extends EnvelopRestEndpoint {
                                      @RequestParam(value = "size",defaultValue = "15",required = false)int size){
        MixEnvelop expressages=null;
        try {
            expressages = medicineOrderService.getSumAmount(belongCommunity,equNum,page,size);
            expressages = medicineOrderService.getSumAmount(belongCommunity,equNum,getUID(),page,size);
            return success(expressages);
        } catch (Exception e) {
            return failedException(e);

+ 81 - 16
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineOrderService.java

@ -868,7 +868,6 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
    /**
     * 更新设备缺货信息
     * @param medicineShipmentLog
     */
    public void updateDeviceState(String cargoId, InventoryDO inventoryDO) {
        //包含原来药品信息
@ -2119,24 +2118,79 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
//        return MixEnvelop.getSuccessListWithPage2(BaseHospitalRequestMapping.Prescription.api_success,mapList);
//    }
    public MixEnvelop getSumAmount(String belongCommunity, String equNum, int page, int size) {
        List<Map<String,Object>> mapList=new ArrayList<>();
        page=(page-1)*size;
        List<Mediicinedevice> mediicinedevices = new ArrayList<>();
        if(org.apache.commons.lang3.StringUtils.isNoneBlank(belongCommunity)&& !org.apache.commons.lang3.StringUtils.isNoneBlank(equNum)){
            mediicinedevices= deviceDao.findDeviceByCommunity(page, size,belongCommunity);
        }else if(org.apache.commons.lang3.StringUtils.isNoneBlank(belongCommunity)&& org.apache.commons.lang3.StringUtils.isNoneBlank(equNum)){
            mediicinedevices= deviceDao.findDeviceByEquNum(page, size,equNum);
    public MixEnvelop getSumAmount(String belongCommunity, String equNum,String userId,int page, int size) throws Exception {
        UserDO user = userDao.findOne(userId);
        RoleDO role = roleDao.findOne(user.getRoleId());
        if (role==null){
            throw new Exception("角色为空!");
        }
        String areaCondition = "";
        //市管理员
        if ("saasAdmin".equals(role.getCode())) {
            areaCondition = "SELECT\n" +
                    "\t`code`\tas community\n" +
                    "FROM\n" +
                    "\tdm_hospital\n" +
                    "WHERE\n" +
                    "\tdel = 1";
        }
        //区域管理员
        if ("regionAdmin".equals(role.getCode())) {
            areaCondition = "SELECT\n" +
                    "\tdh.`code` AS community\n" +
                    "FROM\n" +
                    "\twlyy_user_area t\n" +
                    "LEFT JOIN dm_hospital dh ON t.town = dh.town\n" +
                    "WHERE\n" +
                    "\tt.user_id = '" + userId + "'\n" +
                    "AND t.del = 1\n" +
                    "AND dh.del = 1";
        }
        //社区管理员
        if ("communityAdmin".equals(role.getCode())) {
            areaCondition = "SELECT\n" +
                    "t.hospital AS community\n" +
                    "FROM\n" +
                    "wlyy_user_area AS t\n" +
                    "WHERE\n" +
                    "t.user_id = '" + userId + "'\n" +
                    "AND t.del = 1";
        }
        for (Mediicinedevice mediicinedevice : mediicinedevices) {
            Map<String, Object> map = new HashMap<>();
            map.put("community", mediicinedevice.getCommunity());
            map.put("equName", mediicinedevice.getEquNum() + (mediicinedevice.getEquName() == null ? "" : "/" + mediicinedevice.getEquName()));
        //社区管理员
        if ("replenisher".equals(role.getCode())) {
            areaCondition = "SELECT\n" +
                    "t.hospital AS community\n" +
                    "FROM\n" +
                    "wlyy_user_area AS t\n" +
                    "WHERE\n" +
                    "t.user_id = '" + userId + "'\n" +
                    "AND t.del = 1";
        }
        String sql = "select belong_community as \"belongCommunity\"," +
                "community as \"community\",id as \"id\",equ_name as \"equName\",equ_num as \"equNum\" from t_mediicine_device where 1=1  ";
        if (org.apache.commons.lang3.StringUtils.isNoneBlank(areaCondition)){
            sql += " and belong_community in("+areaCondition+") ";
        }
        if (org.apache.commons.lang3.StringUtils.isNoneBlank(belongCommunity)){
            sql += " and belong_community ='"+belongCommunity+"'  ";
        }
        if (org.apache.commons.lang3.StringUtils.isNoneBlank(equNum)){
            sql += " and equ_num = '%"+equNum+"%' ";
        }
        List<Map<String,Object>> mediicinedevices = hibenateUtils.createSQLQuery(sql,page,size);
        for (Map<String,Object> map : mediicinedevices) {
            map.put("equName",map.get("equNum").toString()+"/"+map.get("equName").toString());
            String oneSql = "SELECT SUM(t.amount) AS sumAmount,\n" +
                    "                COUNT(*) AS count,\n" +
                    "                t.shipping_equ AS equNum\n" +
                    "                FROM t_mediicine_order  t WHERE t.sell_state = 1 AND t.shipping_equ = '" + mediicinedevice.getEquNum() + "'";
                    "                FROM t_mediicine_order  t WHERE t.sell_state = 1 AND t.shipping_equ = '" + map.get("equNum").toString() + "'";
            List<Map<String,Object>> list = hibenateUtils.createSQLQuery(oneSql);
            for (Map<String,Object> oneMap:list){
                String count = oneMap.get("count")==null?"0":oneMap.get("count").toString();
@ -2147,7 +2201,6 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
                map.put("ordercount",count);
                map.put("sumAmount",m_price);
            }
            mapList.add(map);
        }
        String countSql = " select " +
                "     COUNT(DISTINCT (t.id)) as count " +
@ -2155,11 +2208,23 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
                "     t_mediicine_device as t " +
                "  where " +
                "  1=1   " ;
        if (org.apache.commons.lang3.StringUtils.isNoneBlank(areaCondition)){
            countSql += " and belong_community in("+areaCondition+") ";
        }
        if (org.apache.commons.lang3.StringUtils.isNoneBlank(belongCommunity)){
            countSql += " and belong_community ='"+belongCommunity+"'  ";
        }
        if (org.apache.commons.lang3.StringUtils.isNoneBlank(equNum)){
            countSql += " and equ_num = '%"+equNum+"%' ";
        }
        Logger.getAnonymousLogger().info("finalCountSql="+countSql);
        int decCount = jdbcTemplate.queryForObject(countSql,Integer.class);
        //总页数
        int total=decCount/size+(decCount%size>0?1:0);
        MixEnvelop mixEnvelop = MixEnvelop.getSuccessListWithPage2(BaseHospitalRequestMapping.Prescription.api_success,mapList);
        MixEnvelop mixEnvelop = MixEnvelop.getSuccessListWithPage2(BaseHospitalRequestMapping.Prescription.api_success,mediicinedevices);
        mixEnvelop.setTotalCount(decCount);
        mixEnvelop.setTotalPage(total);
        return mixEnvelop;

+ 30 - 7
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicinedeviceService.java

@ -5471,8 +5471,11 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
        String orderConditionSql = "";
        if ("replenisher".equals(role.getCode())) {
            deviceIds = mediicineDeviceUserDao.getdevicesbyuserid(userId, "1");
            conditionSql  = "AND ',"+ String.join(",", deviceIds) +",' LIKE CONCAT('%,',d.id,',%')\n";
            orderConditionSql  = "AND ',"+ String.join(",", deviceIds) +",' LIKE CONCAT('%,',d.shipping_equ,',%')\n";
            orderConditionSql  = " and d.belong_community IN(SELECT t.hospital AS community" +
                    "   FROM wlyy_user_area AS t WHERE t.user_id = '" + userId + "' AND t.del = 1) ";
            conditionSql  = " AND ',"+ String.join(",", deviceIds) +",' LIKE CONCAT('%,',d.id,',%')\n";
        } else {
            String belongCommunitys = "";
            String tempSql = "";
@ -5509,6 +5512,7 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
                            "t.user_id = '" + userId + "'\n" +
                            "AND t.del = 1";
                }
                List<Map<String, Object>> list = hibenateUtils.createSQLQuery(tempSql);
                for (Map<String, Object> stringObjectMap : list) {
                    if (stringObjectMap.get("community") != null && !StringUtils.isEmpty(stringObjectMap.get("community").toString())) {
@ -5526,7 +5530,7 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
            }
        }
        conditionSql += "AND d.belong_community IS NOT NULL\n";
        conditionSql += " AND d.belong_community IS NOT NULL\n";
        String areaCondition = "";
        if (level!=null){
            if(level==1){
@ -5600,8 +5604,9 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
        maintain.put("noOnlineTotal1WithUserId", noOnlineTotal1WithUserId);
        //温湿度预警数
        maintain.put("hcWaringTotalNum", hcWaringTotalNum);
        //未取药
        String noGetDrugSql = "SELECT COUNT(1) as \"count\" FROM t_mediicine_order d WHERE d.sell_state=0 \n" + orderConditionSql+areaCondition;
        String noGetDrugSql = "SELECT COUNT(1) as \"count\" FROM t_mediicine_order d WHERE d.sell_state=0 \n" +orderConditionSql+areaCondition;
        Map<String,Object> noGetDrugMap = jdbcTemplate.queryForMap(noGetDrugSql);
        Integer noGetDrugNum = 0;
        if (noGetDrugMap!=null){
@ -5637,7 +5642,13 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
        List<String> deviceIds = null;
        if ("replenisher".equals(role.getCode())) {
            deviceIds = mediicineDeviceUserDao.getdevicesbyuserid(userId, "1");
            condition  = "AND ',"+ String.join(",", deviceIds) +",' LIKE CONCAT('%,',o.shipping_equ,',%')\n";
            String ids  ="";
            for (int i=0;i<deviceIds.size();i++){
                Mediicinedevice mediicinedevice = deviceDao.findOne(deviceIds.get(i));
                ids +="'"+mediicinedevice.getEquNum()+"',";
            }
            ids = ids.substring(0,ids.length()-1);
            condition  = " AND o.shipping_equ IN ("+ids+")";
        } else {
            String belongCommunitys = "";
            String tempSql = "";
@ -5789,7 +5800,13 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
        List<String> deviceIds = null;
        if ("replenisher".equals(role.getCode())) {
            deviceIds = mediicineDeviceUserDao.getdevicesbyuserid(userId, "1");
            condition  = "AND ',"+ String.join(",", deviceIds) +",' LIKE CONCAT('%,',o.shipping_equ,',%')\n";
            String ids  ="";
            for (int i=0;i<deviceIds.size();i++){
                Mediicinedevice mediicinedevice = deviceDao.findOne(deviceIds.get(i));
                ids +="'"+mediicinedevice.getEquNum()+"',";
            }
            ids = ids.substring(0,ids.length()-1);
            condition  = " AND o.shipping_equ IN ("+ids+")";
        } else {
            String belongCommunitys = "";
            String tempSql = "";
@ -5907,7 +5924,13 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
        String oorderConditionSql = "";
        if ("replenisher".equals(role.getCode())) {
            deviceIds = mediicineDeviceUserDao.getdevicesbyuserid(userId, "1");
            condition  = "AND ',"+ String.join(",", deviceIds) +",' LIKE CONCAT('%,',o.shipping_equ,',%')\n";
            String ids  ="";
            for (int i=0;i<deviceIds.size();i++){
                Mediicinedevice mediicinedevice = deviceDao.findOne(deviceIds.get(i));
                ids +="'"+mediicinedevice.getEquNum()+"',";
            }
            ids = ids.substring(0,ids.length()-1);
            condition  = " AND o.shipping_equ IN ("+ids+")";
        } else {
            String belongCommunitys = "";
            String tempSql = "";

+ 7 - 2
svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/service/channel/MedicineService.java

@ -112,26 +112,31 @@ public class MedicineService {
    public void syncPrescriptionStatus() {
        List<Mediicineorder> mediicineorderList = mediicineorderDao.findMediicineorderBySellState("0");
        int i=0;
        for (Mediicineorder mediicineorder:mediicineorderList){
            String result = getDataStatus(mediicineorder.getPickUpNum());
            if (StringUtils.isNoneBlank(result)){
                JSONObject resObj = JSONObject.parseObject(result);
                if (resObj.getString("status").equalsIgnoreCase("200")){
                    String code = resObj.getString("RECIPE_STATUS_CODE");
                    JSONObject object = resObj.getJSONObject("data");
                    String code = object.getString("RECIPE_STATUS_CODE");
                    if (code.equalsIgnoreCase("5")){
                        mediicineorder.setSellState("1");
                        mediicineorder.setSellState("-1");
                        mediicineorder.setShippingEqu("线下药房");
                        mediicineorder.setShippingTime(new Date());
                        mediicineorderDao.save(mediicineorder);
                        i++;
                    }else if (code.equalsIgnoreCase("9")){
                        mediicineorder.setSellState("-1");
                        mediicineorder.setShippingEqu("线下作废");
                        mediicineorder.setShippingTime(new Date());
                        mediicineorderDao.save(mediicineorder);
                        i++;
                    }
                }
            }
        }
        logger.info("更新i条处方状态");
    }
    /**