ソースを参照

Merge branch 'dev' of chaoren1/wlyy2.0 into medicare

wangzhinan 3 年 前
コミット
ab46d919da

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

@ -143,6 +143,7 @@ public class BaseRequestMapping {
        public static final String getOrderDetailListById  = "/getOrderDetailListById";
        public static final String getOrderDetailById  = "/getOrderDetailById";
        public static final String checkOrder  = "/checkOrder";
        public static final String checkOrderComplete  = "/checkOrderComplete";
        public static final String checkOrderAndReturn  = "/checkOrderAndReturn";
        public static final String checkOrderAndReturnOrderList  = "/checkOrderAndReturnOrderList";
        public static final String getOrderOutList  = "/getOrderOutList";

+ 2 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/a2dao/MedicineShipmentLogDao.java

@ -10,4 +10,6 @@ public interface MedicineShipmentLogDao extends PagingAndSortingRepository<Medic
    List<MedicineShipmentLog> findMedicineShipmentLogsByOrderId(String orderId);
    void deleteByOrderId(String orderId);
}

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

@ -75,6 +75,18 @@ public class ServiceNoLoginEndPoint extends EnvelopRestEndpoint {
        return success(jsonObject.getJSONObject("msg"));
    }
    @GetMapping(value = BaseRequestMapping.BaseOrder.checkOrderComplete)
    @ApiOperation(value = "检查订单是否完成" , notes="检查订单是否完成")
    public Envelop checkOrderComplete(
            @ApiParam(name = "orderId", value = "设备id", required = true)
            @RequestParam(value = "orderId") String orderId
    ) {
        JSONObject jsonObject =  orderservice.checkOrderComplete(orderId);
        if (jsonObject.getString("response").equalsIgnoreCase(ConstantUtils.FAIL)) {
            return failed(jsonObject.getString("msg"));
        }
        return success(jsonObject.getString("msg"));
    }
    @GetMapping(value = BaseRequestMapping.BaseOrder.checkOrderAndReturn)
    @ApiOperation(value = "检查订单并且返回列表" , notes="检查订单")

+ 148 - 79
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineOrderService.java

@ -736,7 +736,7 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
     * @param status
     * @return
     */
    @Transactional(rollbackFor = Exception.class)
