Browse Source

报废出库开发完成

master
赵雪冰 2 years ago
parent
commit
66d8e2eb12
  1. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapJob/vo/ScrapJobDetailPageReqVO.java
  2. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRecord/vo/ScrapRecordDetailExportReqVO.java
  3. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRecord/vo/ScrapRecordDetailPageReqVO.java
  4. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/ScrapRequestMainController.java
  5. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestImportVO.java
  6. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/scrapRequest/ScrapRequestMainConvert.java
  7. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/scrapRecord/ScrapRecordMainDO.java
  8. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/scrapJob/ScrapJobDetailMapper.java
  9. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/scrapRecord/ScrapRecordDetailMapper.java
  10. 11
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapJob/ScrapJobMainServiceImpl.java
  11. 19
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRecord/ScrapRecordMainServiceImpl.java
  12. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestMainServiceImpl.java

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapJob/vo/ScrapJobDetailPageReqVO.java

@ -72,4 +72,7 @@ public class ScrapJobDetailPageReqVO extends PageParam {
@Schema(description = "创建者Id") @Schema(description = "创建者Id")
private String creator; private String creator;
@Schema(description = "主键ID")
private String masterId;
} }

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRecord/vo/ScrapRecordDetailExportReqVO.java

@ -91,4 +91,7 @@ public class ScrapRecordDetailExportReqVO {
@Schema(description = "任务明细ID") @Schema(description = "任务明细ID")
private String jobDetailId; private String jobDetailId;
@Schema(description = "主键ID")
private String masterId;
} }

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRecord/vo/ScrapRecordDetailPageReqVO.java

@ -93,4 +93,7 @@ public class ScrapRecordDetailPageReqVO extends PageParam {
@Schema(description = "任务明细ID") @Schema(description = "任务明细ID")
private String jobDetailId; private String jobDetailId;
@Schema(description = "主键ID")
private String masterId;
} }

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/ScrapRequestMainController.java

