wangzhinan 3 gadi atpakaļ
vecāks
revīzija
de06500506

+ 2 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/open/nologin/ServiceNoLoginEndPoint.java

@ -144,10 +144,10 @@ public class ServiceNoLoginEndPoint extends EnvelopRestEndpoint {
                return failed("电子健康卡扫码失败");
                return failed("电子健康卡扫码失败");
            }
            }
        }
        }
        /*//拉取线下智业订单
        //拉取线下智业订单
        if (StringUtils.isNoneBlank(cardNum)){
        if (StringUtils.isNoneBlank(cardNum)){
            orderservice.getPhysicApplyWaitExecList(deviceId,cardNum);
            orderservice.getPhysicApplyWaitExecList(deviceId,cardNum);
        }*/
        }
        JSONObject jsonObject =  orderservice.checkOrderAndReturnOrderList(deviceId, pickUpNum, cardNum);
        JSONObject jsonObject =  orderservice.checkOrderAndReturnOrderList(deviceId, pickUpNum, cardNum);
        if (jsonObject.getString("response").equalsIgnoreCase(ConstantUtils.FAIL)) {
        if (jsonObject.getString("response").equalsIgnoreCase(ConstantUtils.FAIL)) {
            return failed(jsonObject.getString("msg"));
            return failed(jsonObject.getString("msg"));

+ 45 - 7
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineOrderService.java

@ -36,6 +36,7 @@ import com.yihu.mysql.query.BaseJpaService;
import com.ylzinfo.onepay.sdk.utils.StringUtil;
import com.ylzinfo.onepay.sdk.utils.StringUtil;
import jxl.format.VerticalAlignment;
import jxl.format.VerticalAlignment;
import jxl.write.*;
import jxl.write.*;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.collections4.IterableUtils;
import org.apache.commons.collections4.IterableUtils;
import org.apache.http.NameValuePair;
import org.apache.http.NameValuePair;
@ -53,6 +54,8 @@ import java.lang.Boolean;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.util.*;
import java.util.*;
import java.util.logging.Logger;
import java.util.logging.Logger;
import java.util.regex.*;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.stream.Collectors;
import static jxl.biff.BaseCellFeatures.logger;
import static jxl.biff.BaseCellFeatures.logger;
@ -848,8 +851,14 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
            if (Integer.compare(totalShipmentLog, shipped + 1) == 0) {
            if (Integer.compare(totalShipmentLog, shipped + 1) == 0) {
                Mediicineorder order = orderDao.findOne(medicineShipmentLog.getOrderId());
                Mediicineorder order = orderDao.findOne(medicineShipmentLog.getOrderId());
                order.setSellState("1");
                order.setSellState("1");
                Boolean flag = scanQrdispensaryCode(order.getPickUpNum());
                logger.info("flag"+flag);
                if (org.apache.commons.lang.StringUtils.isNotBlank(order.getApplyNo())){
                    Boolean flag = sickPhysicDosage(order.getBelongCommunity(),order.getApplyNo());
                    logger.info("flag"+flag);
                }else {
                    Boolean flag = scanQrdispensaryCode(order.getPickUpNum());
                    logger.info("flag"+flag);
                }
                orderDao.save(order);
                orderDao.save(order);
            }
            }
            if (Integer.compare(totalShipmentLog, shipped + 1) < 0) {
            if (Integer.compare(totalShipmentLog, shipped + 1) < 0) {
@ -1285,13 +1294,13 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
     * 线下订单药柜取药回调发药
     * 线下订单药柜取药回调发药
     * 线上续方  可只传处方号
     * 线上续方  可只传处方号
     线下续方 无处方号  机构、单据号必传
     线下续方 无处方号  机构、单据号必传
     * @param recipeNo
     *
     * @param orgCode
     * @param orgCode
     * @param applyNo
     * @param applyNo
     * @param execOperator
     *
     * @return
     * @return
     */
     */
    public boolean sickPhysicDosage(String recipeNo,String orgCode,String applyNo,String execOperator){
    public boolean sickPhysicDosage(String orgCode,String applyNo){
        OauthWlyyConfigDO oauthWlyyConfigDO = oauthWlyyConfigDao.findOne("sickPhysicDosage");
        OauthWlyyConfigDO oauthWlyyConfigDO = oauthWlyyConfigDao.findOne("sickPhysicDosage");
        //token获取accesstoken
        //token获取accesstoken
        List<NameValuePair> params = new ArrayList<>();
        List<NameValuePair> params = new ArrayList<>();
@ -1308,7 +1317,6 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
            //设置入参
            //设置入参
            List<NameValuePair> p = new ArrayList<>();
            List<NameValuePair> p = new ArrayList<>();
            p.add(new BasicNameValuePair("recipeNo", recipeNo));
            p.add(new BasicNameValuePair("orgCode", orgCode));
            p.add(new BasicNameValuePair("orgCode", orgCode));
            p.add(new BasicNameValuePair("applyNo", applyNo));
            p.add(new BasicNameValuePair("applyNo", applyNo));
@ -1420,16 +1428,26 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
                                    mediicineorder.setBelongCommunity(orgCode);
                                    mediicineorder.setBelongCommunity(orgCode);
                                    mediicineorder.setCommunity(community);
                                    mediicineorder.setCommunity(community);
                                    mediicineorder.setDoctorName(jsonObject.getString("APPLY_OPERATOR_NAME"));
                                    mediicineorder.setDoctorName(jsonObject.getString("APPLY_OPERATOR_NAME"));
                                    mediicineorder.setPrescribeTime(DateUtil.strToDateLong(jsonObject.getString("APPLY_TIME")+" 00:00:00"));
                                    mediicineorder.setPayTime(DateUtil.strToDateLong(jsonObject.getString("APPLY_TIME")+" 00:00:00"));
                                    mediicineorder = orderDao.save(mediicineorder);
                                    mediicineorder = orderDao.save(mediicineorder);
                                    JSONArray drugList = jsonObject.getJSONArray("APPLY_DETAIL");
                                    JSONArray drugList = jsonObject.getJSONArray("APPLY_DETAIL");
                                    for (int j =0;j<drugList.size();j++){
                                    for (int j =0;j<drugList.size();j++){
                                        JSONObject drugObj = drugList.getJSONObject(j);
                                        JSONObject drugObj = drugList.getJSONObject(j);
                                        String itemQc = drugObj.getString("ITEM_QUANTITY_C");
                                        String quantity = getNumbers(itemQc);
                                        String packageName = splitNotNumber(itemQc);
                                        if (!org.apache.commons.lang3.StringUtils.isNoneBlank(quantity)){
                                            mediicineorder.setOrderState("-1");
                                            mediicineorder.setSellState("-3");
                                            orderDao.save(mediicineorder);
                                        }
                                        Mediicineorderdetail mediicineorderdetail = new Mediicineorderdetail();
                                        Mediicineorderdetail mediicineorderdetail = new Mediicineorderdetail();
                                        mediicineorderdetail.setIdOrder(mediicineorder.getId());
                                        mediicineorderdetail.setIdOrder(mediicineorder.getId());
                                        mediicineorderdetail.setDrugCode(drugObj.getString("ITEM_CODE"));
                                        mediicineorderdetail.setDrugCode(drugObj.getString("ITEM_CODE"));
                                        mediicineorderdetail.setOrderNo(realOrder);
                                        mediicineorderdetail.setOrderNo(realOrder);
                                        mediicineorderdetail.setPrice(drugObj.getFloat("ITEM_PRICE"));
                                        mediicineorderdetail.setPrice(drugObj.getFloat("ITEM_PRICE"));
                                        mediicineorderdetail.setQuantity(drugObj.getString("ITEM_QUANTITY"));
                                        mediicineorderdetail.setQuantity(quantity);
                                        mediicineorderdetail.setGoodsName(drugObj.getString("ITEM_NAME"));
                                        mediicineorderdetail.setGoodsName(drugObj.getString("ITEM_NAME"));
                                        mediicineorderdetail.setOrderState("1");
                                        mediicineorderdetail.setOrderState("1");
                                        mediicineorderdetail.setPickUpNum(realOrder);
                                        mediicineorderdetail.setPickUpNum(realOrder);
@ -1460,6 +1478,26 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
        return false;
        return false;
    }
    }
    //截取数字
    public String getNumbers(String content) {
        Pattern pattern = Pattern.compile("\\d+");
        Matcher matcher = pattern.matcher(content);
        while (matcher.find()) {
            return matcher.group(0);
        }
        return "";
    }
    // 截取非数字
    public String splitNotNumber(String content) {
        Pattern pattern = Pattern.compile("\\D+");
        Matcher matcher = pattern.matcher(content);
        while (matcher.find()) {
            return matcher.group(0);
        }
        return "";
    }
    /**
    /**
     * 根据处方号获取处方状态
     * 根据处方号获取处方状态

+ 26 - 4
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicinedeviceService.java

@ -20,6 +20,7 @@ import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.sms.dao.HospitalSysDictDao;
import com.yihu.jw.sms.dao.HospitalSysDictDao;
import com.yihu.jw.util.common.LatitudeUtils;
import com.yihu.jw.util.common.LatitudeUtils;
import com.yihu.jw.util.common.StringUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.jw.utils.hibernate.HibenateUtils;
@ -912,13 +913,25 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
                MediicinecabinetInventory inventory = inventoryDao.findOne(cargoId);
                MediicinecabinetInventory inventory = inventoryDao.findOne(cargoId);
                inventory.setCargoState(cargoState);
                inventory.setCargoState(cargoState);
                if (cargoState.equals("1")) {
                if (cargoState.equals("1")) {
                    changedCargoCapacity += Integer.parseInt(inventory.getCargoCapacity());
                    if (inventory.getState().equalsIgnoreCase("21")||inventory.getState().equalsIgnoreCase("1")){
                        changedCargoCapacity +=Integer.parseInt(inventory.getCargoCapacity());
                    }
                }
                }
                deviceId = inventory.getIdDevice();
                deviceId = inventory.getIdDevice();
                inventoryDao.save(inventory);
                inventoryDao.save(inventory);
            }
            }
        }
        }
        if (!StringUtils.isEmpty(deviceId)) {
        if (!StringUtils.isEmpty(deviceId)) {
            String str[] =cargoIds.split(",");
            String cargoId = "";
            if (str.length==1){
                cargoId+="'"+str[0]+"'";
            }else {
                for (int i=0;i<str.length;i++){
                    cargoId+="'"+str[i]+"',";
                }
                cargoId = cargoId.substring(0,cargoId.length()-1);
            }
            Mediicinedevice mediicinedevice = deviceDao.findOne(deviceId);
            Mediicinedevice mediicinedevice = deviceDao.findOne(deviceId);
            if (mediicinedevice != null) {
            if (mediicinedevice != null) {
                int oldCapacity = Integer.parseInt(mediicinedevice.getCapacity());
                int oldCapacity = Integer.parseInt(mediicinedevice.getCapacity());
@ -928,13 +941,19 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
                        "\tt_mediicinecabinet_inventory t\n" +
                        "\tt_mediicinecabinet_inventory t\n" +
                        "WHERE\n" +
                        "WHERE\n" +
                        "\tt.id_device = '"+mediicinedevice.getId()+"'\n" +
                        "\tt.id_device = '"+mediicinedevice.getId()+"'\n" +
                        "AND t.id not in ('"+cargoIds+"')\n" +
                        "AND t.id not in ("+cargoId+")\n" +
                        "AND (t.state = '1' OR t.state = '21')";
                        "AND (t.state = '1' OR t.state = '21')";
                Map<String,Object> totalMap = jdbcTemplate.queryForMap(tempSql);
                Map<String,Object> totalMap = jdbcTemplate.queryForMap(tempSql);
                if (totalMap != null){
                if (totalMap != null){
                    if (totalMap.get("cargoCapacity") != null) {
                    if (totalMap.get("cargoCapacity") != null) {
                        oldCapacity = (int) Double.parseDouble(String.valueOf(totalMap.get("cargoCapacity"))) + changedCargoCapacity;
                        if (cargoState.equals("1")){
                            oldCapacity = (int) Double.parseDouble(String.valueOf(totalMap.get("cargoCapacity"))) + changedCargoCapacity;
                        }else if (cargoState.equals("0")){
                            oldCapacity = (int) Double.parseDouble(String.valueOf(totalMap.get("cargoCapacity")));
                        }
                    }
                    }
                }
                }
                mediicinedevice.setCapacity(String.valueOf(oldCapacity));
                mediicinedevice.setCapacity(String.valueOf(oldCapacity));
@ -1694,6 +1713,9 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
        //设备列表
        //设备列表
        List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql);
        List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql);
        int totalCapacity = list.stream()
                .mapToInt(item -> Integer.parseInt(String.valueOf(item.get("cargoCapacity")))).sum();
        int closedCapacity = list.stream()
        int closedCapacity = list.stream()
                .filter(item -> "0".equals(String.valueOf(item.get("cargoState"))))
                .filter(item -> "0".equals(String.valueOf(item.get("cargoState"))))
                .mapToInt(item -> Integer.parseInt(String.valueOf(item.get("cargoCapacity")))).sum();
                .mapToInt(item -> Integer.parseInt(String.valueOf(item.get("cargoCapacity")))).sum();
@ -1758,7 +1780,7 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
//                "AND (t.state = '1' OR t.state = '21')";
//                "AND (t.state = '1' OR t.state = '21')";
//        int drugNumber = jdbcTemplate.queryForObject(tempSql, Integer.class);
//        int drugNumber = jdbcTemplate.queryForObject(tempSql, Integer.class);
        int outOfStock = Integer.parseInt(device.getCapacity()) - closedCapacity - drugNumber;
        int outOfStock = totalCapacity - closedCapacity - drugNumber;
        jsonObject.put("outOfStock", outOfStock);
        jsonObject.put("outOfStock", outOfStock);
        //缺货库存----end
        //缺货库存----end
        tempSql = "SELECT\n" +
        tempSql = "SELECT\n" +

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

@ -249,6 +249,29 @@ public class MedicineService {
        logger.info("更新i条处方状态");
        logger.info("更新i条处方状态");
    }
    }
    public void syncOnlinePrescriptionStatus() {
        List<Mediicineorder> mediicineorderList = mediicineorderDao.findMediicineorderBySellState("0");
        int i=0;
        for (Mediicineorder mediicineorder:mediicineorderList){
            String result = getIJKPresStatus(mediicineorder.getPickUpNum());
            if (StringUtils.isNoneBlank(result)){
                JSONObject resObj = JSONObject.parseObject(result);
                if (resObj.getString("status").equalsIgnoreCase("200")){
                    JSONObject object = resObj.getJSONObject("data");
                    String code = object.getString("status");
                    if (code.equalsIgnoreCase("-5")||code.equalsIgnoreCase("-4")){
                        mediicineorder.setSellState("-2");
                        mediicineorder.setShippingEqu("线下作废");
                        mediicineorder.setShippingTime(new Date());
                        mediicineorderDao.save(mediicineorder);
                        i++;
                    }
                }
            }
        }
        logger.info("更新i条处方状态");
    }
    /**
    /**
     * 获取处方状态
     * 获取处方状态
     * @param realOrder
     * @param realOrder
@ -264,7 +287,7 @@ public class MedicineService {
        String token = null;
        String token = null;
        JSONObject rsjson = JSONObject.parseObject(res);
        JSONObject rsjson = JSONObject.parseObject(res);
        logger.info("checkWlyyDoctor token :"+rsjson.toString());
        logger.info("getDataStatus token :"+rsjson.toString());
        Integer status = rsjson.getInteger("status");
        Integer status = rsjson.getInteger("status");
        if(status==10000){
        if(status==10000){
@ -295,4 +318,51 @@ public class MedicineService {
    }
    }
    /**
     * 获取处方状态
     * @param realOrder
     * @return
     */
    public String getIJKPresStatus(String realOrder){
        OauthWlyyConfigDO oauthWlyyConfigDO = oauthWlyyConfigDao.findOne("getIJKPresStatus");
        //token获取accesstoken
        List<NameValuePair> params = new ArrayList<>();
        params.add(new BasicNameValuePair("appid", oauthWlyyConfigDO.getAppId()));
        params.add(new BasicNameValuePair("appSecret",oauthWlyyConfigDO.getAppSecret()));
        String res = httpClientUtil.post(oauthWlyyConfigDO.getTokenUrl(),params,"UTF-8");
        String token = null;
        JSONObject rsjson = JSONObject.parseObject(res);
        logger.info("getIJKPresStatus token :"+rsjson.toString());
        Integer status = rsjson.getInteger("status");
        if(status==10000){
            //设置入参
            List<NameValuePair> p = new ArrayList<>();
            p.add(new BasicNameValuePair("jwCode", realOrder));
            //设置头部
            token = rsjson.getJSONObject("result").getString("accesstoken");
            Map<String,Object> headerMap = new HashedMap();
            headerMap.put("accesstoken",token);
            String rs = httpClientUtil.headerPost(oauthWlyyConfigDO.getUrl(),p,"UTF-8",headerMap);
            WlyyHttpLogDO wlyyHttpLogDO = new WlyyHttpLogDO();
            wlyyHttpLogDO.setCode("getIJKPresStatus");
            wlyyHttpLogDO.setRequest(p.toString());
            wlyyHttpLogDO.setResponse(rs);
            wlyyHttpLogDO.setName("根据处方号获取i健康线上处方状态");
            wlyyHttpLogDO.setStatus("1");
            wlyyHttpLogDO.setCreateTime(new Date());
            wlyyHttpLogDao.save(wlyyHttpLogDO);
            logger.info("getIJKPresStatus:"+rs);
            return rs;
        }else {
            return null;
        }
    }
}
}