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 = "更新采购索赔申请子") @Operation(summary = "更新采购索赔申请子")
@PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-detail:update')") @PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-detail:update')")
public CommonResult<Boolean> updatePurchaseclaimRequestDetail(@Valid @RequestBody PurchaseclaimRequestDetailUpdateReqVO updateReqVO) { public CommonResult<Boolean> updatePurchaseclaimRequestDetail(@Valid @RequestBody PurchaseclaimRequestDetailUpdateReqVO updateReqVO) {
purchaseclaimRequestDetailService.updatePurchaseclaimRequestDetail(updateReqVO); Integer result = purchaseclaimRequestDetailService.updatePurchaseclaimRequestDetail(updateReqVO);
return success(true); return success(result > 0);
} }
@DeleteMapping("/delete") @DeleteMapping("/delete")
@ -55,8 +55,8 @@ public class PurchaseclaimRequestDetailController {
@Parameter(name = "id", description = "编号", required = true) @Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-detail:delete')") @PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-detail:delete')")
public CommonResult<Boolean> deletePurchaseclaimRequestDetail(@RequestParam("id") Long id) { public CommonResult<Boolean> deletePurchaseclaimRequestDetail(@RequestParam("id") Long id) {
purchaseclaimRequestDetailService.deletePurchaseclaimRequestDetail(id); Integer result = purchaseclaimRequestDetailService.deletePurchaseclaimRequestDetail(id);
return success(true); return success(result > 0);
} }
@GetMapping("/get") @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 com.win.module.wms.service.purchaseclaimRequest.PurchaseclaimRequestMainService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.io.IOException; import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -61,8 +65,8 @@ public class PurchaseclaimRequestMainController {
@Operation(summary = "更新采购索赔申请主") @Operation(summary = "更新采购索赔申请主")
@PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-main:update')") @PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-main:update')")
public CommonResult<Boolean> updatePurchaseclaimRequestMain(@Valid @RequestBody PurchaseclaimRequestMainUpdateReqVO updateReqVO) { public CommonResult<Boolean> updatePurchaseclaimRequestMain(@Valid @RequestBody PurchaseclaimRequestMainUpdateReqVO updateReqVO) {
purchaseclaimRequestMainService.updatePurchaseclaimRequestMain(updateReqVO); Integer result = purchaseclaimRequestMainService.updatePurchaseclaimRequestMain(updateReqVO);
return success(true); return success(result > 0);
} }
@DeleteMapping("/delete") @DeleteMapping("/delete")
@ -70,8 +74,8 @@ public class PurchaseclaimRequestMainController {
@Parameter(name = "id", description = "编号", required = true) @Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-main:delete')") @PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-main:delete')")
public CommonResult<Boolean> deletePurchaseclaimRequestMain(@RequestParam("id") Long id) { public CommonResult<Boolean> deletePurchaseclaimRequestMain(@RequestParam("id") Long id) {
purchaseclaimRequestMainService.deletePurchaseclaimRequestMain(id); Integer result = purchaseclaimRequestMainService.deletePurchaseclaimRequestMain(id);
return success(true); return success(result > 0);
} }
@GetMapping("/get") @GetMapping("/get")
@ -133,30 +137,30 @@ public class PurchaseclaimRequestMainController {
String[] status = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.ITEM_STATUS); String[] status = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.ITEM_STATUS);
mapDropDown.put(4, status); mapDropDown.put(4, status);
// 输出 // 输出
ExcelUtils.write(response, "采购索赔信息导入模板.xls", "采购索赔信息列表", PurchaseclaimRequestDetailImportVO.class, list,mapDropDown); ExcelUtils.write(response, "采购索赔信息导入模板.xlsx", "采购索赔信息列表", PurchaseclaimRequestDetailImportVO.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"),
// @Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true") @Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true")
// }) })
// @PreAuthorize("@ss.hasPermission('wms:itembasic:import')") @PreAuthorize("@ss.hasPermission('wms:itembasic:import')")
// public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response, public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
// @RequestParam("file") MultipartFile file, @RequestParam("file") MultipartFile file,
// @RequestParam(value = "mode") Integer mode, @RequestParam(value = "mode") Integer mode,
// @RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception { @RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
// List<ItembasicImportExcelVo> list = ExcelUtils.read(file, ItembasicImportExcelVo.class); List<PurchaseclaimRequestMainCreateReqVO> list = ExcelUtils.read(file, PurchaseclaimRequestMainCreateReqVO.class);
// List<ItembasicImportExcelVo> errorList = itembasicService.importItembasicList(list, mode, updatePart); List<PurchaseclaimRequestDetailImportVO> errorList = purchaseclaimRequestMainService.importPurchaseclaimRequestList(list, mode, updatePart);
// Map<String, Object> returnMap = new HashMap<>(); Map<String, Object> returnMap = new HashMap<>();
// returnMap.put("errorCount", errorList.size()); returnMap.put("errorCount", errorList.size());
// if(!errorList.isEmpty()) { if(!errorList.isEmpty()) {
// String url = ExcelUtils.writeLocalFile("采购索赔基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xls", "错误列表", errorList); String url = ExcelUtils.writeLocalFile("采购索赔基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
// returnMap.put("errorFile", url); returnMap.put("errorFile", url);
// } }
// return success(returnMap); 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 @Data
public class PurchaseclaimRequestDetailImportVO { public class PurchaseclaimRequestDetailImportVO {
@ExcelProperty("导入状态")
private String importStatus;
@ExcelProperty("导入说明")
private String importRemark;
@ExcelProperty("发货单号") @ExcelProperty("发货单号")
private String asnNumber; 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"), @Mapping(source = "mainDO.updater", target = "updater"),
}) })
PurchaseclaimRequestDetailExcelVO convert(PurchaseclaimRequestMainDO mainDO, PurchaseclaimRequestDetailDO detailDO); 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 更新信息 * @param updateReqVO 更新信息
*/ */
void updatePurchaseclaimRequestDetail(@Valid PurchaseclaimRequestDetailUpdateReqVO updateReqVO); Integer updatePurchaseclaimRequestDetail(@Valid PurchaseclaimRequestDetailUpdateReqVO updateReqVO);
/** /**
* 删除采购索赔申请子 * 删除采购索赔申请子
* *
* @param id 编号 * @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 @Override
public void updatePurchaseclaimRequestDetail(PurchaseclaimRequestDetailUpdateReqVO updateReqVO) { public Integer updatePurchaseclaimRequestDetail(PurchaseclaimRequestDetailUpdateReqVO updateReqVO) {
// 校验存在 // 校验存在
validatePurchaseclaimRequestDetailExists(updateReqVO.getId()); validatePurchaseclaimRequestDetailExists(updateReqVO.getId());
validatePurchaseclaimRequestMainExists(updateReqVO.getMasterId()); validatePurchaseclaimRequestMainExists(updateReqVO.getMasterId());
// 更新 // 更新
PurchaseclaimRequestDetailDO updateObj = PurchaseclaimRequestDetailConvert.INSTANCE.convert(updateReqVO); PurchaseclaimRequestDetailDO updateObj = PurchaseclaimRequestDetailConvert.INSTANCE.convert(updateReqVO);
purchaseclaimRequestDetailMapper.updateById(updateObj); return purchaseclaimRequestDetailMapper.updateById(updateObj);
} }
@Override @Override
public void deletePurchaseclaimRequestDetail(Long id) { public Integer deletePurchaseclaimRequestDetail(Long id) {
// 校验存在 // 校验存在
validatePurchaseclaimRequestDetailExists(id); validatePurchaseclaimRequestDetailExists(id);
// 删除 // 删除
purchaseclaimRequestDetailMapper.deleteById(id); return purchaseclaimRequestDetailMapper.deleteById(id);
} }
@Override @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.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.itembasic.vo.ItembasicImportExcelVo; import com.win.module.wms.controller.purchaseclaimRequest.vo.*;
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.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO; import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO;
import javax.validation.Valid; import javax.validation.Valid;
@ -33,14 +29,14 @@ public interface PurchaseclaimRequestMainService {
* *
* @param updateReqVO 更新信息 * @param updateReqVO 更新信息
*/ */
void updatePurchaseclaimRequestMain(@Valid PurchaseclaimRequestMainUpdateReqVO updateReqVO); Integer updatePurchaseclaimRequestMain(@Valid PurchaseclaimRequestMainUpdateReqVO updateReqVO);
/** /**
* 删除采购索赔申请主 * 删除采购索赔申请主
* *
* @param id 编号 * @param id 编号
*/ */
void deletePurchaseclaimRequestMain(Long id); Integer deletePurchaseclaimRequestMain(Long id);
/** /**
* 获得采购索赔申请主 * 获得采购索赔申请主
@ -90,5 +86,5 @@ public interface PurchaseclaimRequestMainService {
* @param updatePart 是否支持更新 * @param updatePart 是否支持更新
* @return 导入结果 * @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; package com.win.module.wms.service.purchaseclaimRequest;
import cn.hutool.core.collection.CollUtil; 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.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum; 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.controller.purchaseclaimRequest.vo.*;
import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestDetailConvert; import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestDetailConvert;
import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestMainConvert; import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestMainConvert;
@ -64,25 +64,25 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
@Override @Override
@Transactional @Transactional
public void updatePurchaseclaimRequestMain(PurchaseclaimRequestMainUpdateReqVO updateReqVO) { public Integer updatePurchaseclaimRequestMain(PurchaseclaimRequestMainUpdateReqVO updateReqVO) {
// 校验存在,如子表需要也再此校验 // 校验存在,如子表需要也再此校验
validatePurchaseclaimRequestMainExists(updateReqVO.getId()); validatePurchaseclaimRequestMainExists(updateReqVO.getId());
// 更新主表 // 更新主表
PurchaseclaimRequestMainDO updateObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(updateReqVO); PurchaseclaimRequestMainDO updateObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(updateReqVO);
purchaseclaimRequestMainMapper.updateById(updateObj); return purchaseclaimRequestMainMapper.updateById(updateObj);
} }
@Override @Override
@Transactional @Transactional
public void deletePurchaseclaimRequestMain(Long id) { public Integer deletePurchaseclaimRequestMain(Long id) {
// 校验存在 // 校验存在
validatePurchaseclaimRequestMainExists(id); validatePurchaseclaimRequestMainExists(id);
// 删除主表
purchaseclaimRequestMainMapper.deleteById(id);
// 删除子表数据 // 删除子表数据
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("master_id", id); map.put("master_id", id);
purchaseclaimRequestDetailMapper.deleteByMap(map); purchaseclaimRequestDetailMapper.deleteByMap(map);
// 删除主表
return purchaseclaimRequestMainMapper.deleteById(id);
} }
private void validatePurchaseclaimRequestMainExists(Long id) { private void validatePurchaseclaimRequestMainExists(Long id) {
@ -116,23 +116,44 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest
return purchaseclaimRequestMainMapper.selectList(exportReqVO); 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)) { if (CollUtil.isEmpty(datas)) {
throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY); throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY);
} }
List<PurchaseclaimRequestDetailImportVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> { datas.forEach(createReqVO -> {
PurchaseclaimRequestMainDO updateObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO); // 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList
purchaseclaimRequestMainMapper.updateById(updateObj); 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<PurchaseclaimRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<PurchaseclaimRequestDetailDO> subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList03(subList); List<PurchaseclaimRequestDetailDO> subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList03(subList);
// 新增子表数据 // 新增子表数据
for (PurchaseclaimRequestDetailDO detailDO : subDOList) { for (PurchaseclaimRequestDetailDO detailDO : subDOList) {
// 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList
detailDO.setMasterId(createReqVO.getId()); detailDO.setMasterId(createReqVO.getId());
detailDO.setNumber(createReqVO.getNumber()); detailDO.setNumber(createReqVO.getNumber());
} }
purchaseclaimRequestDetailMapper.insertBatch(subDOList); purchaseclaimRequestDetailMapper.insertBatch(subDOList);
}); });
return new ArrayList<>(); return errorList;
} }
} }

Loading…
Cancel
Save