Pārlūkot izejas kodu

pda接口优化

liuwei 2 mēneši atpakaļ
vecāks
revīzija
61212e1454

+ 50 - 0
src/main/java/com/jeesite/modules/erp/service/MesProductOrderService.java

@@ -1,9 +1,16 @@
 package com.jeesite.modules.erp.service;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import com.jeesite.modules.mes.entity.MesMaterial;
+import com.jeesite.modules.mes.entity.MesProductReport;
 import com.jeesite.modules.mes.service.MesMaterialService;
+import com.jeesite.modules.mes.service.MesProductReportService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -11,6 +18,7 @@ import org.springframework.transaction.annotation.Transactional;
 import com.jeesite.common.collect.ListUtils;
 import com.jeesite.common.entity.Page;
 import com.jeesite.common.lang.StringUtils;
+import com.jeesite.common.mybatis.mapper.query.QueryType;
 import com.jeesite.common.service.CrudService;
 import com.jeesite.common.service.ServiceException;
 import com.jeesite.modules.erp.entity.MesProductOrder;
@@ -30,6 +38,8 @@ public class MesProductOrderService extends CrudService<MesProductOrderDao, MesP
 	private MesMaterialBlService mesMaterialBlService;
 	@Autowired
 	private MesMaterialService mesMaterialService;
+	@Autowired
+	private MesProductReportService mesProductReportService;
 
 	/**
 	 * 获取单条数据
@@ -97,6 +107,46 @@ public class MesProductOrderService extends CrudService<MesProductOrderDao, MesP
 	}
 
 	/**
+	 * nowNums = 同生产订单号(sn = moDocNo)下完工报告入库数量 completeQty 之和(仅填充返回值,不落库)
+	 */
+	public void fillNowNumsFromProductReport(List<MesProductOrder> orders) {
+		if (orders == null || orders.isEmpty()) {
+			return;
+		}
+		List<String> sns = new ArrayList<>();
+		for (MesProductOrder order : orders) {
+			if (StringUtils.isNotBlank(order.getSn())) {
+				sns.add(order.getSn());
+			}
+			order.setNowNums(0);
+		}
+		if (sns.isEmpty()) {
+			return;
+		}
+		MesProductReport query = new MesProductReport();
+		query.getSqlMap().getWhere().and("mo_doc_no", QueryType.IN, sns);
+		List<MesProductReport> reports = mesProductReportService.findList(query);
+		Map<String, BigDecimal> sumMap = new HashMap<>();
+		for (MesProductReport report : reports) {
+			if (StringUtils.isBlank(report.getMoDocNo()) || StringUtils.isBlank(report.getCompleteQty())) {
+				continue;
+			}
+			try {
+				BigDecimal qty = new BigDecimal(report.getCompleteQty().trim());
+				sumMap.merge(report.getMoDocNo(), qty, BigDecimal::add);
+			} catch (NumberFormatException ignored) {
+				// 非法数量跳过
+			}
+		}
+		for (MesProductOrder order : orders) {
+			BigDecimal sum = sumMap.get(order.getSn());
+			if (sum != null) {
+				order.setNowNums(sum.setScale(0, RoundingMode.HALF_UP).intValue());
+			}
+		}
+	}
+
+	/**
 	 * 接收 ERP 下发生产订单及备料清单
 	 */
 	@Transactional

+ 1 - 51
src/main/java/com/jeesite/modules/erp/web/MesProductOrderController.java

@@ -1,20 +1,13 @@
 package com.jeesite.modules.erp.web;
 
-import java.math.BigDecimal;
-import java.math.RoundingMode;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import com.jeesite.modules.mes.entity.MesProductReport;
 import com.jeesite.modules.mes.resp.CommonResp;
-import com.jeesite.modules.mes.service.MesProductReportService;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -31,7 +24,6 @@ import com.alibaba.fastjson.JSONObject;
 import com.jeesite.common.config.Global;
 import com.jeesite.common.entity.Page;
 import com.jeesite.common.lang.StringUtils;
-import com.jeesite.common.mybatis.mapper.query.QueryType;
 import com.jeesite.common.service.ServiceException;
 import com.jeesite.common.web.BaseController;
 import com.jeesite.modules.erp.entity.MesProductOrder;
@@ -49,9 +41,6 @@ public class MesProductOrderController extends BaseController {
 	@Autowired
 	private MesProductOrderService mesProductOrderService;
 
-	@Autowired
-	private MesProductReportService mesProductReportService;
-
 	/**
 	 * 获取数据
 	 */
@@ -125,7 +114,7 @@ public class MesProductOrderController extends BaseController {
 		//展示所有未结束的订单
 		mesProductOrder.setState("1");//0=草稿 1=下发 2=完成
 		List<MesProductOrder> list = mesProductOrderService.findList(mesProductOrder);
-		fillNowNumsFromProductReport(list);
+		mesProductOrderService.fillNowNumsFromProductReport(list);
 		resp.setData(list);
 		resp.setResult(Global.TRUE);
 		resp.setMessage("操作成功!");
@@ -133,45 +122,6 @@ public class MesProductOrderController extends BaseController {
 	}
 
 	/**
-	 * nowNums = 同生产订单号(sn = moDocNo)下完工报告入库数量 completeQty 之和
-	 */
-	private void fillNowNumsFromProductReport(List<MesProductOrder> orders) {
-		if (orders == null || orders.isEmpty()) {
-			return;
-		}
-		List<String> sns = new ArrayList<>();
-		for (MesProductOrder order : orders) {
-			if (StringUtils.isNotBlank(order.getSn())) {
-				sns.add(order.getSn());
-			}
-			order.setNowNums(0);
-		}
-		if (sns.isEmpty()) {
-			return;
-		}
-		MesProductReport query = new MesProductReport();
-		query.getSqlMap().getWhere().and("mo_doc_no", QueryType.IN, sns);
-		List<MesProductReport> reports = mesProductReportService.findList(query);
-		Map<String, BigDecimal> sumMap = new HashMap<>();
-		for (MesProductReport report : reports) {
-			if (StringUtils.isBlank(report.getMoDocNo()) || StringUtils.isBlank(report.getCompleteQty())) {
-				continue;
-			}
-			try {
-				BigDecimal qty = new BigDecimal(report.getCompleteQty().trim());
-				sumMap.merge(report.getMoDocNo(), qty, BigDecimal::add);
-			} catch (NumberFormatException ignored) {
-				// 非法数量跳过
-			}
-		}
-		for (MesProductOrder order : orders) {
-			BigDecimal sum = sumMap.get(order.getSn());
-			if (sum != null) {
-				order.setNowNums(sum.setScale(0, RoundingMode.HALF_UP).intValue());
-			}
-		}
-	}
-	/**
 	 * pda生产订单详情
 	 */
 //	@RequiresPermissions("erp:mesProductOrder:view")

+ 1 - 0
src/main/java/com/jeesite/modules/mes/api/MesProductOrderControllerApi.java

@@ -37,6 +37,7 @@ public class MesProductOrderControllerApi {
         mesProductOrder.setState("1");//0=草稿 1=下发 2=完成
 //        mesProductOrder.setLineSn(lineSn);
         List<MesProductOrder> list = mesProductOrderService.findList(mesProductOrder);
+        mesProductOrderService.fillNowNumsFromProductReport(list);
         resp.setData(list);
         resp.setResult(Global.TRUE);
         resp.setMessage("操作成功!");