Browse Source

Merge remote-tracking branch 'origin/master_hella' into master_hella

master_hella_20240701
zhousq 1 year ago
parent
commit
d74c0f576e
  1. 7
      win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/controller/workstation/ProductionProcessController.java
  2. 27
      win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/controller/workstation/vo/ProductionProcessRelationReqVO.java
  3. 3
      win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/convert/workstation/EquipmentConvert.java
  4. 3
      win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/dal/mysql/workstation/EquipmentMapper.java
  5. 13
      win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/dal/mysql/workstation/ProductionProcessMapper.java
  6. 2
      win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/service/workstation/EquipmentService.java
  7. 7
      win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/service/workstation/ProductionProcessService.java
  8. 15
      win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/service/workstation/ProductionProcessServiceImpl.java
  9. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageMassage/PackageController.java
  10. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageoverJob/vo/PackageoverJobDetailExportReqVO.java
  11. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageoverJob/vo/PackageoverJobDetailPageReqVO.java
  12. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageoverRecord/PackageoverRecordMainController.java
  13. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageoverRecord/vo/PackageoverMainExcelVO.java
  14. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/packageoverJob/PackageoverJobDetailMapper.java
  15. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageService.java
  16. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageServiceImpl.java
  17. 52
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageoverJob/PackageoverJobMainServiceImpl.java
  18. 259
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageoverRecord/PackageoverRecordMainServiceImpl.java
  19. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transaction/TransactionServiceImpl.java

7
win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/controller/workstation/ProductionProcessController.java

@ -137,4 +137,11 @@ public class ProductionProcessController {
return success(returnMap);
}
@PostMapping("/relationWorkStation")
@Operation(summary = "关联工位")
@PreAuthorize("@ss.hasPermission('workstation:production-process:relationWorkStation')")
public CommonResult relationWorkStation(@Valid @RequestBody ProductionProcessRelationReqVO productionProcessRelationReqVO) {
productionProcessService.relationWorkStation(productionProcessRelationReqVO);
return success(null);
}
}

27
win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/controller/workstation/vo/ProductionProcessRelationReqVO.java

@ -0,0 +1,27 @@
package com.win.module.mes.controller.workstation.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Schema(description = "管理后台 - 关联班组 Request VO")
@Data
@ToString(callSuper = true)
public class ProductionProcessRelationReqVO {
@Schema(description = "id")
private Long id;
@Schema(description = "工位code", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "工位code不能为空")
private String workstationCode;
@Schema(description = "产品code", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "产品code不能为空")
private String productionCode;
@Schema(description = "工序code", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "工序code不能为空")
private String processCode;
}

3
win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/convert/workstation/EquipmentConvert.java

@ -6,6 +6,7 @@ import com.win.framework.common.pojo.PageResult;
import com.win.module.mes.controller.workstation.vo.*;
import com.win.module.mes.dal.dataobject.workstation.EquipmentDO;
import com.win.module.mes.dal.dataobject.workstation.ProductionProcessDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
@ -32,4 +33,6 @@ public interface EquipmentConvert {
List<EquipmentExcelVO> convertList02(List<EquipmentDO> list);
EquipmentDO convert(EquipmentRelationReqVO equipmentRelationReqVO);
ProductionProcessDO convert(ProductionProcessRelationReqVO productionProcessRelationReqVO);
}

3
win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/dal/mysql/workstation/EquipmentMapper.java

@ -55,7 +55,4 @@ public interface EquipmentMapper extends BaseMapperX<EquipmentDO> {
.eqIfPresent(EquipmentDO::getEquipmentCode, reqVO.getEquipmentCode())
.eqIfPresent(EquipmentDO::getWorkstationCode,reqVO.getWorkstationCode()));
}
default long relationEquipment(EquipmentRelationReqVO equipmentRelationReqVO) {
return 0;
}
}

13
win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/dal/mysql/workstation/ProductionProcessMapper.java

@ -5,12 +5,9 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.module.mes.controller.workstation.vo.ProductionProcessExcelVO;
import com.win.module.mes.controller.workstation.vo.ProductionProcessExportReqVO;
import com.win.module.mes.controller.workstation.vo.ProductionProcessPageReqVO;
import com.win.module.mes.controller.workstation.vo.WorkstationOrderHistoryExcelVO;
import com.win.module.mes.controller.workstation.vo.*;
import com.win.module.mes.dal.dataobject.workstation.EquipmentDO;
import com.win.module.mes.dal.dataobject.workstation.ProductionProcessDO;
import com.win.module.mes.dal.dataobject.workstation.WorkstationOrderHistoryDO;
import org.apache.ibatis.annotations.Mapper;
/**
@ -54,4 +51,10 @@ public interface ProductionProcessMapper extends BaseMapperX<ProductionProcessDO
.eqIfPresent(ProductionProcessDO::getWorkstationCode, reqVO.getWorkstationCode())
.eqIfPresent(ProductionProcessDO::getProductionCode, reqVO.getProductionCode()));
}
default ProductionProcessDO selectByCode(ProductionProcessRelationReqVO reqVO) {
return selectOne(new LambdaQueryWrapperX<ProductionProcessDO>()
.eqIfPresent(ProductionProcessDO::getProductionCode, reqVO.getProductionCode())
.eqIfPresent(ProductionProcessDO::getWorkstationCode,reqVO.getWorkstationCode())
.eqIfPresent(ProductionProcessDO::getProcessCode,reqVO.getProcessCode()));
}
}

2
win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/service/workstation/EquipmentService.java

@ -77,7 +77,7 @@ public interface EquipmentService {
*/
public List<EquipmentExcelVO> importEquipmentList(List<EquipmentExcelVO> datas, Integer mode, boolean updatePart);
/**
* 关联设备
* 关联工位
*
* @param equipmentRelationReqVO 设备关联信息
* @return

7
win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/service/workstation/ProductionProcessService.java

@ -76,4 +76,11 @@ public interface ProductionProcessService {
* @return 导入结果
*/
public List<ProductionProcessExcelVO> importProductionProcessList(List<ProductionProcessExcelVO> datas, Integer mode, boolean updatePart);
/**
* 关联工位
*
* @param productionProcessRelationReqVO 工位关联信息
* @return
*/
void relationWorkStation(@Valid ProductionProcessRelationReqVO productionProcessRelationReqVO);
}

