package com.zy.asrs.wms.controller; 
 | 
  
 | 
import com.alibaba.fastjson.JSON; 
 | 
import com.alibaba.fastjson.JSONArray; 
 | 
import com.alibaba.fastjson.JSONObject; 
 | 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 
 | 
import com.zy.asrs.common.sys.entity.OperateLog; 
 | 
import com.zy.asrs.common.sys.service.OperateLogService; 
 | 
import com.zy.asrs.common.utils.HttpHandler; 
 | 
import com.zy.asrs.common.utils.Utils; 
 | 
import com.zy.asrs.common.web.BaseController; 
 | 
import com.zy.asrs.common.wms.entity.Order; 
 | 
import com.zy.asrs.common.wms.entity.OrderDetl; 
 | 
import com.zy.asrs.common.wms.entity.WrkDetl; 
 | 
import com.zy.asrs.common.wms.entity.WrkMast; 
 | 
import com.zy.asrs.common.wms.service.*; 
 | 
import com.zy.asrs.framework.common.Cools; 
 | 
import com.zy.asrs.framework.common.R; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.beans.factory.annotation.Value; 
 | 
import org.springframework.web.bind.annotation.GetMapping; 
 | 
import org.springframework.web.bind.annotation.RequestParam; 
 | 
import org.springframework.web.bind.annotation.RestController; 
 | 
  
 | 
import java.text.SimpleDateFormat; 
 | 
import java.util.*; 
 | 
  
 | 
@RestController 
 | 
public class TestController extends BaseController { 
 | 
  
 | 
    @Autowired 
 | 
    private WrkMastService wrkMastService; 
 | 
    @Autowired 
 | 
    private WrkDetlService wrkDetlService; 
 | 
    @Autowired 
 | 
    private OrderService orderService; 
 | 
    @Autowired 
 | 
    private OrderDetlService orderDetlService; 
 | 
    @Autowired 
 | 
    private OperateLogService operateLogService; 
 | 
  
 | 
    @Value("${erp.url}") 
 | 
    private String ERP_URL; 
 | 
  
 | 
    @Value("${erp.report}") 
 | 
    private String ERP_REPORT; 
 | 
  
 | 
    @Value("${erp.login}") 
 | 
    private String ERP_LOGIN; 
 | 
  
