qiangxuan 1 月之前
父節點
當前提交
19ca88b5b9
共有 17 個文件被更改,包括 22 次插入1568 次删除
  1. 5 87
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/billetHotsendChangeShift/controller/BilletHotsendChangeShiftController.java
  2. 3 3
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/billetHotsendChangeShift/entity/BilletShiftPerformance.java
  3. 0 64
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollDeputyCross/vue3/RollDeputyCross.api.ts
  4. 0 235
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollDeputyCross/vue3/RollDeputyCross.data.ts
  5. 0 64
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollDeputyCross/vue3/RollDeputyCrossDetails.api.ts
  6. 0 221
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollDeputyCross/vue3/RollDeputyCrossDetails.data.ts
  7. 0 166
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollDeputyCross/vue3/RollDeputyCrossDetailsList.vue
  8. 0 26
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollDeputyCross/vue3/RollDeputyCrossDetails_menu_insert.sql
  9. 0 166
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollDeputyCross/vue3/RollDeputyCrossList.vue
  10. 0 26
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollDeputyCross/vue3/RollDeputyCross_menu_insert.sql
  11. 0 70
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollDeputyCross/vue3/components/RollDeputyCrossDetailsForm.vue
  12. 0 66
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollDeputyCross/vue3/components/RollDeputyCrossDetailsModal.vue
  13. 0 70
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollDeputyCross/vue3/components/RollDeputyCrossForm.vue
  14. 0 66
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollDeputyCross/vue3/components/RollDeputyCrossModal.vue
  15. 1 26
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/controller/StorageBillController.java
  16. 1 1
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/entity/BilletHotsendDetails.java
  17. 12 211
      zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/service/impl/StorageBillServiceImpl.java

+ 5 - 87
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/billetHotsendChangeShift/controller/BilletHotsendChangeShiftController.java

@@ -900,8 +900,6 @@ public class BilletHotsendChangeShiftController extends JeecgController<BilletHo
 		List<DestinationStatisticsDetails> statisticsDetailsList1 = new ArrayList<>();
 		List<DestinationStatisticsDetails> statisticsDetailsList2 = new ArrayList<>();
 		List<DestinationStatisticsDetails> statisticsDetailsList3 = new ArrayList<>();
-		List<DestinationStatisticsDetails> statisticsDetailsList4 = new ArrayList<>();
-
 		// 根据铸机号、班组、班别、交班的创建时间,交班时间,查询所有目的地是棒二的钢坯基础信息
 		LambdaQueryWrapper<BilletBasicInfo> queryWrapper1 = new LambdaQueryWrapper<>();
 		queryWrapper1.eq(BilletBasicInfo::getCcmNo, billetHotsendChangeShift.getCcmNo())
@@ -925,11 +923,6 @@ public class BilletHotsendChangeShiftController extends JeecgController<BilletHo
 		List<BilletBasicInfo> rollOutShippList = billetBasicInfoList.stream()
 				.filter(info -> "roll_out_shipp".equals(info.getBelongTable()))
 				.collect(Collectors.toList());
-
-		List<BilletBasicInfo> rollDeputyCrossList = billetBasicInfoList.stream()
-				.filter(info -> "roll_deputy_cross".equals(info.getBelongTable()))
-				.collect(Collectors.toList());
-
 		if (oConvertUtils.listIsNotEmpty(rollClubTwoList)){
 			List<DestinationStatisticsDetails> currentList1 = rollClubTwoList.stream()
 					.collect(Collectors.groupingBy(BilletBasicInfo::getLength))
@@ -988,34 +981,10 @@ public class BilletHotsendChangeShiftController extends JeecgController<BilletHo
 					}).collect(Collectors.toList());
 			statisticsDetailsList3.addAll(currentList3);
 		}
-
-		if (oConvertUtils.listIsNotEmpty(rollDeputyCrossList)){
-			List<DestinationStatisticsDetails> currentList4 = rollDeputyCrossList.stream()
-					.collect(Collectors.groupingBy(BilletBasicInfo::getLength))
-					.entrySet().stream()
-					.map(entry -> {
-						String size = String.valueOf(entry.getKey());
-						List<BilletBasicInfo> group = entry.getValue();
-						// 统计 blankOutput 总和
-						Double totalBlankOutput = group.stream()
-								.mapToDouble(BilletBasicInfo::getBilletWeight)
-								.sum();
-						BigDecimal bd = BigDecimal.valueOf(totalBlankOutput).setScale(4, BigDecimal.ROUND_HALF_UP);
-						totalBlankOutput = bd.doubleValue();
-						int totalNums = group.size();
-						String ccmNos = group.isEmpty() ? null : String.valueOf(group.get(0).getCcmNo());
-						return new DestinationStatisticsDetails(size, totalNums, totalBlankOutput, ccmNos);
-					}).collect(Collectors.toList());
-			statisticsDetailsList4.addAll(currentList4);
-		}
-
-		// 合并四个列表并根据 size 分组统计
+		// 合并三个列表并根据 size 分组统计
 		List<DestinationStatisticsDetails> mergedList = Stream.concat(
-						Stream.concat(
-								Stream.concat(statisticsDetailsList1.stream(), statisticsDetailsList2.stream()),
-								statisticsDetailsList3.stream()
-						),
-						statisticsDetailsList4.stream()
+						Stream.concat(statisticsDetailsList1.stream(), statisticsDetailsList2.stream()),
+						statisticsDetailsList3.stream()
 				).collect(Collectors.groupingBy(DestinationStatisticsDetails::getSize))
 				.entrySet().stream()
 				.map(entry -> {
@@ -1116,26 +1085,6 @@ public class BilletHotsendChangeShiftController extends JeecgController<BilletHo
 				));
 		List<DestinationStatisticsDetails> statisticsDetailsGroup3List = new ArrayList<>(result3.values());
 		billetHotsendChangeShift.setRollClubShipDetails(JSON.toJSONString(statisticsDetailsGroup3List));
-
-		// 轧钢付跨明细
-		// 按照 size 分组,计算 nums 和 blankOutput 的总和,取每组第一条记录的 ccmNo
-		Map<String, DestinationStatisticsDetails> result4 = statisticsDetailsList3.stream()
-				.collect(Collectors.groupingBy(
-						DestinationStatisticsDetails::getSize,
-						Collectors.collectingAndThen(
-								Collectors.reducing((first, second) -> {
-									DestinationStatisticsDetails combined = new DestinationStatisticsDetails();
-									combined.setSize(first.getSize());
-									combined.setNums(first.getNums() + second.getNums());
-									combined.setBlankOutput(roundToFourDecimals(first.getBlankOutput() + second.getBlankOutput()));
-									combined.setCcmNo(first.getCcmNo());
-									return combined;
-								}),
-								Optional::get
-						)
-				));
-		List<DestinationStatisticsDetails> statisticsDetailsGroup4List = new ArrayList<>(result4.values());
-		billetHotsendChangeShift.setRollDeputyCrossDetails(JSON.toJSONString(statisticsDetailsGroup4List));
 		billetHotsendChangeShiftService.updateById(billetHotsendChangeShift);
 	}
 
@@ -1452,7 +1401,6 @@ public class BilletHotsendChangeShiftController extends JeecgController<BilletHo
 				List<DestinationStatisticsDetails> statisticsDetailsList1 = new ArrayList<>();
 				List<DestinationStatisticsDetails> statisticsDetailsList2 = new ArrayList<>();
 				List<DestinationStatisticsDetails> statisticsDetailsList3 = new ArrayList<>();
-				List<DestinationStatisticsDetails> statisticsDetailsList4 = new ArrayList<>();
 
 				for (StorageBill storageBill : storageBillList) {
 					if ("棒二".equals(storageBill.getDestination())) {
@@ -1541,41 +1489,12 @@ public class BilletHotsendChangeShiftController extends JeecgController<BilletHo
 							statisticsDetailsList3.addAll(currentList3);
 						}
 					}
-
-					if ("付跨".equals(storageBill.getDestination())) {
-						LambdaQueryWrapper<RollDeputyCrossDetails> queryWrapper7 = new LambdaQueryWrapper<>();
-						queryWrapper7.eq(RollDeputyCrossDetails::getCcmNo, billetHotsendChangeShift1.getCcmNo())
-								.eq(RollDeputyCrossDetails::getStorageBillId, storageBill.getId());
-						List<RollDeputyCrossDetails> rollDeputyCrossDetailsList = rollDeputyCrossDetailsService.list(queryWrapper7);
-						if (oConvertUtils.listIsNotEmpty(rollDeputyCrossDetailsList)) {
-							List<DestinationStatisticsDetails> currentList3 = rollDeputyCrossDetailsList.stream()
-									.collect(Collectors.groupingBy(RollDeputyCrossDetails::getSize))
-									.entrySet().stream()
-									.map(entry -> {
-										String size = entry.getKey();
-										List<RollDeputyCrossDetails> group = entry.getValue();
-										// 统计 blankOutput 总和
-										Double totalBlankOutput = group.stream()
-												.mapToDouble(RollDeputyCrossDetails::getBlankOutput)
-												.sum();
-										BigDecimal bd = BigDecimal.valueOf(totalBlankOutput).setScale(4, BigDecimal.ROUND_HALF_UP);
-										totalBlankOutput = bd.doubleValue();
-										// 统计数量
-										Integer totalNums = group.stream()
-												.mapToInt(detail -> detail.getStackAddr() != null ? 4 : 1).sum();
-										// 取第一个元素的 ccmNo 作为该分组的 ccmNo
-										String ccmNos = group.isEmpty() ? null : group.get(0).getCcmNo();
-										return new DestinationStatisticsDetails(size, totalNums, totalBlankOutput, ccmNos);
-									}).collect(Collectors.toList());
-							statisticsDetailsList4.addAll(currentList3);
-						}
-					}
 				}
 