15
win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/service/workstation/ProductionProcessServiceImpl.java

@ -2,7 +2,9 @@ package com.win.module.mes.service.workstation;
import cn.hutool.core.collection.CollUtil;
import com.win.module.mes.controller.workstation.vo.*;
import com.win.module.mes.convert.workstation.EquipmentConvert;
import com.win.module.mes.convert.workstation.ProductionProcessConvert;
import com.win.module.mes.dal.dataobject.workstation.EquipmentDO;
import com.win.module.mes.dal.dataobject.workstation.ProductionProcessDO;
import com.win.module.mes.dal.mysql.workstation.ProductionProcessMapper;
import org.springframework.stereotype.Service;
@ -105,4 +107,17 @@ public class ProductionProcessServiceImpl implements ProductionProcessService {
return errorList;
}
@Override
public void relationWorkStation(ProductionProcessRelationReqVO productionProcessRelationReqVO) {
// 判断如果不存在,在进行插入
ProductionProcessDO obj = productionProcessMapper.selectByCode(productionProcessRelationReqVO);
if (obj == null) {
productionProcessMapper.insert(EquipmentConvert.INSTANCE.convert(productionProcessRelationReqVO));
}else{
ProductionProcessDO productionProcessDO = EquipmentConvert.INSTANCE.convert(productionProcessRelationReqVO);
productionProcessDO.setId(obj.getId());
productionProcessMapper.updateById(obj);
}
}
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageMassage/PackageController.java

