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.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 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 (wrkMast.getIoType() == 1 || wrkMast.getIoType() == 53 || wrkMast.getWrkSts() == 200) {
|
//上报念初ERP 【 上报三方平台 】
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
|
String nowFormat = dateFormat.format(new Date());
|
|
ArrayList<LinkedHashMap<String, Object>> mats = new ArrayList<>();
|
String orderNo = "";
|
for (WrkDetl wrkDetl : wrkDetls) {
|
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 = null;
|
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");
|
operateLogService.save(operateLog);
|
}
|
}
|
}
|
|
return R.ok();
|
}
|
|
}
|