-				// 合并个列表并根据 size 分组统计
+				// 合并三个列表并根据 size 分组统计
 				List<DestinationStatisticsDetails> mergedList = Stream.concat(
 								Stream.concat(statisticsDetailsList1.stream(), statisticsDetailsList2.stream()),
-								Stream.concat(statisticsDetailsList3.stream(), statisticsDetailsList4.stream()) // 新增合并第四个列表
+								statisticsDetailsList3.stream() // 直接使用第三个列表的流,移除第四个列表
 						).collect(Collectors.groupingBy(DestinationStatisticsDetails::getSize))
 						.entrySet().stream()
 						.map(entry -> {
@@ -1601,7 +1520,6 @@ public class BilletHotsendChangeShiftController extends JeecgController<BilletHo
 				billetShiftPerformance.setRollClubTwoDetailsList(statisticsDetailsList1);
 				billetShiftPerformance.setRollClubThreeDetailsList(statisticsDetailsList2);
 				billetShiftPerformance.setRollOutShippDetailsList(statisticsDetailsList3);
-				billetShiftPerformance.setRollDeputyCrossDetailsList(statisticsDetailsList4);
 			}
 
 			// 班次实绩, 统计轧钢棒一

+ 3 - 3
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/billetHotsendChangeShift/entity/BilletShiftPerformance.java

@@ -128,7 +128,7 @@ public class BilletShiftPerformance {
 
     @ApiModelProperty(value = "轧钢高线明细")
     private List<DestinationStatisticsDetails> rollHeightDetailsList;
-
-    @ApiModelProperty(value = "轧钢付跨明细")
-    private List<DestinationStatisticsDetails> rollDeputyCrossDetailsList;
+//
+//    @ApiModelProperty(value = "轧钢付跨明细")
+//    private List<DestinationStatisticsDetails> rollDeputyCrossDetailsList;
 }

+ 0 - 64
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollDeputyCross/vue3/RollDeputyCross.api.ts

@@ -1,64 +0,0 @@
-import {defHttp} from '/@/utils/http/axios';
-import { useMessage } from "/@/hooks/web/useMessage";
-
-const { createConfirm } = useMessage();
-
-enum Api {
-  list = '/rollDeputyCross/rollDeputyCross/list',
-  save='/rollDeputyCross/rollDeputyCross/add',
-  edit='/rollDeputyCross/rollDeputyCross/edit',
-  deleteOne = '/rollDeputyCross/rollDeputyCross/delete',
-  deleteBatch = '/rollDeputyCross/rollDeputyCross/deleteBatch',
-  importExcel = '/rollDeputyCross/rollDeputyCross/importExcel',
-  exportXls = '/rollDeputyCross/rollDeputyCross/exportXls',
-}
-/**
- * 导出api
- * @param params
- */
-export const getExportUrl = Api.exportXls;
-/**
- * 导入api
- */
-export const getImportUrl = Api.importExcel;
-/**
- * 列表接口
- * @param params
- */
-export const list = (params) =>
-  defHttp.get({url: Api.list, params});
-
-/**
- * 删除单个
- */
-export const deleteOne = (params,handleSuccess) => {
-  return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
-    handleSuccess();
-  });
-}
-/**
- * 批量删除
- * @param params
- */
-export const batchDelete = (params, handleSuccess) => {
-  createConfirm({
-    iconType: 'warning',
-    title: '确认删除',
-    content: '是否删除选中数据',
-    okText: '确认',
-    cancelText: '取消',
-    onOk: () => {
-      return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
-        handleSuccess();
-      });
-    }
-  });
-}
-/**
- * 保存或者更新
- * @param params
- */
-export const saveOrUpdate = (params, isUpdate) => {
-  let url = isUpdate ? Api.edit : Api.save;
-  return defHttp.post({url: url, params});
-}

+ 0 - 235
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollDeputyCross/vue3/RollDeputyCross.data.ts

@@ -1,235 +0,0 @@
-import {BasicColumn} from '/@/components/Table';
-import {FormSchema} from '/@/components/Table';
-import { rules} from '/@/utils/helper/validator';
-import { render } from '/@/utils/common/renderUtils';
-//列表数据
-export const columns: BasicColumn[] = [
-   {
-    title: '日期',
-    align:"center",
-    dataIndex: 'createDate'
-   },
-   {
-    title: '铸机号',
-    align:"center",
-    dataIndex: 'ccmNo'
-   },
-   {
-    title: '炉号',
-    align:"center",
-    dataIndex: 'heatNo'
-   },
-   {
-    title: '班组',
-    align:"center",
-    dataIndex: 'shiftGroup'
-   },
-   {
-    title: '班别',
-    align:"center",
-    dataIndex: 'shift'
-   },
-   {
-    title: '定尺',
-    align:"center",
-    dataIndex: 'size'
-   },
-   {
-    title: '钢种',
-    align:"center",
-    dataIndex: 'steel'
-   },
-   {
-    title: '规格',
-    align:"center",
-    dataIndex: 'spec'
-   },
-   {
-    title: '定重',
-    align:"center",
-    dataIndex: 'decideWeight'
-   },
-   {
-    title: '总支数',
-    align:"center",
-    dataIndex: 'amountTotal'
-   },
-   {
-    title: '出坯量',
-    align:"center",
-    dataIndex: 'blankOutput'
-   },
-   {
-    title: '装运单ID',
-    align:"center",
-    dataIndex: 'storageBillId'
-   },
-   {
-    title: 'C',
-    align:"center",
-    dataIndex: 'cc'
-   },
-   {
-    title: 'Mn',
-    align:"center",
-    dataIndex: 'mn'
-   },
-   {
-    title: 'Si',
-    align:"center",
-    dataIndex: 'si'
-   },
-   {
-    title: 'S',
-    align:"center",
-    dataIndex: 'ss'
-   },
-   {
-    title: 'P',
-    align:"center",
-    dataIndex: 'pp'
-   },
-   {
-    title: 'V',
-    align:"center",
-    dataIndex: 'vv'
-   },
-   {
-    title: 'Nb',
-    align:"center",
-    dataIndex: 'nb'
-   },
-   {
-    title: '是否已编辑',
-    align:"center",
-    dataIndex: 'isUpd'
-   },
-];
-//查询数据
-export const searchFormSchema: FormSchema[] = [
-];
-//表单数据
-export const formSchema: FormSchema[] = [
-  {
-    label: '日期',
-    field: 'createDate',
-    component: 'DatePicker',
-    componentProps: {
-       showTime: true,
-       valueFormat: 'YYYY-MM-DD HH:mm:ss'
-     },
-  },
-  {
-    label: '铸机号',
-    field: 'ccmNo',
-    component: 'Input',
-  },
-  {
-    label: '炉号',
-    field: 'heatNo',
-    component: 'Input',
-  },
-  {
-    label: '班组',
-    field: 'shiftGroup',
-    component: 'Input',
-  },
-  {
-    label: '班别',
-    field: 'shift',
-    component: 'Input',
-  },
-  {
-    label: '定尺',
-    field: 'size',
-    component: 'Input',
-  },
-  {
-    label: '钢种',
-    field: 'steel',
-    component: 'Input',
-  },
-  {
-    label: '规格',
-    field: 'spec',
-    component: 'Input',
-  },
-  {
-    label: '定重',
-    field: 'decideWeight',
-    component: 'InputNumber',
-  },
-  {
-    label: '总支数',
-    field: 'amountTotal',
-    component: 'InputNumber',
-  },
-  {
-    label: '出坯量',
-    field: 'blankOutput',
-    component: 'InputNumber',
-  },
-  {
-    label: '装运单ID',
-    field: 'storageBillId',
-    component: 'Input',
-  },
-  {
-    label: 'C',
-    field: 'cc',
-    component: 'InputNumber',
-  },
-  {
-    label: 'Mn',
-    field: 'mn',
-    component: 'InputNumber',
-  },
-  {
-    label: 'Si',
-    field: 'si',
-    component: 'InputNumber',
-  },
-  {
-    label: 'S',
-    field: 'ss',
-    component: 'InputNumber',
-  },
-  {
-    label: 'P',
-    field: 'pp',
-    component: 'InputNumber',
-  },
-  {
-    label: 'V',
-    field: 'vv',
-    component: 'InputNumber',
-  },
-  {
-    label: 'Nb',
-    field: 'nb',
-    component: 'InputNumber',
-  },
-  {
-    label: '是否已编辑',
-    field: 'isUpd',
-    component: 'InputNumber',
-  },
-	// TODO 主键隐藏字段,目前写死为ID
-	{
-	  label: '',
-	  field: 'id',
-	  component: 'Input',
-	  show: false
-	},
-];
-
-
-
-/**
-* 流程表单调用这个方法获取formSchema
-* @param param
-*/
-export function getBpmFormSchema(_formData): FormSchema[]{
-  // 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema
-  return formSchema;
-}