@ -69,7 +69,7 @@ public class PackageController {
@PostMapping("/createLabel")
@Operation(summary = "创建包装标签")
@PreAuthorize("@ss.hasPermission('wms:package:create')")
public CommonResult<PackageDO> createPackageLabel(@Valid @RequestBody PackageCreateReqVO createReqVO) {
public CommonResult<List<PackageDO>> createPackageLabel(@Valid @RequestBody PackageCreateReqVO createReqVO) {
return success(packageService.createPackageLabel(createReqVO));
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageoverJob/vo/PackageoverJobDetailExportReqVO.java

@ -21,4 +21,7 @@ public class PackageoverJobDetailExportReqVO {
@Schema(description = "到包装规格")
private String toPackUnit;
@Schema(description = "主表ID")
private Long masterId;
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageoverJob/vo/PackageoverJobDetailPageReqVO.java

@ -23,4 +23,7 @@ public class PackageoverJobDetailPageReqVO extends PageParam {
@Schema(description = "到包装规格")
private String toPackUnit;
@Schema(description = "主表ID")
private Long masterId;
}

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageoverRecord/PackageoverRecordMainController.java

@ -135,15 +135,15 @@ public class PackageoverRecordMainController {
private List<PackageoverMainExcelVO> getExcelVo(List<PackageoverMainDO> list, Map<Integer, String[]> mapDropDown) {
String[] trueFalse = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(6, trueFalse);
mapDropDown.put(7, trueFalse);
String[] interfaceType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INTERFACE_TYPE);
mapDropDown.put(10, interfaceType);
mapDropDown.put(37, interfaceType);
mapDropDown.put(11, interfaceType);
mapDropDown.put(38, interfaceType);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(21, inventoryStatus);
mapDropDown.put(22, inventoryStatus);
mapDropDown.put(23, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(36, uom);
mapDropDown.put(37, uom);
List<PackageoverMainExcelVO> resultList = new ArrayList<>();
// 导出
for(PackageoverMainDO mainDO : list) {

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageoverRecord/vo/PackageoverMainExcelVO.java

@ -26,6 +26,10 @@ public class PackageoverMainExcelVO {
@Colour(IndexedColors.LIGHT_YELLOW)
private String number;
@ExcelProperty("任务单据号")
@Colour(IndexedColors.LIGHT_YELLOW)
private String jobNumber;
@ExcelProperty("仓库代码")
@Colour(IndexedColors.LIGHT_YELLOW)
private String warehouseCode;
@ -163,8 +167,6 @@ public class PackageoverMainExcelVO {
@DictFormat(DictTypeConstants.INTERFACE_TYPE)
private String interfaceTypeDetail;
@ExcelProperty("任务单据号")
@Colour(IndexedColors.LIGHT_YELLOW)
private String jobNumber;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/packageoverJob/PackageoverJobDetailMapper.java

@ -24,6 +24,7 @@ public interface PackageoverJobDetailMapper extends BaseMapperX<PackageoverJobDe
.eqIfPresent(PackageoverJobDetailDO::getBatch, reqVO.getBatch())
.eqIfPresent(PackageoverJobDetailDO::getFromPackUnit, reqVO.getFromPackUnit())
.eqIfPresent(PackageoverJobDetailDO::getToPackUnit, reqVO.getToPackUnit())
.eqIfPresent(PackageoverJobDetailDO::getMasterId, reqVO.getMasterId())
.orderByDesc(PackageoverJobDetailDO::getId));
}
@ -33,6 +34,7 @@ public interface PackageoverJobDetailMapper extends BaseMapperX<PackageoverJobDe
.eqIfPresent(PackageoverJobDetailDO::getBatch, reqVO.getBatch())
.eqIfPresent(PackageoverJobDetailDO::getFromPackUnit, reqVO.getFromPackUnit())
.eqIfPresent(PackageoverJobDetailDO::getToPackUnit, reqVO.getToPackUnit())
.eqIfPresent(PackageoverJobDetailDO::getMasterId, reqVO.getMasterId())
.orderByDesc(PackageoverJobDetailDO::getId));
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageService.java

@ -99,7 +99,7 @@ public interface PackageService {
*/
PageResult<PackageDO> getPackageSenior(CustomConditions conditions);
PackageDO createPackageLabel(PackageCreateReqVO createReqVO);
List<PackageDO> createPackageLabel(PackageCreateReqVO createReqVO);
/**
* 供应商发货申请生成标签

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageServiceImpl.java

@ -416,12 +416,13 @@ public class PackageServiceImpl implements PackageService {
@Override
@Transactional
public PackageDO createPackageLabel(PackageCreateReqVO createReqVO) {
public List<PackageDO> createPackageLabel(PackageCreateReqVO createReqVO) {
PackageDO packageDO = null ;
List<PackageDO> packageDOList = new ArrayList<>();
// 获取标包数量
ItempackageDO itemPackagingDO ;
// 翻包任务执行时 无需查询包装信息
if (createReqVO.getPackQty() != null && createReqVO.getPackUnit() != null) {
if (createReqVO.getPackUnit() != null) {
itemPackagingDO = new ItempackageDO();
itemPackagingDO.setPackUnit(createReqVO.getPackUnit());
itemPackagingDO.setPackQty(createReqVO.getPackQty());
@ -452,6 +453,7 @@ public class PackageServiceImpl implements PackageService {
packageMapper.insert(packageDO);
// 创建 标签数据
this.generateLabel(packageDO);
packageDOList.add(packageDO);
}
} else {
// 创建 包装
@ -459,9 +461,10 @@ public class PackageServiceImpl implements PackageService {
packageMapper.insert(packageDO);
// 创建 标签数据
this.generateLabel(packageDO);
packageDOList.add(packageDO);
}
// 返回
return packageDO;
return packageDOList;
}
private PackageDO createPackageInfo(PackageCreateReqVO createReqVO, ItempackageDO itemPackagingDO) {

52
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageoverJob/PackageoverJobMainServiceImpl.java

@ -238,6 +238,7 @@ public class PackageoverJobMainServiceImpl implements PackageoverJobMainService
BeanUtils.copyProperties(packageoverJobMainDO, packageoverRecordMainDO);
String number = serialNumberApi.generateCode(RuleCodeEnum.OVER_PACKAGE_RECORD.getCode());
packageoverRecordMainDO.setNumber(number);
packageoverRecordMainDO.setWarehouseCode(packageoverJobMainDO.getFromWarehouseCode());
packageoverRecordMainDO.setJobNumber(packageoverJobMainDO.getNumber());
packageoverRecordMainDO.setExecuteTime(LocalDateTime.now());
packageoverRecordMainDO.setActiveDate(LocalDateTime.now());
@ -269,9 +270,9 @@ public class PackageoverJobMainServiceImpl implements PackageoverJobMainService
// 扫描的标签信息
for (Map<String,String> recordListItem : recordList) {
if (recordListItem.get("toPackingNumber") != null) {
fromPackingNumberStrs.append(recordListItem.get("toPackingNumber") + ",");
fromPackingNumberStrs.append(recordListItem.get("toPackingNumber")).append(",");
}
sumQty.add(new BigDecimal(recordListItem.get("handleQty")));
sumQty = sumQty.add(new BigDecimal(recordListItem.get("handleQty")));
// 出动作
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO();
BeanUtils.copyProperties(packageoverJobDetailUpdateReqVO, transactionCreateReqVOOut);
@ -308,8 +309,19 @@ public class PackageoverJobMainServiceImpl implements PackageoverJobMainService
packageoverDetailDO.setCreateTime(null);
packageoverDetailDO.setUpdater(null);
packageoverDetailDO.setUpdateTime(null);
packageoverDetailDO.setFromPackingNumber(fromPackingNumberStrs.toString());
packageoverDetailDO.setFromPackingNumber(fromPackingNumberStrs.substring(0,fromPackingNumberStrs.toString().length()-1));
packageoverDetailDO.setFromQty(sumQty);
packageoverDetailDO.setToQty(sumQty);
packageoverDetailDO.setLocationCode(packageoverJobDetailUpdateReqVO.getToLocationCode());
packageoverDetailDO.setLocationGroupCode(packageoverJobDetailUpdateReqVO.getToLocationGroupCode());
packageoverDetailDO.setFromBatch(packageoverJobDetailUpdateReqVO.getBatch());
packageoverDetailDO.setToBatch(packageoverJobDetailUpdateReqVO.getBatch());
packageoverDetailDO.setFromInventoryStatus(packageoverJobDetailUpdateReqVO.getInventoryStatus());
packageoverDetailDO.setToInventoryStatus(packageoverJobDetailUpdateReqVO.getInventoryStatus());
packageoverDetailDO.setFromOwnerCode(packageoverJobDetailUpdateReqVO.getFromOwnerCode());
packageoverDetailDO.setToOwnerCode(packageoverJobDetailUpdateReqVO.getToOwnerCode());
packageoverDetailDO.setAreaCode(packageoverJobDetailUpdateReqVO.getToAreaCode());
packageoverDetailDO.setFromPackUnit(packageoverJobDetailUpdateReqVO.getFromPackUnit());
packageoverDetailDO.setFromPackQty(packageoverJobDetailUpdateReqVO.getFromPackQty());
// 创建包装及标签
@ -324,18 +336,40 @@ public class PackageoverJobMainServiceImpl implements PackageoverJobMainService
packageCreateReqVO.setPackUnit(packageoverJobDetailUpdateReqVO.getToPackUnit());
packageCreateReqVO.setQty(sumQty);
packageCreateReqVO.setNumber(number);
packageService.createPackageLabel(packageCreateReqVO);
// 查询已创建的新包装信息
QueryWrapper<PackageDO> packageDOQueryWrapperNew = new QueryWrapper<>();
packageDOQueryWrapperNew.eq("request_number",number);
List<PackageDO> packageDOList = packageMapper.selectList(packageDOQueryWrapperNew);
List<PackageDO> packageDOList = packageService.createPackageLabel(packageCreateReqVO);
StringBuilder toPackingNumberStrs = new StringBuilder();
for(PackageDO packageDO1:packageDOList ) {
toPackingNumberStrs.append(packageDO1.getNumber()).append(",");
// 入动作
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO();
BeanUtils.copyProperties(packageoverJobDetailUpdateReqVO, transactionCreateReqVOIn);
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType());
transactionCreateReqVOIn.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVOIn.setInventoryAction(transactiontypeDO.getInventoryAction());
transactionCreateReqVOIn.setTransactionType(transactiontypeDO.getCode());
transactionCreateReqVOIn.setBusinessType(packageoverRecordMainDO.getBusinessType());
transactionCreateReqVOIn.setOwnerCode(packageoverJobDetailUpdateReqVO.getToOwnerCode());
transactionCreateReqVOIn.setRecordNumber(number);
transactionCreateReqVOIn.setId(null);
transactionCreateReqVOIn.setQty(packageDO1.getQty());
transactionCreateReqVOIn.setPackingNumber(packageDO1.getNumber());
transactionCreateReqVOIn.setBatch(packageoverJobDetailUpdateReqVO.getBatch());
transactionCreateReqVOIn.setAmount(new BigDecimal(0));
transactionCreateReqVOIn.setSinglePrice(new BigDecimal(0));
transactionCreateReqVOIn.setWarehouseCode(packageoverRecordMainDO.getWarehouseCode());
transactionCreateReqVOIn.setExpireDate(packageoverRecordMainDO.getExecuteTime());
transactionCreateReqVOIn.setActiveTime(packageoverRecordMainDO.getActiveDate());
transactionCreateReqVOIn.setLocationCode(packageoverJobDetailUpdateReqVO.getToLocationCode());
// 根据 库位 获取 库区DO
AreabasicDO areabasicDO = jobUtils.getAreabasicDO(transactionCreateReqVOIn.getLocationCode());
transactionCreateReqVOIn.setAreaType(areabasicDO.getType());
transactionCreateReqVOIn.setPackUnit(packageoverJobDetailUpdateReqVO.getToPackUnit());
transactionCreateReqVOIn.setPackQty(packageoverJobDetailUpdateReqVO.getToPackQty());
transactionCreateReqVOList.add(transactionCreateReqVOIn);
}
packageoverDetailDO.setToPackQty(packageoverJobDetailUpdateReqVO.getToPackQty());
packageoverDetailDO.setToPackUnit(packageoverJobDetailUpdateReqVO.getToPackUnit());
packageoverDetailDO.setToPackingNumber(toPackingNumberStrs.toString());
packageoverDetailDO.setToPackingNumber(toPackingNumberStrs.substring(0,toPackingNumberStrs.toString().length()-1));
packageoverDetailDOList.add(packageoverDetailDO);
}
if(packageoverDetailDOList != null && !packageoverDetailDOList.isEmpty()) {

259
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageoverRecord/PackageoverRecordMainServiceImpl.java

@ -8,6 +8,7 @@ import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.packageMassage.vo.PackageCreateReqVO;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.convert.packageovermain.PackageoverDetailConvert;
import com.win.module.wms.dal.dataobject.areabasic.AreabasicDO;
@ -17,6 +18,7 @@ import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.itempackage.ItempackageDO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.dataobject.packageMassage.PackageDO;
import com.win.module.wms.dal.dataobject.packageoverRequest.PackageoverRequestMainDO;
import com.win.module.wms.dal.dataobject.packageovermain.PackageoverDetailDO;
import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO;
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO;
@ -24,6 +26,7 @@ import com.win.module.wms.dal.mysql.packageMassage.PackageMapper;
import com.win.module.wms.dal.mysql.packagemergemain.PackagemergeDetailMapper;
import com.win.module.wms.dal.mysql.packagemergemain.PackagemergeMainMapper;
import com.win.module.wms.dal.mysql.packageoverRecord.PackageoverRecordDetailMapper;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.itempackage.ItempackageService;
import com.win.module.wms.service.location.LocationService;
@ -99,7 +102,7 @@ public class PackageoverRecordMainServiceImpl implements PackageoverRecordMainSe
Long userId = getLoginUserId();
AdminUserRespDTO userRespDTO = userApi.getUser(userId);
PackageoverMainDO mainDO = PackageoverMainConvert.INSTANCE.convert(createReqVO);
List<PackageoverDetailDO> subDOList = PackageoverDetailConvert.INSTANCE.convertList03(createReqVO.getSubList());
String number = serialNumberApi.generateCode(RuleCodeEnum.OVER_PACKAGE_RECORD.getCode());
mainDO.setNumber(number);
mainDO.setDepartmentCode(String.valueOf(userRespDTO.getDeptId()));
@ -116,181 +119,145 @@ public class PackageoverRecordMainServiceImpl implements PackageoverRecordMainSe
RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("OverPackageRecord");
mainDO.setInterfaceType(recordsettingDO.getInterfaceType());
packageoverRecordMainMapper.insert(mainDO);
// 获取参数中的sublist
List<PackageoverDetailDO> subDOList = PackageoverDetailConvert.INSTANCE.convertList03(createReqVO.getSubList());
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
StringBuilder fromPackingNumberStrs = new StringBuilder();
BigDecimal sumQty = new BigDecimal(0);
for (PackageoverDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDO.getId());
detailDO.setNumber(number);
LocationDO locationDOFrom = locationService.selectLocation(detailDO.getLocationCode());
if(locationDOFrom != null) {
detailDO.setAreaCode(locationDOFrom.getAreaCode());
detailDO.setLocationGroupCode(locationDOFrom.getLocationGroupCode());
} else {
throw exception(LOCATION_NOT_EXISTS);
}
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode());
if (itembasicDO != null) {
detailDO.setItemName(itembasicDO.getName());
detailDO.setItemDesc1(itembasicDO.getDesc1());
detailDO.setItemDesc2(itembasicDO.getDesc2());
detailDO.setProjectCode(itembasicDO.getProject());
detailDO.setUom(itembasicDO.getUom());
} else {
throw exception(ITEMBASIC_NOT_EXISTS);
if (detailDO.getFromPackingNumber() != null) {
fromPackingNumberStrs.append(detailDO.getFromPackingNumber()).append(",");
}
sumQty = sumQty.add(detailDO.getFromQty());
//查询库存余额
List<String> inventoryStatusList = new ArrayList<>();
inventoryStatusList.add(detailDO.getFromInventoryStatus());
List<BalanceDO> balanceDO = jobUtils.selectlocationReturnManagementAccuracyToBalance(detailDO.getItemCode(),detailDO.getFromPackingNumber(),detailDO.getFromBatch(),detailDO.getLocationCode(), inventoryStatusList);
if (balanceDO == null || balanceDO.size() == 0) {
if (balanceDO == null || balanceDO.isEmpty()) {
throw exception(BALANCE_NOT_EXISTS);
}
// 库存事务——
// 出动作
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO();
BeanUtils.copyProperties(detailDO, transactionCreateReqVOOut);
transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType());
transactionCreateReqVOOut.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVOOut.setQty(detailDO.getFromQty());
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction());
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode());
transactionCreateReqVOOut.setBusinessType(mainDO.getBusinessType());
transactionCreateReqVOOut.setOwnerCode(detailDO.getFromOwnerCode());
transactionCreateReqVOOut.setRecordNumber(number);
transactionCreateReqVOOut.setInventoryStatus(detailDO.getFromInventoryStatus());
transactionCreateReqVOOut.setWorker(String.valueOf(userRespDTO.getId()));
transactionCreateReqVOOut.setBatch(detailDO.getFromBatch());
transactionCreateReqVOOut.setId(null);
transactionCreateReqVOOut.setPackingNumber(detailDO.getFromPackingNumber());
transactionCreateReqVOOut.setBatch(detailDO.getFromBatch());
transactionCreateReqVOOut.setWarehouseCode(mainDO.getWarehouseCode());
transactionCreateReqVOOut.setLocationCode(detailDO.getLocationCode());
transactionCreateReqVOOut.setSinglePrice(balanceDO.get(0).getSinglePrice());
transactionCreateReqVOOut.setAmount(balanceDO.get(0).getAmount());
transactionCreateReqVOOut.setArriveDate(balanceDO.get(0).getArriveDate());
transactionCreateReqVOOut.setProduceDate(balanceDO.get(0).getProduceDate());
transactionCreateReqVOOut.setExpireDate(balanceDO.get(0).getExpireDate());
transactionCreateReqVOOut.setWarehouseCode(mainDO.getWarehouseCode());
transactionCreateReqVOOut.setQty(detailDO.getFromQty());
transactionCreateReqVOOut.setId(null);
transactionCreateReqVOOut.setActiveTime(mainDO.getActiveDate());
// 根据 库位 获取 库区DO
AreabasicDO areabasicDOOut = jobUtils.getAreabasicDO(transactionCreateReqVOOut.getLocationCode());
transactionCreateReqVOOut.setAreaType(areabasicDOOut.getType());
transactionCreateReqVOOut.setPackUnit(jobUtils.getItemareaDO(transactionCreateReqVOOut.getItemCode(), areabasicDOOut.getCode()).getOutPackUnit());
transactionCreateReqVOOut.setPackQty(jobUtils.getItempackageDO(transactionCreateReqVOOut.getItemCode(),transactionCreateReqVOOut.getPackUnit()).getPackQty());
transactionCreateReqVOOut.setPackUnit(detailDO.getFromPackUnit());
// TODO: 标包数 如果前端查,后端直接赋值,如果需要后端查,需添加
transactionCreateReqVOOut.setPackQty(detailDO.getFromPackQty());
transactionCreateReqVOList.add(transactionCreateReqVOOut);
// 更新包装信息——来源包装
updatePackageDO(detailDO.getFromPackingNumber(),balanceDO.get(0).getQty().subtract(detailDO.getFromQty()));
// 查询一翻几的规则 在基础包装中 翻几 = 包装内物品的数量/替代标包数量 库存余额中不够分配的 向上取整
// 例如:库存余额24 翻3包 每包10 那么第一包数量10 第二包数量10 第三包数量4
// 例如:库存余额5 翻3包 每包10 那么第一包数量5
// 查询基础包装信息
ItempackageDO itempackageDO = jobUtils.getItempackageDOByItemCodeAndLocationCodeAndInOrOut(detailDO.getItemCode(),detailDO.getLocationCode(),"out");
if (itempackageDO == null) {
throw exception(PACKAGEUNIT_NOT_EXISTS);
}
List<PackageoverDetailDO> packageoverDetailDOList = new ArrayList<>();
// 判断替代标包数量不为空 并且 大于 0 并且 标包数大于等于替代标包数
// TODO 陈薪名再次修改,因为itempackageDO已经删除了alt_pack_qty1字段,逻辑需要重写
// if (itempackageDO.getAltPackQty1() != null && itempackageDO.getAltPackQty1().compareTo(BigDecimal.ZERO) == 1 && itempackageDO.getPackQty().compareTo(itempackageDO.getAltPackQty1()) != -1 ) {
// // 翻几包 overCount = 包装内物品的数量/替代标包数量
// BigDecimal overCount = itempackageDO.getPackQty().divide(itempackageDO.getAltPackQty1(),0, BigDecimal.ROUND_UP);
// // 替代标包数量
// BigDecimal altPackQty = itempackageDO.getAltPackQty1();
// // 库存余额数量
// BigDecimal balanceQty = balanceDO.get(0).getQty();
// for (int i =0; i< overCount.intValue();i++) {
// // 创建 子表数据
// PackageoverDetailDO packageoverDetailDO = new PackageoverDetailDO();
// BeanUtils.copyProperties(detailDO,packageoverDetailDO);
// packageoverDetailDO.setId(null).setCreator(null).setCreateTime(null).setUpdater(null).setUpdateTime(null);
// packageoverDetailDO.setMasterId(mainDO.getId());
// packageoverDetailDO.setToBatch(packageoverDetailDO.getFromBatch());
// packageoverDetailDO.setToContainerNumber(packageoverDetailDO.getFromContainerNumber());
// packageoverDetailDO.setToOwnerCode(packageoverDetailDO.getFromOwnerCode());
// packageoverDetailDO.setToInventoryStatus(packageoverDetailDO.getFromInventoryStatus());
// // 创建 包装及标签
// PackageCreateReqVO packagecreateReqVO = PackageConvert.INSTANCE.convert01(packageService.LabelExist(detailDO.getFromPackingNumber()));
// packagecreateReqVO.setId(null);
// packagecreateReqVO.setCreator(null);
// PackageDO packageDO;
// // 替代标包数量 >= 库存余额数量 只能创建一个包装标签 结束循环
// if (itempackageDO.getAltPackQty1().compareTo(balanceQty) != -1) {
// packagecreateReqVO.setQty(balanceQty);
// packageDO = packageService.createPackageLabel(packagecreateReqVO);
// packageoverDetailDO.setToPackingNumber(packageDO.getNumber());
// packageoverDetailDO.setToQty(balanceQty);
// // 库存事务——入
// TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO();
// BeanUtils.copyProperties(packageoverDetailDO, transactionCreateReqVOIn);
// transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode());
// TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType());
// transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction());
// transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode());
// transactionCreateReqVOIn.setWorker(String.valueOf(userRespDTO.getId()));
// transactionCreateReqVOIn.setBatch(packageoverDetailDO.getToBatch());
// transactionCreateReqVOIn.setPackingNumber(packageoverDetailDO.getToPackingNumber());
// transactionCreateReqVOIn.setInventoryStatus(packageoverDetailDO.getToInventoryStatus());
// transactionCreateReqVOIn.setLocationCode(packageoverDetailDO.getLocationCode());
// transactionCreateReqVOIn.setSinglePrice(BigDecimal.ZERO);
// transactionCreateReqVOIn.setAmount(BigDecimal.ZERO);
// transactionCreateReqVOIn.setArriveDate(LocalDateTime.now());
// transactionCreateReqVOIn.setProduceDate(LocalDateTime.now());
// transactionCreateReqVOIn.setExpireDate(LocalDateTime.now());
// transactionCreateReqVOIn.setWarehouseCode(mainDO.getWarehouseCode());
// transactionCreateReqVOIn.setRecordNumber(number);
// transactionCreateReqVOIn.setQty(packageoverDetailDO.getToQty());
// transactionCreateReqVOIn.setId(null);
// transactionCreateReqVOList.add(transactionCreateReqVOIn);
// packageoverDetailDOList.add(packageoverDetailDO);
// break;
// } else {
// //替代标包数量 < 库存余额数量
// packagecreateReqVO.setQty(altPackQty);
// packageDO = packageService.createPackageLabel(packagecreateReqVO);
// packageoverDetailDO.setToPackingNumber(packageDO.getNumber());
// packageoverDetailDO.setToQty(altPackQty);
// // 当 循环最后一次 库存余额数 仍然 大于 替代标包数量 最后一包放入所有库存数量
// if (overCount.intValue()-1 == i) {
// packagecreateReqVO.setQty(balanceQty);
// packageDO = packageService.createPackageLabel(packagecreateReqVO);
// packageoverDetailDO.setToPackingNumber(packageDO.getNumber());
// packageoverDetailDO.setToQty(balanceQty);
// }
// balanceQty = balanceQty.subtract(altPackQty);
// }
// packageoverDetailDOList.add(packageoverDetailDO);
// // 库存事务——入
// TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO();
// BeanUtils.copyProperties(packageoverDetailDO, transactionCreateReqVOIn);
// transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode());
// TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType());
// transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction());
// transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode());
// transactionCreateReqVOIn.setWorker(String.valueOf(userRespDTO.getId()));
// transactionCreateReqVOIn.setBatch(packageoverDetailDO.getToBatch());
// transactionCreateReqVOIn.setPackingNumber(packageoverDetailDO.getToPackingNumber());
// transactionCreateReqVOIn.setInventoryStatus(packageoverDetailDO.getToInventoryStatus());
// transactionCreateReqVOIn.setLocationCode(packageoverDetailDO.getLocationCode());
// transactionCreateReqVOIn.setSinglePrice(BigDecimal.ZERO);
// transactionCreateReqVOIn.setAmount(BigDecimal.ZERO);
// transactionCreateReqVOIn.setArriveDate(LocalDateTime.now());
// transactionCreateReqVOIn.setProduceDate(LocalDateTime.now());
// transactionCreateReqVOIn.setExpireDate(LocalDateTime.now());
// transactionCreateReqVOIn.setWarehouseCode(mainDO.getWarehouseCode());
// transactionCreateReqVOIn.setRecordNumber(number);
// transactionCreateReqVOIn.setQty(packageoverDetailDO.getToQty());
// transactionCreateReqVOIn.setId(null);
// transactionCreateReqVOList.add(transactionCreateReqVOIn);
// }
// // 更新旧包装信息
// updatePackageDO(detailDO.getFromPackingNumber(),BigDecimal.ZERO);
// } else {
// throw exception(PACKAGEOVER_DETAIL_PACKING_ERROR);
// }
// if (packageoverDetailDOList != null && packageoverDetailDOList.size() > 0) {
// packageoverDetailMapper.insertBatch(packageoverDetailDOList);
// }
}
// 创建子表数据
PackageoverDetailDO packageoverDetailDO = new PackageoverDetailDO();
packageoverDetailDO.setMasterId(mainDO.getId());
packageoverDetailDO.setNumber(number);
LocationDO locationDOFrom = locationService.selectLocation(packageoverDetailDO.getLocationCode());
if(locationDOFrom != null) {
packageoverDetailDO.setAreaCode(locationDOFrom.getAreaCode());
packageoverDetailDO.setLocationGroupCode(locationDOFrom.getLocationGroupCode());
} else {
throw exception(LOCATION_NOT_EXISTS);
}
ItembasicDO itembasicDO = itembasicService.selectItembasic(packageoverDetailDO.getItemCode());
if (itembasicDO != null) {
packageoverDetailDO.setItemName(itembasicDO.getName());
packageoverDetailDO.setItemDesc1(itembasicDO.getDesc1());
packageoverDetailDO.setItemDesc2(itembasicDO.getDesc2());
packageoverDetailDO.setProjectCode(itembasicDO.getProject());
packageoverDetailDO.setUom(itembasicDO.getUom());
} else {
throw exception(ITEMBASIC_NOT_EXISTS);
}
packageoverDetailDO.setFromPackingNumber(fromPackingNumberStrs.substring(0,fromPackingNumberStrs.toString().length()-1));
packageoverDetailDO.setFromQty(sumQty);
packageoverDetailDO.setToQty(sumQty);
packageoverDetailDO.setLocationCode(subDOList.get(0).getLocationCode());
packageoverDetailDO.setLocationGroupCode(subDOList.get(0).getLocationGroupCode());
packageoverDetailDO.setFromBatch(subDOList.get(0).getFromBatch());
packageoverDetailDO.setToBatch(subDOList.get(0).getToBatch());
packageoverDetailDO.setFromInventoryStatus(subDOList.get(0).getFromInventoryStatus());
packageoverDetailDO.setToInventoryStatus(subDOList.get(0).getToInventoryStatus());
packageoverDetailDO.setFromOwnerCode(subDOList.get(0).getFromOwnerCode());
packageoverDetailDO.setToOwnerCode(subDOList.get(0).getToOwnerCode());
packageoverDetailDO.setAreaCode(subDOList.get(0).getAreaCode());
packageoverDetailDO.setFromPackUnit(subDOList.get(0).getFromPackUnit());
// TODO: 标包数 如果前端查,后端直接赋值,如果需要后端查,需添加
packageoverDetailDO.setFromPackQty(subDOList.get(0).getFromPackQty());
// 创建包装及标签
PackageCreateReqVO packageCreateReqVO = new PackageCreateReqVO();
// 查询已扫描包装信息
QueryWrapper<PackageDO> packageDOQueryWrapper = new QueryWrapper<>();
packageDOQueryWrapper.eq("number",subDOList.get(0).getFromPackingNumber());
PackageDO packageDO = packageMapper.selectOne(packageDOQueryWrapper);
BeanUtils.copyProperties(packageDO,packageCreateReqVO);
packageCreateReqVO.setItemCode(subDOList.get(0).getItemCode());
packageCreateReqVO.setPackQty(subDOList.get(0).getToPackQty());
packageCreateReqVO.setPackUnit(subDOList.get(0).getToPackUnit());
packageCreateReqVO.setQty(sumQty);
packageCreateReqVO.setNumber(number);
List<PackageDO> packageDOList = packageService.createPackageLabel(packageCreateReqVO);
StringBuilder toPackingNumberStrs = new StringBuilder();
for(PackageDO packageDO1:packageDOList ) {
toPackingNumberStrs.append(packageDO1.getNumber()).append(",");
// 入动作
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO();
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType());
transactionCreateReqVOIn.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVOIn.setInventoryAction(transactiontypeDO.getInventoryAction());
transactionCreateReqVOIn.setTransactionType(transactiontypeDO.getCode());
transactionCreateReqVOIn.setBusinessType(mainDO.getBusinessType());
transactionCreateReqVOIn.setOwnerCode(subDOList.get(0).getToOwnerCode());
transactionCreateReqVOIn.setRecordNumber(number);
transactionCreateReqVOIn.setId(null);
transactionCreateReqVOIn.setQty(packageDO1.getQty());
transactionCreateReqVOIn.setPackingNumber(packageDO1.getNumber());
transactionCreateReqVOIn.setBatch(subDOList.get(0).getToBatch());
transactionCreateReqVOIn.setAmount(new BigDecimal(0));
transactionCreateReqVOIn.setSinglePrice(new BigDecimal(0));
transactionCreateReqVOIn.setWarehouseCode(mainDO.getWarehouseCode());
transactionCreateReqVOIn.setExpireDate(mainDO.getExecuteTime());
transactionCreateReqVOIn.setActiveTime(mainDO.getActiveDate());
transactionCreateReqVOIn.setLocationCode(subDOList.get(0).getLocationCode());
// 根据 库位 获取 库区DO
AreabasicDO areabasicDO = jobUtils.getAreabasicDO(transactionCreateReqVOIn.getLocationCode());
transactionCreateReqVOIn.setAreaType(areabasicDO.getType());
transactionCreateReqVOIn.setPackUnit(subDOList.get(0).getToPackUnit());
// TODO: 标包数 如果前端查,后端直接赋值,如果需要后端查,需添加
transactionCreateReqVOIn.setPackQty(subDOList.get(0).getToPackQty());
transactionCreateReqVOList.add(transactionCreateReqVOIn);
}
packageoverDetailDO.setToPackQty(subDOList.get(0).getToPackQty());
packageoverDetailDO.setToPackUnit(subDOList.get(0).getToPackUnit());
packageoverDetailDO.setToPackingNumber(toPackingNumberStrs.substring(0,toPackingNumberStrs.toString().length()-1));
packageoverRecordDetailMapper.insert(packageoverDetailDO);
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
//增加操作记录
trendsApi.createTrends(mainDO.getId(), "packageoverMain", "增加了翻包记录", TrendsTypeEnum.CREATE);
// 返回
return mainDO.getNumber();
//变更记录
trendsApi.createTrends(mainDO.getId(), "packageoverJob", "创建了翻包记录", TrendsTypeEnum.UPDATE);
return number;
}
/**

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transaction/TransactionServiceImpl.java

@ -299,6 +299,9 @@ public class TransactionServiceImpl implements TransactionService {
balanceDOQueryWrapper.eq("inventory_status", createReqVO.getInventoryStatus());
balanceDOQueryWrapper.eq("location_code", createReqVO.getLocationCode());
BalanceDO balanceDO = balanceMapper.selectOne(balanceDOQueryWrapper);
if (balanceDO == null) {
return;
}
// 判断 最低库存数量 是否大于当前库存数量
if (itemareaDO.getMinQty().compareTo(balanceDO.getQty()) > 0) {
// 创建补料申请
@ -346,7 +349,10 @@ public class TransactionServiceImpl implements TransactionService {
private BigDecimal isAllowIssueRequestCreateRepleinshRequest(TransactionCreateReqVO createReqVO) {
BigDecimal sumCountQty = new BigDecimal(0);
QueryWrapper<RepleinshRequestMainDO> repleinshRequestMainDOQueryWrapper = new QueryWrapper<>();
repleinshRequestMainDOQueryWrapper.eq("status","1");
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
repleinshRequestMainDOQueryWrapper.in("status",list);
List<RepleinshRequestMainDO> repleinshRequestMainDOList = repleinshRequestMainMapper.selectList(repleinshRequestMainDOQueryWrapper);
for(RepleinshRequestMainDO repleinshRequestMainDO : repleinshRequestMainDOList) {
List<RepleinshRequestDetailDO> repleinshRequestDetailDOList = repleinshRequestDetailMapper.selectList(repleinshRequestMainDO.getId());

Loading…
Cancel
Save