Browse Source

2026-02-05

优化
master
fengyuan_yang 3 weeks ago
parent
commit
2553b18b7b
  1. 26
      src/main/java/com/gaotao/modules/shopOrder/controller/WorkOrderAllocController.java
  2. 34
      src/main/java/com/gaotao/modules/shopOrder/service/Impl/WorkOrderAllocServiceImpl.java
  3. 10
      src/main/java/com/gaotao/modules/shopOrder/service/WorkOrderAllocService.java
  4. 6
      src/main/resources/mapper/boxManage/BoxForNotificationMapper.xml

26
src/main/java/com/gaotao/modules/shopOrder/controller/WorkOrderAllocController.java

@ -75,7 +75,7 @@ public class WorkOrderAllocController extends AbstractController {
ResponseData response = workOrderAllocService.executeWorkOrderAlloc(
request.getQuery(),
request.getOrderNoList(),
request.getOrderList(),
currentUser,
request.isAllocAll()
);
@ -91,8 +91,8 @@ public class WorkOrderAllocController extends AbstractController {
* 执行工单数据回传调用U8接口
*/
@PostMapping("/executeSync")
public R executeSync(@RequestBody UspWorkOrderAllocData params) {
ResponseData response = workOrderAllocService.executeWorkOrderSync(params);
public R executeSync(@RequestBody WorkOrderSyncRequest request) {
ResponseData response = workOrderAllocService.executeWorkOrderSync(request.getSite(), request.getOrderList());
if (response.isSuccess()) {
return R.ok(response.getMsg());
} else {
@ -106,7 +106,25 @@ public class WorkOrderAllocController extends AbstractController {
@lombok.Data
public static class WorkOrderAllocRequest {
private SearchShopOrder query;
private List<String> orderNoList;
private List<OrderSiteItem> orderList; // 包含orderNo和site的列表
private boolean allocAll;
}
/**
* 工单数据回传请求DTO
*/
@lombok.Data
public static class WorkOrderSyncRequest {
private String site;
private List<OrderSiteItem> orderList; // 包含orderNo和site的列表
}
/**
* 工单和Site信息
*/
@lombok.Data
public static class OrderSiteItem {
private String orderNo;
private String site;
}
}

34
src/main/java/com/gaotao/modules/shopOrder/service/Impl/WorkOrderAllocServiceImpl.java

@ -5,6 +5,7 @@ import com.gaotao.common.utils.PageUtils;
import com.gaotao.modules.pda.utils.ResponseData;
import com.gaotao.modules.pms.util.HttpClientUtil;
import com.gaotao.modules.report.dao.ProcedureDao;
import com.gaotao.modules.shopOrder.controller.WorkOrderAllocController.OrderSiteItem;
import com.gaotao.modules.shopOrder.dao.WorkOrderAllocMapper;
import com.gaotao.modules.shopOrder.entity.SearchShopOrder;
import com.gaotao.modules.shopOrder.entity.UspWorkOrderAllocData;
@ -74,7 +75,7 @@ public class WorkOrderAllocServiceImpl implements WorkOrderAllocService {
@Override
@Transactional(rollbackFor = Exception.class)
public ResponseData executeWorkOrderAlloc(SearchShopOrder query, List<String> orderNoList, String currentUser, boolean allocAll) {
public ResponseData executeWorkOrderAlloc(SearchShopOrder query, List<OrderSiteItem> orderList, String currentUser, boolean allocAll) {
ResponseData responseData = new ResponseData();
try {
log.info("开始执行工单数据汇总,操作人:{},汇总所有:{}", currentUser, allocAll);
@ -85,12 +86,12 @@ public class WorkOrderAllocServiceImpl implements WorkOrderAllocService {
workOrderAllocMapper.insertAllocTempByQuery(query);
log.info("已根据查询条件插入临时表");
} else {
// 汇总选中的逐条插入临时表
String site = query.getSite() != null ? query.getSite() : "";
for (String orderNo : orderNoList) {
workOrderAllocMapper.insertAllocTemp(site, orderNo);
// 汇总选中的逐条插入临时表使用每行自己的site
for (OrderSiteItem item : orderList) {
String site = item.getSite() != null ? item.getSite() : "";
workOrderAllocMapper.insertAllocTemp(site, item.getOrderNo());
}
log.info("已插入{}条选中的工单到临时表", orderNoList.size());
log.info("已插入{}条选中的工单到临时表", orderList.size());
}
// 2. 调用存储过程orderNo传空字符串
@ -134,13 +135,30 @@ public class WorkOrderAllocServiceImpl implements WorkOrderAllocService {
@Override
@Transactional(rollbackFor = Exception.class)
public ResponseData executeWorkOrderSync(UspWorkOrderAllocData data) {
public ResponseData executeWorkOrderSync(String site, List<OrderSiteItem> orderList) {
ResponseData responseData = new ResponseData();
try {
log.info("开始执行工单数据回传");
// 1. 查询未传输的数据
List<UspWorkOrderAllocData> unSyncedList = workOrderAllocMapper.selectUnSyncedData(data);
List<UspWorkOrderAllocData> unSyncedList = new ArrayList<>();
if (orderList != null && !orderList.isEmpty()) {
// 有选中行时按每行的site和orderNo查询
for (OrderSiteItem item : orderList) {
UspWorkOrderAllocData queryData = new UspWorkOrderAllocData();
queryData.setSite(item.getSite());
queryData.setOrderNo(item.getOrderNo());
List<UspWorkOrderAllocData> itemList = workOrderAllocMapper.selectUnSyncedData(queryData);
if (itemList != null) {
unSyncedList.addAll(itemList);
}
}
} else {
// 没有选中行时使用默认site查询
UspWorkOrderAllocData queryData = new UspWorkOrderAllocData();
queryData.setSite(site);
unSyncedList = workOrderAllocMapper.selectUnSyncedData(queryData);
}
if (unSyncedList == null || unSyncedList.isEmpty()) {
responseData.setCode("200");

10
src/main/java/com/gaotao/modules/shopOrder/service/WorkOrderAllocService.java

@ -2,6 +2,7 @@ package com.gaotao.modules.shopOrder.service;
import com.gaotao.common.utils.PageUtils;
import com.gaotao.modules.pda.utils.ResponseData;
import com.gaotao.modules.shopOrder.controller.WorkOrderAllocController.OrderSiteItem;
import com.gaotao.modules.shopOrder.entity.SearchShopOrder;
import com.gaotao.modules.shopOrder.entity.UspWorkOrderAllocData;
@ -31,17 +32,18 @@ public interface WorkOrderAllocService {
/**
* 执行工单数据汇总调用存储过程
* @param query 查询条件用于汇总所有时
* @param orderNoList 工单列表选择的工单
* @param orderList 工单列表包含orderNo和site
* @param currentUser 当前登录人
* @param allocAll 是否汇总所有true汇总查询条件下所有工单false只汇总选中的
* @return 执行结果
*/
ResponseData executeWorkOrderAlloc(SearchShopOrder query, List<String> orderNoList, String currentUser, boolean allocAll);
ResponseData executeWorkOrderAlloc(SearchShopOrder query, List<OrderSiteItem> orderList, String currentUser, boolean allocAll);
/**
* 执行工单数据回传调用U8接口
* @param data 查询条件包含工单筛选条件
* @param site 默认site无选中行时使用
* @param orderList 工单列表包含orderNo和site
* @return 执行结果
*/
ResponseData executeWorkOrderSync(UspWorkOrderAllocData data);
ResponseData executeWorkOrderSync(String site, List<OrderSiteItem> orderList);
}

6
src/main/resources/mapper/boxManage/BoxForNotificationMapper.xml

@ -30,12 +30,14 @@
a.site,
a.bu_no,
a.order_no,
A.box_no,
COUNT(DISTINCT a.box_no) AS box_count, --箱标签张数
COUNT(DISTINCT b.final_roll_no) AS roll_count, --卷标签张数
ISNULL(SUM(roll_qty),0) AS rollsCount --物料总数
from so_receive_boxes a with(nolock)
from so_receive_boxes a with(nolock)
LEFT join so_receive_box_rolls b with(nolock) on a.site = b.site and a.bu_no = b.bu_no and a.box_no = b.box_no
WHERE a.SITE = #{site} AND a.bu_no = #{buNo} and a.order_no = #{orderNo} group by a.site, a.bu_no, a.order_no) T ON S.site = T.site AND S.bu_no = T.bu_no AND S.order_no = T.order_no
WHERE a.SITE = #{site} AND a.bu_no = #{buNo} and a.order_no = #{orderNo}
group by a.site, a.bu_no, a.order_no,A.box_no) T ON S.site = T.site AND S.bu_no = T.bu_no AND S.order_no = T.order_no AND T.box_no = S.box_no
<where>
s.site = #{site} and s.bu_no = #{buNo}
<if test="orderNo != null and orderNo != ''">

Loading…
Cancel
Save