+ 0 - 64
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollDeputyCross/vue3/RollDeputyCrossDetails.api.ts

@@ -1,64 +0,0 @@
-import {defHttp} from '/@/utils/http/axios';
-import { useMessage } from "/@/hooks/web/useMessage";
-
-const { createConfirm } = useMessage();
-
-enum Api {
-  list = '/rollDeputyCross/rollDeputyCrossDetails/list',
-  save='/rollDeputyCross/rollDeputyCrossDetails/add',
-  edit='/rollDeputyCross/rollDeputyCrossDetails/edit',
-  deleteOne = '/rollDeputyCross/rollDeputyCrossDetails/delete',
-  deleteBatch = '/rollDeputyCross/rollDeputyCrossDetails/deleteBatch',
-  importExcel = '/rollDeputyCross/rollDeputyCrossDetails/importExcel',
-  exportXls = '/rollDeputyCross/rollDeputyCrossDetails/exportXls',
-}
-/**
- * 导出api
- * @param params
- */
-export const getExportUrl = Api.exportXls;
-/**
- * 导入api
- */
-export const getImportUrl = Api.importExcel;
-/**
- * 列表接口
- * @param params
- */
-export const list = (params) =>
-  defHttp.get({url: Api.list, params});
-
-/**
- * 删除单个
- */
-export const deleteOne = (params,handleSuccess) => {
-  return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
-    handleSuccess();
-  });
-}
-/**
- * 批量删除
- * @param params
- */
-export const batchDelete = (params, handleSuccess) => {
-  createConfirm({
-    iconType: 'warning',
-    title: '确认删除',
-    content: '是否删除选中数据',
-    okText: '确认',
-    cancelText: '取消',
-    onOk: () => {
-      return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
-        handleSuccess();
-      });
-    }
-  });
-}
-/**
- * 保存或者更新
- * @param params
- */
-export const saveOrUpdate = (params, isUpdate) => {
-  let url = isUpdate ? Api.edit : Api.save;
-  return defHttp.post({url: url, params});
-}

+ 0 - 221
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollDeputyCross/vue3/RollDeputyCrossDetails.data.ts

@@ -1,221 +0,0 @@
-import {BasicColumn} from '/@/components/Table';
-import {FormSchema} from '/@/components/Table';
-import { rules} from '/@/utils/helper/validator';
-import { render } from '/@/utils/common/renderUtils';
-//列表数据
-export const columns: BasicColumn[] = [
-   {
-    title: '炉号',
-    align:"center",
-    dataIndex: 'heatNo'
-   },
-   {
-    title: '坯号',
-    align:"center",
-    dataIndex: 'billetNo'
-   },
-   {
-    title: '装运单ID',
-    align:"center",
-    dataIndex: 'storageBillId'
-   },
-   {
-    title: '起始根数',
-    align:"center",
-    dataIndex: 'startNum'
-   },
-   {
-    title: '结束根数',
-    align:"center",
-    dataIndex: 'endNum'
-   },
-   {
-    title: '堆垛层号(1-20)',
-    align:"center",
-    dataIndex: 'stackStorey'
-   },
-   {
-    title: '堆垛编号(1-9)',
-    align:"center",
-    dataIndex: 'stackNum'
-   },
-   {
-    title: '垛位',
-    align:"center",
-    dataIndex: 'stackAddr'
-   },
-   {
-    title: '堆垛起始跟',
-    align:"center",
-    dataIndex: 'startNumStack'
-   },
-   {
-    title: '堆垛结束跟',
-    align:"center",
-    dataIndex: 'endNumStack'
-   },
-   {
-    title: '班别',
-    align:"center",
-    dataIndex: 'shift'
-   },
-   {
-    title: '班组',
-    align:"center",
-    dataIndex: 'shiftGroup'
-   },
-   {
-    title: '钢种',
-    align:"center",
-    dataIndex: 'steel'
-   },
-   {
-    title: '规格',
-    align:"center",
-    dataIndex: 'spec'
-   },
-   {
-    title: '定尺',
-    align:"center",
-    dataIndex: 'size'
-   },
-   {
-    title: '车牌号',
-    align:"center",
-    dataIndex: 'licensePlate'
-   },
-   {
-    title: '铸机号',
-    align:"center",
-    dataIndex: 'ccmNo'
-   },
-   {
-    title: '出坯量',
-    align:"center",
-    dataIndex: 'blankOutput'
-   },
-   {
-    title: '组坯号',
-    align:"center",
-    dataIndex: 'assemblyNumber'
-   },
-];
-//查询数据
-export const searchFormSchema: FormSchema[] = [
-];
-//表单数据
-export const formSchema: FormSchema[] = [
-  {
-    label: '炉号',
-    field: 'heatNo',
-    component: 'Input',
-  },
-  {
-    label: '坯号',
-    field: 'billetNo',
-    component: 'Input',
-  },
-  {
-    label: '装运单ID',
-    field: 'storageBillId',
-    component: 'Input',
-  },
-  {
-    label: '起始根数',
-    field: 'startNum',
-    component: 'InputNumber',
-  },
-  {
-    label: '结束根数',
-    field: 'endNum',
-    component: 'InputNumber',
-  },
-  {
-    label: '堆垛层号(1-20)',
-    field: 'stackStorey',
-    component: 'Input',
-  },
-  {
-    label: '堆垛编号(1-9)',
-    field: 'stackNum',
-    component: 'Input',
-  },
-  {
-    label: '垛位',
-    field: 'stackAddr',
-    component: 'Input',
-  },
-  {
-    label: '堆垛起始跟',
-    field: 'startNumStack',
-    component: 'InputNumber',
-  },
-  {
-    label: '堆垛结束跟',
-    field: 'endNumStack',
-    component: 'InputNumber',
-  },
-  {
-    label: '班别',
-    field: 'shift',
-    component: 'Input',
-  },
-  {
-    label: '班组',
-    field: 'shiftGroup',
-    component: 'Input',
-  },
-  {
-    label: '钢种',
-    field: 'steel',
-    component: 'Input',
-  },
-  {
-    label: '规格',
-    field: 'spec',
-    component: 'Input',
-  },
-  {
-    label: '定尺',
-    field: 'size',
-    component: 'Input',
-  },
-  {
-    label: '车牌号',
-    field: 'licensePlate',
-    component: 'Input',
-  },
-  {
-    label: '铸机号',
-    field: 'ccmNo',
-    component: 'Input',
-  },
-  {
-    label: '出坯量',
-    field: 'blankOutput',
-    component: 'InputNumber',
-  },
-  {
-    label: '组坯号',
-    field: 'assemblyNumber',
-    component: 'Input',
-  },
-	// TODO 主键隐藏字段,目前写死为ID
-	{
-	  label: '',
-	  field: 'id',
-	  component: 'Input',
-	  show: false
-	},
-];
-
-
-
-/**
-* 流程表单调用这个方法获取formSchema
-* @param param
-*/
-export function getBpmFormSchema(_formData): FormSchema[]{
-  // 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema
-  return formSchema;
-}

+ 0 - 166
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollDeputyCross/vue3/RollDeputyCrossDetailsList.vue

