DeviceOutHandler.java 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package com.fdkankan.manage.factory;
  2. import cn.hutool.core.collection.CollUtil;
  3. import com.fdkankan.manage.common.ResultCode;
  4. import com.fdkankan.manage.constant.CameraOutTypeEnum;
  5. import com.fdkankan.manage.entity.AgentNew;
  6. import com.fdkankan.manage.exception.BusinessException;
  7. import com.fdkankan.manage.service.IAgentNewService;
  8. import com.fdkankan.manage.service.ICameraService;
  9. import com.fdkankan.manage.service.IExcelService;
  10. import com.fdkankan.manage.vo.request.CameraInOutParam;
  11. import lombok.extern.slf4j.Slf4j;
  12. import org.apache.commons.lang3.StringUtils;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Component;
  15. import java.util.ArrayList;
  16. import java.util.HashMap;
  17. import java.util.List;
  18. @Slf4j
  19. @Component("deviceOut")
  20. public class DeviceOutHandler implements ImportExcelHandler{
  21. @Autowired
  22. private IAgentNewService agentNewService;
  23. @Autowired
  24. private IExcelService excelService;
  25. @Autowired
  26. private ICameraService cameraService;
  27. @Override
  28. public int importExcel(List<HashMap<Integer, String>> excelRowList) {
  29. if(CollUtil.isEmpty(excelRowList)){
  30. return 0;
  31. }
  32. List<CameraInOutParam> params = new ArrayList<>();
  33. List<Integer> errorIndex = new ArrayList<>();
  34. Integer index = 0;
  35. for (HashMap<Integer, String> map : excelRowList) {
  36. index ++;
  37. if(index == 0 && !map.get(0).equals("设备出库模板")){
  38. throw new BusinessException(ResultCode.TEMPLATE_TYPE_ERROR);
  39. }
  40. if(index <4){
  41. continue;
  42. }
  43. String snCode = map.get(0);
  44. String outTypeString = map.get(1);
  45. String companyName = map.get(2);
  46. String orderSn = map.get(3);
  47. String agentName = map.get(4);
  48. CameraOutTypeEnum outTypeEnum = CameraOutTypeEnum.getByMsg(outTypeString);
  49. if(outTypeEnum == null || StringUtils.isBlank(snCode)){
  50. log.error("outError-->出库错误:出库类型为空或snCode为空:snCode:{},outType:{},companyName:{},orderSn:{},agentName:{}"
  51. ,snCode,outTypeString,companyName,orderSn,agentName);
  52. errorIndex.add(index -3);
  53. }
  54. CameraInOutParam param = new CameraInOutParam();
  55. if(outTypeEnum != null){
  56. int outType = outTypeEnum.getCode();
  57. param.setOutType(outType);
  58. }
  59. if(param.getOutType() != null && param.getOutType() == 4 && StringUtils.isBlank(agentName)){
  60. log.error("outError-->出库错误:经销商为空错误:snCode:{},outType:{},companyName:{},orderSn:{},agentName:{}"
  61. ,snCode,outTypeString,companyName,orderSn,agentName);
  62. errorIndex.add(index -3);
  63. }
  64. if(param.getOutType() != null && param.getOutType() != 4 && StringUtils.isNotBlank(agentName)){
  65. log.error("outError-->出库错误:出库类型错误:snCode:{},outType:{},companyName:{},orderSn:{},agentName:{}"
  66. ,snCode,outTypeString,companyName,orderSn,agentName);
  67. errorIndex.add(index -3);
  68. }
  69. if(StringUtils.isNotBlank(agentName)){
  70. AgentNew agentNew = agentNewService.getByName(agentName);
  71. if(agentNew == null){
  72. log.error("outError-->出库错误:代理商不存在:snCode:{},outType:{},companyName:{},orderSn:{},agentName:{}"
  73. ,snCode,outTypeString,companyName,orderSn,agentName);
  74. errorIndex.add(index -3);
  75. }else {
  76. param.setAgentId(agentNew.getId());
  77. }
  78. }
  79. param.setCompanyName(companyName);
  80. param.setOrderSn(orderSn);
  81. param.setSnCode(snCode);
  82. params.add(param);
  83. }
  84. excelService.toExcelError(errorIndex);
  85. if(params.size() <=0){
  86. throw new BusinessException(ResultCode.OUT_TEMPLATE_EMPTY);
  87. }
  88. return cameraService.outs(params);
  89. }
  90. }