Browse Source

索赔导入

master
刘忱 2 years ago
parent
commit
59cc46f47b
  1. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestDetailController.java
  2. 58
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestMainController.java
  3. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/vo/PurchaseclaimRequestDetailImportVO.java
  4. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestDetailConvert.java
  5. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestDetailService.java
  6. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestDetailServiceImpl.java
  7. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainService.java
  8. 41
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestDetailController.java

@ -46,8 +46,8 @@ public class PurchaseclaimRequestDetailController {
@Operation(summary = "更新采购索赔申请子")
@PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-detail:update')")
public CommonResult<Boolean> updatePurchaseclaimRequestDetail(@Valid @RequestBody PurchaseclaimRequestDetailUpdateReqVO updateReqVO) {
purchaseclaimRequestDetailService.updatePurchaseclaimRequestDetail(updateReqVO);
return success(true);
Integer result = purchaseclaimRequestDetailService.updatePurchaseclaimRequestDetail(updateReqVO);
return success(result > 0);
}
@DeleteMapping("/delete")
@ -55,8 +55,8 @@ public class PurchaseclaimRequestDetailController {
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-detail:delete')")
public CommonResult<Boolean> deletePurchaseclaimRequestDetail(@RequestParam("id") Long id) {
purchaseclaimRequestDetailService.deletePurchaseclaimRequestDetail(id);
return success(true);
Integer result = purchaseclaimRequestDetailService.deletePurchaseclaimRequestDetail(id);
return success(result > 0);
}
@GetMapping("/get")

58
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestMainController.java

@ -18,15 +18,19 @@ import com.win.module.wms.service.purchaseclaimRequest.PurchaseclaimRequestDetai
import com.win.module.wms.service.purchaseclaimRequest.PurchaseclaimRequestMainService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -61,8 +65,8 @@ public class PurchaseclaimRequestMainController {
@Operation(summary = "更新采购索赔申请主")
@PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-main:update')")
public CommonResult<Boolean> updatePurchaseclaimRequestMain(@Valid @RequestBody PurchaseclaimRequestMainUpdateReqVO updateReqVO) {
purchaseclaimRequestMainService.updatePurchaseclaimRequestMain(updateReqVO);
return success(true);
Integer result = purchaseclaimRequestMainService.updatePurchaseclaimRequestMain(updateReqVO);
return success(result > 0);
}
@DeleteMapping("/delete")
@ -70,8 +74,8 @@ public class PurchaseclaimRequestMainController {
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-main:delete')")
public CommonResult<Boolean> deletePurchaseclaimRequestMain(@RequestParam("id") Long id) {
purchaseclaimRequestMainService.deletePurchaseclaimRequestMain(id);
return success(true);
Integer result = purchaseclaimRequestMainService.deletePurchaseclaimRequestMain(id);
return success(result > 0);
}
@GetMapping("/get")
@ -133,30 +137,30 @@ public class PurchaseclaimRequestMainController {
String[] status = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.ITEM_STATUS);
mapDropDown.put(4, status);
// 输出
ExcelUtils.write(response, "采购索赔信息导入模板.xls", "采购索赔信息列表", PurchaseclaimRequestDetailImportVO.class, list,mapDropDown);
ExcelUtils.write(response, "采购索赔信息导入模板.xlsx", "采购索赔信息列表", PurchaseclaimRequestDetailImportVO.class, list,mapDropDown);
}
// @PostMapping("/import")
// @Operation(summary = "导入采购索赔基本信息")
// @Parameters({
// @Parameter(name = "file", description = "Excel 文件", required = true),
// @Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"),
// @Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true")
// })
// @PreAuthorize("@ss.hasPermission('wms:itembasic:import')")
// public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
// @RequestParam("file") MultipartFile file,
// @RequestParam(value = "mode") Integer mode,
// @RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
// List<ItembasicImportExcelVo> list = ExcelUtils.read(file, ItembasicImportExcelVo.class);
// List<ItembasicImportExcelVo> errorList = itembasicService.importItembasicList(list, mode, updatePart);
// Map<String, Object> returnMap = new HashMap<>();
// returnMap.put("errorCount", errorList.size());
// if(!errorList.isEmpty()) {
// String url = ExcelUtils.writeLocalFile("采购索赔基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xls", "错误列表", errorList);
// returnMap.put("errorFile", url);
// }
// return success(returnMap);
// }
@PostMapping("/import")
@Operation(summary = "导入采购索赔基本信息")
@Parameters({
@Parameter(name = "file", description = "Excel 文件", required = true),
@Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"),
@Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true")
})
@PreAuthorize("@ss.hasPermission('wms:itembasic:import')")
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<PurchaseclaimRequestMainCreateReqVO> list = ExcelUtils.read(file, PurchaseclaimRequestMainCreateReqVO.class);
List<PurchaseclaimRequestDetailImportVO> errorList = purchaseclaimRequestMainService.importPurchaseclaimRequestList(list, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("采购索赔基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
returnMap.put("errorFile", url);
}
return success(returnMap);
}
}

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/vo/PurchaseclaimRequestDetailImportVO.java

@ -17,6 +17,12 @@ import java.time.LocalDateTime;
@Data
public class PurchaseclaimRequestDetailImportVO {
@ExcelProperty("导入状态")
private String importStatus;
@ExcelProperty("导入说明")
private String importRemark;
@ExcelProperty("发货单号")
private String asnNumber;

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestDetailConvert.java

@ -46,4 +46,11 @@ public interface PurchaseclaimRequestDetailConvert {
@Mapping(source = "mainDO.updater", target = "updater"),
})
PurchaseclaimRequestDetailExcelVO convert(PurchaseclaimRequestMainDO mainDO, PurchaseclaimRequestDetailDO detailDO);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),
})
PurchaseclaimRequestDetailImportVO convert(PurchaseclaimRequestMainCreateReqVO mainVo, PurchaseclaimRequestDetailCreateReqVO detailVo);
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestDetailService.java