@@ -1,166 +0,0 @@
-<template>
-  <div>
-    <!--引用表格-->
-   <BasicTable @register="registerTable" :rowSelection="rowSelection">
-     <!--插槽:table标题-->
-      <template #tableTitle>
-          <a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增</a-button>
-          <a-button  type="primary" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
-          <j-upload-button  type="primary" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
-          <a-dropdown v-if="selectedRowKeys.length > 0">
-              <template #overlay>
-                <a-menu>
-                  <a-menu-item key="1" @click="batchHandleDelete">
-                    <Icon icon="ant-design:delete-outlined"></Icon>
-                    删除
-                  </a-menu-item>
-                </a-menu>
-              </template>
-              <a-button>批量操作
-                <Icon icon="mdi:chevron-down"></Icon>
-              </a-button>
-        </a-dropdown>
-      </template>
-       <!--操作栏-->
-      <template #action="{ record }">
-        <TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)"/>
-      </template>
-      <!--字段回显插槽-->
-      <template v-slot:bodyCell="{ column, record, index, text }">
-      </template>
-    </BasicTable>
-    <!-- 表单区域 -->
-    <RollDeputyCrossDetailsModal @register="registerModal" @success="handleSuccess"></RollDeputyCrossDetailsModal>
-  </div>
-</template>
-
-<script lang="ts" name="rollDeputyCross-rollDeputyCrossDetails" setup>
-  import {ref, computed, unref} from 'vue';
-  import {BasicTable, useTable, TableAction} from '/@/components/Table';
-  import {useModal} from '/@/components/Modal';
-  import { useListPage } from '/@/hooks/system/useListPage'
-  import RollDeputyCrossDetailsModal from './components/RollDeputyCrossDetailsModal.vue'
-  import {columns, searchFormSchema} from './RollDeputyCrossDetails.data';
-  import {list, deleteOne, batchDelete, getImportUrl,getExportUrl} from './RollDeputyCrossDetails.api';
-  import { downloadFile } from '/@/utils/common/renderUtils';
-  import { useUserStore } from '/@/store/modules/user';
-  const checkedKeys = ref<Array<string | number>>([]);
-  const userStore = useUserStore();
-  //注册model
-  const [registerModal, {openModal}] = useModal();
-  //注册table数据
-  const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({
-      tableProps:{
-           title: '付跨明细',
-           api: list,
-           columns,
-           canResize:false,
-           formConfig: {
-              //labelWidth: 120,
-              schemas: searchFormSchema,
-              autoSubmitOnEnter:true,
-              showAdvancedButton:true,
-              fieldMapToNumber: [
-              ],
-              fieldMapToTime: [
-              ],
-            },
-           actionColumn: {
-               width: 150,
-               fixed:'right'
-            },
-      },
-       exportConfig: {
-            name:"付跨明细",
-            url: getExportUrl,
-          },
-          importConfig: {
-            url: getImportUrl,
-            success: handleSuccess
-          },
-  })
-
-  const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext
-
-   /**
-    * 新增事件
-    */
-  function handleAdd() {
-     openModal(true, {
-       isUpdate: false,
-       showFooter: true,
-     });
-  }
-   /**
-    * 编辑事件
-    */
-  function handleEdit(record: Recordable) {
-     openModal(true, {
-       record,
-       isUpdate: true,
-       showFooter: true,
-     });
-   }
-   /**
-    * 详情
-   */
-  function handleDetail(record: Recordable) {
-     openModal(true, {
-       record,
-       isUpdate: true,
-       showFooter: false,
-     });
-   }
-   /**
-    * 删除事件
-    */
-  async function handleDelete(record) {
-     await deleteOne({id: record.id}, handleSuccess);
-   }
-   /**
-    * 批量删除事件
-    */
-  async function batchHandleDelete() {
-     await batchDelete({ids: selectedRowKeys.value}, handleSuccess);
-   }
-   /**
-    * 成功回调
-    */
-  function handleSuccess() {
-      (selectedRowKeys.value = []) && reload();
-   }
-   /**
-      * 操作栏
-      */
-  function getTableAction(record){
-       return [
-         {
-           label: '编辑',
-           onClick: handleEdit.bind(null, record),
-         }
-       ]
-   }
-     /**
-        * 下拉操作栏
-        */
-  function getDropDownAction(record){
-       return [
-         {
-           label: '详情',
-           onClick: handleDetail.bind(null, record),
-         }, {
-           label: '删除',
-           popConfirm: {
-             title: '是否确认删除',
-             confirm: handleDelete.bind(null, record),
-           }
-         }
-       ]
-   }
-
-
-</script>
-
-<style scoped>
-
-</style>

+ 0 - 26
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollDeputyCross/vue3/RollDeputyCrossDetails_menu_insert.sql

@@ -1,26 +0,0 @@
--- 注意:该页面对应的前台目录为views/rollDeputyCross文件夹下
--- 如果你想更改到其他目录,请修改sql中component字段对应的值
-
-
-INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external) 
-VALUES ('2025060401236390540', NULL, '付跨明细', '/rollDeputyCross/rollDeputyCrossDetailsList', 'rollDeputyCross/RollDeputyCrossDetailsList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2025-06-04 13:23:54', NULL, NULL, 0);
-
--- 权限控制sql
--- 新增
-INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
-VALUES ('2025060401236390541', '2025060401236390540', '添加付跨明细', NULL, NULL, 0, NULL, NULL, 2, 'rollDeputyCross:roll_deputy_cross_details:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-06-04 13:23:54', NULL, NULL, 0, 0, '1', 0);
--- 编辑
-INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
-VALUES ('2025060401236390542', '2025060401236390540', '编辑付跨明细', NULL, NULL, 0, NULL, NULL, 2, 'rollDeputyCross:roll_deputy_cross_details:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-06-04 13:23:54', NULL, NULL, 0, 0, '1', 0);
--- 删除
-INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
-VALUES ('2025060401236390543', '2025060401236390540', '删除付跨明细', NULL, NULL, 0, NULL, NULL, 2, 'rollDeputyCross:roll_deputy_cross_details:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-06-04 13:23:54', NULL, NULL, 0, 0, '1', 0);
--- 批量删除
-INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
-VALUES ('2025060401236390544', '2025060401236390540', '批量删除付跨明细', NULL, NULL, 0, NULL, NULL, 2, 'rollDeputyCross:roll_deputy_cross_details:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-06-04 13:23:54', NULL, NULL, 0, 0, '1', 0);
--- 导出excel
-INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
-VALUES ('2025060401236390545', '2025060401236390540', '导出excel_付跨明细', NULL, NULL, 0, NULL, NULL, 2, 'rollDeputyCross:roll_deputy_cross_details:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-06-04 13:23:54', NULL, NULL, 0, 0, '1', 0);
--- 导入excel
-INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
-VALUES ('2025060401236390546', '2025060401236390540', '导入excel_付跨明细', NULL, NULL, 0, NULL, NULL, 2, 'rollDeputyCross:roll_deputy_cross_details:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-06-04 13:23:54', NULL, NULL, 0, 0, '1', 0);

+ 0 - 166
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollDeputyCross/vue3/RollDeputyCrossList.vue

@@ -1,166 +0,0 @@
-<template>
-  <div>
-    <!--引用表格-->
-   <BasicTable @register="registerTable" :rowSelection="rowSelection">
-     <!--插槽:table标题-->
-      <template #tableTitle>
-          <a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增</a-button>
-          <a-button  type="primary" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
-          <j-upload-button  type="primary" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
-          <a-dropdown v-if="selectedRowKeys.length > 0">
-              <template #overlay>
-                <a-menu>
-                  <a-menu-item key="1" @click="batchHandleDelete">
-                    <Icon icon="ant-design:delete-outlined"></Icon>
-                    删除
-                  </a-menu-item>
-                </a-menu>
-              </template>
-              <a-button>批量操作
-                <Icon icon="mdi:chevron-down"></Icon>
-              </a-button>
-        </a-dropdown>
-      </template>
-       <!--操作栏-->
-      <template #action="{ record }">
-        <TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)"/>
-      </template>
-      <!--字段回显插槽-->
-      <template v-slot:bodyCell="{ column, record, index, text }">
-      </template>
-    </BasicTable>
-    <!-- 表单区域 -->
-    <RollDeputyCrossModal @register="registerModal" @success="handleSuccess"></RollDeputyCrossModal>
-  </div>
-</template>
-
-<script lang="ts" name="rollDeputyCross-rollDeputyCross" setup>
-  import {ref, computed, unref} from 'vue';
-  import {BasicTable, useTable, TableAction} from '/@/components/Table';
-  import {useModal} from '/@/components/Modal';
-  import { useListPage } from '/@/hooks/system/useListPage'
-  import RollDeputyCrossModal from './components/RollDeputyCrossModal.vue'
-  import {columns, searchFormSchema} from './RollDeputyCross.data';
-  import {list, deleteOne, batchDelete, getImportUrl,getExportUrl} from './RollDeputyCross.api';
-  import { downloadFile } from '/@/utils/common/renderUtils';
-  import { useUserStore } from '/@/store/modules/user';
-  const checkedKeys = ref<Array<string | number>>([]);
-  const userStore = useUserStore();
-  //注册model
-  const [registerModal, {openModal}] = useModal();
-  //注册table数据
-  const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({
-      tableProps:{
-           title: '轧钢付跨',
-           api: list,
-           columns,
-           canResize:false,
-           formConfig: {
-              //labelWidth: 120,
-              schemas: searchFormSchema,
-              autoSubmitOnEnter:true,
-              showAdvancedButton:true,
-              fieldMapToNumber: [
-              ],
-              fieldMapToTime: [
-              ],
-            },
-           actionColumn: {
-               width: 150,
-               fixed:'right'
-            },
-      },
-       exportConfig: {
-            name:"轧钢付跨",
-            url: getExportUrl,
-          },
-          importConfig: {
-            url: getImportUrl,
-            success: handleSuccess
-          },
-  })
-
-  const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext
-
-   /**
-    * 新增事件
-    */
-  function handleAdd() {
-     openModal(true, {
-       isUpdate: false,
-       showFooter: true,
-     });
-  }
-   /**
-    * 编辑事件
-    */
-  function handleEdit(record: Recordable) {
-     openModal(true, {
-       record,
-       isUpdate: true,
-       showFooter: true,
-     });
-   }
-   /**
-    * 详情
-   */
-  function handleDetail(record: Recordable) {
-     openModal(true, {
-       record,
-       isUpdate: true,
-       showFooter: false,
-     });
-   }
-   /**
-    * 删除事件
-    */
-  async function handleDelete(record) {
-     await deleteOne({id: record.id}, handleSuccess);
-   }
-   /**
-    * 批量删除事件
-    */
-  async function batchHandleDelete() {
-     await batchDelete({ids: selectedRowKeys.value}, handleSuccess);
-   }
-   /**
-    * 成功回调
-    */
-  function handleSuccess() {
-      (selectedRowKeys.value = []) && reload();
-   }
-   /**
-      * 操作栏
-      */
-  function getTableAction(record){
-       return [
-         {
-           label: '编辑',
-           onClick: handleEdit.bind(null, record),
-         }
-       ]
-   }
-     /**
-        * 下拉操作栏
-        */
-  function getDropDownAction(record){
-       return [
-         {
-           label: '详情',
-           onClick: handleDetail.bind(null, record),
-         }, {
-           label: '删除',
-           popConfirm: {
-             title: '是否确认删除',
-             confirm: handleDelete.bind(null, record),
-           }
-         }
-       ]
-   }
-
-
-</script>
-
-<style scoped>
-
-</style>

