package com.uas.eis.controller; import com.uas.eis.entity.ErrorMessage; import com.uas.eis.exception.ApiStepWorkException; import com.uas.eis.sdk.entity.StepWorkApiResult; import com.uas.eis.sdk.resp.StepWorkApiResponse; import com.uas.eis.service.StepWorkService; import com.uas.eis.utils.JSONUtil; import com.uas.eis.utils.StringUtil; import org.apache.commons.lang.StringEscapeUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.Map; /** * @author xiaost * @date 2025/8/26 17:51 * 按照文档:MES工序作业对接接口说明文档 要求编写api 接口请求名字,输入,输出参数 **/ @RestController public class StepWorkController { @Autowired private StepWorkService stepWorkService; /** * 登录获取token * 租户ID tenantId String 是 租户ID * 账号 username String 是 账号 * 密码 password String 是 md5(password) * @return */ @RequestMapping(value="/blade-auth/oauth/token", method = RequestMethod.POST) public Map getToken(HttpServletRequest request,String username,String password){ Map map = new HashMap<>(); if(!StringUtil.hasText(username) || !StringUtil.hasText(password) ){ map.put("error","用户名和密码必填"); map.put("error_description","用户名和密码必填"); return map; } Map map2 = stepWorkService.login(username, password); if(map2.get("success").equals("1")){ map.put("access_token",map2.get("token")); map.put("token_type","bearer"); map.put("refresh_token",""); map.put("expires_in",""); map.put("scope","all"); map.put("tenant_id",""); map.put("login_type",""); map.put("user_name",username); map.put("real_name",username); map.put("avatar",""); map.put("client_id",""); map.put("role_name",""); map.put("license",""); map.put("post_id",""); map.put("user_id",""); map.put("role_id",""); map.put("nick_name",username); map.put("oauth_id",""); Map map1 = new HashMap<>(); map1.put("type","web"); map.put("detail",map1); map.put("dept_id",""); map.put("account",username); map.put("jti",username); //refresh_token return map; }else{ map2.remove("success"); return map2; } } /** * 成品测试 * @param request * @param data * @return */ @RequestMapping(value="/mes-product/public/station/center/test", method = RequestMethod.POST) public StepWorkApiResult> test(HttpServletRequest request, @RequestBody String data){ if(!StringUtil.hasText(data) || !StringUtil.hasText(data) ){ throw new ApiStepWorkException(new StepWorkApiResult(ErrorMessage.BUSINESS_DATAILLEGAL)); } //data = StringEscapeUtils.unescapeJava(data); //转码 data = JSONUtil.decodeUnicode(data.replace("%", "\\")); return stepWorkService.test(request,data); } /** * 成品过站 * @param request * @param data * { * "workOrderNo":"WO20220826000002SHD", //工单号 * "stationCode":"GW--001", //工位编码 * "routeCode":"22b443b4fa379a546330f4e984cc6ed1", //工序编号 * "sequenceNumber":"[P]2022083426046[B]" //产品SN * } * @return */ @RequestMapping(value="/mes-product/public/station/center/over/station", method = RequestMethod.POST) public StepWorkApiResult> station(HttpServletRequest request, @RequestBody String data){ if(!StringUtil.hasText(data) || !StringUtil.hasText(data) ){ throw new ApiStepWorkException(new StepWorkApiResult(ErrorMessage.BUSINESS_DATAILLEGAL)); } data = JSONUtil.decodeUnicode(data.replace("%", "\\")); return stepWorkService.station(request,data); } @RequestMapping(value="/UploadThruputLog", method = RequestMethod.POST) public StepWorkApiResult> UploadThruputLog(HttpServletRequest request, @RequestBody String data){ if(!StringUtil.hasText(data) || !StringUtil.hasText(data) ){ throw new ApiStepWorkException(new StepWorkApiResult(ErrorMessage.BUSINESS_DATAILLEGAL)); } data = JSONUtil.decodeUnicode(data.replace("%", "\\")); return stepWorkService.UploadThruputLog(request,data); } }