wangxichen 2 недель назад
Родитель
Сommit
df209c7724

+ 13 - 0
src/main/java/com/jeesite/modules/mes/dao/MesProductHfDao.java

@@ -0,0 +1,13 @@
+package com.jeesite.modules.mes.dao;
+
+import com.jeesite.common.dao.CrudDao;
+import com.jeesite.common.mybatis.annotation.MyBatisDao;
+import com.jeesite.modules.mes.entity.MesProductHf;
+
+/**
+ * 焊缝/漏点记录DAO接口
+ */
+@MyBatisDao
+public interface MesProductHfDao extends CrudDao<MesProductHf> {
+
+}

+ 119 - 0
src/main/java/com/jeesite/modules/mes/entity/MesProductHf.java

@@ -0,0 +1,119 @@
+package com.jeesite.modules.mes.entity;
+
+import javax.validation.constraints.Size;
+import com.jeesite.common.entity.DataEntity;
+import com.jeesite.common.mybatis.annotation.Column;
+import com.jeesite.common.mybatis.annotation.Table;
+import com.jeesite.common.mybatis.mapper.query.QueryType;
+import com.jeesite.common.utils.excel.annotation.ExcelField;
+import com.jeesite.common.utils.excel.annotation.ExcelField.Align;
+import com.jeesite.common.utils.excel.annotation.ExcelFields;
+
+import java.util.Date;
+
+/**
+ * 工件焊缝/漏点记录 Entity
+ * @author JinJuShi
+ * @version 2025-01-01
+ */
+@Table(name="mes_product_hf", alias="a", label="工件焊缝信息", columns={
+        @Column(name="id", attrName="id", label="id", isPK=true),
+        @Column(name="sn", attrName="sn", label="工件码"),
+        @Column(name="oprno", attrName="oprno", label="工位号"),
+        @Column(name="line_sn", attrName="lineSn", label="产线编号"),
+        @Column(name="hf_flag", attrName="hfFlag", label="焊缝标识"),
+        @Column(name="result", attrName="result", label="结果"),
+        @Column(name="create_by", attrName="createBy", label="创建人", isUpdate=false, isQuery=false),
+        @Column(name="create_date", attrName="createDate", label="创建时间", isUpdate=false, isQuery=false),
+}, orderBy="a.id DESC"
+)
+public class MesProductHf extends DataEntity<MesProductHf> {
+
+    private static final long serialVersionUID = 1L;
+    private String sn;		// 工件码
+    private String oprno;		// 工位号
+    private String lineSn;		// 产线编号
+    private String hfFlag;		// 焊缝/漏点标识
+    private String result;
+
+
+    @ExcelFields({
+            @ExcelField(title="工件码", attrName="sn", align=Align.CENTER, sort=10),
+            @ExcelField(title="工位号", attrName="oprno", align=Align.CENTER, sort=20),
+            @ExcelField(title="产线编号", attrName="lineSn", align=Align.CENTER, sort=30),
+            @ExcelField(title="焊缝/漏检标识", attrName="hfFlag", align=Align.CENTER, sort=40),
+            @ExcelField(title="结果", attrName="result", align=Align.CENTER, sort=40),
+            @ExcelField(title="创建人", attrName="createBy", align=Align.CENTER, sort=40),
+            @ExcelField(title="创建时间", attrName="createDate", align=Align.CENTER, sort=80, dataFormat="yyyy-MM-dd HH:mm:ss"),
+    })
+
+    public MesProductHf() {
+        this(null);
+    }
+
+    public MesProductHf(String id){
+        super(id);
+    }
+
+    @Size(min=0, max=255, message="工件码长度不能超过 255 个字符")
+    public String getSn() {
+        return sn;
+    }
+
+    public void setSn(String sn) {
+        this.sn = sn;
+    }
+
+    @Size(min=0, max=64, message="工位号长度不能超过 64 个字符")
+    public String getOprno() {
+        return oprno;
+    }
+
+    public void setOprno(String oprno) {
+        this.oprno = oprno;
+    }
+
+    @Size(min=0, max=64, message="产线编号长度不能超过 64 个字符")
+    public String getLineSn() {
+        return lineSn;
+    }
+
+    public void setLineSn(String lineSn) {
+        this.lineSn = lineSn;
+    }
+
+    @Size(min=0, max=64, message="焊缝标识长度不能超过 64 个字符")
+    public String getHfFlag() {
+        return hfFlag;
+    }
+
+    public void setHfFlag(String hfFlag) {
+        this.hfFlag = hfFlag;
+    }
+
+    @Size(min=0, max=64, message="结果长度不能超过 64 个字符")
+    public String getResult() {
+        return result;
+    }
+
+    public void setResult(String result) {
+        this.result = result;
+    }
+
+    public Date createDate_gte() {
+        return sqlMap.getWhere().getValue("create_date", QueryType.GTE);
+    }
+
+    public void setCreateDate_gte(Date createDate) {
+        sqlMap.getWhere().and("create_date", QueryType.GTE, createDate);
+    }
+
+    public Date getCreateDate_lte() {
+        return sqlMap.getWhere().getValue("create_date", QueryType.LTE);
+    }
+
+    public void setCreateDate_lte(Date createDate) {
+        sqlMap.getWhere().and("create_date", QueryType.LTE, createDate);
+    }
+
+}