//    @Transactional(rollbackFor = Exception.class)
    public JSONObject updateOrderOutStatus(String shipmentLogId, String status, String msg) {
        JSONObject result = new JSONObject();
        if (shipmentLogId == null || StringUtils.isEmpty(shipmentLogId)) {
@ -764,6 +764,8 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
        if (!StringUtils.isEmpty(msg)) {
            medicineShipmentLog.setDescription(msg);
        }
        Logger.getAnonymousLogger().info("更新出货单出货状态----"+ "订单号为:" +medicineShipmentLog.getOrderId() + "----下的出货单号为:"+medicineShipmentLog.getId()+ "----更新了出货状态----"+status+"----附加信息为----"+msg);
        shipmentLogDao.save(medicineShipmentLog);
        //表示已出货
@ -801,9 +803,11 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
            mediicineorder.setShippingTime(new Date());
            orderDao.save(mediicineorder);
        }
        //查询更新订单信息start
        //订单id
        String orderId = medicineShipmentLog.getOrderId();
        String sql = "SELECT\n" +
                "\tcount(DISTINCT(id))\n" +
                "FROM\n" +
@ -818,7 +822,30 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
            order.setSellState("1");
            orderDao.save(order);
        }
        sql = "SELECT\n" +
        //end
        result.put("msg", ConstantUtils.SUCCESS);
        result.put("response", ConstantUtils.SUCCESS);
        return result;
    }
    public JSONObject checkOrderComplete(String orderId) {
        JSONObject result = new JSONObject();
        if (orderId == null || StringUtils.isEmpty(orderId)) {
            result.put("msg", "parameter orderId is null or empty");
            result.put("response", ConstantUtils.FAIL);
            return result;
        }
        String tempSql = "select IFNULL((select count(distinct(id)) from t_medicine_shipment_log where order_id = '"+orderId+"'), 0)";
        int count = jdbcTemplate.queryForObject(tempSql, Integer.class);
        if (count == 0) {
            result.put("msg", "订单未生成出货单");
            result.put("response", ConstantUtils.FAIL);
            return result;
        }
        String sql = "SELECT\n" +
                "\tcount(DISTINCT(id))\n" +
                "FROM\n" +
                "\tt_medicine_shipment_log\n" +
@ -827,15 +854,16 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
                "AND (`status` = 1\n" +
                "OR `status` = 3)";
        count = jdbcTemplate.queryForObject(sql, Integer.class);
        if (count > 0) {
        if (count == 0) {
            Mediicineorder order = orderDao.findOne(orderId);
            order.setSellState("1");
            orderDao.save(order);
            result.put("msg", "order was completed");
            result.put("response", ConstantUtils.SUCCESS);
            return result;
        }
        //end
        result.put("msg", ConstantUtils.SUCCESS);
        result.put("response", ConstantUtils.SUCCESS);
        result.put("response", ConstantUtils.FAIL);
        result.put("msg", "订单未完成,请联系管理员!");
        return result;
    }
@ -1398,52 +1426,52 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
            if ("1".equals(map.get("orderStatus"))) {
                map.put("orderStatusName", "药柜有药");
                //生成出货单
                int count = jdbcTemplate.queryForObject(
                        "SELECT\n" +
                                "\tcount(DISTINCT(id))\n" +
                                "FROM\n" +
                                "\tt_medicine_shipment_log\n" +
                                "WHERE\n" +
                                "\torder_id = '" + order.getId() + "'", Integer.class);
                //已生成,查出来,放入,跳过后续生成代码
                if (count > 0) {
                    String tempSql = "SELECT\n" +
                            "\tt.id AS id,\n" +
                            "\tt.device_id AS deviceId,\n" +
                            "\tt.order_id AS orderId,\n" +
                            "\tt.drug_id AS drugId,\n" +
                            "\tt.`status` AS `status`,\n" +
                            "\tt.out_time AS outTime,\n" +
                            "\tt.layer_no AS layerNo,\n" +
                            "\tt.wayer_no AS wayerNo,\n" +
                            "\tt.description AS description,\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.drug_bar_code AS drugBarCode,\n" +
                            "\tt.drug_code AS drugCode,\n" +
                            "\tt.drug_name AS drugName,\n" +
                            "\tt.pic AS pic,\n" +
                            "\tt.price AS price,\n" +
                            "\tt.specif AS specif,\n" +
                            "\tt.unit AS unit,\n" +
                            "\tt.org_code AS orgCode,\n" +
                            "\tt.org_name AS orgName,\n" +
                            "                t.equ_name AS equName,\n" +
                            "                t.dos_form AS dosForm\n" +
                            "FROM\n" +
                            "\tt_medicine_shipment_log AS t\n" +
                            "WHERE \n" +
                            "\tt.order_id = '" + order.getId() + "'";
                    List<Map<String, Object>> tempList = hibenateUtils.createSQLQuery(tempSql);
                    map.put("drugList", tempList);
                    orderList.add(map);
                    continue;
                }
                shipmentLogDao.deleteByOrderId(order.getId());
//                int count = jdbcTemplate.queryForObject(
//                        "SELECT\n" +
//                                "\tcount(DISTINCT(id))\n" +
//                                "FROM\n" +
//                                "\tt_medicine_shipment_log\n" +
//                                "WHERE\n" +
//                                "\torder_id = '" + order.getId() + "'", Integer.class);
//                //已生成,查出来,放入,跳过后续生成代码
//                if (count > 0) {
//                    String tempSql = "SELECT\n" +
//                            "\tt.id AS id,\n" +
//                            "\tt.device_id AS deviceId,\n" +
//                            "\tt.order_id AS orderId,\n" +
//                            "\tt.drug_id AS drugId,\n" +
//                            "\tt.`status` AS `status`,\n" +
//                            "\tt.out_time AS outTime,\n" +
//                            "\tt.layer_no AS layerNo,\n" +
//                            "\tt.wayer_no AS wayerNo,\n" +
//                            "\tt.description AS description,\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.drug_bar_code AS drugBarCode,\n" +
//                            "\tt.drug_code AS drugCode,\n" +
//                            "\tt.drug_name AS drugName,\n" +
//                            "\tt.pic AS pic,\n" +
//                            "\tt.price AS price,\n" +
//                            "\tt.specif AS specif,\n" +
//                            "\tt.unit AS unit,\n" +
//                            "\tt.org_code AS orgCode,\n" +
//                            "\tt.org_name AS orgName,\n" +
//                            "                t.equ_name AS equName,\n" +
//                            "                t.dos_form AS dosForm\n" +
//                            "FROM\n" +
//                            "\tt_medicine_shipment_log AS t\n" +
//                            "WHERE \n" +
//                            "\tt.order_id = '" + order.getId() + "'";
//                    List<Map<String, Object>> tempList = hibenateUtils.createSQLQuery(tempSql);
//                    map.put("drugList", tempList);
//                    orderList.add(map);
//                    continue;
//                }
                //未生成
                List<MedicineShipmentLog> shipmentLogs = new ArrayList<>();
                //订单详情遍历
@ -1471,35 +1499,76 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
                                    "ORDER BY\n" +
                                    "cast(t.layer_no AS UNSIGNED),cast(t.wayer_no AS UNSIGNED)"
                    );
//                    Mediicinedevice mediicinedevice = deviceDao.findMediicinedeviceByEquNum(deviceId);
                    for (int i = 0; i < qty; i++) {
                        for (Map<String, Object> objectMap : tempList) {
                            if (Integer.parseInt(String.valueOf(objectMap.get("qty"))) > 0) {
                                objectMap.put("qty", Integer.parseInt(String.valueOf(objectMap.get("qty"))) - 1);
                                MedicineShipmentLog shipmentLog = new MedicineShipmentLog();
                                shipmentLog.setDeviceId(deviceId);
                                shipmentLog.setOrderId(mediicineorderdetail.getIdOrder());
                                shipmentLog.setDrugId(mediicinedrugs.getId());
                                shipmentLog.setStatus("1");
                                shipmentLog.setLayerNo(objectMap.get("layerNo").toString());
                                shipmentLog.setWayerNo(objectMap.get("merge").toString());
                                shipmentLog.setDrugBarCode(mediicinedrugs.getDrugBarCode());
                                shipmentLog.setDrugCode(mediicinedrugs.getDrugCode());
                                shipmentLog.setDrugName(mediicinedrugs.getDrugName());
                                shipmentLog.setOrgCode(mediicinedrugs.getOrgCode());
                                shipmentLog.setOrgName(mediicinedrugs.getOrgName());
                                shipmentLog.setPic(mediicinedrugs.getPic());
                                shipmentLog.setPrice(mediicinedrugs.getPrice());
                                shipmentLog.setSpecif(mediicinedrugs.getSpecif());
                                shipmentLog.setUnit(mediicinedrugs.getUnit());
                                shipmentLog.setEquName(mediicinedevice.getEquName());
                                shipmentLog.setEquNum(mediicinedevice.getEquNum());
                                shipmentLog.setDosForm(mediicinedrugs.getDosForm());
                                shipmentLogDao.save(shipmentLog);
                                shipmentLogs.add(shipmentLog);
                    head:for (Map<String, Object> stringObjectMap : tempList) {
                        for (int j = 0; j < Integer.parseInt(stringObjectMap.get("qty").toString()); j++) {
                            if (qty == 0) {
                                break head;
                            }
                            qty--;
                            stringObjectMap.put("qty", Integer.parseInt(String.valueOf(stringObjectMap.get("qty"))) - 1);
                            MedicineShipmentLog shipmentLog = new MedicineShipmentLog();
                            shipmentLog.setDeviceId(deviceId);
                            shipmentLog.setOrderId(mediicineorderdetail.getIdOrder());
                            shipmentLog.setDrugId(mediicinedrugs.getId());
                            shipmentLog.setStatus("1");
                            shipmentLog.setLayerNo(stringObjectMap.get("layerNo").toString());
                            shipmentLog.setWayerNo(stringObjectMap.get("merge").toString());
                            shipmentLog.setDrugBarCode(mediicinedrugs.getDrugBarCode());
                            shipmentLog.setDrugCode(mediicinedrugs.getDrugCode());
                            shipmentLog.setDrugName(mediicinedrugs.getDrugName());
                            shipmentLog.setOrgCode(mediicinedrugs.getOrgCode());
                            shipmentLog.setOrgName(mediicinedrugs.getOrgName());
                            shipmentLog.setPic(mediicinedrugs.getPic());
                            shipmentLog.setPrice(mediicinedrugs.getPrice());
                            shipmentLog.setSpecif(mediicinedrugs.getSpecif());
                            shipmentLog.setUnit(mediicinedrugs.getUnit());
                            shipmentLog.setEquName(mediicinedevice.getEquName());
                            shipmentLog.setEquNum(mediicinedevice.getEquNum());
                            shipmentLog.setDosForm(mediicinedrugs.getDosForm());
                            shipmentLogDao.save(shipmentLog);
                            shipmentLogs.add(shipmentLog);
                        }
                    }
//                    //药品数目
//                    for (int i = 0; i < qty; i++) {
//
//                        for (Map<String, Object> stringObjectMap : tempList) {
//                            for (int j = 0; a < Integer.parseInt(stringObjectMap.get("qty").toString()); j++) {
//                                if (Integer.parseInt(String.valueOf(stringObjectMap.get("qty"))) == 0) {
//                                    break;
//                                }
//                                stringObjectMap.put("qty", Integer.parseInt(String.valueOf(stringObjectMap.get("qty"))) - 1);
//                                MedicineShipmentLog shipmentLog = new MedicineShipmentLog();
//                                shipmentLog.setDeviceId(deviceId);
//                                shipmentLog.setOrderId(mediicineorderdetail.getIdOrder());
//                                shipmentLog.setDrugId(mediicinedrugs.getId());
//                                shipmentLog.setStatus("1");
//                                shipmentLog.setLayerNo(stringObjectMap.get("layerNo").toString());
//                                shipmentLog.setWayerNo(stringObjectMap.get("merge").toString());
//                                shipmentLog.setDrugBarCode(mediicinedrugs.getDrugBarCode());
//                                shipmentLog.setDrugCode(mediicinedrugs.getDrugCode());
//                                shipmentLog.setDrugName(mediicinedrugs.getDrugName());
//                                shipmentLog.setOrgCode(mediicinedrugs.getOrgCode());
//                                shipmentLog.setOrgName(mediicinedrugs.getOrgName());
//                                shipmentLog.setPic(mediicinedrugs.getPic());
//                                shipmentLog.setPrice(mediicinedrugs.getPrice());
//                                shipmentLog.setSpecif(mediicinedrugs.getSpecif());
//                                shipmentLog.setUnit(mediicinedrugs.getUnit());
//                                shipmentLog.setEquName(mediicinedevice.getEquName());
//                                shipmentLog.setEquNum(mediicinedevice.getEquNum());
//                                shipmentLog.setDosForm(mediicinedrugs.getDosForm());
//                                shipmentLogDao.save(shipmentLog);
//                                shipmentLogs.add(shipmentLog);
//                            }
//
//                        }
//
//                    }
                }
                map.put("drugList", shipmentLogs);