Procházet zdrojové kódy

Merge remote-tracking branch 'origin/master'

liuwei před 2 měsíci
rodič
revize
bacbbce4d3

+ 14 - 2
src/main/java/com/jeesite/modules/mes/entity/MesScrap.java

@@ -18,7 +18,8 @@ import java.util.List;
 @Table(name="mes_scrap", alias="a", label="报废记录信息", columns={
 		@Column(name="id", attrName="id", label="id", isPK=true),
 		@Column(name="sn", attrName="sn", label="工件码"),
-		@Column(name="reason", attrName="reason", label="报废原因"),
+		@Column(name="reason2", attrName="reason2", label="报废原因"),
+		@Column(name="reason", attrName="reason", label="报废原因备注"),
 		@Column(name="product_cate", attrName="productCate", label="报废类型"),
 		@Column(name="status", attrName="status", label="状态", isInsert=false, isUpdate=false, isQuery=false),
 		@Column(name="create_by", attrName="createBy", label="create_by", isUpdate=false, isQuery=false),
@@ -31,10 +32,19 @@ public class MesScrap extends DataEntity<MesScrap> {
 
 	private static final long serialVersionUID = 1L;
 	private String sn;		// 工件码
-	private String reason;		// 报废原因
+	private String reason2;		// 报废原因
+	private String reason;		// 报废原因备注
 	private List img = ListUtils.newArrayList();
 	private String productCate;  //报废类型
 
+	public String getReason2() {
+		return reason2;
+	}
+
+	public void setReason2(String reason2) {
+		this.reason2 = reason2;
+	}
+
 	@ExcelFields({
 			@ExcelField(title="工件码", attrName="sn", align= ExcelField.Align.CENTER, sort=20),
 //			@ExcelField(title="工位号", attrName="oprno", align= ExcelField.Align.CENTER, sort=30),
@@ -44,6 +54,8 @@ public class MesScrap extends DataEntity<MesScrap> {
 			@ExcelField(title="操作日期", attrName="updateDate", align= ExcelField.Align.CENTER, sort=90, dataFormat="yyyy-MM-dd hh:mm"),
 	})
 
+
+
 	public MesScrap() {
 		this(null);
 	}

+ 3 - 1
src/main/java/com/jeesite/modules/mes/service/MesMaterialLlService.java

@@ -135,6 +135,8 @@ public class MesMaterialLlService extends CrudService<MesMaterialLlDao, MesMater
 		return data;
 	}
 
+
+
 	/**
 	 * 按生产订单号 + 料号编码查备料(取最新一条)
 	 */
@@ -170,7 +172,7 @@ public class MesMaterialLlService extends CrudService<MesMaterialLlDao, MesMater
 	}
 
 	/** 数量保留一位小数(截断,不四舍五入),无法解析则原样返回(空串保持空) */
-	private String formatOneDecimal(String value) {
+	public String formatOneDecimal(String value) {
 		if (StringUtils.isBlank(value)) {
 			return "";
 		}

+ 8 - 4
src/main/java/com/jeesite/modules/mes/service/MesProductBfListService.java

@@ -1,7 +1,9 @@
 package com.jeesite.modules.mes.service;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -81,17 +83,19 @@ public class MesProductBfListService extends CrudService<MesProductBfListDao, Me
 	}
 
 	/**
-	 * 按报废类型查询报废原因字符串列表
+	 * 按报废类型查询报废原因列表,返回 [{title: reason}, ...]
 	 */
-	public List<String> findReasonList(MesProductBfList mesProductBfList) {
-		List<String> reasons = new ArrayList<>();
+	public List<Map<String, String>> findReasonList(MesProductBfList mesProductBfList) {
+		List<Map<String, String>> reasons = new ArrayList<>();
 		List<MesProductBfList> list = this.findList(mesProductBfList);
 		if (list == null || list.isEmpty()) {
 			return reasons;
 		}
 		for (MesProductBfList item : list) {
 			if (item != null && StringUtils.isNotBlank(item.getReason())) {
-				reasons.add(item.getReason());
+				Map<String, String> map = new HashMap<>();
+				map.put("title", item.getReason());
+				reasons.add(map);
 			}
 		}
 		return reasons;

+ 3 - 3
src/main/java/com/jeesite/modules/mes/service/MesScrapService.java

@@ -145,11 +145,11 @@ public class MesScrapService extends CrudService<MesScrapDao, MesScrap> {
 				}
 			}
 
-			// 汇总到一行:各报废原因列累计数量
+			// 汇总到一行:用 productCate(1/2/3) 定位车间列区,用 reason2 匹配缺陷列并累加
 			double[] values = new double[COL_COUNT];
 			if (list != null) {
 				for (MesScrap scrap : list) {
-					int col = matchDefectColumn(scrap.getProductCate(), scrap.getReason(), headers);
+					int col = matchDefectColumn(scrap.getProductCate(), scrap.getReason2(), headers);
 					if (col >= 0) {
 						values[col] += 1;
 					}
@@ -246,7 +246,7 @@ public class MesScrapService extends CrudService<MesScrapDao, MesScrap> {
 	}
 
 	/**
-	 * 按报废类型 + 报废原因匹配模板缺陷列
+	 * 按报废类型 + reason2 匹配模板缺陷列
 	 * productCate: 1=压铸车间, 2=精加工, 3=装配全检包装
 	 */
 	private int matchDefectColumn(String productCate, String reason, String[] headers) {

+ 22 - 8
src/main/java/com/jeesite/modules/mes/web/MesMaterialRkController.java

@@ -12,13 +12,10 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.jeesite.common.lang.DateUtils;
 import com.jeesite.common.lang.StringUtils;
-import com.jeesite.modules.mes.entity.MesMaterial;
-import com.jeesite.modules.mes.entity.MesMaterialCheckRecord;
-import com.jeesite.modules.mes.entity.MesMaterialReport;
+import com.jeesite.common.service.ServiceException;
+import com.jeesite.modules.mes.entity.*;
 import com.jeesite.modules.mes.resp.CommonResp;
-import com.jeesite.modules.mes.service.MesMaterialCheckRecordService;
-import com.jeesite.modules.mes.service.MesMaterialReportService;
-import com.jeesite.modules.mes.service.MesMaterialService;
+import com.jeesite.modules.mes.service.*;
 import com.jeesite.modules.mes.util.U9cAuthUtil;
 import com.jeesite.modules.sys.utils.EmpUtils;
 import com.jeesite.modules.sys.utils.UserUtils;
@@ -37,8 +34,6 @@ import com.jeesite.common.config.Global;
 import com.jeesite.common.entity.DataEntity;
 import com.jeesite.common.entity.Page;
 import com.jeesite.common.web.BaseController;
-import com.jeesite.modules.mes.entity.MesMaterialRk;
-import com.jeesite.modules.mes.service.MesMaterialRkService;
 
 /**
  * 采购入库单Controller
@@ -60,6 +55,8 @@ public class MesMaterialRkController extends BaseController {
 
 	@Autowired
 	private MesMaterialReportService mesMaterialReportService;
+	@Autowired
+	private MesMaterialLlService mesMaterialLlService;
 
 	/**
 	 * 获取数据
@@ -157,6 +154,9 @@ public class MesMaterialRkController extends BaseController {
 	@ResponseBody
 	public CommonResp jxCode(HttpServletRequest req) {
 		String materialCode = req.getParameter("materialCode");
+		String orderId = req.getParameter("orderId");
+		String numsYl="";
+		String numsQr="";
 		CommonResp<Map<String, Object>> resp = new CommonResp<>();
 
 
@@ -189,6 +189,8 @@ public class MesMaterialRkController extends BaseController {
 			resp.setMessage("二维码规则不正确!");
 			return resp;
 		}
+		MesMaterialBl mesMaterialBl = new MesMaterialBl();
+
 
 		Long srcDocLineNo;
 		Double pcQty;
@@ -265,6 +267,18 @@ public class MesMaterialRkController extends BaseController {
 		String bhgQty = StringUtils.defaultIfBlank(checkRecord.getBhgQty(), "");
 		data.put("hgQty", hgQty);   // 合格数量(来自检查记录)
 		data.put("bhgQty", bhgQty); // 不合格数量(来自检查记录)
+		if (orderId!=null){
+			mesMaterialBl = mesMaterialLlService.findBlByMoAndItem(orderId, erpSn);
+			if (mesMaterialBl == null) {
+				throw new ServiceException(text("未找到对应备料信息!"));
+			}
+			data.put("numsYl", StringUtils.defaultIfBlank(mesMaterialBl.getNumsYl(), "")); // 已领取数量
+			data.put("numsQr", mesMaterialLlService.formatOneDecimal(mesMaterialBl.getNumsQr())); // 领取数量(备料确认数量,保留1位小数)
+		}else {
+			data.put("numsYl",numsYl);
+			data.put("numsQr",numsQr);
+		}
+
 
 		resp.setData(data);
 		resp.setResult(Global.TRUE);

+ 2 - 1
src/main/java/com/jeesite/modules/mes/web/MesProductBfListController.java

@@ -1,6 +1,7 @@
 package com.jeesite.modules.mes.web;
 
 import java.util.List;
+import java.util.Map;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -100,7 +101,7 @@ public class MesProductBfListController extends BaseController {
 	@RequestMapping(value = "reasonList")
 	@ResponseBody
 	public String reasonList(MesProductBfList mesProductBfList) {
-		List<String> reasons = mesProductBfListService.findReasonList(mesProductBfList);
+		List<Map<String, String>> reasons = mesProductBfListService.findReasonList(mesProductBfList);
 		return renderResult(Global.TRUE, text("查询成功!"), reasons);
 	}
 

+ 21 - 0
src/main/java/com/jeesite/modules/mes/web/MesScrapController.java

@@ -184,6 +184,11 @@ public class MesScrapController extends BaseController {
 
 		mesScrap.setPage(new Page<>(request, response));
 		Page<MesScrap> page = mesScrapService.findPage(mesScrap);
+		if (page != null && page.getList() != null) {
+			for (MesScrap item : page.getList()) {
+				item.setProductCate(formatProductCate(item.getProductCate()));
+			}
+		}
 
 		CommonResp<Page> resp = new CommonResp<>();
 
@@ -193,6 +198,22 @@ public class MesScrapController extends BaseController {
 	}
 
 	/**
+	 * 报废类型:1=压铸车间, 2=精加工, 3=装配全检包装
+	 */
+	private String formatProductCate(String productCate) {
+		if ("1".equals(productCate)) {
+			return "压铸车间";
+		}
+		if ("2".equals(productCate)) {
+			return "精加工";
+		}
+		if ("3".equals(productCate)) {
+			return "装配全检包装";
+		}
+		return productCate;
+	}
+
+	/**
 	 * 详情
 	 */
 	@RequiresPermissions("mes:mesScrap:api")

+ 2 - 1
src/main/resources/views/modules/mes/mesScrapList.html

@@ -68,7 +68,8 @@ $('#dataGrid').dataGrid({
 			var map = {'1':'压铸车间','2':'精加工','3':'装配全检包装'};
 			return map[val] || val || '';
 		}},
-		{header:'${text("报废原因")}', name:'reason', index:'a.reason', width:150, align:"center"},
+		{header:'${text("报废原因")}', name:'reason2', index:'a.reason2', width:150, align:"center"},
+		{header:'${text("备注")}', name:'reason', index:'a.reason', width:150, align:"center"},
 		{header:'${text("操作人")}', name:'createBy', index:'a.create_by', width:150, align:"center"},
 		{header:'${text("日期")}', name:'updateDate', index:'a.update_date', width:150, align:"center"},
 		{header:'${text("操作")}', name:'actions', width:120, formatter: function(val, obj, row, act){