Browse Source

载体相关导入

LAPTOP-FO2T5SIU\35838 7 months ago
parent
commit
56e330fa7b

+ 1 - 1
pro-base/src/main/java/com/idea/buildManage/controller/ParkRoomController.java

@@ -153,7 +153,7 @@ public class ParkRoomController extends BaseController {
             if (null == excel) {
                 return AjaxResult.error("导入失败");
             }
-            EasyExcel.read(excel, ParkRoomExcel.class, listener).headRowNumber(1).sheet().doRead();
+            EasyExcel.read(excel, ParkRoomExcel.class, listener).headRowNumber(2).sheet().doRead();
             excel.delete();
         } catch (Exception e) {
             e.printStackTrace();

+ 3 - 0
pro-base/src/main/java/com/idea/buildManage/excel/ParkInfoExcel.java

@@ -83,6 +83,9 @@ public class ParkInfoExcel implements Serializable {
     @ExcelProperty(value = "失败原因")
     private String reason;
 
+    @ExcelIgnore
+    private Boolean duplicate;
+
     private static final long serialVersionUID = 1L;
 
 }

+ 132 - 89
pro-base/src/main/java/com/idea/buildManage/excel/ParkInfoListener.java

@@ -14,15 +14,15 @@ import com.rockstar.system.service.SysDictService;
 import com.rockstar.util.StringUtils;
 import org.apache.commons.collections.CollectionUtils;
 
+import java.lang.reflect.Field;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 public class ParkInfoListener extends AnalysisEventListener<ParkInfoExcel> {
 
-    private List<ParkInfo> list = new ArrayList<>();
+    private List<ParkInfo> insertList = new ArrayList<>();
+
+    private List<ParkInfo> updateList = new ArrayList<>();
 
     private List<ParkInfoExcel> excelList = new ArrayList<>();
 
@@ -61,12 +61,29 @@ public class ParkInfoListener extends AnalysisEventListener<ParkInfoExcel> {
         List<Map<String, String>> saleStatus = sysDictService.selectDictList("SALE_STATUS");
         // 公司名称
         List<Map<String, String>> companyNames = sysDictService.selectDictList("COMPANY_NAME");
+        // 预售许可证编号
+        Map<String, String> numberIdMap = parkInfoService.getNumberIdMap();
+
 
-        if(CollectionUtils.isNotEmpty(excelList)){
+        if (CollectionUtils.isNotEmpty(excelList)) {
             ParkInfo data;
             ParkInfoExcel excel = null;
 
-            for(int i = 0; i < excelList.size(); i++){
+            // 先循环判断表格中是否有重复数据
+            Map<String, Integer> map = new HashMap<>();
+            for (ParkInfoExcel excelItem : excelList) {
+                map.put(excelItem.getPreSalesLicenseNumber(), map.getOrDefault(excelItem.getPreSalesLicenseNumber(), 0) + 1);
+            }
+            for (ParkInfoExcel excelItem : excelList) {
+                if (map.get(excelItem.getPreSalesLicenseNumber()) > 1) {
+                    excelItem.setDuplicate(true);
+                }else {
+                    excelItem.setDuplicate(false);
+                }
+            }
+
+
+            for (int i = 0; i < excelList.size(); i++) {
 
                 boolean groupNameFlag = true;
                 boolean natureFlag = true;
@@ -74,107 +91,130 @@ public class ParkInfoListener extends AnalysisEventListener<ParkInfoExcel> {
                 boolean companyNameFlag = true;
                 boolean areaStatusFlag = true;
                 boolean saleStatusFlag = true;
+                boolean duplicateFlag = true;
                 StringBuilder builder = new StringBuilder();
-
-
                 try {
                     data = new ParkInfo();
                     excel = excelList.get(i);
-
-                    if(StringUtils.isEmpty(excel.getGroupName())){
-                        groupNameFlag = false;
-                        builder.append("楼盘/小区名称为空").append(",");
-                        excel.setGroupName("{" + excel.getGroupName() + "}");
-                    }
-                    data.setGroupName(excel.getGroupName());
-
-                    if(StringUtils.isEmpty(excel.getNature())){
-                        natureFlag = false;
-                        builder.append("性质为空").append(",");
-                        excel.setNature("{" + excel.getNature() + "}");
-                    }
-                    for (Map<String, String> stringStringMap : groupNature) {
-                        if (stringStringMap.get("label").equals(excel.getNature())) {
-                            data.setNature(stringStringMap.get("value"));
+                    // 重复数据标识
+                    if (excel.getDuplicate()) {
+                        duplicateFlag = false;
+                        Class<?> clazz = excel.getClass();
+                        Field[] fields = clazz.getDeclaredFields();
+                        // 给所有字段打上标记 标红
+                        for (Field field : fields) {
+                            field.setAccessible(true);
+                            if(field.getType().equals(String.class) && field.get(excel) != null){
+                                field.set(excel, "{" + field.get(excel) + "}");
+                            }
                         }
-                    }
-                    // 没匹配上的情况
-                    if(StringUtils.isEmpty(data.getNature())){
-                        natureFlag = false;
-                        builder.append("性质格式有误").append(",");
-                        excel.setNature("{" + excel.getNature() + "}");
-                    }
-
-                    // 预销售许可证编号
-                    if(StringUtils.isEmpty(excel.getPreSalesLicenseNumber())){
-                        preSalesLicenseNumberFlag = false;
-                        builder.append("预销售许可证编号为空").append(",");
-                        excel.setPreSalesLicenseNumber("{" + excel.getPreSalesLicenseNumber() + "}");
-                    }
-                    data.setPreSalesLicenseNumber(excel.getPreSalesLicenseNumber());
+                        builder.append("数据重复");
+                        throw new RuntimeException(builder.toString());
+                    } else {
+                        if (StringUtils.isEmpty(excel.getGroupName())) {
+                            groupNameFlag = false;
+                            builder.append("楼盘/小区名称为空").append(",");
+                            excel.setGroupName("{" + excel.getGroupName() + "}");
+                        }
+                        data.setGroupName(excel.getGroupName());
 
-                    // 开发公司
-                    if(StringUtils.isNotEmpty(excel.getCompanyName())){
-                        for (Map<String, String> stringStringMap : companyNames) {
-                            if (stringStringMap.get("label").equals(excel.getCompanyName())) {
-                                data.setCompanyId(stringStringMap.get("value"));
+                        if (StringUtils.isEmpty(excel.getNature())) {
+                            natureFlag = false;
+                            builder.append("性质为空").append(",");
+                            excel.setNature("{" + excel.getNature() + "}");
+                        }
+                        for (Map<String, String> stringStringMap : groupNature) {
+                            if (stringStringMap.get("label").equals(excel.getNature())) {
+                                data.setNature(stringStringMap.get("value"));
                             }
                         }
                         // 没匹配上的情况
-                        if(data.getCompanyId() == null){
-                            companyNameFlag = false;
-                            builder.append("公司名称有误").append(",");
-                            excel.setCompanyName("{" + excel.getCompanyName() + "}");
+                        if (StringUtils.isEmpty(data.getNature())) {
+                            natureFlag = false;
+                            builder.append("性质格式有误").append(",");
+                            excel.setNature("{" + excel.getNature() + "}");
                         }
-                    }
 
-                    // 楼盘面积测绘状态
-                    if(StringUtils.isNotEmpty(excel.getAreaStatus())){
-                        for (Map<String, String> stringStringMap : mappingStatus) {
-                            if (stringStringMap.get("label").equals(excel.getAreaStatus())) {
-                                data.setAreaStatus(Integer.valueOf(stringStringMap.get("value")));
-                            }
+                        // 预销售许可证编号
+                        if (StringUtils.isEmpty(excel.getPreSalesLicenseNumber())) {
+                            preSalesLicenseNumberFlag = false;
+                            builder.append("预销售许可证编号为空").append(",");
+                            excel.setPreSalesLicenseNumber("{" + excel.getPreSalesLicenseNumber() + "}");
                         }
-                        // 没匹配上的情况
-                        if(data.getAreaStatus() == null){
-                            areaStatusFlag = false;
-                            builder.append("楼盘面积测绘状态格式有误").append(",");
-                            excel.setAreaStatus("{" + excel.getAreaStatus() + "}");
+                        data.setPreSalesLicenseNumber(excel.getPreSalesLicenseNumber());
+
+                        // 开发公司
+                        if (StringUtils.isNotEmpty(excel.getCompanyName())) {
+                            for (Map<String, String> stringStringMap : companyNames) {
+                                if (stringStringMap.get("label").equals(excel.getCompanyName())) {
+                                    data.setCompanyId(stringStringMap.get("value"));
+                                }
+                            }
+                            // 没匹配上的情况
+                            if (data.getCompanyId() == null) {
+                                companyNameFlag = false;
+                                builder.append("公司名称有误").append(",");
+                                excel.setCompanyName("{" + excel.getCompanyName() + "}");
+                            }
                         }
-                    }
 
-                    // 楼盘销售状态
-                    if(StringUtils.isNotEmpty(excel.getSaleStatus())){
-                        for (Map<String, String> stringStringMap : saleStatus) {
-                            if (stringStringMap.get("label").equals(excel.getSaleStatus())) {
-                                data.setSaleStatus(Integer.valueOf(stringStringMap.get("value")));
+                        // 楼盘面积测绘状态
+                        if (StringUtils.isNotEmpty(excel.getAreaStatus())) {
+                            for (Map<String, String> stringStringMap : mappingStatus) {
+                                if (stringStringMap.get("label").equals(excel.getAreaStatus())) {
+                                    data.setAreaStatus(Integer.valueOf(stringStringMap.get("value")));
+                                }
+                            }
+                            // 没匹配上的情况
+                            if (data.getAreaStatus() == null) {
+                                areaStatusFlag = false;
+                                builder.append("楼盘面积测绘状态格式有误").append(",");
+                                excel.setAreaStatus("{" + excel.getAreaStatus() + "}");
                             }
                         }
-                        // 没匹配上的情况
-                        if(data.getSaleStatus() == null){
-                            saleStatusFlag = false;
-                            builder.append("楼盘销售状态格式有误").append(",");
-                            excel.setSaleStatus("{" + excel.getSaleStatus() + "}");
+
+                        // 楼盘销售状态
+                        if (StringUtils.isNotEmpty(excel.getSaleStatus())) {
+                            for (Map<String, String> stringStringMap : saleStatus) {
+                                if (stringStringMap.get("label").equals(excel.getSaleStatus())) {
+                                    data.setSaleStatus(Integer.valueOf(stringStringMap.get("value")));
+                                }
+                            }
+                            // 没匹配上的情况
+                            if (data.getSaleStatus() == null) {
+                                saleStatusFlag = false;
+                                builder.append("楼盘销售状态格式有误").append(",");
+                                excel.setSaleStatus("{" + excel.getSaleStatus() + "}");
+                            }
                         }
                     }
 
-                    if (groupNameFlag && natureFlag && preSalesLicenseNumberFlag && companyNameFlag && areaStatusFlag && saleStatusFlag
+                    if (groupNameFlag && natureFlag && preSalesLicenseNumberFlag && companyNameFlag && areaStatusFlag
+                            && saleStatusFlag && duplicateFlag
                     ) {
                         String[] IGNORE_ISOLATOR_PROPERTIES = new String[]{"groupName", "nature", "preSalesLicenseNumber", "areaStatus", "saleStatus"};
-                        BeanUtil.copyProperties(excel,data,IGNORE_ISOLATOR_PROPERTIES);
-                        String id = IdUtil.simpleUUID();
-                        data.setId(id);
-                        data.setGroupId(id);
-                        data.setCreatedId(ShiroUtils.getUserId());
-                        data.setCreatedAt(new Date());
-                        list.add(data);
-                    }else {
+                        BeanUtil.copyProperties(excel, data, IGNORE_ISOLATOR_PROPERTIES);
+                        // 判断 预销售许可证编号系统中是否存在 存在就更新 不存在就新增
+                        if (numberIdMap.containsKey(excel.getPreSalesLicenseNumber())) {
+                            data.setId(numberIdMap.get(excel.getPreSalesLicenseNumber()));
+                            data.setGroupId(numberIdMap.get(excel.getPreSalesLicenseNumber()));
+                            data.setUpdatedAt(new Date());
+                            updateList.add(data);
+                        } else {
+                            String id = IdUtil.simpleUUID();
+                            data.setId(id);
+                            data.setGroupId(id);
+                            data.setCreatedId(ShiroUtils.getUserId());
+                            data.setCreatedAt(new Date());
+                            insertList.add(data);
+                        }
+
+                    } else {
                         throw new RuntimeException(builder.toString());
                     }
 
 
-
-                }catch (Exception e){
+                } catch (Exception e) {
                     e.printStackTrace();
                     String message = e.getMessage();
                     excel.setReason(message);
@@ -182,7 +222,7 @@ public class ParkInfoListener extends AnalysisEventListener<ParkInfoExcel> {
                 }
             }
 
-            count = list.size();
+            count = insertList.size() + updateList.size();
             jsonObject.put("successCount", count);
             jsonObject.put("errorList", badList);
             jsonObject.put("errorCount", badList.size());
@@ -190,18 +230,21 @@ public class ParkInfoListener extends AnalysisEventListener<ParkInfoExcel> {
             saveData();
 
             excelList.clear();
-            list.clear();
+            insertList.clear();
 
-        }else {
+        } else {
             throw new RuntimeException("excel无数据");
         }
 
 
     }
 
-    private void saveData(){
-        if (CollectionUtils.isNotEmpty(list)) {
-            parkInfoService.insertBatch(list);
+    private void saveData() {
+        if (CollectionUtils.isNotEmpty(insertList)) {
+            parkInfoService.insertBatch(insertList);
+        }
+        if (CollectionUtils.isNotEmpty(updateList)) {
+            parkInfoService.updateBatch(updateList);
         }
     }
 }

+ 18 - 15
pro-base/src/main/java/com/idea/buildManage/excel/ParkRoomExcel.java

@@ -10,46 +10,46 @@ import java.util.Date;
 @Data
 public class ParkRoomExcel implements Serializable {
 
-    @ExcelProperty(value = "楼盘/小区名称")
+    @ExcelProperty(value = "*楼盘/小区名称")
     private String groupName;
 
-    @ExcelProperty(value = "分期名称")
+    @ExcelProperty(value = "*分期名称")
     private String discName;
 
-    @ExcelProperty(value = "单元/楼栋号")
+    @ExcelProperty(value = "*单元/楼栋号")
     private String buildNum;
 
-    @ExcelProperty(value = "户室号")
+    @ExcelProperty(value = "*户室号")
     private String roomNo;
 
-    @ExcelProperty(value = "所在层")
+    @ExcelProperty(value = "*所在层")
     private String floor;
 
-    @ExcelProperty(value = "预测套内面积")
+    @ExcelProperty(value = "预测套内面积(㎡)")
     private String predictionInternalArea;
 
-    @ExcelProperty(value = "预测分摊面积")
+    @ExcelProperty(value = "预测分摊面积(㎡)")
     private String predictionShareArea;
 
-    @ExcelProperty(value = "预测建筑面积")
+    @ExcelProperty(value = "预测建筑面积(㎡)")
     private String predictionBuildArea;
 
-    @ExcelProperty(value = "预测土地面积")
+    @ExcelProperty(value = "预测土地面积(㎡)")
     private String predictionLandArea;
 
-    @ExcelProperty(value = "实测套内面积")
+    @ExcelProperty(value = "*实测套内面积(㎡)")
     private String actualInternalArea;
 
-    @ExcelProperty(value = "实测分摊面积")
+    @ExcelProperty(value = "*实测分摊面积(㎡)")
     private String actualShareArea;
 
-    @ExcelProperty(value = "实测建筑面积")
+    @ExcelProperty(value = "*实测建筑面积(㎡)")
     private String actualBuildArea;
 
-    @ExcelProperty(value = "实测土地面积")
+    @ExcelProperty(value = "实测土地面积(㎡)")
     private String actualLandArea;
 
-    @ExcelProperty(value = "用途")
+    @ExcelProperty(value = "*用途")
     private String roomUse;
 
     @ExcelProperty(value = "户编号")
@@ -67,10 +67,13 @@ public class ParkRoomExcel implements Serializable {
     @ExcelProperty(value = "备注")
     private String remark;
 
-    @ExcelProperty(value = "可售状态")
+    @ExcelProperty(value = "*可售状态")
     private String saleStatus;
 
     @ExcelIgnore
     private String reason;
 
+    @ExcelIgnore
+    private Boolean duplicate;
+
 }

+ 15 - 13
pro-base/src/main/java/com/idea/buildManage/excel/ParkRoomListener.java

@@ -91,6 +91,7 @@ public class ParkRoomListener extends AnalysisEventListener<ParkRoomExcel> {
                 boolean houseTypeFlag = true;
                 boolean saleStatusFlag = true;
 
+
                 StringBuilder builder = new StringBuilder();
 
 
@@ -267,19 +268,22 @@ public class ParkRoomListener extends AnalysisEventListener<ParkRoomExcel> {
                     }
 
                     // 可售状态
-                    if (StringUtils.isNotEmpty(excel.getSaleStatus())) {
-                        for (Map<String, String> stringStringMap : saleStatus) {
-                            if (stringStringMap.get("label").equals(excel.getSaleStatus())) {
-                                data.setSaleStatus(Integer.valueOf(stringStringMap.get("value")));
-                            }
-                        }
-                        // 没匹配上的情况
-                        if (data.getSaleStatus() == null) {
-                            saleStatusFlag = false;
-                            builder.append("可售状态格式有误").append(",");
-                            excel.setSaleStatus("{" + excel.getSaleStatus() + "}");
+                    if (StringUtils.isEmpty(excel.getSaleStatus())) {
+                        saleStatusFlag = false;
+                        builder.append("可售状态为空").append(",");
+                        excel.setSaleStatus("{" + excel.getSaleStatus() + "}");
+                    }
+                    for (Map<String, String> stringStringMap : saleStatus) {
+                        if (stringStringMap.get("label").equals(excel.getSaleStatus())) {
+                            data.setSaleStatus(Integer.valueOf(stringStringMap.get("value")));
                         }
                     }
+                    // 没匹配上的情况
+                    if (data.getSaleStatus() == null) {
+                        saleStatusFlag = false;
+                        builder.append("可售状态格式有误").append(",");
+                        excel.setSaleStatus("{" + excel.getSaleStatus() + "}");
+                    }
 
                     if (groupNameFlag && discNameFlag && buildNumFlag && roomNoFlag && floorFlag && actualInternalAreaFlag
                             && actualShareAreaFlag && actualBuildAreaFlag && roomUseFlag && decorationSituationFlag && houseTypeFlag
@@ -296,8 +300,6 @@ public class ParkRoomListener extends AnalysisEventListener<ParkRoomExcel> {
                         data.setRemark(excel.getRemark());
                         // 默认待售
                         data.setSoldStatus(1);
-                        // 默认正常
-                        data.setSaleStatus(1);
                         // 选房状态
                         data.setIsChoose(0);
 

+ 33 - 2
pro-base/src/main/java/com/idea/buildManage/excel/WriteHandlerStrategy.java

@@ -1,10 +1,15 @@
 package com.idea.buildManage.excel;
 
 import cn.hutool.core.collection.CollUtil;
+import com.alibaba.excel.metadata.Head;
 import com.alibaba.excel.write.handler.CellWriteHandler;
 import com.alibaba.excel.write.handler.context.CellWriteHandlerContext;
+import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
+import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
 import com.rockstar.util.StringUtils;
 import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.xssf.usermodel.XSSFCellStyle;
+import org.apache.poi.xssf.usermodel.XSSFFont;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -14,6 +19,7 @@ import java.util.regex.Pattern;
 public class WriteHandlerStrategy implements CellWriteHandler {
 
 
+
     @Override
     public void afterCellCreate(CellWriteHandlerContext context) {
         CellWriteHandler.super.afterCellCreate(context);
@@ -46,18 +52,23 @@ public class WriteHandlerStrategy implements CellWriteHandler {
                 }
             }
             // result 不为空 即为有需要改色的内容
+            Font font = workbook.createFont();
             if (CollUtil.isNotEmpty(result)) {
                 stringValue = stringValue.replaceAll("[{}]", "");
+                if("null".equals(stringValue)){
+                    // 设置背景色
+                    baseCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
+                    baseCellStyle.setFillForegroundColor(IndexedColors.RED.getIndex());
+                }
                 // 再设置回每个单元格里
                 cell.setCellValue(stringValue);
                 // 设置字体
-                Font font = workbook.createFont();
                 font.setColor(IndexedColors.RED.getIndex());
                 baseCellStyle.setFont(font);
+                cell.setCellStyle(baseCellStyle);
             }
         }
 
-        cell.setCellStyle(baseCellStyle);
         // 这里要把 WriteCellData的样式清空, 不然后面还有一个拦截器 FillStyleCellWriteHandler 默认会将 WriteCellStyle 设置到
         // cell里面去 会导致自己设置的不一样(很关键)
         context.getFirstCellData().setWriteCellStyle(null);
@@ -75,6 +86,26 @@ public class WriteHandlerStrategy implements CellWriteHandler {
         return style;
     }
 
+    private void setRowFontColor(Row row, short colorIndex) {
+        Workbook workbook = row.getSheet().getWorkbook();
+        Font font = workbook.createFont();
+        font.setColor(colorIndex);
+
+        for (int i = 0; i <= row.getLastCellNum(); i++) {
+            Cell cell = row.getCell(i);
+            if (cell == null) {
+                cell = row.createCell(i);
+            }
+            CellStyle style = cell.getCellStyle();
+            if (style == null) {
+                style = workbook.createCellStyle();
+            }
+            style.setFont(font);
+            cell.setCellStyle(style);
+        }
+    }
+
+
     // 此方法必须重写 不然单元格样式有可能不生效
     @Override
     public int order() {

+ 2 - 0
pro-base/src/main/java/com/idea/buildManage/mapper/ParkInfoExtendMapper.java

@@ -10,4 +10,6 @@ public interface ParkInfoExtendMapper {
 
     int insertBatch(@Param("list") List<ParkInfo> record);
 
+    int updateBatch(@Param("list") List<ParkInfo> record);
+
 }

+ 36 - 36
pro-base/src/main/java/com/idea/buildManage/service/MnpBuildingService.java

@@ -262,31 +262,31 @@ public class MnpBuildingService implements BaseService<MnpBuilding, MnpBuildingE
         record.setId(id);
         int result = insertWithoutId(record);
 
-        try {
-            JSONObject json = new JSONObject();
-            json.put("srcsystemid", id);
-            json.put("code", id);
-            json.put("name", record.getBuildNum());
-            json.put("pk_org", InvoiceUtil.pk_org);
-            json.put("pk_defdoclist", InvoiceUtil.pk_defdoclist_build);
-            log.info("推送载体详情:{}", json.toJSONString());
-            // 给nc推送载体数据
-            String resultJson = InvoiceUtil.defdocAdd(json);
-            JSONObject jsonObject = JSONObject.parseObject(resultJson);
-            String success = jsonObject.getString("success");
-            if (success.equals("true")) {
-                JSONObject data = jsonObject.getJSONObject("data");
-                String code = data.getString("code");
-                String ncid = data.getString("ncid");
-                MnpBuilding model = new MnpBuilding();
-                model.setId(id);
-                model.setNcid(ncid);
-                model.setNcCode(code);
-                updateByPrimaryKeySelective(model);
-            }
-        } catch (Exception e) {
-            log.error("推送载体失败", e);
-        }
+//        try {
+//            JSONObject json = new JSONObject();
+//            json.put("srcsystemid", id);
+//            json.put("code", id);
+//            json.put("name", record.getBuildNum());
+//            json.put("pk_org", InvoiceUtil.pk_org);
+//            json.put("pk_defdoclist", InvoiceUtil.pk_defdoclist_build);
+//            log.info("推送载体详情:{}", json.toJSONString());
+//            // 给nc推送载体数据
+//            String resultJson = InvoiceUtil.defdocAdd(json);
+//            JSONObject jsonObject = JSONObject.parseObject(resultJson);
+//            String success = jsonObject.getString("success");
+//            if (success.equals("true")) {
+//                JSONObject data = jsonObject.getJSONObject("data");
+//                String code = data.getString("code");
+//                String ncid = data.getString("ncid");
+//                MnpBuilding model = new MnpBuilding();
+//                model.setId(id);
+//                model.setNcid(ncid);
+//                model.setNcCode(code);
+//                updateByPrimaryKeySelective(model);
+//            }
+//        } catch (Exception e) {
+//            log.error("推送载体失败", e);
+//        }
 
         return result;
     }
@@ -295,17 +295,17 @@ public class MnpBuildingService implements BaseService<MnpBuilding, MnpBuildingE
 
         int result = updateByPrimaryKeySelective(model);
 
-        try {
-            MnpBuilding building = selectByPrimaryKey(model.getId());
-            JSONObject json = new JSONObject();
-            json.put("ncid", building.getNcid());
-            json.put("code", building.getNcCode());
-            json.put("name", building.getBuildNum());
-            // 给nc推送修改载体数据
-            InvoiceUtil.defdocUpdate(json);
-        }catch (Exception e){
-            log.error("推送修改载体失败",e);
-        }
+//        try {
+//            MnpBuilding building = selectByPrimaryKey(model.getId());
+//            JSONObject json = new JSONObject();
+//            json.put("ncid", building.getNcid());
+//            json.put("code", building.getNcCode());
+//            json.put("name", building.getBuildNum());
+//            // 给nc推送修改载体数据
+//            InvoiceUtil.defdocUpdate(json);
+//        }catch (Exception e){
+//            log.error("推送修改载体失败",e);
+//        }
 
         return result;
     }

+ 24 - 0
pro-base/src/main/java/com/idea/buildManage/service/ParkInfoService.java

@@ -374,6 +374,17 @@ public class ParkInfoService implements BaseService<ParkInfo, ParkInfoExample> {
         return map;
     }
 
+    public Map<String, String> getNumberIdMap() {
+        Map<String, String> map = new HashMap<>();
+        List<ParkInfo> list = selectByExample(new ParkInfoExample());
+        if (CollectionUtils.isNotEmpty(list)) {
+            map = list.stream().collect(Collectors.toMap(ParkInfo::getPreSalesLicenseNumber, ParkInfo::getId, (v1, v2) -> v1));
+        }
+        return map;
+    }
+
+
+
     /**
      * 批量导入
      *
@@ -383,6 +394,19 @@ public class ParkInfoService implements BaseService<ParkInfo, ParkInfoExample> {
         infoExtendMapper.insertBatch(list);
     }
 
+    /**
+     * 批量更新
+     *
+     * @param list
+     */
+    public void updateBatch(List<ParkInfo> list) {
+//        infoExtendMapper.updateBatch(list);
+        for(ParkInfo parkInfo : list){
+            modelMapper.updateByPrimaryKeySelective(parkInfo);
+        }
+    }
+
+
     /**
      * 园区删除
      *

+ 54 - 57
pro-base/src/main/java/com/idea/buildManage/service/ParkRoomService.java

@@ -161,18 +161,18 @@ public class ParkRoomService implements BaseService<ParkRoom, ParkRoomExample> {
 
         model.setUpdatedAt(new Date());
         model.setUpdatedId(ShiroUtils.getUserId());
-        try {
-            ParkRoom parkRoom = selectByPrimaryKey(model.getId());
-            JSONObject json = new JSONObject();
-            json.put("ncid", parkRoom.getNcid());
-            json.put("code", parkRoom.getNcCode());
-            json.put("name", parkRoom.getRoomNo());
-            log.info("推送房间修改详情:{}", json.toJSONString());
-            // 给nc推送修改载体数据
-            InvoiceUtil.defdocUpdate(json);
-        }catch (Exception e){
-            log.error("推送修改房间失败",e);
-        }
+//        try {
+//            ParkRoom parkRoom = selectByPrimaryKey(model.getId());
+//            JSONObject json = new JSONObject();
+//            json.put("ncid", parkRoom.getNcid());
+//            json.put("code", parkRoom.getNcCode());
+//            json.put("name", parkRoom.getRoomNo());
+//            log.info("推送房间修改详情:{}", json.toJSONString());
+//            // 给nc推送修改载体数据
+//            InvoiceUtil.defdocUpdate(json);
+//        }catch (Exception e){
+//            log.error("推送修改房间失败",e);
+//        }
         return updateByPrimaryKeySelective(model);
     }
 
@@ -277,22 +277,19 @@ public class ParkRoomService implements BaseService<ParkRoom, ParkRoomExample> {
         response.setCharacterEncoding("utf-8");
         String fileName = URLEncoder.encode("失败记录" + date, "UTF-8");
         response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
-//        String template = "C:\\Users\\35838\\Desktop\\export.xlsx";
-//        //工作薄对象
-//        ExcelWriter workBook = EasyExcel.write(response.getOutputStream(), ParkRoomExcel.class)
-//                .withTemplate(template)
-//                .registerWriteHandler(new WriteHandlerStrategy())
-//                .build();
-//        //工作区对象
-//        WriteSheet sheet = EasyExcel.writerSheet().build();
-//        FillConfig build = FillConfig.builder().forceNewRow(true).build();
-//        workBook.fill(list, build, sheet);
-//        workBook.finish();
-
-        EasyExcel.write(response.getOutputStream(), ParkRoomExcel.class)
-                .inMemory(true)
-                .registerWriteHandler(new WriteHandlerStrategy())//自定义样式
-                .sheet().doWrite(list);
+
+        String templateFileName = "/home/project/settleDown/tem/房间导出模板.xlsx";
+        //工作薄对象
+        ExcelWriter workBook = EasyExcel.write(response.getOutputStream(), ParkRoomExcel.class)
+                .withTemplate(templateFileName)
+                .registerWriteHandler(new WriteHandlerStrategy())
+                .build();
+        //工作区对象
+        WriteSheet sheet = EasyExcel.writerSheet().build();
+        FillConfig build = FillConfig.builder().forceNewRow(true).build();
+        workBook.fill(list, build, sheet);
+        workBook.finish();
+
 
     }
 
@@ -317,35 +314,35 @@ public class ParkRoomService implements BaseService<ParkRoom, ParkRoomExample> {
         record.setOrderNum(orderNum);
         int result = insertWithoutId(record);
 
-        try {
-            ParkInfo parkInfo = parkInfoService.selectByPrimaryKey(record.getGroupId());
-            ParkFloorDisc parkFloorDisc = floorDiscService.selectByPrimaryKey(record.getDiscId());
-            MnpBuilding mnpBuilding = buildingService.selectByPrimaryKey(record.getBuildId());
-            String name = parkInfo.getGroupName() + "-" + parkFloorDisc.getName() + "-" + mnpBuilding.getBuildNum()
-                    + "-" + record.getRoomNo();
-            JSONObject json = new JSONObject();
-            json.put("srcsystemid", id);
-            json.put("code", id);
-            json.put("name", name);
-            json.put("pk_org", InvoiceUtil.pk_org);
-            json.put("pk_defdoclist", InvoiceUtil.pk_defdoclist_room);
-            // 给nc推送房间数据
-            String resultJson = InvoiceUtil.defdocAdd(json);
-            JSONObject jsonObject = JSONObject.parseObject(resultJson);
-            String success = jsonObject.getString("success");
-            if (success.equals("true")) {
-                JSONObject data = jsonObject.getJSONObject("data");
-                String code = data.getString("code");
-                String ncid = data.getString("ncid");
-                ParkRoom model = new ParkRoom();
-                model.setId(id);
-                model.setNcid(ncid);
-                model.setNcCode(code);
-                updateByPrimaryKeySelective(model);
-            }
-        } catch (Exception e) {
-            log.error("推送房间失败", e);
-        }
+//        try {
+//            ParkInfo parkInfo = parkInfoService.selectByPrimaryKey(record.getGroupId());
+//            ParkFloorDisc parkFloorDisc = floorDiscService.selectByPrimaryKey(record.getDiscId());
+//            MnpBuilding mnpBuilding = buildingService.selectByPrimaryKey(record.getBuildId());
+//            String name = parkInfo.getGroupName() + "-" + parkFloorDisc.getName() + "-" + mnpBuilding.getBuildNum()
+//                    + "-" + record.getRoomNo();
+//            JSONObject json = new JSONObject();
+//            json.put("srcsystemid", id);
+//            json.put("code", id);
+//            json.put("name", name);
+//            json.put("pk_org", InvoiceUtil.pk_org);
+//            json.put("pk_defdoclist", InvoiceUtil.pk_defdoclist_room);
+//            // 给nc推送房间数据
+//            String resultJson = InvoiceUtil.defdocAdd(json);
+//            JSONObject jsonObject = JSONObject.parseObject(resultJson);
+//            String success = jsonObject.getString("success");
+//            if (success.equals("true")) {
+//                JSONObject data = jsonObject.getJSONObject("data");
+//                String code = data.getString("code");
+//                String ncid = data.getString("ncid");
+//                ParkRoom model = new ParkRoom();
+//                model.setId(id);
+//                model.setNcid(ncid);
+//                model.setNcCode(code);
+//                updateByPrimaryKeySelective(model);
+//            }
+//        } catch (Exception e) {
+//            log.error("推送房间失败", e);
+//        }
         return result;
 
     }

+ 53 - 53
pro-base/src/main/java/com/idea/customerManagement/service/CustomerManagementService.java

@@ -220,41 +220,41 @@ public class CustomerManagementService implements BaseService<CustomerManagement
         model.setCreatedId(userId);
         int result = insertWithOutId(model);
 
-        try {
-            // 给nc推送客户数据
-            JSONObject json = new JSONObject();
-            json.put("srcsystemid", id);
-            json.put("name", builder.toString());
-            json.put("pk_custclass", "02"); //客户基本分类 ,,(默认是02),必选,01内部客户,02外部客户
-            json.put("custprop", "0");//财务组织客户类型,必选,默认0
-            json.put("taxpayerid",identityCardBuilder.toString() ); //统一社会信用代码,必选
-            log.info("推送客户详情:{}", json.toJSONString());
-            String resultJson = InvoiceUtil.customerAdd(json);
-            JSONObject jsonObject = JSONObject.parseObject(resultJson);
-            String success = jsonObject.getString("success");
-            if (success.equals("true")) {
-                JSONObject data = jsonObject.getJSONObject("data");
-                String code = data.getString("code");
-                String ncid = data.getString("ncid");
-                CustomerManagement record = new CustomerManagement();
-                record.setId(id);
-                record.setNcid(ncid);
-                record.setNcCode(code);
-                updateByPrimaryKeySelective(record);
-            }
-        }catch (Exception e){
-            log.error("推送客户失败",e);
-        }
-
-        try {
-            // 客户分配
-            JSONObject json = new JSONObject();
-            json.put("pk_org", InvoiceUtil.pk_org);
-            json.put("ncid", identityCardBuilder.toString());
-            InvoiceUtil.customerAssign(json);
-        }catch (Exception e){
-            log.error("客户分配失败",e);
-        }
+//        try {
+//            // 给nc推送客户数据
+//            JSONObject json = new JSONObject();
+//            json.put("srcsystemid", id);
+//            json.put("name", builder.toString());
+//            json.put("pk_custclass", "02"); //客户基本分类 ,,(默认是02),必选,01内部客户,02外部客户
+//            json.put("custprop", "0");//财务组织客户类型,必选,默认0
+//            json.put("taxpayerid",identityCardBuilder.toString() ); //统一社会信用代码,必选
+//            log.info("推送客户详情:{}", json.toJSONString());
+//            String resultJson = InvoiceUtil.customerAdd(json);
+//            JSONObject jsonObject = JSONObject.parseObject(resultJson);
+//            String success = jsonObject.getString("success");
+//            if (success.equals("true")) {
+//                JSONObject data = jsonObject.getJSONObject("data");
+//                String code = data.getString("code");
+//                String ncid = data.getString("ncid");
+//                CustomerManagement record = new CustomerManagement();
+//                record.setId(id);
+//                record.setNcid(ncid);
+//                record.setNcCode(code);
+//                updateByPrimaryKeySelective(record);
+//            }
+//        }catch (Exception e){
+//            log.error("推送客户失败",e);
+//        }
+
+//        try {
+//            // 客户分配
+//            JSONObject json = new JSONObject();
+//            json.put("pk_org", InvoiceUtil.pk_org);
+//            json.put("ncid", identityCardBuilder.toString());
+//            InvoiceUtil.customerAssign(json);
+//        }catch (Exception e){
+//            log.error("客户分配失败",e);
+//        }
 
         return result;
 
@@ -320,24 +320,24 @@ public class CustomerManagementService implements BaseService<CustomerManagement
 
         int result = updateByPrimaryKeySelective(model);
 
-        try {
-
-            // 修改客户数据
-            JSONObject json = new JSONObject();
-            json.put("ncid", oldCustomer.getBuyerIdentityCard());// 客户统一信用代码,必选
-            json.put("name", builder.toString());
-            json.put("pk_custclass", "02"); //客户基本分类 ,,(默认是02),必选,01内部客户,02外部客户
-            json.put("custprop", "0");//财务组织客户类型,必选,默认0
-            json.put("taxpayerid", identityCardBuilder.toString()); //统一社会信用代码,必选
-            log.info("推送客户修改详情:{}", json.toJSONString());
-            String resultJson = InvoiceUtil.customerUpdate(json);
-            JSONObject jsonObject = JSONObject.parseObject(resultJson);
-            String success = jsonObject.getString("success");
-            if (success.equals("true")) {
-            }
-        }catch (Exception e){
-            log.error("修改客户失败",e);
-        }
+//        try {
+//
+//            // 修改客户数据
+//            JSONObject json = new JSONObject();
+//            json.put("ncid", oldCustomer.getBuyerIdentityCard());// 客户统一信用代码,必选
+//            json.put("name", builder.toString());
+//            json.put("pk_custclass", "02"); //客户基本分类 ,,(默认是02),必选,01内部客户,02外部客户
+//            json.put("custprop", "0");//财务组织客户类型,必选,默认0
+//            json.put("taxpayerid", identityCardBuilder.toString()); //统一社会信用代码,必选
+//            log.info("推送客户修改详情:{}", json.toJSONString());
+//            String resultJson = InvoiceUtil.customerUpdate(json);
+//            JSONObject jsonObject = JSONObject.parseObject(resultJson);
+//            String success = jsonObject.getString("success");
+//            if (success.equals("true")) {
+//            }
+//        }catch (Exception e){
+//            log.error("修改客户失败",e);
+//        }
 
         return result;
 

+ 1 - 0
pro-base/src/main/java/com/idea/customerManagement/service/IntentionalDepositService.java

@@ -462,6 +462,7 @@ public class IntentionalDepositService implements BaseService<IntentionalDeposit
         payLog.setBankName(model.getBankName());
         payLog.setBankBranchName(model.getBankBranchName());
         payLog.setBankNumber(model.getBankNumber());
+        payLog.setPaymentStatus(1);
         payLogMapper.insertSelective(payLog);
 
         // 修改意向金对应的收款记录

+ 87 - 0
pro-base/src/main/resources/mybatis/buildManage/ParkInfoExtendMapper.xml

@@ -29,4 +29,91 @@
            )
       </foreach>
   </insert>
+
+    <update id="updateBatch">
+        <foreach collection="list" item="record" index="index" open="" close="" separator=";">
+            update park_info
+            <set>
+                <if test="record.groupId != null">
+                    group_id = #{record.groupId,jdbcType=VARCHAR},
+                </if>
+                <if test="record.groupName != null">
+                    group_name = #{record.groupName,jdbcType=VARCHAR},
+                </if>
+                <if test="record.createdId != null">
+                    created_id = #{record.createdId,jdbcType=VARCHAR},
+                </if>
+                <if test="record.createdAt != null">
+                    created_at = #{record.createdAt,jdbcType=TIMESTAMP},
+                </if>
+                <if test="record.updatedAt != null">
+                    updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
+                </if>
+                <if test="record.nature != null">
+                    nature = #{record.nature,jdbcType=VARCHAR},
+                </if>
+                <if test="record.preSalesLicenseNumber != null">
+                    pre_sales_license_number = #{record.preSalesLicenseNumber,jdbcType=VARCHAR},
+                </if>
+                <if test="record.companyId != null">
+                    company_id = #{record.companyId,jdbcType=VARCHAR},
+                </if>
+                <if test="record.buildArea != null">
+                    build_area = #{record.buildArea,jdbcType=DOUBLE},
+                </if>
+                <if test="record.landArea != null">
+                    land_area = #{record.landArea,jdbcType=DOUBLE},
+                </if>
+                <if test="record.projectApprovalDocument != null">
+                    project_approval_document = #{record.projectApprovalDocument,jdbcType=VARCHAR},
+                </if>
+                <if test="record.engineeringPlanningPermit != null">
+                    engineering_planning_permit = #{record.engineeringPlanningPermit,jdbcType=VARCHAR},
+                </if>
+                <if test="record.constructionPermit != null">
+                    construction_permit = #{record.constructionPermit,jdbcType=VARCHAR},
+                </if>
+                <if test="record.landCertificateNumber != null">
+                    land_certificate_number = #{record.landCertificateNumber,jdbcType=VARCHAR},
+                </if>
+                <if test="record.landUsePermitNumber != null">
+                    land_use_permit_number = #{record.landUsePermitNumber,jdbcType=VARCHAR},
+                </if>
+                <if test="record.volumeRatio != null">
+                    volume_ratio = #{record.volumeRatio,jdbcType=VARCHAR},
+                </if>
+                <if test="record.greenRatio != null">
+                    green_ratio = #{record.greenRatio,jdbcType=VARCHAR},
+                </if>
+                <if test="record.price != null">
+                    price = #{record.price,jdbcType=DECIMAL},
+                </if>
+                <if test="record.exceededPrice != null">
+                    exceeded_price = #{record.exceededPrice,jdbcType=DECIMAL},
+                </if>
+                <if test="record.areaStatus != null">
+                    area_status = #{record.areaStatus,jdbcType=INTEGER},
+                </if>
+                <if test="record.saleStatus != null">
+                    sale_status = #{record.saleStatus,jdbcType=INTEGER},
+                </if>
+                <if test="record.regionalismCode != null">
+                    regionalism_code = #{record.regionalismCode,jdbcType=VARCHAR},
+                </if>
+                <if test="record.address != null">
+                    address = #{record.address,jdbcType=VARCHAR},
+                </if>
+                <if test="record.orderNum != null">
+                    order_num = #{record.orderNum,jdbcType=VARCHAR},
+                </if>
+                <if test="record.archiveCode != null">
+                    archive_code = #{record.archiveCode,jdbcType=VARCHAR},
+                </if>
+                <if test="record.introduction != null">
+                    introduction = #{record.introduction,jdbcType=LONGVARCHAR},
+                </if>
+            </set>
+            where id = #{record.id,jdbcType=VARCHAR}
+        </foreach>
+    </update>
 </mapper>

+ 2 - 1
pro-base/src/main/resources/mybatis/paymentManagement/PayLogExtendMapper.xml

@@ -42,7 +42,8 @@
            ifnull(sum(pay_log.pay_money),0) receivedMoney,
            ifnull(contract_manage.buyer_money - sum(pay_log.pay_money),0) arrears
     from contract_manage
-    left join pay_log on contract_manage.id = pay_log.contract_id and pay_log.pay_type = #{payType}
+    left join pay_log on contract_manage.id = pay_log.contract_id
+    and pay_log.pay_type = #{payType} and pay_log.content_type != 7
     <where>
       and contract_status in (2,3)
       <if test="houseName != null and houseName != ''">