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( ResponseData response = workOrderAllocService.executeWorkOrderAlloc(
request.getQuery(), request.getQuery(),
request.getOrderNoList(),
request.getOrderList(),
currentUser, currentUser,
request.isAllocAll() request.isAllocAll()
); );
@ -91,8 +91,8 @@ public class WorkOrderAllocController extends AbstractController {
* 执行工单数据回传调用U8接口 * 执行工单数据回传调用U8接口
*/ */
@PostMapping("/executeSync") @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()) { if (response.isSuccess()) {
return R.ok(response.getMsg()); return R.ok(response.getMsg());
} else { } else {
@ -106,7 +106,25 @@ public class WorkOrderAllocController extends AbstractController {
@lombok.Data @lombok.Data
public static class WorkOrderAllocRequest { public static class WorkOrderAllocRequest {
private SearchShopOrder query; private SearchShopOrder query;
private List<String> orderNoList;
private List<OrderSiteItem> orderList; // 包含orderNo和site的列表
private boolean allocAll; 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.pda.utils.ResponseData;
import com.gaotao.modules.pms.util.HttpClientUtil; import com.gaotao.modules.pms.util.HttpClientUtil;
import com.gaotao.modules.report.dao.ProcedureDao; 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.dao.WorkOrderAllocMapper;
import com.gaotao.modules.shopOrder.entity.SearchShopOrder; import com.gaotao.modules.shopOrder.entity.SearchShopOrder;
import com.gaotao.modules.shopOrder.entity.UspWorkOrderAllocData; import com.gaotao.modules.shopOrder.entity.UspWorkOrderAllocData;
@ -74,7 +75,7 @@ public class WorkOrderAllocServiceImpl implements WorkOrderAllocService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @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(); ResponseData responseData = new ResponseData();
try { try {
log.info("开始执行工单数据汇总,操作人:{},汇总所有:{}", currentUser, allocAll); log.info("开始执行工单数据汇总,操作人:{},汇总所有:{}", currentUser, allocAll);
@ -85,12 +86,12 @@ public class WorkOrderAllocServiceImpl implements WorkOrderAllocService {
workOrderAllocMapper.insertAllocTempByQuery(query); workOrderAllocMapper.insertAllocTempByQuery(query);
log.info("已根据查询条件插入临时表"); log.info("已根据查询条件插入临时表");
} else { } 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传空字符串 // 2. 调用存储过程orderNo传空字符串
@ -134,13 +135,30 @@ public class WorkOrderAllocServiceImpl implements WorkOrderAllocService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public ResponseData executeWorkOrderSync(UspWorkOrderAllocData data) {
public ResponseData executeWorkOrderSync(String site, List<OrderSiteItem> orderList) {
ResponseData responseData = new ResponseData(); ResponseData responseData = new ResponseData();
try { try {
log.info("开始执行工单数据回传"); log.info("开始执行工单数据回传");
// 1. 查询未传输的数据 // 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()) { if (unSyncedList == null || unSyncedList.isEmpty()) {
responseData.setCode("200"); 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.common.utils.PageUtils;
import com.gaotao.modules.pda.utils.ResponseData; 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.SearchShopOrder;
import com.gaotao.modules.shopOrder.entity.UspWorkOrderAllocData; import com.gaotao.modules.shopOrder.entity.UspWorkOrderAllocData;
@ -31,17 +32,18 @@ public interface WorkOrderAllocService {
/** /**
* 执行工单数据汇总调用存储过程 * 执行工单数据汇总调用存储过程
* @param query 查询条件用于汇总所有时 * @param query 查询条件用于汇总所有时
* @param orderNoList 工单列表选择的工单
* @param orderList 工单列表包含orderNo和site
* @param currentUser 当前登录人 * @param currentUser 当前登录人
* @param allocAll 是否汇总所有true汇总查询条件下所有工单false只汇总选中的 * @param allocAll 是否汇总所有true汇总查询条件下所有工单false只汇总选中的
* @return 执行结果 * @return 执行结果
*/ */
ResponseData executeWorkOrderAlloc(SearchShopOrder query, List<String> orderNoList, String currentUser, boolean allocAll);
ResponseData executeWorkOrderAlloc(SearchShopOrder query, List<OrderSiteItem> orderList, String currentUser, boolean allocAll);
/** /**
* 执行工单数据回传调用U8接口 * 执行工单数据回传调用U8接口
* @param data 查询条件包含工单筛选条件
* @param site 默认site无选中行时使用
* @param orderList 工单列表包含orderNo和site
* @return 执行结果 * @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.site,
a.bu_no, a.bu_no,
a.order_no, a.order_no,
A.box_no,
COUNT(DISTINCT a.box_no) AS box_count, --箱标签张数 COUNT(DISTINCT a.box_no) AS box_count, --箱标签张数
COUNT(DISTINCT b.final_roll_no) AS roll_count, --卷标签张数 COUNT(DISTINCT b.final_roll_no) AS roll_count, --卷标签张数
ISNULL(SUM(roll_qty),0) AS rollsCount --物料总数 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 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> <where>
s.site = #{site} and s.bu_no = #{buNo} s.site = #{site} and s.bu_no = #{buNo}
<if test="orderNo != null and orderNo != ''"> <if test="orderNo != null and orderNo != ''">

Loading…
Cancel
Save