package com.zy.asrs.task.handler;
|
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONObject;
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.core.common.Cools;
|
import com.core.exception.CoolException;
|
import com.zy.asrs.entity.WaitPakin;
|
import com.zy.asrs.entity.WrkDetl;
|
import com.zy.asrs.entity.WrkMast;
|
import com.zy.asrs.service.*;
|
import com.zy.asrs.task.AbstractHandler;
|
import com.zy.asrs.task.core.ReturnT;
|
import com.zy.common.service.CommonService;
|
import com.zy.common.utils.HttpHandler;
|
import com.zy.system.entity.Config;
|
import com.zy.system.service.ConfigService;
|
import javafx.scene.input.DataFormat;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
|
/**
|
* Created by vincent on 2020/7/6
|
*/
|
@Slf4j
|
@Service
|
public class WorkLogHandler extends AbstractHandler<String> {
|
|
@Autowired
|
private WrkMastService wrkMastService;
|
@Autowired
|
private WrkMastLogService wrkMastLogService;
|
@Autowired
|
private WrkDetlService wrkDetlService;
|
@Autowired
|
private WrkDetlLogService wrkDetlLogService;
|
@Autowired
|
private WaitPakinService waitPakinService;
|
@Autowired
|
private WaitPakinLogService waitPakinLogService;
|
@Autowired
|
private OrderService orderService;
|
@Value("${mes.address.url}")
|
private String url;
|
@Value("${mes.address.outaddressSave}")
|
private String outaddressSave;
|
@Autowired
|
private ApiLogService apiLogService;
|
@Autowired
|
private ConfigService configService;
|
|
@Transactional
|
public ReturnT<String> start(WrkMast wrkMast) {
|
List<WrkDetl> wrkDetl = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
String formattedDate = sdf.format(wrkMast.getModiTime());
|
Config config=configService.selectConfigByCode("reportMes");
|
if(config==null||!config.getValue().equals("Y")){
|
if(wrkMast.getIoType() == 1){
|
// 全板入库
|
// 入库通知单
|
if (!Cools.isEmpty(wrkMast.getBarcode())) {
|
// 保存入库通知档历史档
|
if (!waitPakinLogService.save(wrkMast.getBarcode())) {
|
exceptionHandle("保存入库通知档历史档[workNo={0}]失败", wrkMast.getWrkNo());
|
}
|
// 删除入库通知档
|
if (!waitPakinService.delete(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()))) {
|
exceptionHandle("删除入库通知档[workNo={0}]失败", wrkMast.getWrkNo());
|
}
|
}
|
}
|
// 保存工作主档历史档
|
if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
|
exceptionHandle("保存工作历史档[workNo={0}]失败", wrkMast.getWrkNo());
|
}
|
// 删除工作主档
|
if (!wrkMastService.deleteById(wrkMast)) {
|
exceptionHandle("删除工作主档[workNo={0}]失败", wrkMast.getWrkNo());
|
}
|
// 保存工作明细档历史档
|
if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
|
// exceptionHandle("保存工作明细历史档[workNo={0}]失败", wrkMast.getWrkNo());
|
}
|
// 删除工作明细档
|
if (!wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()))) {
|
// exceptionHandle("删除工作明细档[workNo={0}]失败", wrkMast.getWrkNo());
|
}
|
}
|
try {
|
LinkedHashMap<String, Object> map = new LinkedHashMap<String, Object>();
|
String GnBm ="";
|
String Biaomc="";
|
|
List<LinkedHashMap<String,Object>> Baocuncanshus = new ArrayList<LinkedHashMap<String,Object>>();
|
LinkedHashMap<String,Object> Baocuncanshu=new LinkedHashMap<String,Object>();
|
|
|
// 入库 --------------------------------------------------------------------------------
|
if (wrkMast.getIoType() == 1) {
|
GnBm = "bopp_ck1070d0e";
|
Biaomc = "bopp_j000000";
|
Baocuncanshu.put("bh","");
|
Baocuncanshu.put("djlb","半成品入库");
|
Baocuncanshu.put("rq",formattedDate);
|
Baocuncanshu.put("startStorageId","");//起始位置
|
Baocuncanshu.put("endStorageId","");//目标位置
|
Baocuncanshu.put("tm_dp_wms",wrkMast.getBarcode());//托盘码
|
Baocuncanshu.put("shbz","立库");//位置类别
|
Baocuncanshu.put("bz","");//备注
|
Baocuncanshu.put("ck","立库");//仓库
|
Baocuncanshus.add(Baocuncanshu);
|
// 出库 --------------------------------------------------------------------------------
|
} else if (wrkMast.getIoType() == 101) {
|
GnBm = "bopp_ck1090d0e";
|
Biaomc = "bopp_j000000";
|
Baocuncanshu.put("bh","");
|
Baocuncanshu.put("djlb","普通调拨");
|
Baocuncanshu.put("rq",formattedDate);
|
Baocuncanshu.put("yck","布基半成品仓");
|
Baocuncanshu.put("xck","复卷1#机起点");
|
Baocuncanshu.put("bh_bopp_e050000","");
|
Baocuncanshu.put("ykw","库位2");
|
Baocuncanshu.put("bz","");//备注
|
Baocuncanshu.put("xkw","FJ-01-01-01");
|
Baocuncanshus.add(Baocuncanshu);
|
}
|
|
LinkedHashMap<String,Object> YongHuCanShu= new LinkedHashMap<String,Object>();
|
YongHuCanShu.put("QianMingId","");
|
map.put("YongHuCanShu",YongHuCanShu);
|
|
LinkedHashMap<String,Object> QiTaCanShu= new LinkedHashMap<String,Object>();
|
QiTaCanShu.put("GnBm",GnBm);
|
QiTaCanShu.put("Operation", "1");
|
QiTaCanShu.put("zid", "");
|
QiTaCanShu.put("shbz", "");
|
QiTaCanShu.put("shjg", "");
|
|
List<LinkedHashMap<String,Object>> Caozuojihes = new ArrayList<LinkedHashMap<String,Object>>();
|
LinkedHashMap<String,Object>Caozuojihe =new LinkedHashMap<String,Object>();
|
Caozuojihe.put("Xh1","1");
|
Caozuojihe.put("Xh2","1");
|
Caozuojihe.put("Biaomc",Biaomc);
|
|
|
Caozuojihe.put("Baocuncanshu",Baocuncanshus);
|
Caozuojihes.add(Caozuojihe);
|
|
LinkedHashMap<String,Object> Caozuojihe1=new LinkedHashMap<String,Object>();
|
Caozuojihe1.put("Xh1","1");
|
Caozuojihe1.put("Xh2","4");
|
Caozuojihe1.put("Biaomc","bopp_j000101");
|
|
List<LinkedHashMap<String,Object>> Baocuncanshus1 = new ArrayList<LinkedHashMap<String,Object>>();
|
LinkedHashMap<String,Object> Baocuncanshu1=new LinkedHashMap<String,Object>();
|
Baocuncanshu1.put("tm_xj",wrkDetl.get(0).getBatch());//唯一码
|
Baocuncanshus1.add(Baocuncanshu1);
|
Caozuojihe1.put("Baocuncanshu",Baocuncanshus1);
|
|
Caozuojihes.add(Caozuojihe1);
|
|
QiTaCanShu.put("Caozuojihe", Caozuojihes);
|
|
map.put("QiTaCanShu",QiTaCanShu);
|
|
HashMap<String,Object>hashMap=new HashMap<String,Object>();
|
hashMap.put("Quanjucanshu","%7B%22XiTongCanShu%22%3A%7B%22xt_id%22%3A%2230077%22%2C%22xt_bm%22%3A%22undefined%22%2C%22xt_yhid%22%3A%22156%22%2C%22xt_yhms%22%3A%22%E7%B3%BB%E7%BB%9F%E7%AE%A1%E7%90%86%E5%91%98%22%2C%22xt_yhbm%22%3A%22admin%22%2C%22xt_qyms%22%3A%221%22%2C%22xt_qyjc%22%3A%221%22%2C%22xt_jsms%22%3A%22%E7%AE%A1%E7%90%86%E5%91%98%22%2C%22xt_yuyan%22%3A%22%22%7D%2C%22NeiBuCanShu%22%3A%7B%7D%7D");
|
|
String jsonString = JSON.toJSONString(map);
|
HashMap<String,Object>hashMap1=new HashMap<String,Object>();
|
hashMap1.put("CanShuJi",jsonString);
|
String response = "";
|
boolean success = false;
|
try {
|
response = new HttpHandler.Builder()
|
.setHeaders(hashMap)
|
.setUri(url)
|
.setPath(outaddressSave)
|
.setParams(hashMap1)
|
.build()
|
.doPost();
|
JSONObject jsonObject = JSON.parseObject(response);
|
if (jsonObject.getString("BianHao").equals("0000")) {
|
success=true;
|
if(wrkMast.getIoType() == 1){
|
// 全板入库
|
// 入库通知单
|
if (!Cools.isEmpty(wrkMast.getBarcode())) {
|
// 保存入库通知档历史档
|
if (!waitPakinLogService.save(wrkMast.getBarcode())) {
|
exceptionHandle("保存入库通知档历史档[workNo={0}]失败", wrkMast.getWrkNo());
|
}
|
// 删除入库通知档
|
if (!waitPakinService.delete(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()))) {
|
exceptionHandle("删除入库通知档[workNo={0}]失败", wrkMast.getWrkNo());
|
}
|
}
|
}
|
// 保存工作主档历史档
|
if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
|
exceptionHandle("保存工作历史档[workNo={0}]失败", wrkMast.getWrkNo());
|
}
|
// 删除工作主档
|
if (!wrkMastService.deleteById(wrkMast)) {
|
exceptionHandle("删除工作主档[workNo={0}]失败", wrkMast.getWrkNo());
|
}
|
// 保存工作明细档历史档
|
if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
|
// exceptionHandle("保存工作明细历史档[workNo={0}]失败", wrkMast.getWrkNo());
|
}
|
// 删除工作明细档
|
if (!wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()))) {
|
// exceptionHandle("删除工作明细档[workNo={0}]失败", wrkMast.getWrkNo());
|
}
|
|
} else {
|
log.error("wms上报结果给mes失败!!!url:{};request:{};response:{}", url+"/"+outaddressSave, JSON.toJSONString(map), response);
|
throw new CoolException("wms上报结果给mes失败");
|
}
|
} catch (Exception e) {
|
log.error("fail", e);
|
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg(e.getMessage());
|
} finally {
|
try {
|
// 保存接口日志
|
apiLogService.save(
|
"wms上报结果给mes",
|
url+"/"+outaddressSave,
|
null,
|
"127.0.0.1",
|
JSON.toJSONString(map),
|
response,
|
success
|
);
|
} catch (Exception e) { log.error("", e); }
|
}
|
} catch (Exception e) {
|
log.error("fail", e);
|
e.printStackTrace();
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return FAIL.setMsg(e.getMessage());
|
}
|
return SUCCESS;
|
}
|
|
}
|