+ 0 - 26
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollDeputyCross/vue3/RollDeputyCross_menu_insert.sql

@@ -1,26 +0,0 @@
--- 注意:该页面对应的前台目录为views/rollDeputyCross文件夹下
--- 如果你想更改到其他目录,请修改sql中component字段对应的值
-
-
-INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external) 
-VALUES ('2025060401234310440', NULL, '轧钢付跨', '/rollDeputyCross/rollDeputyCrossList', 'rollDeputyCross/RollDeputyCrossList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2025-06-04 13:23:44', NULL, NULL, 0);
-
--- 权限控制sql
--- 新增
-INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
-VALUES ('2025060401234310441', '2025060401234310440', '添加轧钢付跨', NULL, NULL, 0, NULL, NULL, 2, 'rollDeputyCross:roll_deputy_cross:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-06-04 13:23:44', NULL, NULL, 0, 0, '1', 0);
--- 编辑
-INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
-VALUES ('2025060401234310442', '2025060401234310440', '编辑轧钢付跨', NULL, NULL, 0, NULL, NULL, 2, 'rollDeputyCross:roll_deputy_cross:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-06-04 13:23:44', NULL, NULL, 0, 0, '1', 0);
--- 删除
-INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
-VALUES ('2025060401234310443', '2025060401234310440', '删除轧钢付跨', NULL, NULL, 0, NULL, NULL, 2, 'rollDeputyCross:roll_deputy_cross:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-06-04 13:23:44', NULL, NULL, 0, 0, '1', 0);
--- 批量删除
-INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
-VALUES ('2025060401234310444', '2025060401234310440', '批量删除轧钢付跨', NULL, NULL, 0, NULL, NULL, 2, 'rollDeputyCross:roll_deputy_cross:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-06-04 13:23:44', NULL, NULL, 0, 0, '1', 0);
--- 导出excel
-INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
-VALUES ('2025060401234310445', '2025060401234310440', '导出excel_轧钢付跨', NULL, NULL, 0, NULL, NULL, 2, 'rollDeputyCross:roll_deputy_cross:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-06-04 13:23:44', NULL, NULL, 0, 0, '1', 0);
--- 导入excel
-INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
-VALUES ('2025060401234310446', '2025060401234310440', '导入excel_轧钢付跨', NULL, NULL, 0, NULL, NULL, 2, 'rollDeputyCross:roll_deputy_cross:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-06-04 13:23:44', NULL, NULL, 0, 0, '1', 0);

+ 0 - 70
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollDeputyCross/vue3/components/RollDeputyCrossDetailsForm.vue

@@ -1,70 +0,0 @@
-<template>
-    <div style="min-height: 400px">
-        <BasicForm @register="registerForm"></BasicForm>
-        <div style="width: 100%;text-align: center" v-if="!formDisabled">
-            <a-button @click="submitForm" pre-icon="ant-design:check" type="primary">提 交</a-button>
-        </div>
-    </div>
-</template>
-
-<script lang="ts">
-    import {BasicForm, useForm} from '/@/components/Form/index';
-    import {computed, defineComponent} from 'vue';
-    import {defHttp} from '/@/utils/http/axios';
-    import { propTypes } from '/@/utils/propTypes';
-    import {getBpmFormSchema} from '../RollDeputyCrossDetails.data';
-    import {saveOrUpdate} from '../RollDeputyCrossDetails.api';
-    
-    export default defineComponent({
-        name: "RollDeputyCrossDetailsForm",
-        components:{
-            BasicForm
-        },
-        props:{
-            formData: propTypes.object.def({}),
-            formBpm: propTypes.bool.def(true),
-        },
-        setup(props){
-            const [registerForm, { setFieldsValue, setProps, getFieldsValue }] = useForm({
-                labelWidth: 150,
-                schemas: getBpmFormSchema(props.formData),
-                showActionButtonGroup: false,
-                baseColProps: {span: 24}
-            });
-
-            const formDisabled = computed(()=>{
-                if(props.formData.disabled === false){
-                    return false;
-                }
-                return true;
-            });
-
-            let formData = {};
-            const queryByIdUrl = '/rollDeputyCross/rollDeputyCrossDetails/queryById';
-            async function initFormData(){
-                let params = {id: props.formData.dataId};
-                const data = await defHttp.get({url: queryByIdUrl, params});
-                formData = {...data}
-                //设置表单的值
-                await setFieldsValue(formData);
-                //默认是禁用
-                await setProps({disabled: formDisabled.value})
-            }
-
-            async function submitForm() {
-                let data = getFieldsValue();
-                let params = Object.assign({}, formData, data);
-                console.log('表单数据', params)
-                await saveOrUpdate(params, true)
-            }
-
-            initFormData();
-            
-            return {
-                registerForm,
-                formDisabled,
-                submitForm,
-            }
-        }
-    });
-</script>

+ 0 - 66
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollDeputyCross/vue3/components/RollDeputyCrossDetailsModal.vue

@@ -1,66 +0,0 @@
-<template>
-  <BasicModal v-bind="$attrs" @register="registerModal" destroyOnClose :title="title" :width="800" @ok="handleSubmit">
-      <BasicForm @register="registerForm"/>
-  </BasicModal>
-</template>
-
-<script lang="ts" setup>
-    import {ref, computed, unref} from 'vue';
-    import {BasicModal, useModalInner} from '/@/components/Modal';
-    import {BasicForm, useForm} from '/@/components/Form/index';
-    import {formSchema} from '../RollDeputyCrossDetails.data';
-    import {saveOrUpdate} from '../RollDeputyCrossDetails.api';
-    // Emits声明
-    const emit = defineEmits(['register','success']);
-    const isUpdate = ref(true);
-    //表单配置
-    const [registerForm, {setProps,resetFields, setFieldsValue, validate}] = useForm({
-        //labelWidth: 150,
-        schemas: formSchema,
-        showActionButtonGroup: false,
-        baseColProps: {span: 24}
-    });
-    //表单赋值
-    const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data) => {
-        //重置表单
-        await resetFields();
-        setModalProps({confirmLoading: false,showCancelBtn:!!data?.showFooter,showOkBtn:!!data?.showFooter});
-        isUpdate.value = !!data?.isUpdate;
-        if (unref(isUpdate)) {
-            //表单赋值
-            await setFieldsValue({
-                ...data.record,
-            });
-        }
-        // 隐藏底部时禁用整个表单
-       setProps({ disabled: !data?.showFooter })
-    });
-    //设置标题
-    const title = computed(() => (!unref(isUpdate) ? '新增' : '编辑'));
-    //表单提交事件
-    async function handleSubmit(v) {
-        try {
-            let values = await validate();
-            setModalProps({confirmLoading: true});
-            //提交表单
-            await saveOrUpdate(values, isUpdate.value);
-            //关闭弹窗
-            closeModal();
-            //刷新列表
-            emit('success');
-        } finally {
-            setModalProps({confirmLoading: false});
-        }
-    }
-</script>
-
-<style lang="less" scoped>
-	/** 时间和数字输入框样式 */
-  :deep(.ant-input-number){
-		width: 100%
-	}
-
-	:deep(.ant-calendar-picker){
-		width: 100%
-	}
-</style>

+ 0 - 70
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollDeputyCross/vue3/components/RollDeputyCrossForm.vue

