自动化立体仓库 - WMS系统
zhangchao
2024-10-23 2b3519929a06019633e04ee9abb0c6ef8bba358f
src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -7,6 +7,7 @@
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.MesBuyPakinReportParam;
import com.zy.asrs.entity.param.MesOrderReportParam;
import com.zy.asrs.entity.param.MesPakinReportParam;
import com.zy.asrs.entity.param.MesPakoutReportParam;
@@ -14,7 +15,6 @@
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.common.utils.HttpHandler;
import io.swagger.models.auth.In;
import lombok.Synchronized;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -31,20 +31,35 @@
public class AgvWrkMastHandler extends AbstractHandler<String> {
    //入库类型数组
    private static final int[] IN_TYPE_ARRAY = new int[1];
    private static final List<Integer> IN_TYPE_LIST = new ArrayList<Integer>(){{
        add(1);
    }};
    //private static final int[] IN_TYPE_ARRAY = {1};
    //出库类型数组
    private static final int[] OUT_TYPE_ARRAY = new int[1];
    private static final List<Integer> OUT_TYPE_List = new ArrayList<Integer>(){{
//        add(101);
    }};
    //private static final int[] OUT_TYPE_ARRAY = {101};
    //移库类型数组
    private static final int[] MOVE_TYPE_ARRAY = new int[1];
    private static final List<Integer> MOVE_TYPE_List = new ArrayList<Integer>(){{
        add(11);add(101); add(12); add(53); add(101); add(108); add(111); add(112);
    }};
    //private static final int[] MOVE_TYPE_ARRAY = {11,12};
    @Value("${agvBasDev.maxWorkNum}")
    private int maxWrokNum;
    @Value("${mes.url}")
    private String url;
    @Value("${mes.getTokenUrl}")
    private String getTokenUrl;
    @Value("${mes.orderReportPath}")
    private String orderReportPath;
    @Value("${mes.pakinReportPath}")
    private String pakinReportPath;
    @Value("${mes.buyPakinReportPath}")
    private String buyPakinReportPath;
    @Value("${mes.pakoutReportPath}")
    private String pakoutReportPath;
    @Value("${mes.getTokenPath}")
@@ -79,9 +94,16 @@
    private AgvWorkService agvWorkService;
    @Autowired
    private ApiLogService apiLogService;
    @Autowired
    private DocTypeService docTypeService;
    @Autowired
    private OrderDetlService orderDetlService;
    @Transactional
    public ReturnT<String> completedPutWayWrk(AgvWrkMast agvWrkMast) {
        //用于上报mes的工作档明细
        List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
        try{
            int wrkNo = agvWrkMast.getWrkNo();
            String barcode = agvWrkMast.getBarcode();
@@ -93,9 +115,8 @@
                agvBasDevp = agvWrkMast.getSourceLocNo();
            }
            //用于上报mes的工作档明细
            List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
            agvWrkMast.setModiTime(new Date());
            //修改工作档状态为207.库存更新完成
            agvWrkMast.setWrkSts(207L);
            agvWrkMastService.updateById(agvWrkMast);
@@ -149,11 +170,30 @@
                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
                    break;
                case 57:
                    Date now = new Date();
                    // 更新库存明细
                    List<AgvWrkDetl> wrkDetlList = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
                    wrkDetlList.forEach(agvWrkDetl -> {
                        AgvLocDetl agvLocDetl = new AgvLocDetl();
                        agvLocDetl.setLocNo(agvWrkMast.getLocNo());
                        agvLocDetl.sync(agvWrkDetl);
                        agvLocDetl.setModiTime(now);
                        agvLocDetl.setAppeTime(now);
                        if (!agvLocDetlService.insert(agvLocDetl)) {
                            throw new CoolException("保存工作明细失败");
                        }
                    });
                    // 更新站点 + 库位状态     源库位是站点
                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
                    break;
                case 58:
                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
                    break;
                case 108:
                case 114:
                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
                    //更新库存明细
                    agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo());
@@ -240,45 +280,56 @@
                //删除AGV工作明细档
                agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo));
            }
