package com.jeesite.modules.mes.web; import javax.servlet.http.HttpServletRequest; import com.jeesite.common.lang.StringUtils; import com.jeesite.common.service.ServiceException; import com.jeesite.modules.mes.resp.CommonResp; import com.jeesite.modules.mes.service.MesLaserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.jeesite.common.config.Global; import com.jeesite.common.web.BaseController; /** * 镭雕对接Controller(OP040) * MES客户端拿到镭雕软件回传的钢印码后,调用本接口生成并绑定21位客户编码。 * @author hzd * @version 2026-07-08 */ @Controller @RequestMapping(value = "${adminPath}/mes/mesLaser") public class MesLaserController extends BaseController { @Autowired private MesLaserService mesLaserService; /** * 生成客户编码并与钢印码绑定 * 请求参数(form):prodCode(T09/T68) steelSn(钢印码) oprno lineSn user * 返回 data:客户编码(21位) */ @PostMapping(value = "genCustomerSn") @ResponseBody public CommonResp genCustomerSn(HttpServletRequest request) { CommonResp resp = new CommonResp<>(); String prodCode = request.getParameter("prodCode"); String steelSn = request.getParameter("steelSn"); String oprno = request.getParameter("oprno"); String lineSn = request.getParameter("lineSn"); String user = request.getParameter("user"); if (StringUtils.isEmpty(prodCode) || StringUtils.isEmpty(steelSn)) { resp.setResult(Global.FALSE); resp.setMessage("参数错误:prodCode和steelSn不能为空"); return resp; } try { String customerSn = mesLaserService.genAndBindCustomerSn(prodCode, steelSn, oprno, lineSn, user); resp.setData(customerSn); resp.setResult(Global.TRUE); resp.setMessage("生成成功"); } catch (ServiceException e) { resp.setResult(Global.FALSE); resp.setMessage(e.getMessage()); } catch (Exception e) { logger.error("生成客户编码失败:prodCode=" + prodCode + ", steelSn=" + steelSn, e); resp.setResult(Global.FALSE); resp.setMessage("生成失败:" + e.getMessage()); } return resp; } /** * 解绑钢印码和客户码映射。客户码建档数据保留。 * 请求参数(form):steelSn(钢印码) oprno lineSn * 返回 data:被解绑的客户码 */ @PostMapping(value = "unbindSteelSn") @ResponseBody public CommonResp unbindSteelSn(HttpServletRequest request) { CommonResp resp = new CommonResp<>(); String steelSn = request.getParameter("steelSn"); String oprno = request.getParameter("oprno"); String lineSn = request.getParameter("lineSn"); if (StringUtils.isEmpty(steelSn)) { resp.setResult(Global.FALSE); resp.setMessage("参数错误:steelSn不能为空"); return resp; } try { String customerSn = mesLaserService.unbindSteelSn(steelSn, oprno, lineSn); resp.setData(customerSn); resp.setResult(Global.TRUE); resp.setMessage("解绑成功,客户码:" + customerSn); } catch (ServiceException e) { resp.setResult(Global.FALSE); resp.setMessage(e.getMessage()); } catch (Exception e) { logger.error("钢印码解绑失败:steelSn=" + steelSn, e); resp.setResult(Global.FALSE); resp.setMessage("解绑失败:" + e.getMessage()); } return resp; } }