@@ -1,70 +0,0 @@
-<template>
-    <div style="min-height: 400px">
-        <BasicForm @register="registerForm"></BasicForm>
-        <div style="width: 100%;text-align: center" v-if="!formDisabled">
-            <a-button @click="submitForm" pre-icon="ant-design:check" type="primary">提 交</a-button>
-        </div>
-    </div>
-</template>
-
-<script lang="ts">
-    import {BasicForm, useForm} from '/@/components/Form/index';
-    import {computed, defineComponent} from 'vue';
-    import {defHttp} from '/@/utils/http/axios';
-    import { propTypes } from '/@/utils/propTypes';
-    import {getBpmFormSchema} from '../RollDeputyCross.data';
-    import {saveOrUpdate} from '../RollDeputyCross.api';
-    
-    export default defineComponent({
-        name: "RollDeputyCrossForm",
-        components:{
-            BasicForm
-        },
-        props:{
-            formData: propTypes.object.def({}),
-            formBpm: propTypes.bool.def(true),
-        },
-        setup(props){
-            const [registerForm, { setFieldsValue, setProps, getFieldsValue }] = useForm({
-                labelWidth: 150,
-                schemas: getBpmFormSchema(props.formData),
-                showActionButtonGroup: false,
-                baseColProps: {span: 24}
-            });
-
-            const formDisabled = computed(()=>{
-                if(props.formData.disabled === false){
-                    return false;
-                }
-                return true;
-            });
-
-            let formData = {};
-            const queryByIdUrl = '/rollDeputyCross/rollDeputyCross/queryById';
-            async function initFormData(){
-                let params = {id: props.formData.dataId};
-                const data = await defHttp.get({url: queryByIdUrl, params});
-                formData = {...data}
-                //设置表单的值
-                await setFieldsValue(formData);
-                //默认是禁用
-                await setProps({disabled: formDisabled.value})
-            }
-
-            async function submitForm() {
-                let data = getFieldsValue();
-                let params = Object.assign({}, formData, data);
-                console.log('表单数据', params)
-                await saveOrUpdate(params, true)
-            }
-
-            initFormData();
-            
-            return {
-                registerForm,
-                formDisabled,
-                submitForm,
-            }
-        }
-    });
-</script>

+ 0 - 66
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollDeputyCross/vue3/components/RollDeputyCrossModal.vue

@@ -1,66 +0,0 @@
-<template>
-  <BasicModal v-bind="$attrs" @register="registerModal" destroyOnClose :title="title" :width="800" @ok="handleSubmit">
-      <BasicForm @register="registerForm"/>
-  </BasicModal>
-</template>
-
-<script lang="ts" setup>
-    import {ref, computed, unref} from 'vue';
-    import {BasicModal, useModalInner} from '/@/components/Modal';
-    import {BasicForm, useForm} from '/@/components/Form/index';
-    import {formSchema} from '../RollDeputyCross.data';
-    import {saveOrUpdate} from '../RollDeputyCross.api';
-    // Emits声明
-    const emit = defineEmits(['register','success']);
-    const isUpdate = ref(true);
-    //表单配置
-    const [registerForm, {setProps,resetFields, setFieldsValue, validate}] = useForm({
-        //labelWidth: 150,
-        schemas: formSchema,
-        showActionButtonGroup: false,
-        baseColProps: {span: 24}
-    });
-    //表单赋值
-    const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data) => {
-        //重置表单
-        await resetFields();
-        setModalProps({confirmLoading: false,showCancelBtn:!!data?.showFooter,showOkBtn:!!data?.showFooter});
-        isUpdate.value = !!data?.isUpdate;
-        if (unref(isUpdate)) {
-            //表单赋值
-            await setFieldsValue({
-                ...data.record,
-            });
-        }
-        // 隐藏底部时禁用整个表单
-       setProps({ disabled: !data?.showFooter })
-    });
-    //设置标题
-    const title = computed(() => (!unref(isUpdate) ? '新增' : '编辑'));
-    //表单提交事件
-    async function handleSubmit(v) {
-        try {
-            let values = await validate();
-            setModalProps({confirmLoading: true});
-            //提交表单
-            await saveOrUpdate(values, isUpdate.value);
-            //关闭弹窗
-            closeModal();
-            //刷新列表
-            emit('success');
-        } finally {
-            setModalProps({confirmLoading: false});
-        }
-    }
-</script>
-
-<style lang="less" scoped>
-	/** 时间和数字输入框样式 */
-  :deep(.ant-input-number){
-		width: 100%
-	}
-
-	:deep(.ant-calendar-picker){
-		width: 100%
-	}
-</style>

+ 1 - 26
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/controller/StorageBillController.java

@@ -679,28 +679,6 @@ public class StorageBillController extends JeecgController<StorageBill, IStorage
 					rollOutShipp.setBlankOutput(Math.max(0, rollOutShipp.getBlankOutput() - sumBlankOutput));
 					rollOutShippService.updateById(rollOutShipp);
 				}
-			}else if ("付跨".equals(storageBillVo.getDestination())) {
-				List<RollDeputyCrossDetails> rollDeputyCrossDetailsList = rollDeputyCrossDetailsService.list(new LambdaQueryWrapper<RollDeputyCrossDetails>()
-						.eq(RollDeputyCrossDetails::getStorageBillId, storageBillVo.getId())
-						.eq(RollDeputyCrossDetails::getCcmNo, storageBillVo.getCcmNo())
-						.eq(RollDeputyCrossDetails::getAssemblyNumber, storageBillVo.getAssemblyNumber()));
-				sumBlankOutput = rollDeputyCrossDetailsList.stream().mapToDouble(RollDeputyCrossDetails::getBlankOutput).sum();
-				if (oConvertUtils.listIsNotEmpty(rollDeputyCrossDetailsList)){
-					rollDeputyCrossDetailsService.removeByIds(rollDeputyCrossDetailsList.stream().map(RollDeputyCrossDetails::getId).collect(Collectors.toList()));
-				}
-				LambdaQueryWrapper<RollDeputyCross> queryWrapper = new LambdaQueryWrapper<RollDeputyCross>()
-						.eq(RollDeputyCross::getCcmNo, storageBillVo.getCcmNo())
-						.eq(RollDeputyCross::getHeatNo, finalHeatNo)
-						.eq(RollDeputyCross::getShiftGroup, shiftGroup)
-						.eq(RollDeputyCross::getShift, shift)
-						.eq(RollDeputyCross::getStorageBillId, storageBillVo.getId())
-						.last("limit 1");
-				RollDeputyCross rollDeputyCross = rollDeputyCrossService.getOne(queryWrapper);
-				if (oConvertUtils.isNotEmpty(rollDeputyCross)){
-					rollDeputyCross.setAmountTotal(Math.max(0, rollDeputyCross.getAmountTotal() - sumAmountTotal));
-					rollDeputyCross.setBlankOutput(Math.max(0, rollDeputyCross.getBlankOutput() - sumBlankOutput));
-					rollDeputyCrossService.updateById(rollDeputyCross);
-				}
 			}
 			BilletHotsendTypeConfig billetHotsendTypeConfig = new BilletHotsendTypeConfig();
 			if (oConvertUtils.isNotEmpty(storageBillVo.getStackAddr())){
@@ -829,9 +807,6 @@ public class StorageBillController extends JeecgController<StorageBill, IStorage
 			case "上若":
 				billetHotsend.setRolloutshippNum(Math.max(0, billetHotsend.getRolloutshippNum() - sumAmountTotal));
 				break;
-			case "付跨":
-				billetHotsend.setRollDeputyCrossNum(Math.max(0, billetHotsend.getRollDeputyCrossNum() - sumAmountTotal));
-				break;
 		}
 	}
 
@@ -2132,7 +2107,7 @@ public class StorageBillController extends JeecgController<StorageBill, IStorage
 			}
 
 			// 定义需要筛选的belongTable列表
-			List<String> targetTables = Arrays.asList("roll_club_two", "roll_club_three", "roll_out_shipp", "roll_deputy_cross", "billet_auto_tmp");
+			List<String> targetTables = Arrays.asList("roll_club_two", "roll_club_three", "roll_out_shipp", "billet_auto_tmp");
 
 			// 热装过滤并计算
 			List<BilletBasicInfo> filterHotChargeList = billetBasicInfoList.stream()

+ 1 - 1
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/entity/BilletHotsendDetails.java

@@ -27,6 +27,6 @@ public class BilletHotsendDetails {
 //
 //    private List<StackingDownLogDetails> stackingDownLogDetailsList;
 
-    private List<RollDeputyCrossDetails> rollDeputyCrossDetailsList;
+//    private List<RollDeputyCrossDetails> rollDeputyCrossDetailsList;
 
 }

+ 12 - 211
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/service/impl/StorageBillServiceImpl.java

@@ -279,10 +279,10 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
         processRollHeightDetails(rollHeightDetails);
         result.setRollHeightDetails(rollHeightDetails);
 
