package com.zy.asrs.task.handler; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.core.exception.CoolException; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.service.ApiLogService; import com.zy.asrs.service.WrkMastService; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.task.escalationParam.RgvTaskReportingParam; import com.zy.common.utils.HttpHandler; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; /** * Created by Monkey D. Luffy on 2024.10.19 * 广东海玛..............以下.............环穿调度.............任务完成信息上传 */ @Slf4j @Service @Transactional public class RgvTaskReportingHandler extends AbstractHandler { @Autowired private WrkMastService wrkMastService; @Autowired private ApiLogService apiLogService; // @Value("${srHangJia.url}") private String erpUrl = "172.17.196.200:8084"; // @Value("${srHangJia.reportOutPath}") private String reportOutPath = "open/rcs/task/cs/up/UploadTask"; public ReturnT start(WrkMast wrkMast) { try { Date now = new Date(); RgvTaskReportingParam rgvTaskReportingParam = new RgvTaskReportingParam(wrkMast); ReturnT result = postMesData(reportOutPath,rgvTaskReportingParam); if (result.getCode()==200){ wrkMast.setWrkSts(4L); wrkMast.setAppeTime(now); wrkMastService.updateById(wrkMast); return SUCCESS; }else { log.error("任务完成信息上传失败"); } }catch (Exception e){ log.error("任务完成信息上传异常!!!"+e); return FAIL; } return FAIL; } private ReturnT postMesData(String erpPath,Object combParam){ if(combParam != null){ String response = ""; boolean success = false; try { response = new HttpHandler.Builder() .setUri(erpUrl) .setPath(erpPath) .setJson(JSON.toJSONString(combParam)) .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); if (jsonObject.getInteger("code")==200) { success = true; } else { log.error("任务完成信息上传请求接口失败!!!url:{};request:{};response:{}"+erpUrl+erpPath, JSON.toJSONString(combParam), response); throw new CoolException("上报wcs系统失败"); } } catch (Exception e) { log.error("fail:上报wcs系统失败==>", e); // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return FAIL.setMsg(e.getMessage()); } finally { try { // 保存接口日志 apiLogService.save( "上报wcs系统", erpUrl + erpPath, null, erpUrl, JSON.toJSONString(combParam), response, success ); } catch (Exception e) { log.error("任务完成信息上传保存接口日志异常,异常信息:", e); } } } return SUCCESS; } }