Explorar el Código

导入物料信息中会出现每千条分割数据,对项目进行二次变更的情况,现已规避

yue hace 5 años
padre
commit
7e4b6439a3

+ 1 - 1
src/main/java/com/jeeplus/modules/sg/information/entity/constant.java

@@ -1,6 +1,6 @@
 package com.jeeplus.modules.sg.information.entity;
 /**
- * 用于记录项目中的一些常量存储
+ * 用于记录项目中的一些常量存储 程序修改后暂未使用
  * */
 public class constant {
     private String overType;

+ 4 - 1
src/main/java/com/jeeplus/modules/sg/information/entity/searchDto.java

@@ -3,7 +3,10 @@ package com.jeeplus.modules.sg.information.entity;
 import com.jeeplus.core.persistence.DataEntity;
 
 import java.util.List;
-
+/**
+ * 用于记录查询的带入的参数
+ * 以并入information中,暂未使用
+ * */
 public class searchDto extends DataEntity<searchDto> {
     List<Information> fileList;
 

+ 1 - 0
src/main/java/com/jeeplus/modules/sg/information/mapper/InformationMapper.java

@@ -20,6 +20,7 @@ import java.util.List;
  */
 @MyBatisMapper
 public interface InformationMapper extends BaseMapper<Information> {
+
     List<Information> findAllInformationList();
 
     int insertInfor(Information information);

+ 103 - 50
src/main/java/com/jeeplus/modules/sg/information/utils/ImportInformation.java

@@ -33,6 +33,8 @@ public  class ImportInformation {
         int failureNum = 0;
         int isBackNo = 0;
         List<Material> materials = new ArrayList<Material>();
+        String countProjectId = "";
+        int flag = 0;
         User user = UserUtils.getUser();
         Double difference = 0.0;
         List<Material> status = materialService.findStatus();
@@ -41,6 +43,13 @@ public  class ImportInformation {
             try {
                 Row row = ei.getRow(i);
                 Object projectId = ei.getCellValue(row, 1);
+                if (projectId.toString().equals(countProjectId)) {
+                    flag = 0;
+                    countProjectId = projectId.toString();
+                } else {
+                    flag = 1;
+                    countProjectId = projectId.toString();
+                }
                 Object inforId = ei.getCellValue(row, 3);
                 Object materialName = ei.getCellValue(row, 4);
                 Object outboundAmount = ei.getCellValue(row, 5);
@@ -76,66 +85,22 @@ public  class ImportInformation {
                     isBack = "否";
                     isBackNo = 1;
                 }
-                if (status.size() > 0) {
-                    for (Material list : status) {
-                        double afterNumber = list.getAfterNumber();
-                        double testOutBoundNumber = Double.parseDouble(outboundNumber.toString());
-                        if (list.getProjectId().equals(projectId.toString()) && list.getInforId().equals(inforId.toString()) &&  afterNumber == testOutBoundNumber) {
-                            material.setIsBack(list.getIsBack());
-                            material.setIsBackNo(list.getIsBackNo());
-                            material.setStatus(list.getStatus());
-                            material.setInfo(list.getInfo());
-                            material.setAfterNumber(list.getAfterNumber());
-                            break;
-                        } else if (list.getProjectId().equals(projectId.toString()) && list.getInforId().equals(inforId.toString()) && afterNumber!=testOutBoundNumber) {
-                            material.setIsBack("否");
-                            material.setIsBackNo(1);
-                            break;
-                        } else {
-                            material.setIsBack(isBack);
-                            material.setIsBackNo(isBackNo);
-                        }
-                    }
-                } else {
-                    material.setIsBack(isBack);
-                    material.setIsBackNo(isBackNo);
-                }
 
-                material.setInforId(inforId.toString());
-                material.setProjectId(projectId.toString());
-                material.setMaterialName(materialName.toString());
-                material.setOutboundAmount(Double.parseDouble(outboundAmount.toString()));
-                material.setAuthorizedAmount(Double.parseDouble(authorizedAmount.toString()));;
-                material.setDifference(difference);
-                material.setOutboundNumber(Double.parseDouble(outboundNumber.toString()));
-                material.setAuthorizedNumber(Double.parseDouble(authorizedNumber.toString()));
-                material.setPrice(Double.parseDouble(price.toString()));
-                material.setUnit(unit.toString());
-                material.setMaterialSmall(materialSmall.toString());
-                material.setMaterialMid(materialMid.toString());
-                material.setMaterialBig(materialBig.toString());
-                material.preInsert();
-                material.setCreateBy(user);
-                material.setCreateDate(new Date());
-                material.setUpdateBy(user);
-                material.setUpdateDate(new Date());
-                materials.add(material);
-                successNum++;
 
-                if (materials.size() == 1000) {
+                if (materials.size() >= 1000 && flag == 1) {
                     materialService.saveMater(materials);
                     List<Material> information = materialService.findInformation(materials);
                     materials.clear();
-                    for (Material maInfor:information) {
+                    for (Material maInfor : information) {
                         Information upInfor = new Information();
                         Information needInfor = materialService.findNeedInfor(maInfor);
                         if (needInfor != null) {
-                                upInfor.setProjectId(needInfor.getProjectId());
+                            upInfor.setProjectId(needInfor.getProjectId());
                             if (maInfor.getIsBackNo() == 0) {
                                 if (needInfor.getFirstFinish() == "" || needInfor.getFirstFinish() == null || ("否").equals(needInfor.getFirstFinish())) {
                                     upInfor.setFirstFinish("是");
                                     upInfor.setFirstFinishDate(new Date());
-                                }  else if (("否").equals(needInfor.getSecondFinish())) {
+                                } else if (("否").equals(needInfor.getSecondFinish())) {
                                     upInfor.setSecondFinish("是");
                                     upInfor.setSecondFinishDate(new Date());
                                 }
@@ -149,12 +114,101 @@ public  class ImportInformation {
                             materialService.updateNeed(upInfor);
                         }
                     }
+                    if (status.size() > 0) {
+                        for (Material list : status) {
+                            double afterNumber = list.getAfterNumber();
+                            double testOutBoundNumber = Double.parseDouble(outboundNumber.toString());
+                            if (list.getProjectId().equals(projectId.toString()) && list.getInforId().equals(inforId.toString()) &&  afterNumber == testOutBoundNumber) {
+                                material.setIsBack(list.getIsBack());
+                                material.setIsBackNo(list.getIsBackNo());
+                                material.setStatus(list.getStatus());
+                                material.setInfo(list.getInfo());
+                                material.setAfterNumber(list.getAfterNumber());
+                                break;
+                            } else if (list.getProjectId().equals(projectId.toString()) && list.getInforId().equals(inforId.toString()) && afterNumber!=testOutBoundNumber) {
+                                material.setIsBack("否");
+                                material.setIsBackNo(1);
+                                break;
+                            } else {
+                                material.setIsBack(isBack);
+                                material.setIsBackNo(isBackNo);
+                            }
+                        }
+                    } else {
+                        material.setIsBack(isBack);
+                        material.setIsBackNo(isBackNo);
+                    }
+                    material.setInforId(inforId.toString());
+                    material.setProjectId(projectId.toString());
+                    material.setMaterialName(materialName.toString());
+                    material.setOutboundAmount(Double.parseDouble(outboundAmount.toString()));
+                    material.setAuthorizedAmount(Double.parseDouble(authorizedAmount.toString()));;
+                    material.setDifference(difference);
+                    material.setOutboundNumber(Double.parseDouble(outboundNumber.toString()));
+                    material.setAuthorizedNumber(Double.parseDouble(authorizedNumber.toString()));
+                    material.setPrice(Double.parseDouble(price.toString()));
+                    material.setUnit(unit.toString());
+                    material.setMaterialSmall(materialSmall.toString());
+                    material.setMaterialMid(materialMid.toString());
+                    material.setMaterialBig(materialBig.toString());
+                    material.preInsert();
+                    material.setCreateBy(user);
+                    material.setCreateDate(new Date());
+                    material.setUpdateBy(user);
+                    material.setUpdateDate(new Date());
+                    materials.add(material);
+                    successNum++;
+                } else {
+                    if (status.size() > 0) {
+                        for (Material list : status) {
+                            double afterNumber = list.getAfterNumber();
+                            double testOutBoundNumber = Double.parseDouble(outboundNumber.toString());
+                            if (list.getProjectId().equals(projectId.toString()) && list.getInforId().equals(inforId.toString()) &&  afterNumber == testOutBoundNumber) {
+                                material.setIsBack(list.getIsBack());
+                                material.setIsBackNo(list.getIsBackNo());
+                                material.setStatus(list.getStatus());
+                                material.setInfo(list.getInfo());
+                                material.setAfterNumber(list.getAfterNumber());
+                                break;
+                            } else if (list.getProjectId().equals(projectId.toString()) && list.getInforId().equals(inforId.toString()) && afterNumber!=testOutBoundNumber) {
+                                material.setIsBack("否");
+                                material.setIsBackNo(1);
+                                break;
+                            } else {
+                                material.setIsBack(isBack);
+                                material.setIsBackNo(isBackNo);
+                            }
+                        }
+                    } else {
+                        material.setIsBack(isBack);
+                        material.setIsBackNo(isBackNo);
+                    }
+
+                    material.setInforId(inforId.toString());
+                    material.setProjectId(projectId.toString());
+                    material.setMaterialName(materialName.toString());
+                    material.setOutboundAmount(Double.parseDouble(outboundAmount.toString()));
+                    material.setAuthorizedAmount(Double.parseDouble(authorizedAmount.toString()));;
+                    material.setDifference(difference);
+                    material.setOutboundNumber(Double.parseDouble(outboundNumber.toString()));
+                    material.setAuthorizedNumber(Double.parseDouble(authorizedNumber.toString()));
+                    material.setPrice(Double.parseDouble(price.toString()));
+                    material.setUnit(unit.toString());
+                    material.setMaterialSmall(materialSmall.toString());
+                    material.setMaterialMid(materialMid.toString());
+                    material.setMaterialBig(materialBig.toString());
+                    material.preInsert();
+                    material.setCreateBy(user);
+                    material.setCreateDate(new Date());
+                    material.setUpdateBy(user);
+                    material.setUpdateDate(new Date());
+                    materials.add(material);
+                    successNum++;
                 }
             }catch (Exception ex) {
                 ex.getMessage();
                 failureNum++;
             }
-
         }
         if (materials.size() != 0) {
             materialService.saveMater(materials);
@@ -183,7 +237,6 @@ public  class ImportInformation {
                 }
             }
         }
-
         hashMap.put("successNum",successNum);
         hashMap.put("failureNum",failureNum);
         return hashMap;

+ 6 - 1
src/main/java/com/jeeplus/modules/sg/information/web/InformationController.java

@@ -422,6 +422,9 @@ public class InformationController extends BaseController {
     }
 
 
+    /**
+     * 导出物料清单
+     * */
     //	public static Map<String, ExportExcel> excelParamCache = new ConcurrentHashMap<>();
     @ResponseBody
     @RequiresPermissions("modules:sg:information:information:export")
@@ -518,7 +521,9 @@ public class InformationController extends BaseController {
         return j;
     }
 
-
+    /**
+     * 导出项目清单
+     * */
     @ResponseBody
     @RequiresPermissions("modules:sg:information:information:export")
     @RequestMapping(value = "export")