Explorar o código

出货完成,更新订单状态

wangzhinan %!s(int64=3) %!d(string=hai) anos
pai
achega
66a5bb57a0

+ 44 - 19
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineOrderService.java

@ -725,7 +725,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)) {
@ -749,6 +749,33 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
        medicineShipmentLog.setStatus(status);
        if ("2".equals(status)) {
            medicineShipmentLog.setOutTime(new Date());
            //判断订单是否完成,
            String sql = "SELECT\n" +
                    "\tcount(DISTINCT(id))\n" +
                    "FROM\n" +
                    "\tt_medicine_shipment_log\n" +
                    "WHERE\n" +
                    "\torder_id = '" + medicineShipmentLog.getOrderId() + "'";
            int totalShipmentLog = jdbcTemplate.queryForObject(sql, Integer.class);
            sql = "SELECT\n" +
                    "\tcount(DISTINCT(id))\n" +
                    "FROM\n" +
                    "\tt_medicine_shipment_log\n" +
                    "WHERE\n" +
                    "\torder_id = '" + medicineShipmentLog.getOrderId() + "'\n" +
                    "AND `status` = 2";
            //已出货
            int shipped = jdbcTemplate.queryForObject(sql, Integer.class);
            if (Integer.compare(totalShipmentLog, shipped + 1) == 0) {
                Mediicineorder order = orderDao.findOne(medicineShipmentLog.getOrderId());
                order.setSellState("1");
                orderDao.save(order);
            }
            if (Integer.compare(totalShipmentLog, shipped + 1) < 0) {
                result.put("msg", "订单已全部出货!");
                result.put("response", ConstantUtils.FAIL);
                return result;
            }
        }
        if (!StringUtils.isEmpty(msg)) {
            medicineShipmentLog.setDescription(msg);
@ -795,23 +822,21 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
        //查询更新订单信息start
        //订单id
        String orderId = medicineShipmentLog.getOrderId();
        String sql = "SELECT\n" +
                "\tcount(DISTINCT(id))\n" +
                "FROM\n" +
                "\tt_medicine_shipment_log\n" +
                "WHERE\n" +
                "\torder_id = '" + orderId + "'\n" +
                "AND (`status` = 1\n" +
                "OR `status` = 3)";
        int count = jdbcTemplate.queryForObject(sql, Integer.class);
        if (count == 0) {
            Mediicineorder order = orderDao.findOne(orderId);
            order.setSellState("1");
            orderDao.save(order);
        }
//        String orderId = medicineShipmentLog.getOrderId();
//        String sql = "SELECT\n" +
//                "\tcount(DISTINCT(id))\n" +
//                "FROM\n" +
//                "\tt_medicine_shipment_log\n" +
//                "WHERE\n" +
//                "\torder_id = '" + orderId + "'\n" +
//                "AND (`status` = 1\n" +
//                "OR `status` = 3)";
//        int count = jdbcTemplate.queryForObject(sql, Integer.class);
//        if (count == 0) {
//            Mediicineorder order = orderDao.findOne(orderId);
//            order.setSellState("1");
//            orderDao.save(order);
//        }
        //end
        result.put("msg", ConstantUtils.SUCCESS);
        result.put("response", ConstantUtils.SUCCESS);
@ -830,7 +855,7 @@ public class MedicineOrderService extends BaseJpaService<Mediicineorder, Mediici
        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("msg", "订单未生成出货单(订单异常)");
            result.put("response", ConstantUtils.FAIL);
            return result;
        }