+ 10 - 0
src/main/java/com/jeesite/modules/mes/service/MesProductHfService.java

@@ -0,0 +1,10 @@
+package com.jeesite.modules.mes.service;
+
+import com.jeesite.common.service.CrudService;
+import com.jeesite.modules.mes.dao.MesProductHfDao;
+import com.jeesite.modules.mes.entity.MesProductHf;
+import org.springframework.stereotype.Service;
+
+@Service
+public class MesProductHfService extends CrudService<MesProductHfDao, MesProductHf> {
+}

+ 115 - 0
src/main/java/com/jeesite/modules/mes/web/MesProductRecordController.java

@@ -159,6 +159,9 @@ public class MesProductRecordController extends BaseController {
 	private MesProductHeliumService mesProductHeliumService;
 
 	@Autowired
+	private MesProductHfService mesProductHfService;
+
+	@Autowired
 	private MesBatchSnService mesBatchSnService;
 	@Autowired
 	private MesTorsionalProcessService mesTorsionalProcessService;
@@ -3248,6 +3251,118 @@ public class MesProductRecordController extends BaseController {
 		return renderResult(Global.TRUE, text("操作成功!"));
 	}
 
+	// ========== 气密检漏客户端(op110)接口 ==========
+	// 加工前质量校验,客户端用参数 ucode 传用户(无登录 session)
+	@PostMapping(value = "pccheck")
+	@ResponseBody
+	public CommonResp pccheck(HttpServletRequest request) {
+		mesLogService.apisave(request);
+		CommonResp<String> resp = new CommonResp<>();
+		String sn = request.getParameter("sn");
+		String oprno = request.getParameter("oprno");
+		String lineSn = request.getParameter("lineSn");
+		String userCode = request.getParameter("ucode");
+		String oldOprno = oprno;
+		oprno = CommonUitl.formatOprno(oprno);
+		resp.setResult(Global.FALSE);
+
+		if(StringUtils.isEmpty(sn) || StringUtils.isEmpty(oprno) || StringUtils.isEmpty(lineSn)){
+			resp.setMessage("参数错误");
+			return resp;
+		}
+
+		String ret = checkQualityResult(oldOprno,sn,lineSn,userCode);
+		if(ret.equals("RSUD")){
+			// 开始工作,记录开工时间
+			MesDeviceTime mesDeviceTime = new MesDeviceTime();
+			mesDeviceTime.setOprno(oldOprno);
+			mesDeviceTime.setSn(sn);
+			mesDeviceTime.setStartDate(new Date());
+			mesDeviceTime.setProductCate(lineSn);
+			try{
+				mesDeviceTimeService.add(mesDeviceTime);
+			}catch (Exception e){
+				ret = "RSNS";
+			}
+		}
+
+		if(ret.equals("RSUD")){
+			resp.setMessage("工件可以加工");
+			resp.setResult(Global.TRUE);
+		}else{
+			String lx = ret.substring(0,2);
+			String processMsgRet = ret.substring(2,4);
+			String lmsg = ErrorMsg.getErrorMsg(processMsgRet,lx);
+			resp.setMessage(lmsg);
+		}
+
+		resp.setData(ret.replace("RS",""));
+		return resp;
+	}
+
+	// 结果+漏点上传,漏点索引串 ldFlag 存入 mes_product_hf 表
+	@PostMapping(value = "pcresult")
+	@ResponseBody
+	@Transactional
+	public String pcresult(HttpServletRequest request) {
+		mesLogService.apisave(request);
+		String sn = request.getParameter("sn");
+		String oprno = request.getParameter("oprno");
+		String lineSn = request.getParameter("lineSn");
+		String result = request.getParameter("result");
+		String userCode = request.getParameter("ucode");
+		String remark = request.getParameter("remark");
+		String craft = "100000";
+
+		if(StringUtils.isEmpty(sn) || StringUtils.isEmpty(oprno) || StringUtils.isEmpty(result) || StringUtils.isEmpty(lineSn)){
+			return renderResult(Global.FALSE, text("参数错误!"));
+		}
+		if(!result.equals("OK") && !result.equals("NG")){
+			return renderResult(Global.FALSE, text("结果错误!"));
+		}
+
+		try{
+			// 保存漏点:检漏工位且 ldFlag 非空时,把漏点索引串存入 mes_product_hf
+			List<String> ldoprnos = ListUtils.newArrayList();
+			ldoprnos.add("OP080"); // TIG手工焊
+			ldoprnos.add("OP110"); // 捡漏一序
+			ldoprnos.add("OP130"); // TIG手工焊
+			ldoprnos.add("OP160"); // 捡漏二序
+			ldoprnos.add("OP180"); // 箱体气密一序
+			ldoprnos.add("OP185"); // 水道气密一序
+			ldoprnos.add("OP230"); // 箱体气密二序
+			ldoprnos.add("OP235"); // 水道气密二序
+			if(ldoprnos.contains(CommonUitl.formatOprno(oprno))){
+				String ldFlag = request.getParameter("ldFlag");
+				if(!StringUtils.isEmpty(ldFlag)){
+					MesProductHf mesProductHf = new MesProductHf();
+					mesProductHf.setSn(sn);
+					mesProductHf.setOprno(oprno);
+					mesProductHf.setLineSn(lineSn);
+					mesProductHf.setHfFlag(ldFlag);
+					mesProductHf.setResult(result);
+					mesProductHfService.save(mesProductHf);
+				}
+			}
+
+			// 主结果落库,复用 T09 现有 updateRecordResult
+			List<ParamsResp> params = new ArrayList<>();
+			ParamsResp paramsResp1 = new ParamsResp();
+			paramsResp1.setCraft("400001");
+			paramsResp1.setResult("OK");
+			paramsResp1.setVal(userCode);
+			params.add(paramsResp1); // 绑定用户
+
+			List<BindMaterialResp> bmlists = mesLineProcessMaterialService.getBindMaterial(oprno, lineSn);
+			mesProductRecordService.updateRecordResult(sn,oprno,craft,"",result,userCode,params,lineSn,true,bmlists);
+		}catch (Exception e){
+			e.printStackTrace();
+			return renderResult(Global.FALSE, text("操作失败!"));
+		}
+
+		return renderResult(Global.TRUE, text("操作成功!"));
+	}
+
 	// 绑定底护板
 	@PostMapping(value = "binddhb")
 	@ResponseBody