Quellcode durchsuchen

1.推广人增加绑定时间。
2.投保单号格式修改。

zhengqiang vor 5 Jahren
Ursprung
Commit
a29cfbdd9e

+ 1 - 0
picc-admin-server/src/main/java/com/jpsoft/picc/modules/base/controller/PromoterController.java

@@ -58,6 +58,7 @@ public class PromoterController {
                 company.setId(UUID.randomUUID().toString());
                 company.setName(companyName);
                 company.setPromoter(promoter);
+                company.setPromoterBindTime(new Date());
                 company.setCreateBy(userName);
                 company.setCreateTime(new Date());
                 company.setDelFlag(false);

+ 4 - 0
picc-common/src/main/java/com/jpsoft/picc/modules/base/entity/Company.java

@@ -59,6 +59,10 @@ public class Company {
 	private String companyStampFile;
     @ApiModelProperty(value = "推广员账号")
 	private String promoter;
+	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone ="GMT+8")
+	@ApiModelProperty(value = "推广员绑定时间")
+    private Date promoterBindTime;
 	@ApiModelProperty(value = "云账号信息")
 	private JpCloudUser jpCloudUser;
     @ApiModelProperty(value = "近三年损失情况(时间、原因、损失金额)")

+ 2 - 2
picc-common/src/main/java/com/jpsoft/picc/modules/business/service/impl/InsuranceApplicationServiceImpl.java

@@ -93,10 +93,10 @@ public class InsuranceApplicationServiceImpl implements InsuranceApplicationServ
 
     @Override
     public String generatePolicyNo(Date createTime,int num) {
-        //(yyMMdd)+(XXX=今日第几单)-(XX=第几个月)
+        //(yyMMddHHmm)+(XXX=今日第几单)-(XX=第几个月)
         long count = countByCreateTime(createTime)+1;
 
-        SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmm");
         DecimalFormat df1 = new DecimalFormat("000");
         DecimalFormat df2 = new DecimalFormat("00");
 

+ 52 - 3
picc-common/src/main/java/com/jpsoft/picc/modules/common/utils/POIUtils.java

@@ -1,10 +1,9 @@
 package com.jpsoft.picc.modules.common.utils;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.hssf.converter.ExcelToHtmlConverter;
-import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.usermodel.*;
-import org.apache.poi.ss.util.CellRangeAddress;
 import org.w3c.dom.Document;
 
 import javax.xml.parsers.DocumentBuilderFactory;
@@ -17,7 +16,6 @@ import java.io.*;
 import java.math.BigDecimal;
 import java.text.DecimalFormat;
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 
 /**
@@ -125,6 +123,10 @@ public class POIUtils {
         }
     }
 
+    public POIUtils() {
+        wb = new HSSFWorkbook();
+    }
+
     public Sheet getSheetAt(int sheetIndex){
         return wb.getSheetAt(sheetIndex);
     }
@@ -375,4 +377,51 @@ public class POIUtils {
             System.out.println(result);
         }
     }
+
+    public Workbook exportErrorXls(int sheetIndex,int validateColIndex, int rowNum) {
+        Workbook destBook = new HSSFWorkbook();
+        Sheet destSheet = destBook.createSheet();
+
+        //复制列头
+        Sheet srcSheet = wb.getSheetAt(sheetIndex);
+        Row srcHeaderRow = wb.getSheetAt(sheetIndex).getRow(0);
+        Row destHeaderRow = destSheet.createRow(0);
+
+        for (int i=0;i<srcHeaderRow.getLastCellNum();i++){
+            if (srcHeaderRow.getCell(i)!=null) {
+                destHeaderRow.createCell(i).setCellValue(srcHeaderRow.getCell(i).getStringCellValue());
+            }
+            else{
+                break;
+            }
+        }
+
+        int srcRowIndex = 1;
+        int destRowIndex = 1;
+
+        while(srcRowIndex<= rowNum){
+            Row dataRow1 = srcSheet.getRow(srcRowIndex);
+
+            Cell cell = dataRow1.getCell(validateColIndex);
+
+            if (cell!=null && StringUtils.isNotEmpty(cell.getStringCellValue())){
+                Row dataRow2 = destSheet.createRow(destRowIndex);
+
+                for (int i=0;i<dataRow1.getLastCellNum();i++){
+                    if (dataRow1.getCell(i)!=null) {
+                        dataRow2.createCell(i).setCellValue((String)getCellValue(0,srcRowIndex,i));
+                    }
+                    else{
+                        break;
+                    }
+                }
+
+                destRowIndex++;
+            }
+
+            srcRowIndex++;
+        }
+
+        return destBook;
+    }
 }

+ 6 - 1
picc-common/src/main/resources/mapper/base/Company.xml

@@ -25,6 +25,7 @@
         <result property="address" column="address_"/>
         <result property="companyStampFile" column="company_stamp_file"/>
         <result property="promoter" column="promoter_"/>
+        <result property="promoterBindTime" column="promoter_bind_time"/>
         <result property="remark" column="remark_"/>
         <result property="buyId" column="buy_id"/>
         <result property="status" column="status_"/>
@@ -47,7 +48,7 @@
 			uscc_code,uscc_files,type_,business_nature,business_scope,
 			industry_type,employees_number,insured_number,person_,tel_,mail_,postal_,
 			address_,company_stamp_file,promoter_,remark_,buy_id,status_,
-			create_by,create_time,update_by,update_time,del_flag)
+			create_by,create_time,update_by,update_time,del_flag,promoter_bind_time)
 		values
 		(
 			#{id,jdbcType=VARCHAR}
@@ -79,6 +80,7 @@
 			,#{updateBy,jdbcType=VARCHAR}
 			,#{updateTime,jdbcType= TIMESTAMP }
 			,#{delFlag,jdbcType= NUMERIC }
+			,#{promoterBindTime,jdbcType= TIMESTAMP }
 		)
 	]]>
     </insert>
@@ -172,6 +174,9 @@
             <if test="delFlag!=null">
                 del_flag=#{delFlag,jdbcType= NUMERIC },
             </if>
+            <if test="promoter!=null">
+                promoter_bind_time=#{promoterBindTime,jdbcType=VARCHAR},
+            </if>
         </set>
         where id_=#{id}
     </update>

+ 19 - 17
picc-enterprise-server/src/main/java/com/jpsoft/picc/modules/auth/controller/CompanyMemberController.java

@@ -519,26 +519,28 @@ public class CompanyMemberController {
                 msgResult.setMessage("数据成功导入" + affectCount + "条,有" + failCount + "条数据未导入成功,错误原因请查看报表。");
 
                 //todo 只保留错误数据的sheet
-                int rowIndex = 1;
-
-                while(rowIndex<= sheet1.getLastRowNum()){
-                    Cell cell = sheet1.getRow(rowIndex).getCell(validateColIndex);
-
-                    if (cell==null || StringUtils.isEmpty(cell.getStringCellValue())){
-                        sheet1.removeRow(sheet1.getRow(rowIndex));
-
-                        if (rowIndex<sheet1.getLastRowNum()) {
-                            sheet1.shiftRows(rowIndex + 1, sheet1.getLastRowNum(), -1); //删除后下面行上移,则不需要移动rowIndex
-                        }
-                    }
-                    else {
-                        rowIndex++;
-                    }
-                }
+                Workbook exportBook = poiUtils.exportErrorXls(0,validateColIndex,1+affectCount+failCount);
+                //数据量大时非常慢
+//                int rowIndex = 1;
+//
+//                while(rowIndex<= sheet1.getLastRowNum()){
+//                    Cell cell = sheet1.getRow(rowIndex).getCell(validateColIndex);
+//
+//                    if (cell==null || StringUtils.isEmpty(cell.getStringCellValue())){
+//                        sheet1.removeRow(sheet1.getRow(rowIndex));
+//
+//                        if (rowIndex<sheet1.getLastRowNum()) {
+//                            sheet1.shiftRows(rowIndex + 1, sheet1.getLastRowNum(), -1); //删除后下面行上移,则不需要移动rowIndex
+//                        }
+//                    }
+//                    else {
+//                        rowIndex++;
+//                    }
+//                }
 
                 //todo 将wb保存到oss
                 ByteArrayOutputStream output = new ByteArrayOutputStream();
-                poiUtils.getWorkbook().write(output);
+                exportBook.write(output);
 
                 byte[] buffer = output.toByteArray();
                 ByteArrayInputStream input = new ByteArrayInputStream(buffer);