@ -29,14 +29,14 @@ public interface PurchaseclaimRequestDetailService {
*
* @param updateReqVO 更新信息
*/
void updatePurchaseclaimRequestDetail(@Valid PurchaseclaimRequestDetailUpdateReqVO updateReqVO);
Integer updatePurchaseclaimRequestDetail(@Valid PurchaseclaimRequestDetailUpdateReqVO updateReqVO);
/**
* 删除采购索赔申请子
*
* @param id 编号
*/
void deletePurchaseclaimRequestDetail(Long id);
Integer deletePurchaseclaimRequestDetail(Long id);
/**
* 获得采购索赔申请子列表

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestDetailServiceImpl.java

@ -46,21 +46,21 @@ public class PurchaseclaimRequestDetailServiceImpl implements PurchaseclaimReque
}
@Override
public void updatePurchaseclaimRequestDetail(PurchaseclaimRequestDetailUpdateReqVO updateReqVO) {
public Integer updatePurchaseclaimRequestDetail(PurchaseclaimRequestDetailUpdateReqVO updateReqVO) {
// 校验存在
validatePurchaseclaimRequestDetailExists(updateReqVO.getId());
validatePurchaseclaimRequestMainExists(updateReqVO.getMasterId());
// 更新
PurchaseclaimRequestDetailDO updateObj = PurchaseclaimRequestDetailConvert.INSTANCE.convert(updateReqVO);
purchaseclaimRequestDetailMapper.updateById(updateObj);
return purchaseclaimRequestDetailMapper.updateById(updateObj);
}
@Override
public void deletePurchaseclaimRequestDetail(Long id) {
public Integer deletePurchaseclaimRequestDetail(Long id) {
// 校验存在
validatePurchaseclaimRequestDetailExists(id);
// 删除
purchaseclaimRequestDetailMapper.deleteById(id);
return purchaseclaimRequestDetailMapper.deleteById(id);
}
@Override

12
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainService.java

@ -2,11 +2,7 @@ package com.win.module.wms.service.purchaseclaimRequest;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.itembasic.vo.ItembasicImportExcelVo;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainCreateReqVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainExportReqVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainPageReqVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainUpdateReqVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.*;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO;
import javax.validation.Valid;
@ -33,14 +29,14 @@ public interface PurchaseclaimRequestMainService {
*
* @param updateReqVO 更新信息
*/
void updatePurchaseclaimRequestMain(@Valid PurchaseclaimRequestMainUpdateReqVO updateReqVO);
Integer updatePurchaseclaimRequestMain(@Valid PurchaseclaimRequestMainUpdateReqVO updateReqVO);
/**
* 删除采购索赔申请主
*
* @param id 编号
*/
void deletePurchaseclaimRequestMain(Long id);
Integer deletePurchaseclaimRequestMain(Long id);
/**
* 获得采购索赔申请主
@ -90,5 +86,5 @@ public interface PurchaseclaimRequestMainService {
* @param updatePart 是否支持更新
* @return 导入结果
*/
public List<ItembasicImportExcelVo> importPurchaseclaimRequestList(List<PurchaseclaimRequestMainCreateReqVO> datas, Integer mode, boolean updatePart);
public List<PurchaseclaimRequestDetailImportVO> importPurchaseclaimRequestList(List<PurchaseclaimRequestMainCreateReqVO> datas, Integer mode, boolean updatePart);
}