-        List<RollDeputyCrossDetails> rollDeputyCrossDetailsList = rollDeputyCrossDetailsService.list(new LambdaQueryWrapper<RollDeputyCrossDetails>().in(RollDeputyCrossDetails::getStorageBillId, idList));
-        processRollDeputyCrossDetails(rollDeputyCrossDetailsList);
-        result.setRollDeputyCrossDetailsList(rollDeputyCrossDetailsList);
-
+//        List<RollDeputyCrossDetails> rollDeputyCrossDetailsList = rollDeputyCrossDetailsService.list(new LambdaQueryWrapper<RollDeputyCrossDetails>().in(RollDeputyCrossDetails::getStorageBillId, idList));
+//        processRollDeputyCrossDetails(rollDeputyCrossDetailsList);
+//        result.setRollDeputyCrossDetailsList(rollDeputyCrossDetailsList);
+//
         return result;
     }
 
@@ -804,7 +804,6 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
         List<DestinationStatisticsDetails> statisticsDetailsList1 = new ArrayList<>();
         List<DestinationStatisticsDetails> statisticsDetailsList2 = new ArrayList<>();
         List<DestinationStatisticsDetails> statisticsDetailsList3 = new ArrayList<>();
-        List<DestinationStatisticsDetails> statisticsDetailsList4 = new ArrayList<>();
         // 统计总数
         int totalNumsAll = 0;
         BigDecimal totalBlankOutputsAll = BigDecimal.ZERO;
@@ -967,62 +966,8 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
         }
 
 
-        LambdaQueryWrapper<RollDeputyCrossDetails> queryWrapper4 = new LambdaQueryWrapper<>();
-        queryWrapper4.eq(RollDeputyCrossDetails::getCcmNo, ccmNo);
-        queryWrapper4.eq(RollDeputyCrossDetails::getShiftGroup, shiftGroup);
-        queryWrapper4.eq(RollDeputyCrossDetails::getShift, shift);
-        // 添加大于 billetHotsendChangeShiftList 的 createTime 条件
-        if (billetHotsendChangeShift != null && billetHotsendChangeShift.getCreateTime() != null) {
-            if (oConvertUtils.isEmpty(changeShiftId)) {
-                // 当 changeShiftId 为空时,时间范围从 createTime 到当前时间
-                queryWrapper4.between(RollDeputyCrossDetails::getCreateTime, billetHotsendChangeShift.getCreateTime(), new Date());
-            } else {
-                // 当 changeShiftId 不为空时,时间范围从 createTime 到 updateTime
-                queryWrapper4.between(RollDeputyCrossDetails::getCreateTime, billetHotsendChangeShift.getCreateTime(), billetHotsendChangeShift.getChangeShiftTime());
-            }
-        }
-        List<RollDeputyCrossDetails> rollDeputyCrossDetailsList = rollDeputyCrossDetailsService.list(queryWrapper4);
-        if (oConvertUtils.listIsNotEmpty(rollDeputyCrossDetailsList)) {
-            statisticsDetailsList4 = rollDeputyCrossDetailsList.stream()
-                    // 过滤掉 stackAddr 不为空的记录
-                    .filter(detail -> detail.getStackAddr() == null || detail.getStackAddr().isEmpty())
-                    .collect(Collectors.groupingBy(RollDeputyCrossDetails::getSize, Collectors.toList()))
-                    .entrySet().stream()
-                    .map(entry -> {
-                        String size = entry.getKey();
-                        List<RollDeputyCrossDetails> group = entry.getValue();
-                        // 统计总支数,过滤后 stackAddr 均为空,直接按 1 计算
-                        int nums = group.size();
-
-                        Double totalBlankOutput = group.stream().mapToDouble(RollDeputyCrossDetails::getBlankOutput).sum();
-                        BigDecimal bd = BigDecimal.valueOf(totalBlankOutput).setScale(4, BigDecimal.ROUND_HALF_UP);
-                        double finalBlankOutput = bd.doubleValue();
-
-                        String ccmNos = group.isEmpty() ? null : group.get(0).getCcmNo();
-                        return new DestinationStatisticsDetails(size, nums, finalBlankOutput, ccmNos);
-                    }).collect(Collectors.toList());
-
-            // 计算总数时,同样过滤 stackAddr 不为空的记录
-            int totalNums = statisticsDetailsList4.stream()
-                    .mapToInt(DestinationStatisticsDetails::getNums)
-                    .sum();
-
-            double totalBlankOutputs = rollDeputyCrossDetailsList.stream()
-                    .filter(detail -> detail.getStackAddr() == null || detail.getStackAddr().isEmpty()) // 过滤
-                    .mapToDouble(RollDeputyCrossDetails::getBlankOutput)
-                    .sum();
-
-            BigDecimal bd = BigDecimal.valueOf(totalBlankOutputs).setScale(4, BigDecimal.ROUND_HALF_UP);
-            totalNumsAll += totalNums;
-            totalBlankOutputsAll = totalBlankOutputsAll.add(bd);
-        }
-
-
-        // 合并四个列表并根据 size 分组统计
-        List<DestinationStatisticsDetails> mergedList = Stream.of(
-                        statisticsDetailsList1, statisticsDetailsList2, statisticsDetailsList3, statisticsDetailsList4 // 添加第四个列表
-                )
-                .flatMap(Collection::stream) // 将所有列表合并成一个流
+        // 合并两个列表并根据 size 分组统计
+        List<DestinationStatisticsDetails> mergedList = Stream.concat(statisticsDetailsList1.stream(), statisticsDetailsList2.stream())
                 .collect(Collectors.groupingBy(DestinationStatisticsDetails::getSize))
                 .entrySet().stream()
                 .map(entry -> {
@@ -1034,8 +979,7 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
                     double finalBlankOutput = bd.doubleValue();
                     String ccmNoForGroup = group.isEmpty() ? null : group.get(0).getCcmNo();
                     return new DestinationStatisticsDetails(size, totalNums, finalBlankOutput, ccmNoForGroup);
-                })
-                .collect(Collectors.toList());
+                }).collect(Collectors.toList());
 
         log.info("{}{}", "钢坯热装单班统计查询结果:", JSON.toJSON(mergedList));
         onDutyStatistics.setCounts(totalNumsAll);
@@ -1764,23 +1708,6 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
                     onDutyStorageBillInfo.setBlankOutput(blankOutputSum);
                 }
             }
-            if ("付跨".equals(storageBill.getDestination())){
-                // 根据装运单ID查询付跨明细表,并计算出坯量
-                LambdaQueryWrapper<RollDeputyCrossDetails> queryWrapper4 = new LambdaQueryWrapper<>();
-                queryWrapper4.eq(RollDeputyCrossDetails::getCcmNo, ccmNo).eq(RollDeputyCrossDetails::getStorageBillId, storageBill.getId());
-                List<RollDeputyCrossDetails> rollDeputyCrossDetailsList = rollDeputyCrossDetailsService.list(queryWrapper4);
-                if (oConvertUtils.listIsNotEmpty(rollDeputyCrossDetailsList)) {
-                    // 统计 blankOutput 总和并保留 4 位小数
-                    double totalBlankOutput = rollDeputyCrossDetailsList.stream()
-                            .mapToDouble(RollDeputyCrossDetails::getBlankOutput)
-                            .sum();
-
-                    BigDecimal bd = new BigDecimal(totalBlankOutput);
-                    bd = bd.setScale(4, BigDecimal.ROUND_HALF_UP);
-                    double blankOutputSum = bd.doubleValue();
-                    onDutyStorageBillInfo.setBlankOutput(blankOutputSum);
-                }
-            }
             onDutyStorageBillInfos.add(onDutyStorageBillInfo);
         }
         onDutyStorageBill.setOnDutyStorageBillInfos(onDutyStorageBillInfos);
@@ -1843,7 +1770,6 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
         List<DestinationStatisticsDetails> statisticsDetailsList1 = new ArrayList<>();
         List<DestinationStatisticsDetails> statisticsDetailsList2 = new ArrayList<>();
         List<DestinationStatisticsDetails> statisticsDetailsList3 = new ArrayList<>();
-        List<DestinationStatisticsDetails> statisticsDetailsList4 = new ArrayList<>();
 
         for (StorageBill storageBill : storageBillList) {
             if ("棒二".equals(storageBill.getDestination())) {
@@ -1929,41 +1855,12 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
                     statisticsDetailsList3.addAll(currentList3);
                 }
             }
