diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/ford/IFordFetchWebService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/ford/IFordFetchWebService.java new file mode 100644 index 0000000..73e3dcb --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/ford/IFordFetchWebService.java @@ -0,0 +1,22 @@ +package cn.estsh.i3plus.ext.mes.pcn.api.busi.ford; + +import cn.estsh.i3plus.pojo.mes.bean.ford.MesFordFetchParameter; + +import java.util.List; + +public interface IFordFetchWebService { + + void insertParams(MesFordFetchParameter parameter); + + + void updateParams(MesFordFetchParameter parameter); + + + void deleteParams(Long id,String UserName); + + MesFordFetchParameter queryParams(Long id); + + List queryParams(String organizeCode); + + void doFetchData(Long id,String organizeCode); +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/ford/MesFordFetchWebController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/ford/MesFordFetchWebController.java new file mode 100644 index 0000000..08f1199 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/ford/MesFordFetchWebController.java @@ -0,0 +1,94 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.controller.busi.ford; + +import cn.estsh.i3plus.ext.mes.pcn.api.busi.ford.IFordFetchWebService; +import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.pojo.mes.bean.ford.MesFordFetchParameter; +import cn.estsh.impp.framework.boot.util.ResultBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@Api(tags = "福特web抓单") +@RequestMapping(MesCommonConstant.MES_YANFEN + "/fetch-web") +@Slf4j +public class MesFordFetchWebController { + + @Autowired + private IFordFetchWebService fordFetchWebService; + + @PostMapping(value = "/param/save") + @ApiOperation(value = "保存抓单参数") + public ResultBean saveParams(@RequestBody MesFordFetchParameter params) { + try { + fordFetchWebService.insertParams(params); + } catch (Exception e) { + return ResultBean.fail(e.getMessage()); + } + return ResultBean.success("保存成功!"); + } + + @PostMapping(value = "/param/update") + @ApiOperation(value = "更新抓单参数") + public ResultBean updateParams(@RequestBody MesFordFetchParameter params) { + try { + fordFetchWebService.updateParams(params); + } catch (Exception e) { + return ResultBean.fail(e.getMessage()); + } + return ResultBean.success("更新成功!"); + } + + @GetMapping(value = "/param/del/{id}/{userName}") + @ApiOperation(value = "删除抓单参数") + public ResultBean updateParams(@PathVariable Long id, @PathVariable String userName) { + try { + fordFetchWebService.deleteParams(id, userName); + } catch (Exception e) { + return ResultBean.fail(e.getMessage()); + } + return ResultBean.success("删除成功!"); + } + + @GetMapping(value = "/param/query/{id}") + @ApiOperation(value = "查询抓单参数") + public ResultBean queryParams(@PathVariable Long id) { + MesFordFetchParameter parameter; + try { + parameter = fordFetchWebService.queryParams(id); + } catch (Exception e) { + return ResultBean.fail(e.getMessage()); + } + return ResultBean.success("查询成功!").setResultObject(parameter); + } + + + @GetMapping(value = "/param/query/list/{organizeCode}") + @ApiOperation(value = "查询抓单参数") + public ResultBean queryParamList(@PathVariable String organizeCode) { + List mesFordFetchParameters; + try { + mesFordFetchParameters = fordFetchWebService.queryParams(organizeCode); + } catch (Exception e) { + return ResultBean.fail(e.getMessage()); + } + return ResultBean.success("查询成功!").setResultList(mesFordFetchParameters); + } + + @GetMapping(value = "/param/data/{id}/{organizeCode}") + @ApiOperation(value = "定时抓单") + public ResultBean queryData(@PathVariable Long id,@PathVariable String organizeCode) { + + try { + } catch (Exception e) { + return ResultBean.fail(e.getMessage()); + } + return null; + } + + +} diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/ford/MesFordFetchWebServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/ford/MesFordFetchWebServiceImpl.java new file mode 100644 index 0000000..fd271e4 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/ford/MesFordFetchWebServiceImpl.java @@ -0,0 +1,91 @@ +package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.ford; + +import cn.estsh.i3plus.ext.mes.pcn.api.busi.ford.IFordFetchWebService; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.mes.bean.ford.MesFordFetchParameter; +import cn.estsh.i3plus.pojo.mes.repository.ford.MesFordFetchParameterRepository; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.net.HttpCookie; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +@Service +@Slf4j +public class MesFordFetchWebServiceImpl implements IFordFetchWebService { + @Autowired + private MesFordFetchParameterRepository paramRao; + + @Override + public void insertParams(MesFordFetchParameter parameter) { + ConvertBean.saveOrUpdate(parameter, parameter.getCreateUser()); + paramRao.insert(parameter); + + } + + @Override + public void updateParams(MesFordFetchParameter parameter) { + ConvertBean.saveOrUpdate(parameter, parameter.getCreateUser()); + paramRao.update(parameter); + } + + @Override + public void deleteParams(Long id,String userName) { + paramRao.deleteWeaklyById(id,userName); + } + + @Override + public MesFordFetchParameter queryParams(Long id) { + Optional params = paramRao.findById(id); + return params.orElseGet(MesFordFetchParameter::new); + + } + + @Override + public List queryParams(String organizeCode) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + return paramRao.findByHqlWhere(ddlPackBean); + } + + @Override + public void doFetchData(Long id, String organizeCode) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getNumEqualPack(id,"id",ddlPackBean); + List list = paramRao.findByHqlWhere(ddlPackBean); + if (list.isEmpty()) { + throw ImppExceptionBuilder.newInstance().setErrorDetail("未查询出当前配置,请检查数据!").build(); + } + MesFordFetchParameter parameter = list.get(0); + //尝试登录 + Map paramMap = new HashMap<>(); + paramMap.put("username", parameter.getUid()); + paramMap.put("passwork", parameter.getPwd()); + Map header = new HashMap<>(); + header.put("content-type","application/x-www-form-urlencoded"); + HttpResponse loginResponse = HttpRequest.post(parameter.getLoginUrl()).form(paramMap).execute(); + if (loginResponse.getStatus() != 200){ + log.info("登录失败,需要重新登录!返回内容为:{}",loginResponse.body()); + } + List cookies = loginResponse.getCookies(); + //拼接请求参数 + //time=0.9656002469020775&maxpage=5&trigger=B100VR12&st=2023-05-12%2005:00:00&et=2023-05-12%2023:59:59&catacode=0&itemcode=0 + Map map = new HashMap<>(); + map.put("maxpage",parameter.getPageSize() != null ? parameter.getPageSize().toString() : "1"); + map.put("trigger",parameter.getInfoPointCode()); + map.put("st",parameter.getStartDateTime()); + map.put("et",parameter.getEndDateTime()); + map.put("catacode","0"); + map.put("itemcode","0"); + HttpResponse response = HttpRequest.get(parameter.getFetchUrl()).cookie(cookies).timeout(60000).form(map).execute(); + log.info("查询出来的内容为:{}",response.body()); + } +}