@ -102,7 +102,7 @@ public class ScrapRequestMainController {
} }
@PostMapping("/senior") @PostMapping("/senior")
@Operation(summary = "高级搜索获得物品基本信息分页") @Operation(summary = "高级搜索获得报废出库分页")
@PreAuthorize("@ss.hasPermission('wms:scrap-request-main:query')") @PreAuthorize("@ss.hasPermission('wms:scrap-request-main:query')")
public CommonResult<PageResult<ScrapRequestMainRespVO>> getScrapRequestMainSenior(@Valid @RequestBody CustomConditions conditions) { public CommonResult<PageResult<ScrapRequestMainRespVO>> getScrapRequestMainSenior(@Valid @RequestBody CustomConditions conditions) {
PageResult<ScrapRequestMainDO> pageResult = scrapRequestMainService.getScrapRequestMainSenior(conditions); PageResult<ScrapRequestMainDO> pageResult = scrapRequestMainService.getScrapRequestMainSenior(conditions);
@ -116,17 +116,17 @@ public class ScrapRequestMainController {
} }
@GetMapping("/get-import-template") @GetMapping("/get-import-template")
@Operation(summary = "获得导入制品报废申请信息模板") @Operation(summary = "获得报废出库基本信息模板")
public void importTemplate(HttpServletResponse response) throws IOException { public void importTemplate(HttpServletResponse response) throws IOException {
List<ScrapRequestImportVO> list = new ArrayList<>(); List<ScrapRequestImportVO> list = new ArrayList<>();
Map<Integer, String[]> mapDropDown = new HashMap<>(); Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(7, uom); mapDropDown.put(7, uom);
ExcelUtils.write(response, "制品报废申请信息导入模板.xlsx", "制品报废申请信息列表", ScrapRequestImportVO.class, list,mapDropDown); ExcelUtils.write(response, "报废出库申请信息导入模板.xlsx", "报废出库申请信息列表", ScrapRequestImportVO.class, list,mapDropDown);
} }
@PostMapping("/import") @PostMapping("/import")
@Operation(summary = "导入制品报废申请基本信息") @Operation(summary = "导入报废出库请基本信息")
@Parameters({ @Parameters({
@Parameter(name = "file", description = "Excel 文件", required = true), @Parameter(name = "file", description = "Excel 文件", required = true),
@Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"), @Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"),

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/scrapRequest/vo/ScrapRequestImportVO.java

@ -3,6 +3,7 @@ import com.alibaba.excel.annotation.ExcelProperty;
import com.win.framework.excel.core.annotations.DictFormat; import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert; import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@ -24,13 +25,12 @@ import java.time.LocalDateTime;
@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 @Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
public class ScrapRequestImportVO { public class ScrapRequestImportVO {
@ExcelProperty("单据号") @ExcelProperty("从仓库代码")
private String number; private String fromWarehouseCode;
@ExcelProperty("截止时间") @ExcelProperty("截止时间")
private LocalDateTime dueTime; private LocalDateTime dueTime;
@ExcelProperty("零件号") @ExcelProperty("零件号")
@NotBlank(message = "物品代码不能为空") @NotBlank(message = "物品代码不能为空")
private String itemCode; private String itemCode;
@ -44,7 +44,6 @@ public class ScrapRequestImportVO {
@ExcelProperty("批次") @ExcelProperty("批次")
private String batch; private String batch;
@ExcelProperty("数量") @ExcelProperty("数量")
private BigDecimal qty; private BigDecimal qty;

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/scrapRequest/ScrapRequestMainConvert.java

@ -29,9 +29,7 @@ import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestMainDO;
public interface ScrapRequestMainConvert { public interface ScrapRequestMainConvert {
ScrapRequestMainConvert INSTANCE = Mappers.getMapper(ScrapRequestMainConvert.class); ScrapRequestMainConvert INSTANCE = Mappers.getMapper(ScrapRequestMainConvert.class);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
ScrapRequestImportErrorVO convert(ScrapRequestMainCreateReqVO mainVo, ScrapRequestDetailDO detailDo); ScrapRequestImportErrorVO convert(ScrapRequestMainCreateReqVO mainVo, ScrapRequestDetailDO detailDo);
ScrapRequestMainDO convert(ScrapRequestMainBaseVO bean); ScrapRequestMainDO convert(ScrapRequestMainBaseVO bean);

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/scrapRecord/ScrapRecordMainDO.java

@ -27,8 +27,8 @@ public class ScrapRecordMainDO extends BaseDO {
/** /**
* id * id
*/ */
@TableId(type = IdType.INPUT) @TableId
private String id; private Long id;
/** /**
* 申请单号 * 申请单号
*/ */

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/scrapJob/ScrapJobDetailMapper.java

@ -41,6 +41,7 @@ public interface ScrapJobDetailMapper extends BaseMapperX<ScrapJobDetailDO> {
.eqIfPresent(ScrapJobDetailDO::getRemark, reqVO.getRemark()) .eqIfPresent(ScrapJobDetailDO::getRemark, reqVO.getRemark())
.betweenIfPresent(ScrapJobDetailDO::getCreateTime, reqVO.getCreateTime()) .betweenIfPresent(ScrapJobDetailDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(ScrapJobDetailDO::getCreator, reqVO.getCreator()) .eqIfPresent(ScrapJobDetailDO::getCreator, reqVO.getCreator())
.eqIfPresent(ScrapJobDetailDO::getMasterId, reqVO.getMasterId())
.orderByDesc(ScrapJobDetailDO::getId)); .orderByDesc(ScrapJobDetailDO::getId));
} }
default PageResult<ScrapJobDetailDO> selectSenior(CustomConditions conditions) { default PageResult<ScrapJobDetailDO> selectSenior(CustomConditions conditions) {

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/scrapRecord/ScrapRecordDetailMapper.java

@ -47,6 +47,7 @@ public interface ScrapRecordDetailMapper extends BaseMapperX<ScrapRecordDetailDO
.betweenIfPresent(ScrapRecordDetailDO::getCreateTime, reqVO.getCreateTime()) .betweenIfPresent(ScrapRecordDetailDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(ScrapRecordDetailDO::getCreator, reqVO.getCreator()) .eqIfPresent(ScrapRecordDetailDO::getCreator, reqVO.getCreator())
.eqIfPresent(ScrapRecordDetailDO::getJobDetailId, reqVO.getJobDetailId()) .eqIfPresent(ScrapRecordDetailDO::getJobDetailId, reqVO.getJobDetailId())
.eqIfPresent(ScrapRecordDetailDO::getMasterId, reqVO.getMasterId())
.orderByDesc(ScrapRecordDetailDO::getId)); .orderByDesc(ScrapRecordDetailDO::getId));
} }
default PageResult<ScrapRecordDetailDO> selectSenior(CustomConditions conditions) { default PageResult<ScrapRecordDetailDO> selectSenior(CustomConditions conditions) {
@ -79,6 +80,7 @@ public interface ScrapRecordDetailMapper extends BaseMapperX<ScrapRecordDetailDO
.betweenIfPresent(ScrapRecordDetailDO::getCreateTime, reqVO.getCreateTime()) .betweenIfPresent(ScrapRecordDetailDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(ScrapRecordDetailDO::getCreator, reqVO.getCreator()) .eqIfPresent(ScrapRecordDetailDO::getCreator, reqVO.getCreator())
.eqIfPresent(ScrapRecordDetailDO::getJobDetailId, reqVO.getJobDetailId()) .eqIfPresent(ScrapRecordDetailDO::getJobDetailId, reqVO.getJobDetailId())
.eqIfPresent(ScrapRecordDetailDO::getMasterId, reqVO.getMasterId())
.orderByDesc(ScrapRecordDetailDO::getId)); .orderByDesc(ScrapRecordDetailDO::getId));
} }

11
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapJob/ScrapJobMainServiceImpl.java

@ -11,7 +11,6 @@ import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.scrapJob.vo.*; import com.win.module.wms.controller.scrapJob.vo.*;
import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailCreateReqVO;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.convert.scrapJob.ScrapJobMainConvert; import com.win.module.wms.convert.scrapJob.ScrapJobMainConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
@ -32,6 +31,7 @@ import com.win.module.wms.service.transaction.TransactionService;
import com.win.module.wms.util.JobUtils; import com.win.module.wms.util.JobUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -137,6 +137,7 @@ public class ScrapJobMainServiceImpl implements ScrapJobMainService {
public List<ScrapJobMainDO> getScrapJobMainList(ScrapJobMainExportReqVO exportReqVO) { public List<ScrapJobMainDO> getScrapJobMainList(ScrapJobMainExportReqVO exportReqVO) {
return scrapJobMainMapper.selectList(exportReqVO); return scrapJobMainMapper.selectList(exportReqVO);
} }
@Override @Override
public ScrapJobMainDO scrapJobMainDoStatusRight(String pnumber, String pstatus) { public ScrapJobMainDO scrapJobMainDoStatusRight(String pnumber, String pstatus) {
QueryWrapper queryWrapper = new QueryWrapper(); QueryWrapper queryWrapper = new QueryWrapper();
@ -159,6 +160,7 @@ public class ScrapJobMainServiceImpl implements ScrapJobMainService {
return map; return map;
} }
@Transactional
@Override @Override
public int acceptScrapJobMain(Long id) { public int acceptScrapJobMain(Long id) {
ScrapJobMainDO acceptJobMainDO = this.validateScrapJobMainExists(id); ScrapJobMainDO acceptJobMainDO = this.validateScrapJobMainExists(id);
@ -176,6 +178,7 @@ public class ScrapJobMainServiceImpl implements ScrapJobMainService {
return scrapJobMainMapper.updateById(acceptJobMainDO); return scrapJobMainMapper.updateById(acceptJobMainDO);
} }
@Transactional
@Override @Override
public int abandonScrapJobMain(Long id) { public int abandonScrapJobMain(Long id) {
ScrapJobMainDO acceptJobMainDO = this.validateScrapJobMainExists(id); ScrapJobMainDO acceptJobMainDO = this.validateScrapJobMainExists(id);
@ -191,6 +194,7 @@ public class ScrapJobMainServiceImpl implements ScrapJobMainService {
return scrapJobMainMapper.updateById(acceptJobMainDO); return scrapJobMainMapper.updateById(acceptJobMainDO);
} }
@Transactional
@Override @Override
public int closeScrapJobMain(Long id) { public int closeScrapJobMain(Long id) {
ScrapJobMainDO acceptJobMainDO = this.validateScrapJobMainExists(id); ScrapJobMainDO acceptJobMainDO = this.validateScrapJobMainExists(id);
@ -203,6 +207,7 @@ public class ScrapJobMainServiceImpl implements ScrapJobMainService {
return scrapJobMainMapper.updateById(acceptJobMainDO); return scrapJobMainMapper.updateById(acceptJobMainDO);
} }
@Transactional
@Override @Override
public String executeScrapJobMain(ScrapJobMainUpdateReqVO updateReqVO) { public String executeScrapJobMain(ScrapJobMainUpdateReqVO updateReqVO) {
// 查询任务主表与子表 // 查询任务主表与子表
@ -248,8 +253,6 @@ public class ScrapJobMainServiceImpl implements ScrapJobMainService {
// 创建报废出库记录明细 // 创建报废出库记录明细
List<ScrapJobDetailUpdateReqVO> reqSubList = updateReqVO.getSubList(); List<ScrapJobDetailUpdateReqVO> reqSubList = updateReqVO.getSubList();
List<ScrapRecordDetailDO> scrapRecordDetailDOList = new ArrayList<>(); List<ScrapRecordDetailDO> scrapRecordDetailDOList = new ArrayList<>();
List<ScrapRequestDetailCreateReqVO> scrapRequestDetailCreateReqVOList = new ArrayList<>();
//库存事务 //库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>(); List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
for(ScrapJobDetailDO scrapJobDetailDO:subList) { for(ScrapJobDetailDO scrapJobDetailDO:subList) {
@ -281,7 +284,7 @@ public class ScrapJobMainServiceImpl implements ScrapJobMainService {
BeanUtils.copyProperties(scrapJobDetailDO, transactionCreateReqVO); BeanUtils.copyProperties(scrapJobDetailDO, transactionCreateReqVO);
//增加业务类型 //增加业务类型
transactionCreateReqVO.setBusinessType(businesstypeDO.getCode()); transactionCreateReqVO.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType());
transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction());
transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode());
transactionCreateReqVO.setBusinessType(scrapJobMainDO.getBusinessType()); transactionCreateReqVO.setBusinessType(scrapJobMainDO.getBusinessType());

19
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRecord/ScrapRecordMainServiceImpl.java

@ -1,24 +1,23 @@
package com.win.module.wms.service.scrapRecord; package com.win.module.wms.service.scrapRecord;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.scrapRecord.vo.ScrapRecordMainCreateReqVO; import com.win.module.wms.controller.scrapRecord.vo.ScrapRecordMainCreateReqVO;
import com.win.module.wms.controller.scrapRecord.vo.ScrapRecordMainExportReqVO; import com.win.module.wms.controller.scrapRecord.vo.ScrapRecordMainExportReqVO;
import com.win.module.wms.controller.scrapRecord.vo.ScrapRecordMainPageReqVO; import com.win.module.wms.controller.scrapRecord.vo.ScrapRecordMainPageReqVO;
import com.win.module.wms.controller.scrapRecord.vo.ScrapRecordMainUpdateReqVO; import com.win.module.wms.controller.scrapRecord.vo.ScrapRecordMainUpdateReqVO;
import com.win.module.wms.convert.scrapRecord.ScrapRecordMainConvert;
import com.win.module.wms.dal.dataobject.scrapRecord.ScrapRecordMainDO;
import com.win.module.wms.dal.mysql.scrapRecord.ScrapRecordMainMapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import java.util.*; import javax.annotation.Resource;
import java.util.Collection;
import com.win.module.wms.dal.dataobject.scrapRecord.ScrapRecordMainDO; import java.util.List;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.convert.scrapRecord.ScrapRecordMainConvert;
import com.win.module.wms.dal.mysql.scrapRecord.ScrapRecordMainMapper;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.*; import static com.win.module.wms.enums.ErrorCodeConstants.SCRAP_RECORD_MAIN_NOT_EXISTS;
/** /**
* 报废出库记录主 Service 实现类 * 报废出库记录主 Service 实现类
@ -38,7 +37,7 @@ public class ScrapRecordMainServiceImpl implements ScrapRecordMainService {
ScrapRecordMainDO scrapRecordMain = ScrapRecordMainConvert.INSTANCE.convert(createReqVO); ScrapRecordMainDO scrapRecordMain = ScrapRecordMainConvert.INSTANCE.convert(createReqVO);
scrapRecordMainMapper.insert(scrapRecordMain); scrapRecordMainMapper.insert(scrapRecordMain);
// 返回 // 返回
return scrapRecordMain.getId(); return String.valueOf(scrapRecordMain.getId());
} }
@Override @Override

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestMainServiceImpl.java

@ -251,7 +251,7 @@ public class ScrapRequestMainServiceImpl implements ScrapRequestMainService {
for (ScrapRequestDetailDO scrapRequestDetailDO : subDOList) { for (ScrapRequestDetailDO scrapRequestDetailDO : subDOList) {
validateDetailMethod(scrapRequestDetailDO, businesstypeDO, scrapRequestMainDO); validateDetailMethod(scrapRequestDetailDO, businesstypeDO, scrapRequestMainDO);
} }
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_REQUEST.getCode());
scrapRequestMainDO.setNumber(number); scrapRequestMainDO.setNumber(number);
AdminUserRespDTO adminUserRespDTO = userApi.getUser(getLoginUserId()); AdminUserRespDTO adminUserRespDTO = userApi.getUser(getLoginUserId());
scrapRequestMainDO.setDepartmentCode(String.valueOf(adminUserRespDTO.getDeptId())); scrapRequestMainDO.setDepartmentCode(String.valueOf(adminUserRespDTO.getDeptId()));
@ -439,7 +439,7 @@ public class ScrapRequestMainServiceImpl implements ScrapRequestMainService {
try{ try{
LocationDO locationDO = validatorLocation(detailDo.getFromLocationCode()); LocationDO locationDO = validatorLocation(detailDo.getFromLocationCode());
mainDo.setFromAreaCodes(locationDO.getAreaCode()); mainDo.setFromAreaCodes(locationDO.getAreaCode());
mainDo.setFromLocationTypes(locationDO.getCode()); mainDo.setFromLocationTypes(locationDO.getType());
}catch (Exception ex) { }catch (Exception ex) {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }

Loading…
Cancel
Save