Selaa lähdekoodia

1.新增产品库导入功能

WoNiu 4 vuotta sitten
vanhempi
commit
1ac9e158c2

+ 11 - 0
src/main/java/com/galaxis/manatee/controller/GetController.java

@@ -3,6 +3,7 @@ package com.galaxis.manatee.controller;
 import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunCostCollectionDO;
 import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunEquipmentDO;
 import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunOperationInformationDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunProductDO;
 import com.galaxis.manatee.service.ChuanyunService;
 import com.galaxis.manatee.task.ChuanyunBasicDataScheduledTask;
 import com.galaxis.manatee.task.ChuanyunHumanResourceScheduledTask;
@@ -143,6 +144,16 @@ public class GetController {
     }
 
     /**
+     * 导入产品库信息
+     * @param file
+     */
+    @PostMapping("/test/importproduct")
+    public void importProductLibrary(@RequestParam(value="uploadFile", required = false) MultipartFile file){
+        List<ChuanyunProductDO> list = ExcelUtils.readExcel("", ChuanyunProductDO.class, file);
+        chuanyunService.importProduct(list);
+    }
+
+    /**
      * 更新小车信息
      * @param chuanyunOperationInformationDO
      */

+ 38 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunProductDO.java

@@ -0,0 +1,38 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.galaxis.manatee.entity.chuanyun.dto.ExcelColumn;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+
+@Slf4j
+@Data
+@Entity
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunProductDO {
+
+    @Id
+    @GeneratedValue(generator = "idGeneratorUser")
+    @GenericGenerator(name ="idGeneratorUser" ,strategy="com.galaxis.capsule.util.GalaxisIdGenerator")
+    private Long objectId;
+
+    @ExcelColumn(value = "型号", col = 1)
+    private String productModel;
+
+    @ExcelColumn(value = "名称", col = 2)
+    private String specName;
+
+    @ExcelColumn(value = "参数", col = 3)
+    private String specValue;
+
+    private String specUnit;
+
+    @ExcelColumn(value = "备注", col = 4)
+    private String remark;
+}

+ 36 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunProductLibraryDO.java

@@ -0,0 +1,36 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.OneToMany;
+import java.util.List;
+
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity(name = "CHUANYUN_PRODUCT_LIBRARY")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunProductLibraryDO extends BasicDO{
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D001789f021f2654b5b47b3b824ff413bc61194";
+
+    @JsonProperty("F0000004")
+    private String productModel;
+
+    @JsonProperty("F0000010")
+    private String productType;
+
+    @JsonProperty("D001789F4d732f3541934286b97c21a1ea1e5398")
+    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true,fetch = FetchType.EAGER)
+    private List<ChuanyunProductLibrarySpecificationsDO> list;
+}

+ 30 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunProductLibrarySpecificationsDO.java

@@ -0,0 +1,30 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+
+@Slf4j
+@Entity(name = "CHUANYUN_PRODUCT_LIBRARY_SPEC")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunProductLibrarySpecificationsDO extends BasicSubDO{
+
+    @JsonProperty("F0000007")
+    private String specName;
+
+    @JsonProperty("F0000008")
+    private String specValue;
+
+    @JsonProperty("F0000009")
+    private String specUnit;
+
+    @JsonProperty("F0000013")
+    private String remark;
+
+}

+ 3 - 0
src/main/java/com/galaxis/manatee/service/ChuanyunService.java

@@ -3,6 +3,7 @@ package com.galaxis.manatee.service;
 import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunCostCollectionDO;
 import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunEquipmentDO;
 import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunOperationInformationDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunProductDO;
 import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunOperationInformationDTO;
 import org.springframework.scheduling.annotation.Async;
 
@@ -46,4 +47,6 @@ public interface ChuanyunService {
      */
     void updateOperationInformation(ChuanyunOperationInformationDO chuanyunOperationInformationDO);
 
+    void importProduct(List<ChuanyunProductDO> list);
+
 }

+ 61 - 0
src/main/java/com/galaxis/manatee/service/impl/ChuanyunServiceImpl.java

@@ -20,6 +20,9 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
+import javax.persistence.CascadeType;
+import javax.persistence.FetchType;
+import javax.persistence.OneToMany;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Date;
@@ -239,6 +242,45 @@ public class ChuanyunServiceImpl implements ChuanyunService {
         chuanyunOperationInformationDao.save(chuanyunOperationInformationDO);
     }
 
+    @Override
+    public void importProduct(List<ChuanyunProductDO> list) {
+        try {
+            ChuanyunProductLibraryDO chuanyunProductLibraryDO = new ChuanyunProductLibraryDO();
+            List<ChuanyunProductLibrarySpecificationsDO> list1 = new ArrayList<>();
+            list.forEach(chuanyunProductDO -> {
+                if (!StringUtils.isEmpty(chuanyunProductDO.getProductModel())){
+                    chuanyunProductLibraryDO.setProductModel(chuanyunProductDO.getProductModel());
+                }
+                ChuanyunProductLibrarySpecificationsDO chuanyunProductLibrarySpecificationsDO = new ChuanyunProductLibrarySpecificationsDO();
+                chuanyunProductLibrarySpecificationsDO.setSpecName(chuanyunProductDO.getSpecName());
+                chuanyunProductLibrarySpecificationsDO.setSpecValue(chuanyunProductDO.getSpecValue());
+                chuanyunProductLibrarySpecificationsDO.setRemark(chuanyunProductDO.getRemark());
+                list1.add(chuanyunProductLibrarySpecificationsDO);
+            });
+            var objectMapper=new ObjectMapper();
+            List<String> matchers = new ArrayList<>();
+            matchers.add("F0000004_2,"+chuanyunProductLibraryDO.getProductModel());
+            var filter= Filter.instance(0,1,true,"And",matchers);
+            var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunProductLibraryDO.SCHEMA_CODE,filter);
+            if (chuanyunFindAllResponse.getReturnData()!=null) {
+                List<ChuanyunProductLibraryDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                chuanYunManager.delete(ChuanyunProductLibraryDO.SCHEMA_CODE,result.get(0).getObjectId());
+            }
+            ProductLibraryDTO productLibraryDTO = new ProductLibraryDTO(chuanyunProductLibraryDO);
+            productLibraryDTO.setList(list1);
+            var productString = objectMapper.writeValueAsString(productLibraryDTO);
+            ChuanyunSaveDTO chuanyunSaveDTO = chuanYunManager.save(ChuanyunProductLibraryDO.SCHEMA_CODE,productString,true);
+            if(chuanyunSaveDTO.getSuccessful()){
+                log.info("更新产品库成功");
+            }else{
+                log.warn("更新产品库失败");
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            log.error(e.getMessage());
+        }
+    }
+
     /**
      * 更新外部部门名称
      * @param
@@ -343,6 +385,25 @@ public class ChuanyunServiceImpl implements ChuanyunService {
         }
     }
 
+    @Data
+    static class ProductLibraryDTO{
+
+        @JsonProperty("F0000004")
+        private String productModel;
+
+        @JsonProperty("D001789F4d732f3541934286b97c21a1ea1e5398")
+        @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true,fetch = FetchType.EAGER)
+        private List<ChuanyunProductLibrarySpecificationsDO> list;
+
+        public ProductLibraryDTO(ChuanyunProductLibraryDO chuanyunProductLibraryDO) {
+            if(null!=chuanyunProductLibraryDO){
+                if (null!=chuanyunProductLibraryDO.getProductModel()){
+                    this.productModel=chuanyunProductLibraryDO.getProductModel();
+                }
+            }
+        }
+    }
+
 
     @Data
     class outDepartmentDTO {