You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

571 lines
19 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.langtech.plm.bg;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.Vector;
import javax.swing.BorderFactory;
import javax.swing.DefaultCellEditor;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.RowSorter;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumnModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.kernel.ListOfValuesInfo;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentForm;
import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCComponentListOfValues;
import com.teamcenter.rac.kernel.TCComponentListOfValuesType;
import com.teamcenter.rac.kernel.TCComponentProject;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCProperty;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.util.DateButton;
import com.teamcenter.rac.util.MessageBox;
import com.teamcenter.rac.util.PropertyLayout;
import com.teamcenter.soa.client.model.LovValue;
public class QDRWRWFPDialog extends JFrame implements ActionListener {
private Map<String, JTextField> textMap = new HashMap<>();
private TCSession session;
private JTable table;
private String[] header;
private ArrayList<String> gsPrefTopLine;
private LinkedHashMap<String, String> gsPrefMap = new LinkedHashMap<String, String>();
private LinkedHashMap<String, String> fieldsMap = new LinkedHashMap<String, String>();
private LinkedHashMap<String, String> cfdjPref = new LinkedHashMap<String, String>();
private LinkedHashMap<Integer, String> lovPositionMap = new LinkedHashMap<Integer, String>();
private LinkedHashMap<String, Integer> positionFieldMap = new LinkedHashMap<String, Integer>();
private LinkedHashMap<Integer, Integer> widtheMap = new LinkedHashMap<Integer, Integer>();
//public static final int[] HEADERWIDTH = new int[] { 50, 100, 200, 200, 100, 100, 80, 80, 100, 150, 150, 150, 150,150, 150, 150, 150, 150, 150 };
private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
private DefaultTableModel dtm1;
private JButton yyButton = new JButton(<><D3A6>");
private JButton gbButton = new JButton("<22>ر<EFBFBD>");
private JComboBox<String> cfdJComboBox = new JComboBox<String>();
private DateButton cfsjButton;
private JButton tzsjButton = new JButton("<22><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>");
private static ArrayList<String> dateConnList = new ArrayList<String>();
private String type;
private String id;
private ArrayList<Integer> canWriteColume = new ArrayList<Integer>();
public QDRWRWFPDialog(TCSession session,String type,String id) {
// TODO Auto-generated constructor stub
this.session = session;
this.type = type;
this.id = id;
initUI();
}
public void initUI() {
// TODO Auto-generated method stub
this.setTitle("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
this.setLayout(new BorderLayout());
String[] cfdj = session.getPreferenceService().getStringValues("Connor_ChangeTaskForm_TriggerLevelMapping");
if (cfdj == null || cfdj.length <= 0) {
MessageBox.post("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>Connor_ChangeTaskForm_TriggerLevelMapping<6E><67>", "<22><>ʾ ", MessageBox.INFORMATION);
return;
}
for (int i = 0; i < cfdj.length; i++) {
String[] split = cfdj[i].split("=");
cfdjPref.put(split[0],split[1]);
cfdJComboBox.addItem(split[0]);
}
//<2F><>ȡ<EFBFBD><C8A1>ѡ<EFBFBD><D1A1>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
String[] fields = session.getPreferenceService().getStringValues("Connor_ECRECNForm_Datbase_Config");
if (fields == null || fields.length <= 0) {
MessageBox.post("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>Connor_ECRECNForm_Datbase_Config<69><67>", "<22><>ʾ ", MessageBox.INFORMATION);
return;
}
for (int i = 0; i < fields.length; i++) {
if(fields[i].contains(type)) {
String[] split = fields[i].split("\\|");
if(split.length == 2) {
String[] split2 = split[1].split(";");
for (int j = 0; j < split2.length; j++) {
String[] split3 = split2[j].split("=");
positionFieldMap.put(split3[0],j);
if(split3.length == 3) {
fieldsMap.put(split3[0],split3[1]);
if(split3[2].contains("%")) {
String[] split4 = split3[2].split("%");
widtheMap.put(j, Integer.parseInt(split4[0]));
canWriteColume.add(j);
}else {
widtheMap.put(j, Integer.parseInt(split3[2]));
}
}else if(split3.length == 4) {
fieldsMap.put(split3[0],split3[1]);
System.out.println("split3[2]========"+split3[2]);
if(split3[2].contains("%")) {
String[] split4 = split3[2].split("%");
widtheMap.put(j, Integer.parseInt(split4[0]));
System.out.println("split4[0]========"+split4[0]);
canWriteColume.add(j);
}else {
widtheMap.put(j, Integer.parseInt(split3[2]));
}
lovPositionMap.put(j,split3[3]);
}
}
}
}
}
System.out.println("canWriteColume====="+canWriteColume.size());
System.out.println("fieldsMap====="+fieldsMap);
System.out.println("positionMap====="+lovPositionMap);
System.out.println("widtheMap====="+widtheMap);
Collection<String> valuesCollection = fieldsMap.values();
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
header = valuesCollection.toArray(new String[0]);
JPanel topPanel = getTopPanel();
JScrollPane pane = getTablePanel();
pane.setBorder(BorderFactory.createTitledBorder(""));
// JPanel btnPanel = getRightPanel();
JPanel bottomPane = getBottomPanel();
this.add(topPanel, BorderLayout.NORTH);
this.add(pane, BorderLayout.CENTER);
this.add(bottomPane, BorderLayout.SOUTH);
this.createActionEvent();
this.pack();
this.setPreferredSize(new Dimension(1850, 1000));
this.validate();
this.setVisible(true);
// <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>
// Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize();
// int x = (int) screensize.getWidth() / 2 - window.getWidth() / 2;
// int y = (int) screensize.getHeight() / 2 - window.getHeight() / 2;
this.setLocationRelativeTo(null);
//<2F><><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD>
TableColumnModel colModel = table.getColumnModel();
for (Entry<Integer, Integer> map : widtheMap.entrySet()) {
colModel.getColumn(map.getKey()).setPreferredWidth(map.getValue());
}
String[] value = session.getPreferenceService().getStringValues("LD_dbinfo2");
if (value == null || value.length == 0) {
MessageBox.post("<22><>ѡ<EFBFBD><D1A1>LD_dbinfo2<6F><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>顣", "<22><>ʾ", 2);
return;
} else {
Collections.addAll(dateConnList, value);
}
Set<String> keySet = fieldsMap.keySet();
String fieldsSql = "";
for (String string : keySet) {
fieldsSql += string + ",";
}
fieldsSql = fieldsSql.substring(0, fieldsSql.length() - 1);
System.out.println("fieldsSql=========="+fieldsSql);
String sqlString = "SELECT " + fieldsSql + " FROM LY_CHANGETASSKFORM_DETAILS where ID='" + id + "'";
System.out.println(sqlString);
Connection conn = getConn();
PreparedStatement stmt = null;
try{
stmt = conn.prepareStatement(sqlString);
ResultSet result = stmt.executeQuery();
while (result.next()) {
ArrayList<String> arList = new ArrayList<String>();
for (int i = 0; i < fieldsMap.size(); i++) {
System.out.println("result.getString(i+1)==========="+result.getString(i+1));
arList.add(result.getString(i+1) == null? result.getString(i+1) : validateAndFormatDate(result.getString(i+1)));
}
dtm1.addRow(arList.toArray(new Object[0]));
}
} catch (SQLException e1) {
e1.printStackTrace();
}
try {
if(stmt != null) {
stmt.close();
}
if(conn != null) {
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void createActionEvent() {
this.yyButton.addActionListener(this);
this.gbButton.addActionListener(this);
this.tzsjButton.addActionListener(this);
}
// <20><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
private JPanel getTopPanel() {
// TODO Auto-generated method stub
JPanel topPanel = new JPanel();
topPanel.setLayout(new PropertyLayout());
topPanel.add("1.1.left.center", new JLabel("<22><><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD> "));
topPanel.add("1.2.left.center",cfdJComboBox);
topPanel.add("1.3.left.center", new JLabel(" <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> "));
cfsjButton = new DateButton(null, "yyyy-MM-dd", false, false, false);
cfsjButton.setDate(<><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
topPanel.add("1.4.left.center", cfsjButton);
topPanel.add("1.5.left.center", new JLabel(" "));
topPanel.add("1.6.left.center", tzsjButton);
topPanel.add("2.1.left.center", new JLabel(" "));
return topPanel;
}
// <20><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
private JPanel getBottomPanel() {
// TODO Auto-generated method stub
JPanel bottomPanel = new JPanel();
bottomPanel.setLayout(new PropertyLayout());
bottomPanel.add("1.1.left.center", new JLabel(" "));
bottomPanel.add("1.2.left.center", yyButton);
bottomPanel.add("1.3.left.center", new JLabel(" "));
bottomPanel.add("1.4.left.center", gbButton);
return bottomPanel;
}
private JScrollPane getTablePanel() {
// TODO Auto-generated method stub
table = getjTable(null, null, header, null, false);
table.setRowHeight(30);
// table.setPreferredSize(new Dimension(1500,400));
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); // <20><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>ģʽΪ<CABD>ر<EFBFBD><D8B1>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
// table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);//<2F><><EFBFBD><EFBFBD>JTable<6C><65><EFBFBD>п<EFBFBD><D0BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD>ݵĴ<DDB5>С<EFBFBD><D0A1><EFBFBD>е<EFBFBD><D0B5><EFBFBD>
// table.setPreferredSize(new Dimension(1200,400));
JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
for (Entry<Integer, String> map : lovPositionMap.entrySet()) {
JComboBox<String> jComboBox = new JComboBox<String>();
String value = map.getValue();
if(value.contains(",")) {
String[] split = value.split(",");
for (int i = 0; i < split.length; i++) {
jComboBox.addItem(split[i]);
}
}else {
jComboBox.addItem(value);
}
table.getColumnModel().getColumn(map.getKey()).setCellEditor(new DefaultCellEditor(jComboBox));
}
pane.setPreferredSize(new Dimension(1800, 850));
pane.setViewportView(table);// ΪscrollPaneָ<65><D6B8><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>Ϊtable
return pane;
}
/***
* Jtableͨ<65>÷<EFBFBD><C3B7><EFBFBD>
*
* @param partsTable
* @param dtm
* @param titleNames
* @param values
* @return
*/
public JTable getjTable(JTable partsTable, DefaultTableModel dtm, Object[] titleNames, Object[][] values,
Boolean isTable2) {
// int simpleLen = 100;
// int totleLen = 1000;
if (partsTable == null) {
partsTable = new JTable(this.getTableModel(dtm, titleNames, values));
partsTable.setRowHeight(20);
partsTable.getTableHeader().setReorderingAllowed(false);
partsTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(partsTable.getModel());
partsTable.setRowSorter(sorter);
// for (int i = 0; i < titleNames.length; i++) {
// if(i==2) {
// partsTable.getColumnModel().getColumn(i).setPreferredWidth(200);
// }else {
// partsTable.getColumnModel().getColumn(i).setPreferredWidth(120);
// }
//
// }
}
return partsTable;
}
public DefaultTableModel getTableModel(DefaultTableModel dtm, Object[] titleNames, Object[][] values) {
dtm1 = null;
if (dtm == null) {
dtm1 = new DefaultTableModel(values, titleNames) {
@Override
public boolean isCellEditable(int row, int column) {
if(canWriteColume.size() > 0) {
for (int i = 0; i < canWriteColume.size(); i++) {
if(canWriteColume.get(i) == column) {
System.out.println("row=========="+row);
return true;
}
}
}
return false;
}
};
}
return dtm1;
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
Object source = e.getSource();
System.out.println("source==>+" + source);
if (source.equals(this.gbButton)) {
dispose();
}
else if(source.equals(this.yyButton)){
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Connection conn = getConn();
PreparedStatement stmt = null;
for(int i = 0; i < table.getRowCount(); i++){
StringBuilder updateSql = new StringBuilder();
updateSql.append("update LY_CHANGETASSKFORM_DETAILS set ");
for (Entry<String, Integer> map : positionFieldMap.entrySet()) {
updateSql.append(map.getKey());
String valueAt = (String)table.getValueAt(i,map.getValue());
if(valueAt == null || valueAt.isEmpty()) {
updateSql.append("=");
updateSql.append("null,");
}else {
updateSql.append("='");
updateSql.append(table.getValueAt(i,map.getValue()));
updateSql.append("',");
}
}
//ȥ<><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>,
updateSql.deleteCharAt(updateSql.length() - 1);
updateSql.append(" where ID='"+id+"' and XH='"+table.getValueAt(i,0)+"'");
try {
stmt = conn.prepareStatement(updateSql.toString());
System.out.println("updateSql========="+updateSql.toString());
stmt.execute();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
try {
if(stmt != null) {
stmt.close();
}
if(conn != null) {
conn.close();
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}else if(source.equals(this.tzsjButton)){
gsPrefTopLine = new ArrayList<String>();
String selectedItem = (String)cfdJComboBox.getSelectedItem();
if(selectedItem == null || selectedItem.isEmpty()) {
MessageBox.post("<22><>ѡ<EFBFBD>񴥷<EFBFBD><F1B4A5B7>ȼ<EFBFBD><C8BC><EFBFBD>", "<22><>ʾ", 2);
return;
}
Date date = cfsjButton.getDate();
if(date == null) {
MessageBox.post("<22><>ѡ<EFBFBD>񴥷<EFBFBD>ʱ<EFBFBD>䣡", "<22><>ʾ", 2);
return;
}
String cfsjDate = dateFormat.format(date);
String pref = cfdjPref.get(selectedItem);
if(pref == null || pref.isEmpty()) {
MessageBox.post(<><CEB4><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD>ѡ<EFBFBD>", "<22><>ʾ", 2);
return;
}
String[] calculateTime = session.getPreferenceService().getStringValues(pref);
if (calculateTime == null || calculateTime.length <= 0) {
MessageBox.post("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>"+pref+"<22><>", "<22><>ʾ ", MessageBox.INFORMATION);
return;
}
for (int i = 0; i < calculateTime.length; i++) {
String[] split = calculateTime[i].split("\\|");
if(i == 0) {
for (int j = 0; j < split.length; j++) {
gsPrefTopLine.add(split[j]);
}
}else {
gsPrefMap.put(split[0],calculateTime[i]);
}
}
System.out.println(positionFieldMap+"==================positionFieldMap");
System.out.println("gsPrefTopLine----------------"+gsPrefTopLine.size());
Integer xh = positionFieldMap.get(gsPrefTopLine.get(0));
//<2F><><EFBFBD><EFBFBD>table <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
for(int i = 0; i < table.getRowCount(); i++){
String xhStr = table.getValueAt(i, xh).toString();
String gsStr = gsPrefMap.get(xhStr);
if(gsStr != null && !gsStr.isEmpty() ) {
String[] split = gsStr.split("\\|");
for (int j = 1; j < gsPrefTopLine.size(); j++) {
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
System.out.println("gsPrefTopLine.get(j)========"+gsPrefTopLine.get(j));
Integer colume = positionFieldMap.get(gsPrefTopLine.get(j));
if(colume != null) {
System.out.println(positionFieldMap.get(gsPrefTopLine.get(j))+"=================positionFieldMap.get(gsPrefTopLine.get(j))");
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
String gs = split[j];
System.out.println("gs========"+gs);
if(gs.equals("N")) {
table.setValueAt(cfsjDate,i, colume);
}else {
String[] split2 = gs.split("N");
String time = calculateDate(cfsjDate, Integer.parseInt(split2[1]));
System.out.println("time============"+time);
table.setValueAt(time,i, colume);
}
}
}
}
}
//<2F><><EFBFBD><EFBFBD>Ӧ<EFBFBD>ð<EFBFBD>ť
yyButton.doClick();
MessageBox.post("<22><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD>", "<22><>ʾ", 2);
}
}
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>
public static Connection getConn() {
Connection conn = null;
try {
conn = DbPool.getConnection(dateConnList.get(0), dateConnList.get(1));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static String calculateDate(String dateString, int daysToAdd) {
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD>ʽ
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
LocalDate date;
try {
date = LocalDate.parse(dateString, formatter);
} catch (DateTimeParseException e) {
throw new IllegalArgumentException("Invalid date format. Please use yyyy-MM-dd.", e);
}
// <20><><EFBFBD>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LocalDate resultDate = date.plusDays(daysToAdd);
// <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
return resultDate.format(formatter);
}
public String validateAndFormatDate(String input) {
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD>ʽ
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S");
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
try {
// <20><><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
LocalDateTime dateTime = LocalDateTime.parse(input, inputFormatter);
// ת<><D7AA>Ϊֻ<CEAA><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>LocalDate<74><65><EFBFBD><EFBFBD>
LocalDate date = dateTime.toLocalDate();
// <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
return date.format(outputFormatter);
} catch (DateTimeParseException e) {
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBB2BB><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭʼ<D4AD>ַ<EFBFBD><D6B7><EFBFBD>
return input;
}
}
}