//            else {
//                agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
//                if (!agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) {
//                    agvWrkMast.setSourceLocNo("");
//                }
//                agvWrkMastService.updateById(agvWrkMast);
//            }
            if(!isJSON(orderNo)){
                //检查订单是否已完成
                orderService.checkComplete(orderNo);
                orderService.checkComplete(orderNo,agvWrkMast.getLocNo());
            }else{
                List<Map> maps = JSONArray.parseArray(orderNo, Map.class);
                maps.forEach(map -> {
                    String o = map.get("orderNo").toString();
                    orderService.checkComplete(o);
                    orderService.checkComplete(o,agvWrkMast.getLocNo());
                });
            }
            //上报mes
            MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld);
            if(!Cools.isEmpty(param)){
                doHttpRequest(param,getMesTokenInfo(),"上报mes单据信息",url,orderReportPath,null,"127.0.0.1");
            }
//            MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld);
//            if(!Cools.isEmpty(param)){
//                doHttpRequest(param,getMesTokenInfo(),"上报mes单据信息",url,orderReportPath,null,"127.0.0.1");
//            }
            return SUCCESS;
            //return SUCCESS;
        }catch (Exception e){
            log.error(""+e.getMessage());
        }
        return FAIL;
        //TODO
        //reportMes(agvWrkMast,agvWrkDetlListOld);
        return SUCCESS;
    }
    @Transactional
    public ReturnT<String> completedCarryWrk(AgvWrkMast agvWrkMast) {
        try{
        //用于上报mes的工作档明细
        List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
            //用于上报mes的工作档明细
            List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
        try{
            Date now = new Date();
            int wrkNo = agvWrkMast.getWrkNo();
            String orderNo = getOrderNoByWrkNo(wrkNo);
            //修改工作档状态为207.库存更新完成
            agvWrkMast.setWrkSts(207L);
            agvWrkMast.setModiTime(new Date());
            agvWrkMastService.updateById(agvWrkMast);
            //修改源库位状态为O
            if (agvWrkMast.getIoType() == 110) {
@@ -341,34 +392,34 @@
            agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo));
            if(!isJSON(orderNo)){
                //检查订单是否已完成
                orderService.checkComplete(orderNo);
                orderService.checkComplete(orderNo,agvWrkMast.getLocNo());
            }else{
                List<Map> maps = JSONArray.parseArray(orderNo, Map.class);
                maps.forEach(map -> {
                    String o = map.get("orderNo").toString();
                    orderService.checkComplete(o);
                    orderService.checkComplete(o,agvWrkMast.getLocNo());
                });
            }
            //上报mes
            MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld);
            if(!Cools.isEmpty(param)){
                doHttpRequest(param,getMesTokenInfo(),"上报mes单据信息",url,orderReportPath,null,"127.0.0.1");
            }
//            MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld);
//            if(!Cools.isEmpty(param)){
//                doHttpRequest(param,getMesTokenInfo(),"上报mes单据信息",url,orderReportPath,null,"127.0.0.1");
//            }
            return SUCCESS;
        }catch (Exception e){
            log.error(""+e.getMessage());
        }
        return FAIL;
        reportMes(agvWrkMast,agvWrkDetlListOld);
        return SUCCESS;
    }
    @Transactional
    public ReturnT<String> completedCarryWrk2(AgvWrkMast agvWrkMast) {
        try{
            //用于上报mes的工作档明细
            List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
        //用于上报mes的工作档明细
        List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
        try{
            int wrkNo = agvWrkMast.getWrkNo();
            String orderNo = getOrderNoByWrkNo(wrkNo);
            String agvBasDevp = "";
@@ -379,6 +430,7 @@
            }
            //修改工作档状态为207.库存更新完成
            agvWrkMast.setWrkSts(207L);
            agvWrkMast.setModiTime(new Date());
            agvWrkMastService.updateById(agvWrkMast);
            //修改源库位状态为O
            agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
@@ -397,24 +449,26 @@
            agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo));
            if(!isJSON(orderNo)){
                //检查订单是否已完成
                orderService.checkComplete(orderNo);
                orderService.checkComplete(orderNo,agvWrkMast.getLocNo());
            }else{
                List<Map> maps = JSONArray.parseArray(orderNo, Map.class);
                maps.forEach(map -> {
                    String o = map.get("orderNo").toString();
                    orderService.checkComplete(o);
                    orderService.checkComplete(o,agvWrkMast.getLocNo());
                });
            }
            //上报mes
            MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld);
            if(!Cools.isEmpty(param)){
                doHttpRequest(param,getMesTokenInfo(),"上报mes单据信息",url,orderReportPath,null,"127.0.0.1");
            }
            return SUCCESS;