-
-            if ("付跨".equals(storageBill.getDestination())) {
-                LambdaQueryWrapper<RollDeputyCrossDetails> queryWrapper4 = new LambdaQueryWrapper<>();
-                queryWrapper4.eq(RollDeputyCrossDetails::getCcmNo, ccmNo).eq(RollDeputyCrossDetails::getStorageBillId, storageBill.getId());
-                List<RollDeputyCrossDetails> rollDeputyCrossDetailsList = rollDeputyCrossDetailsService.list(queryWrapper4);
-                if (oConvertUtils.listIsNotEmpty(rollDeputyCrossDetailsList)) {
-                    List<DestinationStatisticsDetails> currentList4 = rollDeputyCrossDetailsList.stream()
-                            .collect(Collectors.groupingBy(RollDeputyCrossDetails::getSize))
-                            .entrySet().stream()
-                            .map(entry -> {
-                                String size = entry.getKey();
-                                List<RollDeputyCrossDetails> group = entry.getValue();
-                                // 统计 blankOutput 总和
-                                Double totalBlankOutput = group.stream()
-                                        .mapToDouble(RollDeputyCrossDetails::getBlankOutput)
-                                        .sum();
-                                BigDecimal bd = BigDecimal.valueOf(totalBlankOutput).setScale(4, BigDecimal.ROUND_HALF_UP);
-                                totalBlankOutput = bd.doubleValue();
-                                // 统计数量
-                                Integer totalNums = group.stream()
-                                        .mapToInt(detail -> detail.getStackAddr() != null ? 4 : 1).sum();
-                                // 取第一个元素的 ccmNo 作为该分组的 ccmNo
-                                String ccmNos = group.isEmpty() ? null : group.get(0).getCcmNo();
-                                return new DestinationStatisticsDetails(size, totalNums, totalBlankOutput, ccmNos);
-                            }).collect(Collectors.toList());
-                    statisticsDetailsList4.addAll(currentList4);
-                }
-            }
         }
 
-        // 合并个列表并根据 size 分组统计
+        // 合并三个列表并根据 size 分组统计
         List<DestinationStatisticsDetails> mergedList = Stream.concat(
-                        Stream.concat(Stream.concat(statisticsDetailsList1.stream(), statisticsDetailsList2.stream()),
-                                statisticsDetailsList3.stream()),
-                        statisticsDetailsList4.stream()
+                Stream.concat(statisticsDetailsList1.stream(), statisticsDetailsList2.stream()),
+                        statisticsDetailsList3.stream()
                 ).collect(Collectors.groupingBy(DestinationStatisticsDetails::getSize))
                 .entrySet().stream()
                 .map(entry -> {
@@ -2549,47 +2446,6 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
 
         summaryList.addAll(result5);
 
-        // 根据铸机号、班组、班别、交班的创建时间,查询付跨符合条件的信息
-        LambdaQueryWrapper<RollDeputyCrossDetails> queryWrapper6 = new LambdaQueryWrapper<>();
-        queryWrapper6.eq(RollDeputyCrossDetails::getCcmNo, ccmNo)
-                .eq(RollDeputyCrossDetails::getShift, shift)
-                .eq(RollDeputyCrossDetails::getShiftGroup, shiftGroup);
-        if (oConvertUtils.isEmpty(changeShiftId)) {
-            // 当 changeShiftId 为空时,时间范围从 createTime 到当前时间
-            queryWrapper6.between(RollDeputyCrossDetails::getCreateTime, billetHotsendChangeShift.getCreateTime(), new Date());
-        } else {
-            // 当 changeShiftId 不为空时,时间范围从 createTime 到 updateTime
-            queryWrapper6.between(RollDeputyCrossDetails::getCreateTime, billetHotsendChangeShift.getCreateTime(), billetHotsendChangeShift.getChangeShiftTime());
-        }
-        List<RollDeputyCrossDetails> list6 = rollDeputyCrossDetailsService.list(queryWrapper6);
-
-        // 根据 size 分组,并统计总支数和总 BlankOutput
-        List<SizeSummary> result6 = list6.stream()
-                .collect(Collectors.groupingBy(RollDeputyCrossDetails::getSize))
-                .entrySet().stream()
-                .map(entry -> {
-                    String size = entry.getKey();
-                    List<RollDeputyCrossDetails> group = entry.getValue();
-
-                    // 统计总支数,如果 stackAddr 不为空,则乘以 4
-                    int totalNums = group.stream()
-                            .mapToInt(detail -> (detail.getStackAddr() != null && !detail.getStackAddr().isEmpty()) ? 4 : 1)
-                            .sum();
-
-                    // 累加 BlankOutput (转换为 BigDecimal)
-                    BigDecimal totalBlankOutput = group.stream()
-                            .map(RollDeputyCrossDetails::getBlankOutput)
-                            .filter(Objects::nonNull) // 过滤 null 值
-                            .map(BigDecimal::valueOf) // Double 转 BigDecimal
-                            .reduce(BigDecimal.ZERO, BigDecimal::add);
-
-                    // 返回处理后的分组结果
-                    return new SizeSummary(size, totalNums, totalBlankOutput);
-                }).collect(Collectors.toList());
-
-        summaryList.addAll(result6);
-
-
         // 对 summaryList 进行二次分组,聚合数据
         List<OnDutySizeVo> onDutySizeVoList = summaryList.stream()
                 .collect(Collectors.groupingBy(SizeSummary::getSize))
@@ -3072,6 +2928,8 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
                         billetHotsend.setRollclubthreeNum(oConvertUtils.isNotEmpty(idExistBh.getRollclubthreeNum()) ? idExistBh.getRollclubthreeNum() + groupRollClubCommonList.size() * 4  : groupRollClubCommonList.size() * 4 );
                     }else if ("roll_out_shipp".equals(billetHotsendTypeConfig.getBelongTable())){
                         billetHotsend.setRolloutshippNum(oConvertUtils.isNotEmpty(idExistBh.getRolloutshippNum()) ? idExistBh.getRolloutshippNum() + groupRollClubCommonList.size() * 4  : groupRollClubCommonList.size() * 4 );
+                    }else if ("roll_deputy_cross".equals(billetHotsendTypeConfig.getBelongTable())){
+                        billetHotsend.setRollDeputyCrossNum(oConvertUtils.isNotEmpty(idExistBh.getRollDeputyCrossNum()) ? idExistBh.getRollDeputyCrossNum() + groupRollClubCommonList.size() * 4  : groupRollClubCommonList.size() * 4 );
                     }
                     billetHotsendBaseMapper.updateById(billetHotsend);
                 }
@@ -7701,63 +7559,6 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
         }
     }
 
-    public void processRollDeputyCrossDetails(List<RollDeputyCrossDetails> rollDeputyCrossDetailsList) {
-        if (CollectionUtils.isEmpty(rollDeputyCrossDetailsList)) {
-            return;
-        }
-        // 1. 统一收集所有 billetNo,避免多次查询
-        Set<String> allBilletNos = rollDeputyCrossDetailsList.stream()
-                .map(RollDeputyCrossDetails::getBilletNo)
-                .filter(StringUtils::isNotBlank)
-                .flatMap(billetNo -> Arrays.stream(billetNo.split(",")))
-                .map(String::trim)
-                .filter(StringUtils::isNotBlank)
-                .collect(Collectors.toSet());
-
-        // 2. 一次性查询 BilletBasicInfo,避免重复查询数据库
-        Map<String, String> billetToAssemblyMap = new HashMap<>();
-        if (CollectionUtils.isNotEmpty(allBilletNos)) {
-            List<BilletBasicInfo> billetBasicInfoList = billetBasicInfoService.list(
-                    new LambdaQueryWrapper<BilletBasicInfo>().in(BilletBasicInfo::getBilletNo, allBilletNos));
-
-            // 构建 billetNo -> assemblyNumber 映射
-            billetToAssemblyMap = billetBasicInfoList.stream()
-                    .collect(Collectors.toMap(
-                            BilletBasicInfo::getBilletNo,
-                            BilletBasicInfo::getAssemblyNumber,
-                            (existing, replacement) -> existing // 遇到重复 billetNo,保留第一个
-                    ));
-        }
-        // 3. 遍历 details 并更新 assemblyNumber
-        for (RollDeputyCrossDetails details : rollDeputyCrossDetailsList) {
-            // 解析 billetNo
-            Set<String> billetNoSet = Optional.ofNullable(details.getBilletNo())
-                    .map(billetNo -> Arrays.stream(billetNo.split(","))
-                            .map(String::trim)
-                            .filter(StringUtils::isNotBlank)
-                            .collect(Collectors.toSet()))
-                    .orElse(Collections.emptySet());
-
-            if (billetNoSet.isEmpty()) {
-                continue;
-            }
-            // 先加入 details 现有的 assemblyNumber
-            Set<String> assemblySet = new HashSet<>();
-            String existingAssembly = details.getAssemblyNumber();
-            if (StringUtils.isNotBlank(existingAssembly)) {
-                Collections.addAll(assemblySet, existingAssembly.split(","));
-            }
-            // 直接从 Map 获取 assemblyNumber,避免重复查询数据库
-            billetNoSet.stream()
-                    .map(billetToAssemblyMap::get)
-                    .filter(StringUtils::isNotBlank)
-                    .forEach(assemblySet::add);
-            // 更新 assemblyNumber
-            details.setAssemblyNumber(String.join(",", assemblySet));
-        }
-    }
-
-
 
     public void processRollHeightDetails(List<RollHeightDetails> rollHeightDetailsList) {
         if (CollectionUtils.isEmpty(rollHeightDetailsList)) {