Compare commits
	
		
			No commits in common. "90fbaa9f9aa48a8c513070d3091aff0036fbb58b" and "956996f81900ad8f538493af1150bb927c889ee9" have entirely different histories.
		
	
	
		
			90fbaa9f9a
			...
			956996f819
		
	
		| 
						 | 
				
			
			@ -54,12 +54,11 @@ public class MeasureciFormPlugin extends AbstractFormPlugin {
 | 
			
		|||
                    myList.add(cientrydata);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            //遍历赋值工程量基数
 | 
			
		||||
            result.forEach((key, value) -> {
 | 
			
		||||
                for (DynamicObject dynamicObject : myList) {
 | 
			
		||||
                    if (dynamicObject.getString("entry_accountname").equals(key)){
 | 
			
		||||
//                        this.getModel().setValue("entry_workload",value,(int)dynamicObject.get("seq")-1);//工程量
 | 
			
		||||
                        this.getModel().setValue("qeug_gcljs",value,(int)dynamicObject.get("seq")-1);//工程量基数
 | 
			
		||||
                        this.getModel().setValue("qeug_gcljs",value,(int)dynamicObject.get("seq")-1);//工程量
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -33,7 +33,6 @@ import kd.bos.servicehelper.AttachmentServiceHelper;
 | 
			
		|||
import kd.bos.servicehelper.BusinessDataServiceHelper;
 | 
			
		||||
import kd.bos.servicehelper.QueryServiceHelper;
 | 
			
		||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
 | 
			
		||||
import kd.bos.servicehelper.org.OrgUnitServiceHelper;
 | 
			
		||||
import kd.repc.rebas.common.util.ReDigitalUtil;
 | 
			
		||||
import kd.repc.recos.business.measure.ReMeasureIdxUtil;
 | 
			
		||||
import kd.repc.recos.formplugin.measure.base.ReMeasureEditTplPlugin;
 | 
			
		||||
| 
						 | 
				
			
			@ -204,8 +203,6 @@ public class RecosMeasurecosFormPlugin extends AbstractFormPlugin implements Upl
 | 
			
		|||
            // 单据列表数据风格样式,设置字体为黑体,字号15
 | 
			
		||||
            XSSFCellStyle billStyle = workbook.createCellStyle();
 | 
			
		||||
 | 
			
		||||
            billStyle.setLocked(false);//解锁单元格
 | 
			
		||||
 | 
			
		||||
            // 设置边框
 | 
			
		||||
            billStyle.setBorderBottom(BorderStyle.THIN);
 | 
			
		||||
            billStyle.setBorderTop(BorderStyle.THIN);
 | 
			
		||||
| 
						 | 
				
			
			@ -230,7 +227,6 @@ public class RecosMeasurecosFormPlugin extends AbstractFormPlugin implements Upl
 | 
			
		|||
            //填写栏
 | 
			
		||||
            XSSFCellStyle titleStyle1 = workbook.createCellStyle();
 | 
			
		||||
            titleStyle1.setAlignment(HorizontalAlignment.LEFT);
 | 
			
		||||
            titleStyle1.setLocked(false);//解锁单元格
 | 
			
		||||
 | 
			
		||||
            XSSFRow headRow1 = sheet.createRow(1);
 | 
			
		||||
            headRow1.setRowStyle(titleStyle1);
 | 
			
		||||
| 
						 | 
				
			
			@ -252,17 +248,8 @@ public class RecosMeasurecosFormPlugin extends AbstractFormPlugin implements Upl
 | 
			
		|||
            XSSFCell headCell4 = headRow1.createCell(14);
 | 
			
		||||
            headCell4.setCellValue("单位:");
 | 
			
		||||
 | 
			
		||||
            XSSFCell headCell5 = headRow1.createCell(17);
 | 
			
		||||
            headCell5.setCellValue("总计:");
 | 
			
		||||
            headCell5.setCellStyle(billStyle);
 | 
			
		||||
            XSSFCell headCell6 = headRow1.createCell(18);
 | 
			
		||||
            String formula = String.format("SUM(S%d:S%d)", 4, 1000);//合计sum(s5:s1000)
 | 
			
		||||
            headCell6.setCellFormula(formula);  // F列是公式列
 | 
			
		||||
            headCell6.setCellStyle(billStyle);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            CellStyle style = workbook.createCellStyle();
 | 
			
		||||
            style.setLocked(false);//解锁单元格
 | 
			
		||||
            style.setAlignment(HorizontalAlignment.CENTER);
 | 
			
		||||
            // 设置垂直居中
 | 
			
		||||
            style.setVerticalAlignment(VerticalAlignment.CENTER);
 | 
			
		||||
| 
						 | 
				
			
			@ -290,15 +277,6 @@ public class RecosMeasurecosFormPlugin extends AbstractFormPlugin implements Upl
 | 
			
		|||
                        // 创建单元格样式
 | 
			
		||||
                        ncell.setCellStyle(style);
 | 
			
		||||
                    }
 | 
			
		||||
                    if (u==13){//调整系数
 | 
			
		||||
                        // 设置单元格格式为百分比
 | 
			
		||||
                        DataFormat dataFormat = workbook.createDataFormat();
 | 
			
		||||
                        XSSFCellStyle cellStyle = ncell.getCellStyle();
 | 
			
		||||
                        XSSFCellStyle clonedStyle = (XSSFCellStyle) workbook.createCellStyle();
 | 
			
		||||
                        clonedStyle.cloneStyleFrom(cellStyle);
 | 
			
		||||
                        clonedStyle.setDataFormat(dataFormat.getFormat("0.00%"));
 | 
			
		||||
                        ncell.setCellStyle(clonedStyle);
 | 
			
		||||
                    }
 | 
			
		||||
                    Object s = excel.get(i).get(u);
 | 
			
		||||
                    if (s instanceof BigDecimal) {
 | 
			
		||||
                        BigDecimal b=(BigDecimal)s;
 | 
			
		||||
| 
						 | 
				
			
			@ -344,7 +322,7 @@ public class RecosMeasurecosFormPlugin extends AbstractFormPlugin implements Upl
 | 
			
		|||
            }
 | 
			
		||||
 | 
			
		||||
            // 调整列宽
 | 
			
		||||
            stylesforcells(sheet,workbook);
 | 
			
		||||
            stylesforcells(sheet);
 | 
			
		||||
 | 
			
		||||
            workbook.setSheetName(index,key);
 | 
			
		||||
            index++;
 | 
			
		||||
| 
						 | 
				
			
			@ -563,15 +541,15 @@ public class RecosMeasurecosFormPlugin extends AbstractFormPlugin implements Upl
 | 
			
		|||
                String entry_workloadunit = value.getEntry_workloadunit();
 | 
			
		||||
                DynamicObject unit = QueryServiceHelper.queryOne("bd_measureunits", "id,name,number", new QFilter("name", QCP.equals, entry_workloadunit).toArray());
 | 
			
		||||
                if (unit==null){
 | 
			
		||||
                    sheetNameView.getModel().setValue("entry_idxunit",null,key);//单位
 | 
			
		||||
                    sheetNameView.getModel().setValue("entry_workloadunit",null,key);//单位
 | 
			
		||||
                }else {
 | 
			
		||||
                    DynamicObject single = BusinessDataServiceHelper.loadSingle(unit.getString("id"),"bd_measureunits");
 | 
			
		||||
                    sheetNameView.getModel().setValue("entry_idxunit",single,key);//单位
 | 
			
		||||
                    sheetNameView.getModel().setValue("entry_workloadunit",single,key);//单位
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                sheetNameView.getModel().setValue("qeug_gcljs",value.getQeug_gcljs(),key);//工程量基数
 | 
			
		||||
 | 
			
		||||
                sheetNameView.getModel().setValue("qeug_gcltzz",value.getQeug_gcltzz(),key);//工程量调整数
 | 
			
		||||
                sheetNameView.getModel().setValue("qeug_gcljs",value.getQeug_gcljs(),key);//工程量调整数
 | 
			
		||||
 | 
			
		||||
                sheetNameView.getModel().setValue("entry_workload",value.getEntry_workload(),key);//工程量
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -646,7 +624,7 @@ public class RecosMeasurecosFormPlugin extends AbstractFormPlugin implements Upl
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
    //单独为某单元格设置样式
 | 
			
		||||
    public static void stylesforcells(Sheet sheet,Workbook workbook) {
 | 
			
		||||
    public static void stylesforcells(Sheet sheet) {
 | 
			
		||||
        //设置列宽
 | 
			
		||||
        int numColumns = sheet.getRow(4).getPhysicalNumberOfCells();//获取总列数
 | 
			
		||||
        for (int colIndex = 0; colIndex < numColumns; colIndex++) {
 | 
			
		||||
| 
						 | 
				
			
			@ -663,19 +641,19 @@ public class RecosMeasurecosFormPlugin extends AbstractFormPlugin implements Upl
 | 
			
		|||
                    sheet.setColumnWidth(colIndex, 10 * 256); // 10个字符的宽度
 | 
			
		||||
                    break;
 | 
			
		||||
                case "调整系数":
 | 
			
		||||
                    sheet.setColumnWidth(colIndex, 15 * 256); // 10个字符的宽度
 | 
			
		||||
                    sheet.setColumnWidth(colIndex, 10 * 256); // 10个字符的宽度
 | 
			
		||||
                    break;
 | 
			
		||||
                case "计价数量":
 | 
			
		||||
                    sheet.setColumnWidth(colIndex, 10 * 256); // 10个字符的宽度
 | 
			
		||||
                    break;
 | 
			
		||||
                case "含调差指标单价":
 | 
			
		||||
                    sheet.setColumnWidth(colIndex, 15* 256); // 10个字符的宽度
 | 
			
		||||
                    sheet.setColumnWidth(colIndex, 10* 256); // 10个字符的宽度
 | 
			
		||||
                    break;
 | 
			
		||||
                case "科目名称":
 | 
			
		||||
                    sheet.setColumnWidth(colIndex, 42* 256); // 42个字符的宽度
 | 
			
		||||
                    break;
 | 
			
		||||
                case "财务预算分类":
 | 
			
		||||
                    // 1. 设置下拉项数据
 | 
			
		||||
                    // 1. 设置下拉项数据(产品列表)
 | 
			
		||||
                    String[] products = {"基础配套", "精装修", "设计亮点", "特殊项","其他费用"};
 | 
			
		||||
                    DataValidationHelper helper = sheet.getDataValidationHelper();
 | 
			
		||||
                    DataValidationConstraint constraint = helper.createExplicitListConstraint(products);
 | 
			
		||||
| 
						 | 
				
			
			@ -686,66 +664,12 @@ public class RecosMeasurecosFormPlugin extends AbstractFormPlugin implements Upl
 | 
			
		|||
                    // 添加数据验证规则
 | 
			
		||||
                    sheet.addValidationData(dataValidation);
 | 
			
		||||
                    break;
 | 
			
		||||
                case "估算口径":
 | 
			
		||||
                    // 1. 设置下拉项数据
 | 
			
		||||
                    String[] products1 = {"按建筑面积指标", "按施工面积指标", "按项估入", "其他计算口径","个/套/组/件/点位"};
 | 
			
		||||
                    DataValidationHelper helper1 = sheet.getDataValidationHelper();
 | 
			
		||||
                    DataValidationConstraint constraint1 = helper1.createExplicitListConstraint(products1);
 | 
			
		||||
                    int totalRowCount1 = sheet.getLastRowNum() + 1;
 | 
			
		||||
                    System.out.println("总行数 (包括空行): " + totalRowCount1);
 | 
			
		||||
                    CellRangeAddressList addressList1 = new CellRangeAddressList(4, totalRowCount1-1, colIndex, colIndex); // 从 A2 到 A10 作为下拉列表范围
 | 
			
		||||
                    DataValidation dataValidation1 = helper1.createValidation(constraint1, addressList1);
 | 
			
		||||
                    // 添加数据验证规则
 | 
			
		||||
                    sheet.addValidationData(dataValidation1);
 | 
			
		||||
                    break;
 | 
			
		||||
                default:
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 设置冻结前4行
 | 
			
		||||
        sheet.createFreezePane(0, 4);  // 0列, 4行
 | 
			
		||||
 | 
			
		||||
        //设置公式
 | 
			
		||||
        for (int rowNum =5 ; rowNum < sheet.getPhysicalNumberOfRows(); rowNum++) {
 | 
			
		||||
            for (int i = 0; i < numColumns; i++) {
 | 
			
		||||
                Cell cell = sheet.getRow(3).getCell(i);
 | 
			
		||||
                if (cell==null){
 | 
			
		||||
                    cell=sheet.getRow(2).getCell(i);
 | 
			
		||||
                }
 | 
			
		||||
                String stringCellValue = cell.getStringCellValue();
 | 
			
		||||
                switch (stringCellValue) {
 | 
			
		||||
                    case "计价数量":
 | 
			
		||||
                        String formula = "(L" + (rowNum) + "+M" + (rowNum) + ")*N" + (rowNum);
 | 
			
		||||
                        sheet.getRow(rowNum-1).getCell(i).setCellFormula(formula); // 设置公式
 | 
			
		||||
                        CellStyle cellStyle = sheet.getRow(rowNum - 1).getCell(i).getCellStyle();//获取Style
 | 
			
		||||
                        XSSFCellStyle clonedStyle = (XSSFCellStyle) workbook.createCellStyle();
 | 
			
		||||
                        clonedStyle.cloneStyleFrom(cellStyle);
 | 
			
		||||
                        clonedStyle.setLocked(true);  // 锁定单元格
 | 
			
		||||
                        sheet.getRow(rowNum-1).getCell(i).setCellStyle(clonedStyle);
 | 
			
		||||
                        break;
 | 
			
		||||
                    case "含调差指标单价":
 | 
			
		||||
                        String formula1 = "(P" + (rowNum) + "+Q" + (rowNum) + ")";
 | 
			
		||||
                        sheet.getRow(rowNum-1).getCell(i).setCellFormula(formula1); // 设置公式
 | 
			
		||||
                        CellStyle cellStyle1 = sheet.getRow(rowNum - 1).getCell(i).getCellStyle();//获取Style
 | 
			
		||||
                        XSSFCellStyle clonedStyle1 = (XSSFCellStyle) workbook.createCellStyle();
 | 
			
		||||
                        clonedStyle1.cloneStyleFrom(cellStyle1);
 | 
			
		||||
                        clonedStyle1.setLocked(true);  // 锁定单元格
 | 
			
		||||
                        sheet.getRow(rowNum-1).getCell(i).setCellStyle(clonedStyle1);
 | 
			
		||||
                        break;
 | 
			
		||||
                    case "合价(含税)":
 | 
			
		||||
                        String formula2 = "(O" + (rowNum) + "*R" + (rowNum) + ")";
 | 
			
		||||
                        sheet.getRow(rowNum-1).getCell(i).setCellFormula(formula2); // 设置公式
 | 
			
		||||
                        CellStyle cellStyle2 = sheet.getRow(rowNum - 1).getCell(i).getCellStyle();//获取Style
 | 
			
		||||
                        XSSFCellStyle clonedStyle2 = (XSSFCellStyle) workbook.createCellStyle();
 | 
			
		||||
                        clonedStyle2.cloneStyleFrom(cellStyle2);
 | 
			
		||||
                        clonedStyle2.setLocked(true);  // 锁定单元格
 | 
			
		||||
                        sheet.getRow(rowNum-1).getCell(i).setCellStyle(clonedStyle2);
 | 
			
		||||
                        break;
 | 
			
		||||
                    default:
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        //设置下拉
 | 
			
		||||
 | 
			
		||||
        sheet.protectSheet("password");
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue