|
|
@@ -1,13 +1,20 @@
|
|
|
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;
|
|
|
@@ -24,6 +31,7 @@ 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;
|
|
|
@@ -41,6 +49,9 @@ public class MesProductOrderController extends BaseController {
|
|
|
@Autowired
|
|
|
private MesProductOrderService mesProductOrderService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private MesProductReportService mesProductReportService;
|
|
|
+
|
|
|
/**
|
|
|
* 获取数据
|
|
|
*/
|
|
|
@@ -114,11 +125,52 @@ public class MesProductOrderController extends BaseController {
|
|
|
//展示所有未结束的订单
|
|
|
mesProductOrder.setState("1");//0=草稿 1=下发 2=完成
|
|
|
List<MesProductOrder> list = mesProductOrderService.findList(mesProductOrder);
|
|
|
+ fillNowNumsFromProductReport(list);
|
|
|
resp.setData(list);
|
|
|
resp.setResult(Global.TRUE);
|
|
|
resp.setMessage("操作成功!");
|
|
|
return resp;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 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生产订单详情
|
|
|
*/
|