//            MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld);
//            if(!Cools.isEmpty(param)){
//                doHttpRequest(param,getMesTokenInfo(),"上报mes单据信息",url,orderReportPath,null,"127.0.0.1");
//            }
//            reportMes(agvWrkMast,agvWrkDetlListOld);
//            return SUCCESS;
        }catch (Exception e){
            log.error(""+e.getMessage());
        }
        return FAIL;
        reportMes(agvWrkMast,agvWrkDetlListOld);
        return SUCCESS;
    }
    @Transactional
@@ -429,6 +483,7 @@
            }
            agvWrkMast.setWrkSts(202L);
            agvWrkMast.setModiTime(new Date());
            agvWrkMastService.updateById(agvWrkMast);
            if(agvWrkMast.getIoType() == 1){
                //修改AGV入库通知档状态入出状态为Y
@@ -494,6 +549,7 @@
            Map<String, Object> devNoMap = devNoMaps.get(0);
            if((int)devNoMap.get("num") < maxWrokNum){
                agvWrkMast.setLocNo(devNoMap.get("dev_no").toString());
                agvWrkMast.setModiTime(new Date());
                agvWrkMastService.updateById(agvWrkMast);
                log.info("after:" + devNoMap.toString()  +  ", wrkNo:" + agvWrkMast.getWrkNo() + ", locNo: " + agvWrkMast.getLocNo());
            }
@@ -584,35 +640,64 @@
        return wrkMast;
    }
    private Object getReportParamByIoType(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
    private void reportMes(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
        if(Cools.isEmpty(agvWrkDetls)){
            return null;
            return ;
        }
        //区分不同任务类型的上报方式
        if(Arrays.asList(IN_TYPE_ARRAY).contains(agvWrkMast.getIoType())){
        if(IN_TYPE_LIST.contains(agvWrkMast.getIoType())){
            reportMesPakinOrder(agvWrkMast,agvWrkDetls);
        }
        if(Arrays.asList(OUT_TYPE_ARRAY).contains(agvWrkMast.getIoType())){
        if(OUT_TYPE_List.contains(agvWrkMast.getIoType())){
            reportMesPakoutOrder(agvWrkMast,agvWrkDetls);
        }
        if(Arrays.asList(MOVE_TYPE_ARRAY).contains(agvWrkMast.getIoType())){
            return generateMesParam(agvWrkMast,agvWrkDetls);
        if(MOVE_TYPE_List.contains(agvWrkMast.getIoType())){
            generateMesParam(agvWrkMast,agvWrkDetls);
        }
        return null;
    }
    private void reportMesPakinOrder(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
        for (AgvWrkDetl agvWrkDetl : agvWrkDetls){
            MesPakinReportParam mesPakinReportParam = new MesPakinReportParam();
            mesPakinReportParam.setInboundOrderCode(agvWrkDetl.getOrderNo());
            mesPakinReportParam.setBizType("0");
            mesPakinReportParam.setInventoryAttr(new MesPakinReportParam.InventoryAttr(agvWrkDetl.getThreeCode(),agvWrkDetl.getMatnr(),agvWrkMast.getLocNo()));
            mesPakinReportParam.setNoQrCodeExecAmount(new MesPakinReportParam.NoQrCodeExecAmount(agvWrkDetl.getAnfme(),agvWrkDetl.getUnit(),null));
            //判断是否采购入库
            doHttpRequest(mesPakinReportParam,getMesTokenInfo(),"上报mes单据信息",url,orderReportPath,null,"127.0.0.1");
            String orderNo = agvWrkDetl.getOrderNo();
            Order order = orderService.selectByNo(orderNo);
            DocType docType = docTypeService.selectById(order.getDocType());
            if (docType.getDocName().contains("采购")){
                OrderDetl orderDetl = orderDetlService.selectByOrderNoAndMatnr(orderNo, agvWrkDetl.getMatnr(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime());
                MesBuyPakinReportParam mesBuyPakinReportParam = new MesBuyPakinReportParam();
                List<MesBuyPakinReportParam.Iteam> iteams = new ArrayList<>();
                MesBuyPakinReportParam.Iteam iteam = new MesBuyPakinReportParam.Iteam();
                iteam.setMaterialCode(agvWrkDetl.getMatnr());
                iteam.setBatchNo(agvWrkDetl.getBatch());
                iteam.setAmount(agvWrkDetl.getAnfme());
                iteam.setStorageLocationCode(agvWrkMast.getLocNo());
                iteam.setLineNo(orderDetl.getItemNum());
                iteam.setSupplierCode(order.getSalesman());
                iteam.setUnit(agvWrkDetl.getUnit());
                iteams.add(iteam);
                mesBuyPakinReportParam.setCode(orderNo);
                mesBuyPakinReportParam.setIteam(iteams);
                doHttpRequest(mesBuyPakinReportParam,getMesTokenInfo(),"上报mes采购入库信息",url,buyPakinReportPath,null,"127.0.0.1");
            }else {
                MesPakinReportParam mesPakinReportParam = new MesPakinReportParam();
                mesPakinReportParam.setInboundOrderCode(agvWrkDetl.getOrderNo());
                mesPakinReportParam.setBizType("0");
                mesPakinReportParam.setInventoryAttr(new MesPakinReportParam.InventoryAttr(agvWrkDetl.getThreeCode().trim(),agvWrkDetl.getMatnr(),agvWrkMast.getLocNo()));
                mesPakinReportParam.setNoQrCodeExecAmount(new MesPakinReportParam.NoQrCodeExecAmount(agvWrkDetl.getAnfme(),agvWrkDetl.getUnit(),null));
                doHttpRequest(mesPakinReportParam,getMesTokenInfo(),"上报mes入库信息",url,pakinReportPath,null,"127.0.0.1");
            }
        }
    }
@@ -624,15 +709,15 @@
            AgvLocMast agvLocMast = agvLocMastService.selectById(agvWrkMast.getLocNo());
            mesPakoutReportParam.setWareHouseCode(agvLocMast.getPltType().toString());
            mesPakoutReportParam.setMaterialCode(agvWrkDetl.getMatnr());
            mesPakoutReportParam.setBatchNos(Arrays.asList(agvWrkDetl.getBatch()));
            mesPakoutReportParam.setBatchNos(Arrays.asList(agvWrkDetl.getThreeCode().trim()));
            mesPakoutReportParam.setAmount(new MesPakoutReportParam.Amount(agvWrkDetl.getAnfme(),agvWrkDetl.getUnit(),null));
            doHttpRequest(mesPakoutReportParam,getMesTokenInfo(),"上报mes单据信息",url,orderReportPath,null,"127.0.0.1");
            doHttpRequest(mesPakoutReportParam,getMesTokenInfo(),"上报mes出库信息",url,pakoutReportPath,null,"127.0.0.1");
        }
    }
    private MesOrderReportParam generateMesParam(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
    private void generateMesParam(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
        if(agvWrkMast.getIoType() == 53){
            String locNo = agvWrkMast.getLocNo();
@@ -644,10 +729,23 @@
        List<MesOrderReportParam.TransferOrderItem> transferOrderItems = new ArrayList<>();
        List<MesOrderReportParam.TransferOrderItem.InventoryDetail> inventoryDetails = new ArrayList<>();
        List<MesOrderReportParam.RecordCustomFieldBaseCO.CustomField> customFields = new ArrayList<>();
        MesOrderReportParam.RecordCustomFieldBaseCO recordCustomFieldBaseCO = new MesOrderReportParam.RecordCustomFieldBaseCO();
        recordCustomFieldBaseCO.setCustomFields(customFields);
        param.setRecordCustomFieldBaseCO(recordCustomFieldBaseCO);
        //添加transferOrderItem属性
        MesOrderReportParam.TransferOrderItem transferOrderItem = new MesOrderReportParam.TransferOrderItem();
        transferOrderItem.setRemark(agvWrkDetls.get(0).getOrderNo());
        transferOrderItem.setTargetLocationCode(agvWrkMast.getLocNo());
        //调拨
        if(agvWrkMast.getLocNo().contains("YZ")){
            transferOrderItem.setTargetLocationCode(agvWrkMast.getLocNo());
        }else {
            //出库默认仓位
            String floor = agvWrkMast.getLocNo().split("F")[1];
            transferOrderItem.setTargetLocationCode(getTargetLocationByFloor(floor));
        }
        transferOrderItems.add(transferOrderItem);
        transferOrderItem.setInventoryDetails(inventoryDetails);
@@ -656,13 +754,10 @@
        for (AgvWrkDetl agvWrkDetl : agvWrkDetls){
            MesOrderReportParam.TransferOrderItem.InventoryDetail inventoryDetail = new MesOrderReportParam.TransferOrderItem.InventoryDetail();
            //添加amount属性
            MesOrderReportParam.TransferOrderItem.InventoryDetail.Amount amount = new MesOrderReportParam.TransferOrderItem.InventoryDetail.Amount();
            amount.setAmount(agvWrkDetl.getAnfme());
            amount.setUnitName(agvWrkDetl.getUnit());
            MesOrderReportParam.TransferOrderItem.InventoryDetail.Amount amount = new MesOrderReportParam.TransferOrderItem.InventoryDetail.Amount(agvWrkDetl.getAnfme(),agvWrkDetl.getUnit(),null);
            inventoryDetail.setAmount(amount);
            //添加bizKey属性
            MesOrderReportParam.TransferOrderItem.InventoryDetail.BizKey bizKey = new MesOrderReportParam.TransferOrderItem.InventoryDetail.BizKey();
            bizKey.setBatchNo(agvWrkDetl.getThreeCode());
            MesOrderReportParam.TransferOrderItem.InventoryDetail.BizKey bizKey = new MesOrderReportParam.TransferOrderItem.InventoryDetail.BizKey(Cools.isEmpty(agvWrkDetl.getBatch()) ? "" : agvWrkDetl.getBatch().trim());
            inventoryDetail.setBizKey(bizKey);
            //添加inventoryDetail属性
            inventoryDetail.setLocationCode(agvWrkMast.getSourceLocNo());
@@ -670,9 +765,13 @@
            inventoryDetail.setQcStatus(1);
            inventoryDetail.setStorageStatus(1);
            inventoryDetails.add(inventoryDetail);
            //添加销售订单号
            MesOrderReportParam.RecordCustomFieldBaseCO.CustomField customField = new MesOrderReportParam.RecordCustomFieldBaseCO.CustomField("workOrderCode__c",agvWrkDetl.getThreeCode().trim());
            customFields.add(customField);
        }
        return param;
        doHttpRequest(param,getMesTokenInfo(),"上报mes调拨信息",url,orderReportPath,null,"127.0.0.1");
    }
    //获取mes token信息
@@ -681,13 +780,31 @@
        param.put("appKey",appKey);
        param.put("appSecret",appSecret);
        JSONObject jsonObject = doHttpRequest(param,null, "获取MesToken", url, getTokenPath, null, "127.0.0.1");
        JSONObject jsonObject = doHttpRequest(param,null, "获取MesToken", getTokenUrl, getTokenPath, null, "127.0.0.1");
        Map<String,Object> headParam = new HashMap<>();
        headParam.put("X-AUTH",JSON.parseObject(jsonObject.get("data").toString()).get("appAccessToken").toString());
        return headParam;
    }
    //根据楼层默认出库仓位
    private String getTargetLocationByFloor(String f){
        int floor = Integer.parseInt(f);
        if(floor == 1){
            return "WH-000";
        }
        if(floor == 2){
            return "WH-000";
        }
        if(floor == 3){
            return "WH-000";
        }
        return null;
    }
    private JSONObject doHttpRequest(Object requestParam,Map<String,Object> headParam, String namespace, String url, String path, String appkey, String ip){
@@ -706,10 +823,10 @@
                    .doPost();
            JSONObject jsonObject = JSON.parseObject(response);
            if(Cools.isEmpty(jsonObject.get("code")) && Integer.parseInt(jsonObject.get("code").toString()) != 200){
            if(Cools.isEmpty(jsonObject.get("code")) || Integer.parseInt(jsonObject.get("code").toString()) != 200){
                throw new CoolException(jsonObject.get("dsc").toString());
            }
            success = true;
            return jsonObject;
//            String succeed = jsonObject.get("succeed").toString();
@@ -736,4 +853,5 @@
        }
    }
}