41
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java

@ -1,11 +1,11 @@
package com.win.module.wms.service.purchaseclaimRequest;
import cn.hutool.core.collection.CollUtil;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.itembasic.vo.ItembasicImportExcelVo;
import com.win.module.wms.controller.purchaseclaimRequest.vo.*;
import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestDetailConvert;
import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestMainConvert;
@ -64,25 +64,25 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
@Override
@Transactional
public void updatePurchaseclaimRequestMain(PurchaseclaimRequestMainUpdateReqVO updateReqVO) {
public Integer updatePurchaseclaimRequestMain(PurchaseclaimRequestMainUpdateReqVO updateReqVO) {
// 校验存在,如子表需要也再此校验
validatePurchaseclaimRequestMainExists(updateReqVO.getId());
// 更新主表
PurchaseclaimRequestMainDO updateObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(updateReqVO);
purchaseclaimRequestMainMapper.updateById(updateObj);
return purchaseclaimRequestMainMapper.updateById(updateObj);
}
@Override
@Transactional
public void deletePurchaseclaimRequestMain(Long id) {
public Integer deletePurchaseclaimRequestMain(Long id) {
// 校验存在
validatePurchaseclaimRequestMainExists(id);
// 删除主表
purchaseclaimRequestMainMapper.deleteById(id);
// 删除子表数据
Map<String, Object> map = new HashMap<>();
map.put("master_id", id);
purchaseclaimRequestDetailMapper.deleteByMap(map);
// 删除主表
return purchaseclaimRequestMainMapper.deleteById(id);
}
private void validatePurchaseclaimRequestMainExists(Long id) {
@ -116,23 +116,44 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
return purchaseclaimRequestMainMapper.selectList(exportReqVO);
}
public List<ItembasicImportExcelVo> importPurchaseclaimRequestList(List<PurchaseclaimRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
public List<PurchaseclaimRequestDetailImportVO> importPurchaseclaimRequestList(List<PurchaseclaimRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY);
}
List<PurchaseclaimRequestDetailImportVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
PurchaseclaimRequestMainDO updateObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO);
purchaseclaimRequestMainMapper.updateById(updateObj);
// 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList
boolean isError = false;
String importRemark = "";
try {
if(mode != null){
validatePurchaseclaimRequestMainExists(null);
}
} catch (ServiceException ex) {
isError = true;
importRemark += ex.getMessage() + ",";
}
if(isError) {
List<PurchaseclaimRequestDetailCreateReqVO> subList = createReqVO.getSubList();
for (PurchaseclaimRequestDetailCreateReqVO detailVo : subList) {
PurchaseclaimRequestDetailImportVO importVO = PurchaseclaimRequestDetailConvert.INSTANCE.convert(createReqVO, detailVo);
importVO.setImportStatus("失败");
importVO.setImportRemark(importRemark.substring(0, importRemark.length() - 1));
}
}
PurchaseclaimRequestMainDO createObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO);
purchaseclaimRequestMainMapper.insert(createObj);
List<PurchaseclaimRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<PurchaseclaimRequestDetailDO> subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList03(subList);
// 新增子表数据
for (PurchaseclaimRequestDetailDO detailDO : subDOList) {
// 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList
detailDO.setMasterId(createReqVO.getId());
detailDO.setNumber(createReqVO.getNumber());
}
purchaseclaimRequestDetailMapper.insertBatch(subDOList);
});
return new ArrayList<>();
return errorList;
}
}

Loading…
Cancel
Save