diff --git a/src/main/java/com/gaotao/modules/shopOrder/dao/WorkOrderAllocMapper.java b/src/main/java/com/gaotao/modules/shopOrder/dao/WorkOrderAllocMapper.java index 51a345d..0b92e1c 100644 --- a/src/main/java/com/gaotao/modules/shopOrder/dao/WorkOrderAllocMapper.java +++ b/src/main/java/com/gaotao/modules/shopOrder/dao/WorkOrderAllocMapper.java @@ -24,6 +24,13 @@ public interface WorkOrderAllocMapper { * @return 生产订单列表 */ List searchShopOrderForAlloc(@Param("query") SearchShopOrder query); + + /** + * 根据报工日期查询工单号集合(用于工单数据汇总查询) + * @param query 查询条件 + * @return 工单号列表 + */ + List selectOrderNosByReportDate(@Param("query") SearchShopOrder query); /** * 根据allocType查询工单汇总数据 diff --git a/src/main/java/com/gaotao/modules/shopOrder/entity/SearchShopOrder.java b/src/main/java/com/gaotao/modules/shopOrder/entity/SearchShopOrder.java index 70239a9..a2e49c0 100644 --- a/src/main/java/com/gaotao/modules/shopOrder/entity/SearchShopOrder.java +++ b/src/main/java/com/gaotao/modules/shopOrder/entity/SearchShopOrder.java @@ -86,10 +86,17 @@ public class SearchShopOrder extends QueryPage { @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") private Date date4; + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date reportDate1; + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date reportDate2; private String user; private String batchNo; private String buNo; private List statusList; + private List orderNoList; private BigDecimal alreadyApplyTotal; private Integer apsResourceTotal; private Integer notYetStartedResourceTotal; @@ -518,6 +525,22 @@ public class SearchShopOrder extends QueryPage { this.date4 = date4; } + public Date getReportDate1() { + return reportDate1; + } + + public void setReportDate1(Date reportDate1) { + this.reportDate1 = reportDate1; + } + + public Date getReportDate2() { + return reportDate2; + } + + public void setReportDate2(Date reportDate2) { + this.reportDate2 = reportDate2; + } + public String getUser() { return user; } @@ -550,6 +573,14 @@ public class SearchShopOrder extends QueryPage { this.statusList = statusList; } + public List getOrderNoList() { + return orderNoList; + } + + public void setOrderNoList(List orderNoList) { + this.orderNoList = orderNoList; + } + public BigDecimal getAlreadyApplyTotal() { return alreadyApplyTotal; } diff --git a/src/main/java/com/gaotao/modules/shopOrder/service/Impl/WorkOrderAllocServiceImpl.java b/src/main/java/com/gaotao/modules/shopOrder/service/Impl/WorkOrderAllocServiceImpl.java index dd37d82..b379479 100644 --- a/src/main/java/com/gaotao/modules/shopOrder/service/Impl/WorkOrderAllocServiceImpl.java +++ b/src/main/java/com/gaotao/modules/shopOrder/service/Impl/WorkOrderAllocServiceImpl.java @@ -46,14 +46,37 @@ public class WorkOrderAllocServiceImpl implements WorkOrderAllocService { @Override public PageUtils searchShopOrderForAlloc(SearchShopOrder query) { + int pageSize = query.getLimit() > 0 ? query.getLimit() : 20; + int offset = query.getPage(); + int currPage = offset / pageSize + 1; + + // 生产订单号或录入日期优先,按需求清空报工日期区间 + if ((query.getOrderNo() != null && !query.getOrderNo().trim().isEmpty()) + || query.getDate1() != null + || query.getDate2() != null) { + query.setReportDate1(null); + query.setReportDate2(null); + } + + query.setOrderNoList(null); + if (query.getReportDate1() != null || query.getReportDate2() != null) { + // 选择报工日期时,按需求忽略生产订单号和录入日期条件 + query.setOrderNo(null); + query.setDate1(null); + query.setDate2(null); + + List orderNoList = workOrderAllocMapper.selectOrderNosByReportDate(query); + if (orderNoList == null || orderNoList.isEmpty()) { + return new PageUtils(new ArrayList<>(), 0, pageSize, currPage); + } + query.setOrderNoList(orderNoList); + } + // 查询数据 List list = workOrderAllocMapper.searchShopOrderForAlloc(query); // 构建分页结果 int total = list.size(); - int pageSize = query.getLimit() > 0 ? query.getLimit() : 20; - int offset = query.getPage(); - int currPage = offset / pageSize + 1; // 手动分页处理 int fromIndex = offset; @@ -95,11 +118,13 @@ public class WorkOrderAllocServiceImpl implements WorkOrderAllocService { log.info("已插入{}条选中的工单到临时表", orderList.size()); } - // 2. 调用存储过程,orderNo传* + // 2. 调用存储过程,orderNo传*,并传入报工日期区间(字符串) List params = new ArrayList<>(); params.add(query.getSite() != null ? query.getSite() : ""); params.add("*"); // orderNo传"*"表示存储过程内不再过滤订单号,直接使用临时表数据 params.add(currentUser); + params.add(formatDateParam(query.getReportDate1())); + params.add(formatDateParam(query.getReportDate2())); List> resultList = procedureDao.getProcedureData("UspInsertWorkOrderAlloc", params); @@ -320,4 +345,11 @@ public class WorkOrderAllocServiceImpl implements WorkOrderAllocService { } return responseData; } + + private String formatDateParam(Date date) { + if (date == null) { + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd").format(date); + } } diff --git a/src/main/resources/mapper/shopOrder/WorkOrderAllocMapper.xml b/src/main/resources/mapper/shopOrder/WorkOrderAllocMapper.xml index a2fb5e2..6405105 100644 --- a/src/main/resources/mapper/shopOrder/WorkOrderAllocMapper.xml +++ b/src/main/resources/mapper/shopOrder/WorkOrderAllocMapper.xml @@ -2,6 +2,64 @@ + + and T.site in (Select Site from AccessSite where upper(UserID)=#{query.user}) + + AND T.OrderType like '%' + #{query.orderType} + '%' + + + AND T.Planner like '%' + #{query.planner} + '%' + + + AND T.Site like '%' + #{query.site} + '%' + + + AND T.bu_no like '%' + #{query.buNo} + '%' + + + AND p.PartType like '%' + #{query.partType} + '%' + + + AND T.PartNo like '%' + #{query.partNo} + '%' + + + AND T.Status = #{query.status} + + + AND T.Status in + + #{item} + + + + AND p.PartDescription like '%' + #{query.partDescription} + '%' + + + AND T.ProjectID like '%' + #{query.projectID} + '%' + + + AND T.Remark like '%' + #{query.remark} + '%' + + + AND T.OrderRef1 like '%' + #{query.orderRef1} + '%' + + + AND CostRollUpFlag like '%' + #{query.costRollUpFlag} + '%' + + + AND T.EnterDate >= #{query.date1} + + + AND dateadd(DAY, 1, #{query.date2}) > T.EnterDate + + + AND T.NeedDate >= #{query.date3} + + + AND dateadd(DAY, 1, #{query.date4}) > T.NeedDate + + + + + +