 | 
    @GetMapping("/test") 
 | 
    public R test(@RequestParam Integer wrkNo) { 
 | 
        WrkMast wrkMast = wrkMastService.getOne(new LambdaQueryWrapper<WrkMast>().eq(WrkMast::getWrkNo, wrkNo)); 
 | 
        Long hostId = wrkMast.getHostId(); 
 | 
  
 | 
        List<WrkDetl> wrkDetls = wrkDetlService.list(new LambdaQueryWrapper<WrkDetl>().eq(WrkDetl::getWrkNo, wrkMast.getWrkNo()).eq(WrkDetl::getHostId, hostId)); 
 | 
        // 区分订单任务 
 | 
        List<WrkDetl> wrkDetlsKeyOrder = new ArrayList<>(); 
 | 
        if (!Cools.isEmpty(wrkDetls)) { 
 | 
            Iterator<WrkDetl> iterator = wrkDetls.iterator(); 
 | 
            while (iterator.hasNext()) { 
 | 
                WrkDetl wrkDetl = iterator.next(); 
 | 
                if (!Cools.isEmpty(wrkDetl.getOrderNo())) { 
 | 
                    wrkDetlsKeyOrder.add(wrkDetl); 
 | 
                    iterator.remove(); 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
  
 | 
        if (!wrkDetlsKeyOrder.isEmpty()) { 
 | 
            //上报念初ERP   【 上报三方平台 】 
 | 
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); 
 | 
            String nowFormat = dateFormat.format(new Date()); 
 | 
  
 | 
            ArrayList<LinkedHashMap<String, Object>> mats = new ArrayList<>(); 
 | 
            String orderNo = ""; 
 | 
            for (WrkDetl wrkDetl : wrkDetlsKeyOrder) { 
 | 
                orderNo = wrkDetl.getOrderNo(); 
 | 
                LinkedHashMap<String, Object> mat = new LinkedHashMap<>(); 
 | 
                mat.put("GoodsCode", wrkDetl.getMatnr()); 
 | 
                mat.put("Num", wrkDetl.getAnfme()); 
 | 
                if (!Cools.isEmpty(wrkDetl.getBatch())) { 
 | 
                    mat.put("BatchNo", wrkDetl.getBatch()); 
 | 
                } 
 | 
                if (!Cools.isEmpty(wrkDetl.getThreeCode())) { 
 | 
                    mat.put("DepotName", wrkDetl.getThreeCode()); 
 | 
                } 
 | 
                if (!Cools.isEmpty(wrkDetl.getSupp())) { 
 | 
                    mat.put("FromDanCode", wrkDetl.getSupp()); 
 | 
                } 
 | 
                if (!Cools.isEmpty(wrkDetl.getSuppCode())) { 
 | 
                    mat.put("FromNo", wrkDetl.getSuppCode()); 
 | 
                } 
 | 
                mats.add(mat); 
 | 
            } 
 | 
            Order order = orderService.selectByNo(orderNo, hostId); 
 | 
            if (order != null) { 
 | 
                LinkedHashMap<String, Object> param = new LinkedHashMap<>(); 
 | 
                param.put("Login", ERP_LOGIN); 
 | 
                param.put("DanType", order.getDocType$()); 
 | 
                param.put("Date", nowFormat); 
 | 
                param.put("FromDanCode", orderNo); 
 | 
                param.put("Data", mats); 
 | 
  
 | 
                String response = ""; 
 | 
                try { 
 | 
                    response = new HttpHandler.Builder() 
 | 
                            .setUri(ERP_URL) 
 | 
                            .setPath(ERP_REPORT + Utils.ncErpDataEncode(param)) 
 | 
                            .build() 
 | 
                            .doGet(); 
 | 
                    JSONObject jsonObject = JSON.parseObject(response); 
 | 
                    JSONArray result = jsonObject.getJSONArray("result"); 
 | 
                    Object object = result.get(0); 
 | 
                    JSONObject data = JSON.parseObject(object.toString()); 
 | 
                    if (data.getBoolean("State")) { 
 | 
                        //上报成功 
 | 
                    } else { 
 | 
                        //上报失败 
 | 
                    } 
 | 
                } catch (Exception e) { 
 | 
                    e.printStackTrace(); 
 | 
                } finally { 
 | 
                    //记录上报数据 
 | 
                    OperateLog operateLog = new OperateLog(); 
 | 
                    operateLog.setAction("上报ERP," + ERP_URL + ERP_REPORT); 
 | 
                    operateLog.setRequest(Utils.ncErpDataEncode(param)); 
 | 
                    operateLog.setResponse(response); 
 | 
                    operateLog.setCreateTime(new Date()); 
 | 
                    operateLog.setSystem("WMS"); 
 | 
                    operateLog.setUserId(9527L); 
 | 
                    operateLog.setIp("127.0.0.1"); 
 | 
                    operateLogService.save(operateLog); 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
  
 | 
        return R.ok(); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/test1") 
 | 
    public R test1(@RequestParam String orderNo) { 
 | 
        Order order = orderService.selectByNo(orderNo, 1L); 
 | 
        List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderId, order.getId())); 
 | 
  
 | 
        //上报念初ERP   【 上报三方平台 】 
 | 
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); 
 | 
        String nowFormat = dateFormat.format(new Date()); 
 | 
  
 | 
        ArrayList<LinkedHashMap<String, Object>> mats = new ArrayList<>(); 
 | 
        for (OrderDetl orderDetl : orderDetls) { 
 | 
            LinkedHashMap<String, Object> mat = new LinkedHashMap<>(); 
 | 
            mat.put("GoodsCode", orderDetl.getMatnr()); 
 | 
            mat.put("Num", orderDetl.getAnfme()); 
 | 
            if (!Cools.isEmpty(orderDetl.getBatch())) { 
 | 
                mat.put("BatchNo", orderDetl.getBatch()); 
 | 
            } 
 | 
            if (!Cools.isEmpty(orderDetl.getThreeCode())) { 
 | 
                mat.put("DepotName", orderDetl.getThreeCode()); 
 | 
            } 
 | 
            if (!Cools.isEmpty(orderDetl.getSupp())) { 
 | 
                mat.put("FromDanCode", orderDetl.getSupp()); 
 | 
            } 
 | 
            if (!Cools.isEmpty(orderDetl.getSuppCode())) { 
 | 
                mat.put("FromNo", orderDetl.getSuppCode()); 
 | 
            } 
 | 
            mats.add(mat); 
 | 
        } 
 | 
        LinkedHashMap<String, Object> param = new LinkedHashMap<>(); 
 | 
        param.put("Login", ERP_LOGIN); 
 | 
        param.put("DanType", order.getDocType$()); 
 | 
        param.put("Date", nowFormat); 
 | 
        param.put("FromDanCode", orderNo); 
 | 
        param.put("Data", mats); 
 | 
  
 | 
        String response = ""; 
 | 
        try { 
 | 
            response = new HttpHandler.Builder() 
 | 
                    .setUri(ERP_URL) 
 | 
                    .setPath(ERP_REPORT + Utils.ncErpDataEncode(param)) 
 | 
                    .build() 
 | 
                    .doGet(); 
 | 
            JSONObject jsonObject = JSON.parseObject(response); 
 | 
            JSONArray result = jsonObject.getJSONArray("result"); 
 | 
            Object object = result.get(0); 
 | 
            JSONObject data = JSON.parseObject(object.toString()); 
 | 
            if (data.getBoolean("State")) { 
 | 
                //上报成功 
 | 
            } else { 
 | 
                //上报失败 
 | 
            } 
 | 
        } catch (Exception e) { 
 | 
            e.printStackTrace(); 
 | 
        } finally { 
 | 
            //记录上报数据 
 | 
            OperateLog operateLog = new OperateLog(); 
 | 
            operateLog.setAction("上报ERP," + ERP_URL + ERP_REPORT); 
 | 
            operateLog.setRequest(Utils.ncErpDataEncode(param)); 
 | 
            operateLog.setResponse(response); 
 | 
            operateLog.setCreateTime(new Date()); 
 | 
            operateLog.setSystem("WMS"); 
 | 
            operateLog.setUserId(9527L); 
 | 
            operateLog.setIp("127.0.0.1"); 
 | 
            operateLogService.save(operateLog); 
 | 
        } 
 | 
  
 | 
        return R.ok(); 
 | 
    } 
 | 
  
 | 
} 
 |