From 66f0597bf6a1e79540c6bc51dedf561c22f3bdb5 Mon Sep 17 00:00:00 2001 From: jinlin <jinlin> Date: 星期二, 13 五月 2025 17:49:26 +0800 Subject: [PATCH] 修改 --- src/main/java/com/example/client/service/Level3ManageService.java | 15 + src/main/java/com/example/client/service/TrackRecordAddOrUpdate.java | 2 src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel1Service.java | 2 src/main/java/com/example/server/progressTrack/Dto/Level3ExportCloum.java | 17 + src/main/java/com/example/server/progressTrack/model/DjJdgzNetworkLevel3List.java | 3 src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel3ListService.java | 2 src/main/java/com/example/server/progressTrack/service/NetWorkDiagramService.java | 3 src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel3Service.java | 81 ++++++ src/main/resources/db/csiczb1.db | 0 src/main/java/com/example/server/progressTrack/dao/DjJdgzTrackRecordDao.java | 6 src/main/java/com/example/client/utils/TranslateToPlainStrUtils.java | 29 ++ src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3ListDao.xml | 4 src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java | 150 ++++++------- src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3Dao.xml | 40 +++ src/main/java/com/example/client/service/Level3View2Service.java | 137 ++++++++++++ src/main/java/com/example/client/service/TeamGroupAddOrUpdate.java | 3 src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel2Dao.xml | 3 src/main/resources/mapper/progressTrack/DjJdgzTrackRecordDao.xml | 107 +++++---- src/main/java/com/example/client/service/TrackRecordManageService.java | 2 src/main/java/com/example/server/progressTrack/dao/DjJdgzNetworkLevel3Dao.java | 3 20 files changed, 462 insertions(+), 147 deletions(-) diff --git a/src/main/java/com/example/client/service/Level3ManageService.java b/src/main/java/com/example/client/service/Level3ManageService.java index c3153ab..f74e8db 100644 --- a/src/main/java/com/example/client/service/Level3ManageService.java +++ b/src/main/java/com/example/client/service/Level3ManageService.java @@ -16,6 +16,7 @@ import javax.swing.*; import javax.swing.event.TableModelEvent; +import javax.swing.plaf.basic.BasicComboBoxRenderer; import javax.swing.table.DefaultTableModel; import java.awt.*; import java.awt.event.*; @@ -428,6 +429,20 @@ JLabel JLabel3 = new JLabel("浜岀骇缃戠粶鍥捐妭鐐�"); JComboBox<JComboBoxItem> comboBox2 = new JComboBox<>(); + comboBox2.setRenderer(new BasicComboBoxRenderer() { + @Override + public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { + super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); + + // 璁剧疆宸ュ叿鎻愮ず + if (value != null) { + setText(value.toString()); + setToolTipText(value.toString()); // 璁剧疆宸ュ叿鎻愮ず涓哄畬鏁寸殑閫夐」鏂囨湰 + } + + return this; + } + }); comboBox2.setPreferredSize(new Dimension(185, 28)); if (data.getLevel2NodeId()!=null){ JComboBoxItem[] level2NodeList = level2ListService.getNode(data.getLevel2NetworkId()); diff --git a/src/main/java/com/example/client/service/Level3View2Service.java b/src/main/java/com/example/client/service/Level3View2Service.java index 803e1c5..d941c42 100644 --- a/src/main/java/com/example/client/service/Level3View2Service.java +++ b/src/main/java/com/example/client/service/Level3View2Service.java @@ -3,6 +3,7 @@ import com.example.client.dto.ColumnDto; import com.example.client.dto.JComboBoxItem; import com.example.client.utils.*; +import com.example.server.ExportExcel.dto.ExcelColumnDto; import com.example.server.cabin.service.CabinService; import com.example.server.progressTrack.Dto.TableNodeDto; import com.example.server.progressTrack.model.DjJdgzShip; @@ -15,6 +16,7 @@ import javax.swing.*; import java.awt.*; import java.awt.event.*; +import java.io.File; import java.util.List; import java.util.*; import java.util.stream.Collectors; @@ -37,6 +39,8 @@ private List<TableNodeDto> list; private Map<String, Long> shipMap = new HashMap<>(); private List<ColumnDto> columnDto; + @Autowired + private DjJdgzNetworkLevel1Service djJdgzNetworkLevel1Service; public JPanel createTable(Integer width, Integer height, JFrame frame) { @@ -124,6 +128,7 @@ // 鍒涘缓涓嬫媺妗� ColorDescriptionComboBox comboBox5 = new ColorDescriptionComboBox(colorDescriptions); JButton btnTjz = new JButton("璁惧杩涘害缁熻鎬昏〃"); + JButton btnExport = new JButton("瀵煎嚭"); topJpanel2.add(JLabel0, new GBC(0, 0, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5)); topJpanel2.add(comboBox, new GBC(1, 0, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5)); @@ -143,7 +148,9 @@ topJpanel2.add(sb, new GBC(4, 1, 2, 1).setAnchor(GBC.SOUTHEAST).setInsets(5)); topJpanel2.add(query, new GBC(6, 1, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5)); topJpanel2.add(comboBox5, new GBC(7, 1, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5)); + topJpanel2.add(btnExport, new GBC(8, 1, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5)); topJpanel2.add(btnTjz, new GBC(9, 1, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5)); + list = level3Service.getNodeList(shipList.get(0).getId(), deptList[0].getId(), teamList[0].getId(), cabinList[0].getId(), typeList[0], Math.toIntExact(isealCabin[0].getId()), Math.toIntExact(isealCabin[0].getId()), null); @@ -390,6 +397,13 @@ statisProductService.createTable(frame, shipId, type); } }); + btnExport.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + frame.setEnabled(false); + export(frame); + } + }); comboBox5.addItemListener(new ItemListener() { @Override @@ -445,6 +459,129 @@ return panel; } + + private void export(JFrame jFrame) { + JFrame frame1 = new JFrame("瀵煎嚭涓夌骇缃戠粶鍥剧姸鎬�"); + frame1.setSize(300, 400); + frame1.setResizable(true); + frame1.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + frame1.setLocationRelativeTo(null); + frame1.setVisible(true); + frame1.addWindowListener(new WindowAdapter() { + //娣诲姞绗簩涓晫闈㈢殑鍏抽棴浜嬩欢: + public void windowClosing(WindowEvent e) { + //娣诲姞浜嬩欢: + jFrame.setEnabled(true);//灏嗕富鐣岄潰鍐嶈缃负鍙搷浣滅殑 + } + }); + GridBagLayout layout = new GridBagLayout(); + frame1.setLayout(layout); + + JComboBoxItem[] projectList = djJdgzNetworkLevel1Service.getProjectList(); + JComboBoxItem[] deptList = sysTeamGroupClassService.getDeptList(); + + String[] typeList = new String[]{ + "","杩涜涓�","涓存湡","閫炬湡","姝e父瀹屾垚","瓒呮湡瀹屾垚" + }; + + JLabel JLabel1 = new JLabel("宸ョ▼"); + JComboBox<JComboBoxItem> comboBox0 = new JComboBox<>(projectList); + comboBox0.setPreferredSize(new Dimension(200, 28)); + comboBox0.setSelectedIndex(-1); + + JLabel JLabel4 = new JLabel("閮ㄩ棬"); + JComboBox<JComboBoxItem> comboBox3 = new JComboBox<>(deptList); + comboBox3.setPreferredSize(new Dimension(200, 28)); + + JComboBoxItem[] teamList1 = sysTeamGroupClassService.getTeamList(deptList[0].getId()); + + JLabel JLabel5 = new JLabel("涓撲笟"); + JComboBox<JComboBoxItem> comboBox4 = new JComboBox<>(teamList1); + comboBox4.setPreferredSize(new Dimension(200, 28)); + + JLabel JLabel7 = new JLabel("鐘舵��"); + JComboBox<String> comboBox6 = new JComboBox<>(typeList); + comboBox6.setPreferredSize(new Dimension(200, 28)); + + comboBox3.addItemListener(new ItemListener() { + @Override + public void itemStateChanged(ItemEvent e) { + if (e.getStateChange() == ItemEvent.SELECTED) { + JComboBoxItem selectedItem = (JComboBoxItem) comboBox3.getSelectedItem(); + if (selectedItem != null) { + long selectedId = selectedItem.getId(); + + JComboBoxItem[] teamList = sysTeamGroupClassService.getTeamList(selectedId); + comboBox4.setModel(new DefaultComboBoxModel<>(teamList)); + comboBox4.setSelectedIndex(-1); + } + } + } + }); + + JButton btnExport = new JButton("瀵煎嚭"); + + frame1.add(JLabel1, new GBC(0, 0, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5)); + frame1.add(comboBox0, new GBC(1, 0, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5)); + + frame1.add(JLabel4, new GBC(0, 1, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5)); + frame1.add(comboBox3, new GBC(1, 1, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5)); + + frame1.add(JLabel5, new GBC(0, 2, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5)); + frame1.add(comboBox4, new GBC(1, 2, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5)); + + frame1.add(JLabel7, new GBC(0, 3, 1, 1).setAnchor(GBC.SOUTHEAST).setInsets(5)); + frame1.add(comboBox6, new GBC(1, 3, 1, 1).setAnchor(GBC.SOUTHWEST).setInsets(5)); + + frame1.add(btnExport, new GBC(0, 4, 2, 1).setWeight(1, 0)); + + btnExport.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + JComboBoxItem projectItem = (JComboBoxItem) comboBox0.getSelectedItem(); + JComboBoxItem deptItem = (JComboBoxItem) comboBox3.getSelectedItem(); + JComboBoxItem teamGroupItem = (JComboBoxItem) comboBox4.getSelectedItem(); + String statusItem = comboBox6.getSelectedItem().toString(); + + Long level1NetworkId = null; + Long deptId = null; + Long teamGroupId = null; + String status = null; + + if (projectItem != null) { + level1NetworkId = projectItem.getId(); + } else { + JOptionPane.showMessageDialog(null, "娌℃湁閫夋嫨宸ョ▼", "鎻愮ず", JOptionPane.WARNING_MESSAGE); + return; + } + if (deptId != null) { + deptId = deptItem.getId(); + } + if (teamGroupItem != null) { + teamGroupId = teamGroupItem.getId(); + } + + if (StringUtils.isNotBlank(statusItem)) { + status = statusItem; + } + + String fileName = "涓夌骇缃戠粶鍥剧姸鎬�.xlsx"; + JFileChooser fileChooser = new JFileChooser(); + fileChooser.setSelectedFile(new File(fileName)); + int result = fileChooser.showSaveDialog(frame1); + + if (result == JFileChooser.APPROVE_OPTION) { + File selectedFile = fileChooser.getSelectedFile(); + level3Service.exportExcel(selectedFile.getPath(), level1NetworkId,deptId, teamGroupId, status); + JOptionPane.showMessageDialog(frame1, "鏂囦欢瀵煎嚭鎴愬姛"); + } else { + JOptionPane.showMessageDialog(frame1, "鏂囦欢瀵煎嚭鍙栨秷"); + } + } + }); + + } + private JComboBoxItem[] createIsealCabinItems() { return new JComboBoxItem[]{ new JComboBoxItem(10000L, ""), diff --git a/src/main/java/com/example/client/service/TeamGroupAddOrUpdate.java b/src/main/java/com/example/client/service/TeamGroupAddOrUpdate.java index 3f56a13..ce383a8 100644 --- a/src/main/java/com/example/client/service/TeamGroupAddOrUpdate.java +++ b/src/main/java/com/example/client/service/TeamGroupAddOrUpdate.java @@ -117,6 +117,9 @@ if (type.equals("閮ㄩ棬")) { data.setPid(0L); sortMax = sysTeamGroupClassService.getSortMax(0L); + if (sortMax == null) { + sortMax = 100; + } data.setSort(sortMax + 100); } else { data.setPid(dept.getId()); diff --git a/src/main/java/com/example/client/service/TrackRecordAddOrUpdate.java b/src/main/java/com/example/client/service/TrackRecordAddOrUpdate.java index 4e40d08..9624b4d 100644 --- a/src/main/java/com/example/client/service/TrackRecordAddOrUpdate.java +++ b/src/main/java/com/example/client/service/TrackRecordAddOrUpdate.java @@ -351,7 +351,7 @@ data.setRemark(remark.getText()); Long id = djJdgzTrackRecordService.save(data, "save"); uploadFile.save(id); - List<DjJdgzTrackRecord> list = djJdgzTrackRecordService.getList(level1Id, level3.getDeptId(), null, null, level3.getType(), 0, 0, null); + List<DjJdgzTrackRecord> list = djJdgzTrackRecordService.getList(level1Id, level3.getDeptId(), level3.getTeamgroupId(), null, null, 0, null, null); CommonTable.refreshTable(list, columnDto, table); trackRecordManageService.tableModelListener(table, jFrame, list); frame1.dispose(); diff --git a/src/main/java/com/example/client/service/TrackRecordManageService.java b/src/main/java/com/example/client/service/TrackRecordManageService.java index ecc2ee0..a1a6e77 100644 --- a/src/main/java/com/example/client/service/TrackRecordManageService.java +++ b/src/main/java/com/example/client/service/TrackRecordManageService.java @@ -408,7 +408,7 @@ // 妫�鏌ユ槸鍚︾偣鍑讳簡鏈夋晥鍗曞厓鏍� if (row >= 0 && column >= 0) { - if (column == 14) { // 鍒楃储寮曚粠0寮�濮� + if (column == 15) { // 鍒楃储寮曚粠0寮�濮� // 鑾峰彇璇ュ崟鍏冩牸鐨勫�� Object cellValue = table.getValueAt(row, column); Integer value = Integer.parseInt(cellValue.toString()); diff --git a/src/main/java/com/example/client/utils/TranslateToPlainStrUtils.java b/src/main/java/com/example/client/utils/TranslateToPlainStrUtils.java new file mode 100644 index 0000000..ef61314 --- /dev/null +++ b/src/main/java/com/example/client/utils/TranslateToPlainStrUtils.java @@ -0,0 +1,29 @@ +package com.example.client.utils; + +import org.apache.commons.lang3.StringUtils; + +import java.math.BigDecimal; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class TranslateToPlainStrUtils { + public static String translateToPlainStr(String number) { + if (StringUtils.isBlank(number) ) { + return number; + } + String regEx = "^([\\+|-]?\\d+(.{0}|.\\d+))[Ee]{1}([\\+|-]?\\d+)$"; + // 缂栬瘧姝e垯琛ㄨ揪寮� + Pattern pattern = Pattern.compile(regEx); + + Matcher matcher = pattern.matcher(number); + // 瀛楃涓叉槸鍚︿笌姝e垯琛ㄨ揪寮忕浉鍖归厤 + boolean rs = matcher.matches(); + // 鍒ゆ柇鏄惁涓哄瓧绗︿覆鐨勭瀛﹁鏁版硶 + if (rs) { + // 绉戝璁℃暟娉曡浆鏁板瓧 + BigDecimal originValue = new BigDecimal(number); + return originValue.toPlainString(); + } + return number; + } +} diff --git a/src/main/java/com/example/server/progressTrack/Dto/Level3ExportCloum.java b/src/main/java/com/example/server/progressTrack/Dto/Level3ExportCloum.java new file mode 100644 index 0000000..7beafcb --- /dev/null +++ b/src/main/java/com/example/server/progressTrack/Dto/Level3ExportCloum.java @@ -0,0 +1,17 @@ +package com.example.server.progressTrack.Dto; + +import lombok.Data; + +@Data +public class Level3ExportCloum { + String deptName; + String teamName; + Long deptId; + Long teamgroupId; + String name; + String processName; + String requiredCompletionTime; + String actualCompletion; + String status; + Integer currentStatus; +} diff --git a/src/main/java/com/example/server/progressTrack/dao/DjJdgzNetworkLevel3Dao.java b/src/main/java/com/example/server/progressTrack/dao/DjJdgzNetworkLevel3Dao.java index 2079aab..05fc6b8 100644 --- a/src/main/java/com/example/server/progressTrack/dao/DjJdgzNetworkLevel3Dao.java +++ b/src/main/java/com/example/server/progressTrack/dao/DjJdgzNetworkLevel3Dao.java @@ -2,6 +2,7 @@ import com.example.client.dto.JComboBoxItem; import com.example.server.dao.BaseDao; +import com.example.server.progressTrack.Dto.Level3ExportCloum; import com.example.server.progressTrack.Dto.NetworkNodeStatusDto; import com.example.server.progressTrack.Dto.StatistProductDto; import com.example.server.progressTrack.Dto.TableNodeDto; @@ -40,4 +41,6 @@ List<StatistProductDto> getStatist(Long level1Id,String type); String getRemark(Long networkId, String type); + + List<Level3ExportCloum> getdata(Long level1NetworkId, Long deptId, Long teamGroupId, String status); } diff --git a/src/main/java/com/example/server/progressTrack/dao/DjJdgzTrackRecordDao.java b/src/main/java/com/example/server/progressTrack/dao/DjJdgzTrackRecordDao.java index 48ebf03..b488912 100644 --- a/src/main/java/com/example/server/progressTrack/dao/DjJdgzTrackRecordDao.java +++ b/src/main/java/com/example/server/progressTrack/dao/DjJdgzTrackRecordDao.java @@ -3,12 +3,12 @@ import com.example.server.dao.BaseDao; import com.example.server.progressTrack.Dto.ReportRecordDto; import com.example.server.progressTrack.Dto.StatistReportsDto; +import com.example.server.progressTrack.model.DjJdgzNetworkLevel3List; import com.example.server.progressTrack.model.DjJdgzTrackRecord; import org.apache.ibatis.annotations.Mapper; import java.util.Date; import java.util.List; -import java.util.Map; /** @@ -40,7 +40,9 @@ List<ReportRecordDto> getReportRecord(Long level1NetworkId, int column, Long teamgroupId); - Long getIsExit(Long level3NetworkId, String processName); + Long getIsExit(Long level3NetworkId, String processName, Integer weekNo); List<DjJdgzTrackRecord> getName(Long level3NetworkId); + + DjJdgzNetworkLevel3List isExistTrackRecord(Integer sort, Long level3NetworkId); } diff --git a/src/main/java/com/example/server/progressTrack/model/DjJdgzNetworkLevel3List.java b/src/main/java/com/example/server/progressTrack/model/DjJdgzNetworkLevel3List.java index 558a90e..45239c7 100644 --- a/src/main/java/com/example/server/progressTrack/model/DjJdgzNetworkLevel3List.java +++ b/src/main/java/com/example/server/progressTrack/model/DjJdgzNetworkLevel3List.java @@ -64,6 +64,7 @@ private String name; @TableField(exist = false) - private List<DjJdgzNetworkLevel3List> dataList; + @ApiModelProperty(value = "") + private Long trackRecordId; } diff --git a/src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel1Service.java b/src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel1Service.java index 9049fed..21ddecb 100644 --- a/src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel1Service.java +++ b/src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel1Service.java @@ -151,7 +151,7 @@ List<DiagramNodeDto> nodeList2 =new ArrayList<>(); JComboBoxItem[] level2List = djJdgzNetworkLevel2Service.getLevel2List(id); for (JComboBoxItem item : level2List) { - nodeList2 = djJdgzNetworkLevel2ListDao.getNodeList(item.getId()); + nodeList2.addAll(djJdgzNetworkLevel2ListDao.getNodeList(item.getId())); } return nodeList2; } diff --git a/src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel3ListService.java b/src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel3ListService.java index fdfa59e..8ec2288 100644 --- a/src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel3ListService.java +++ b/src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel3ListService.java @@ -56,7 +56,7 @@ public DjJdgzNetworkLevel3List getNextNode(Long nodeId, Long networkId) { DjJdgzNetworkLevel3List djJdgzNetworkLevel3List =new DjJdgzNetworkLevel3List(); - List<DjJdgzNetworkLevel3List> list = baseDao.getNextNode(this.get(nodeId).getSort()+1,networkId); + List<DjJdgzNetworkLevel3List> list = baseDao.getNextNode(this.get(nodeId).getSort(),networkId); if(list.size()>0){ djJdgzNetworkLevel3List = list.get(0); }else{ diff --git a/src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel3Service.java b/src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel3Service.java index c17dd52..c9748b3 100644 --- a/src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel3Service.java +++ b/src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel3Service.java @@ -2,19 +2,26 @@ import com.example.client.dto.JComboBoxItem; import com.example.client.service.BaseService; +import com.example.client.utils.TranslateToPlainStrUtils; +import com.example.server.ExportExcel.dto.ExcelColumnDto; +import com.example.server.ExportExcel.dto.ExprotExcelDto; +import com.example.server.ExportExcel.method.ExcelExport; import com.example.server.cabin.service.CabinService; +import com.example.server.progressTrack.Dto.Level3ExportCloum; import com.example.server.progressTrack.Dto.NetworkNodeStatusDto; import com.example.server.progressTrack.Dto.StatistProductDto; import com.example.server.progressTrack.Dto.TableNodeDto; import com.example.server.progressTrack.dao.DjJdgzNetworkLevel3Dao; import com.example.server.progressTrack.model.DjJdgzNetworkLevel3; import com.example.server.progressTrack.model.DjJdgzNetworkLevel3List; +import com.example.server.progressTrack.model.DjJdgzTrackRecord; import com.example.server.teamGroup.service.SysTeamGroupClassService; import com.example.server.utils.FileUtils; import com.example.server.utils.ImportUtil; import com.example.server.utils.UUIDUtil; import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; @@ -53,6 +60,69 @@ public List<StatistProductDto> getStatist(Long level1Id,String type) { return baseDao.getStatist(level1Id,type); + } + + public void exportExcel(String path, Long level1NetworkId, Long deptId, Long teamGroupId, String status) { + List<ExprotExcelDto> dtos = new ArrayList<>(); + ExprotExcelDto dto = new ExprotExcelDto(); + dto.setSheetName("璁惧鑺傜偣鐘舵�佽褰�"); + + List<Level3ExportCloum> list = baseDao.getdata(level1NetworkId, deptId, teamGroupId, status); + Date today = new Date(); + for (Level3ExportCloum data :list){ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date requiredCompletionDate = null; + Date actualCompletionDate = null; + try { + if (StringUtils.isNotBlank(data.getRequiredCompletionTime())) { + requiredCompletionDate = sdf.parse(data.getRequiredCompletionTime()); + } + if (StringUtils.isNotBlank(data.getActualCompletion())) { + actualCompletionDate = sdf.parse(data.getActualCompletion()); + } + + } catch (ParseException e) { + e.printStackTrace(); + } + if (data.getCurrentStatus() == null || data.getCurrentStatus() == 0) { + if (today.after(requiredCompletionDate)) { + int days = (int) ((today.getTime() - requiredCompletionDate.getTime()) / (1000 * 60 * 60 * 24)); + data.setStatus("宸查�炬湡" + days + "澶�"); + } else if ((requiredCompletionDate.getTime() - today.getTime()) / (1000 * 60 * 60 * 24) < 7) { + int days = (int) ((requiredCompletionDate.getTime() - today.getTime()) / (1000 * 60 * 60 * 24)); + data.setStatus("杩樻湁" + days + "澶╀复鏈�"); + } else { + data.setStatus("杩涜涓�"); + } + } else if (data.getCurrentStatus() == 1) { + // 宸插畬鎴� + if (data.getActualCompletion() != null && actualCompletionDate.after(requiredCompletionDate)) { + int days = (int) ((actualCompletionDate.getTime() - requiredCompletionDate.getTime()) / (1000 * 60 * 60 * 24)); + data.setStatus("瓒呮湡" + days + "澶╁畬鎴�"); + } else { + data.setStatus("姝e父瀹屾垚"); + } + } + + data.setDeptName(sysTeamGroupClassService.get(data.getDeptId()).getName()); + data.setTeamName(sysTeamGroupClassService.get(data.getTeamgroupId()).getName()); + } + dto.setDataList(list); + List<ExcelColumnDto> columnDto2 = new ArrayList<>(); + columnDto2.add(new ExcelColumnDto("閮ㄩ棬", "deptName", 25, HorizontalAlignment.CENTER)); + columnDto2.add(new ExcelColumnDto("涓撲笟", "teamName", 25, HorizontalAlignment.CENTER)); + columnDto2.add(new ExcelColumnDto("璁惧鍚嶇О", "name", 50, HorizontalAlignment.CENTER)); + columnDto2.add(new ExcelColumnDto("鑺傜偣鍚嶇О", "processName", 25, HorizontalAlignment.CENTER)); + columnDto2.add(new ExcelColumnDto("瑕佹眰瀹屾垚鏃堕棿", "requiredCompletionTime", 25, HorizontalAlignment.CENTER)); + columnDto2.add(new ExcelColumnDto("鐘舵��", "status", 25, HorizontalAlignment.LEFT)); + dto.setColumnDto(columnDto2); + dtos.add(dto); + try { + ExcelExport.getHSSFWorkbook(path, dtos); + } catch (IOException e) { + e.printStackTrace(); + } + } enum StatusEnum {zy, jxz, lq, yq, zcwc, cqwc} @@ -435,6 +505,7 @@ data.setGeneralRepairUnit(generalRepairUnit); } if (StringUtils.isNotBlank(generalRepairUnitContact)) { + generalRepairUnitContact = TranslateToPlainStrUtils.translateToPlainStr(generalRepairUnitContact); data.setGeneralRepairUnitContact(generalRepairUnitContact); } if (StringUtils.isNotBlank(generalRepairUnitDirector)) { @@ -444,6 +515,7 @@ data.setRepairUnit(repairUnit); } if (StringUtils.isNotBlank(repairUnitContact)) { + repairUnitContact = TranslateToPlainStrUtils.translateToPlainStr(repairUnitContact); data.setRepairUnitContact(repairUnitContact); } if (StringUtils.isNotBlank(repairUnitDirector)) { @@ -512,7 +584,7 @@ // 宸插畬鎴� if (node.getActualCompletion() != null && actualCompletionDate.after(requiredCompletionDate)) { statusMap.put(node.getId(), StatusEnum.cqwc); - int days = (int) ((today.getTime() - requiredCompletionDate.getTime()) / (1000 * 60 * 60 * 24)); + int days = (int) ((actualCompletionDate.getTime() - requiredCompletionDate.getTime()) / (1000 * 60 * 60 * 24)); node.setCqText("瑕佹眰鏃堕棿涓�" + sdf.format(requiredCompletionDate) + "瓒呮湡" + days + "澶╁畬鎴�"); } else { statusMap.put(node.getId(), StatusEnum.zcwc); @@ -568,11 +640,4 @@ return dataList; } - /* public void exportExcelTemplate(HttpServletResponse response, HttpServletRequest request) throws IOException { - String excelName="涓夌骇缃戠粶鍥炬壒閲忔ā鐗�"; - String excelPath = path + "template/jx-model/" + excelName + ".xlsx"; //妯℃澘璺緞 - File file = new File(excelPath); - excelName = excelName + "_" + DateUtil.now() + ".xlsx"; - DownloadService.exportModelPath(excelPath, excelName, file, response, request); - }*/ } diff --git a/src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java b/src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java index 391d936..90d2886 100644 --- a/src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java +++ b/src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java @@ -1,5 +1,6 @@ package com.example.server.progressTrack.service; +import com.example.client.utils.TranslateToPlainStrUtils; import com.example.server.ExportExcel.dto.ExcelColumnDto; import com.example.client.service.BaseService; import com.example.server.ExportExcel.dto.ExprotExcelDto; @@ -58,7 +59,7 @@ private SysTeamGroupClassService sysTeamGroupClassService; - public List<DjJdgzTrackRecord> getList(Long level1NetworkId, Long deptId, Long teamId, Long cabinId, String type, Integer status,Integer isealCabin, String name) { + public List<DjJdgzTrackRecord> getList(Long level1NetworkId, Long deptId, Long teamId, Long cabinId, String type, Integer status, Integer isealCabin, String name) { Long userId = null; /* Map adminRole = sysUserService.adminRole(); Object isTyRole = adminRole.get("isTyRole"); @@ -66,7 +67,7 @@ if (isTyRole.equals(true) || isYwzRole.equals(true)) { userId = UserContext.getUser().getId(); }*/ - List<DjJdgzTrackRecord> list = baseDao.getList(level1NetworkId, deptId, teamId, cabinId, type, status, isealCabin,name); + List<DjJdgzTrackRecord> list = baseDao.getList(level1NetworkId, deptId, teamId, cabinId, type, status, isealCabin, name); /*if (list != null && list.size() > 0) { sysOssService.setListOsses(list, "ProjectProgressFileUpload"); }*/ @@ -76,18 +77,6 @@ Integer trackNum = baseDao.getTrackNum(data.getLevel3NodeId()); data.setActualCompletion(data.getEstimatedCompletionTime()); data.setTrackNum(trackNum); - int weekNo = this.getWeekNo(data.getLevel1NetworkId()); - if (data.getWeekNo() != null) { - if (data.getWeekNo() != weekNo) { - data.setWeekNo(weekNo); - data.setIsUpdate(false); - } else { - data.setIsUpdate(true); - } - } else { - data.setWeekNo(weekNo); - data.setIsUpdate(false); - } } } return list; @@ -102,64 +91,75 @@ super.deleteLogic(ids); } - public Long save(DjJdgzTrackRecord djJdgzTrackRecord,String type) { + public Long save(DjJdgzTrackRecord djJdgzTrackRecord, String type) { Long id = null; - int weekNo = this.getWeekNo(djJdgzTrackRecord.getLevel1NetworkId()); - LocalDate currentDate = LocalDate.now(); - // 瀹氫箟鏃ユ湡鏍煎紡 - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - // 灏嗗綋鍓嶆棩鏈熸牸寮忓寲涓哄瓧绗︿覆 - String formattedDate = currentDate.format(formatter); - djJdgzTrackRecord.setUpdateDate(formattedDate); - if (djJdgzTrackRecord.getCurrentStatus() == 1 && type.equals("save")) { - //鏃堕棿姣旇緝 - djJdgzTrackRecord.setEstimatedCompletionTime(formattedDate); - } - if (djJdgzTrackRecord.getIsUpdate()) { - this.update(djJdgzTrackRecord); - id = djJdgzTrackRecord.getId(); - } else { - id = UUIDUtil.generateId(); - djJdgzTrackRecord.setWeekNo(weekNo); - djJdgzTrackRecord.setId(id); - djJdgzTrackRecord.setCreateDate(formattedDate); - this.insert(djJdgzTrackRecord); - id = djJdgzTrackRecord.getId(); - } + int weekNo = this.getWeekNo(djJdgzTrackRecord.getLevel1NetworkId(),new Date()); - if (djJdgzTrackRecord.getCurrentStatus() == 1) { - DjJdgzNetworkLevel3List nextNode = djJdgzNetworkLevel3ListService.getNextNode(djJdgzTrackRecord.getLevel3NodeId(), djJdgzTrackRecord.getLevel3NetworkId()); - Long oldId = baseDao.getIsExit(nextNode.getNetworkId(),nextNode.getProcessName()); - if (nextNode != null && oldId == null) { - DjJdgzTrackRecord data = new DjJdgzTrackRecord(); - data.setLevel3NodeId(nextNode.getId()); - data.setProcessName(nextNode.getProcessName()); - data.setLevel3NetworkId(djJdgzTrackRecord.getLevel3NetworkId()); - data.setLevel3NetworkName(djJdgzTrackRecord.getLevel3NetworkName()); - data.setEstimatedCompletionTime(nextNode.getRequiredCompletionTime()); - data.setGeneralRepairUnit(djJdgzTrackRecord.getGeneralRepairUnit()); - data.setGeneralRepairUnitContact(djJdgzTrackRecord.getGeneralRepairUnitContact()); - data.setGeneralRepairUnitDirector(djJdgzTrackRecord.getGeneralRepairUnitDirector()); - data.setRepairUnit(djJdgzTrackRecord.getRepairUnit()); - data.setRepairUnitContact(djJdgzTrackRecord.getRepairUnitContact()); - data.setRepairUnitDirector(djJdgzTrackRecord.getRepairUnitDirector()); - data.setTrackMethod(1); - data.setWeekNo(weekNo); - data.setUpdateDate(formattedDate); - data.setCreateDate(formattedDate); - this.insert(data); + if (type.equals("import")) { + Long oldId = baseDao.getIsExit(djJdgzTrackRecord.getLevel3NetworkId(), djJdgzTrackRecord.getProcessName(), djJdgzTrackRecord.getWeekNo()); + if (oldId != null) { + djJdgzTrackRecord.setId(oldId); + djJdgzTrackRecord.setIsUpdate(true); + } else { + djJdgzTrackRecord.setIsUpdate(false); + } + }else{ + if (djJdgzTrackRecord.getWeekNo() != null && djJdgzTrackRecord.getWeekNo() == weekNo) { + djJdgzTrackRecord.setIsUpdate(true); + } else { + djJdgzTrackRecord.setWeekNo(weekNo); + djJdgzTrackRecord.setIsUpdate(false); + } + LocalDate currentDate = LocalDate.now(); + // 瀹氫箟鏃ユ湡鏍煎紡 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + // 灏嗗綋鍓嶆棩鏈熸牸寮忓寲涓哄瓧绗︿覆 + String formattedDate = currentDate.format(formatter); + + if (djJdgzTrackRecord.getCurrentStatus() == 1) { + djJdgzTrackRecord.setEstimatedCompletionTime(formattedDate); } } - //鏀瑰彉涓夌骇缃戠粶鍥剧姸鎬� + + if (djJdgzTrackRecord.getIsUpdate()) { + this.update(djJdgzTrackRecord); + } else { + djJdgzTrackRecord.setId(null); + if(type.equals("save")){ + djJdgzTrackRecord.setWeekNo(weekNo); + } + this.insert(djJdgzTrackRecord); + } + id = djJdgzTrackRecord.getId(); + this.setLevel3Status(djJdgzTrackRecord.getLevel3NodeId(), djJdgzTrackRecord.getCurrentStatus(), djJdgzTrackRecord.getEstimatedCompletionTime()); + + if (djJdgzTrackRecord.getCurrentStatus() == 1) { + DjJdgzNetworkLevel3List nextNode = baseDao.isExistTrackRecord(djJdgzNetworkLevel3ListService.get(djJdgzTrackRecord.getLevel3NodeId()).getSort(), djJdgzTrackRecord.getLevel3NetworkId()); + if (nextNode != null && nextNode.getTrackRecordId() == null) { + djJdgzTrackRecord.setId(null); + djJdgzTrackRecord.setLevel3NodeId(nextNode.getId()); + djJdgzTrackRecord.setProcessName(nextNode.getProcessName()); + djJdgzTrackRecord.setEstimatedCompletionTime(nextNode.getRequiredCompletionTime()); + djJdgzTrackRecord.setWeekNo(weekNo); + djJdgzTrackRecord.setCurrentStatus(0); + + djJdgzTrackRecord.setUpdateDate(null); + djJdgzTrackRecord.setCreateDate(null); + djJdgzTrackRecord.setCreator(null); + djJdgzTrackRecord.setUpdater(null); + this.insert(djJdgzTrackRecord); + this.setLevel3Status(djJdgzTrackRecord.getLevel3NodeId(), djJdgzTrackRecord.getCurrentStatus(), djJdgzTrackRecord.getEstimatedCompletionTime()); + } + } return id; + } - public int getWeekNo(Long level1NetworkId) { + public int getWeekNo(Long level1NetworkId,Date nowDate) { DjJdgzNetworkLevel1 level1Network = djJdgzNetworkLevel1Service.get(level1NetworkId); SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy-MM-dd"); - String formattedDate = sdFormat.format(new Date()); - Date nowDate = null; + String formattedDate = sdFormat.format(nowDate); Date startDate = null; try { nowDate = sdFormat.parse(formattedDate); @@ -207,8 +207,8 @@ if (isTyRole.equals(true) || isYwzRole.equals(true)) { userId = UserContext.getUser().getId(); }*/ - int weekNo = this.getWeekNo(level1NetworkId); - List<DjJdgzTrackRecord> data = baseDao.prompt(level1NetworkId, weekNo, userId,deptId,teamId,name); + int weekNo = this.getWeekNo(level1NetworkId,new Date()); + List<DjJdgzTrackRecord> data = baseDao.prompt(level1NetworkId, weekNo, userId, deptId, teamId, name); for (DjJdgzTrackRecord record : data) { int i = weekNo - record.getWeekNo(); record.setStatus(i + "鍛ㄦ湭瀹屾垚"); @@ -220,8 +220,6 @@ Long level3NetworkId, Long level3NodeId, Integer status, Date beginDate, Date endDate, Integer istq, List<ExcelColumnDto> columnDto) { List<ExprotExcelDto> dtos = new ArrayList<>(); - /* Map<String, String> keywordMap = dailyPlanService.getReplacement(); - String keywordT = keywordMap.get("ting");*/ Map<Integer, String> trackMethodMap = new HashMap<>(); trackMethodMap.put(0, "绾夸笅"); @@ -296,7 +294,8 @@ } } - public List<DjJdgzTrackRecord> getListByImport(Long level1Id, Long level2Id, Long level2NodeId, String selectedIds) { + public List<DjJdgzTrackRecord> getListByImport(Long level1Id, Long level2Id, Long level2NodeId, String + selectedIds) { return baseDao.getListByImport(level1Id, level2Id, level2NodeId, selectedIds); } @@ -388,7 +387,8 @@ isErr = true; continue; } else { - int weekNo = this.getWeekNo(level1NetworkId); + Date parsedDate = new SimpleDateFormat("yyyy-MM-dd").parse(dataDate); + int weekNo = this.getWeekNo(level1NetworkId, parsedDate); data.setWeekNo(weekNo); data.setLevel1NetworkId(level1NetworkId); data.setLevel3NetworkId(level3.getId()); @@ -473,6 +473,7 @@ } if (StringUtils.isNotBlank(trackPersonContact)) { + trackPersonContact = TranslateToPlainStrUtils.translateToPlainStr(trackPersonContact); data.setTrackPersonContact(trackPersonContact); } @@ -485,6 +486,7 @@ } if (StringUtils.isNotBlank(trackedPersonContact)) { + trackedPersonContact = TranslateToPlainStrUtils.translateToPlainStr(trackedPersonContact); data.setTrackedPersonContact(trackedPersonContact); } @@ -496,6 +498,7 @@ } if (StringUtils.isNotBlank(generalRepairUnitContact)) { + generalRepairUnitContact = TranslateToPlainStrUtils.translateToPlainStr(generalRepairUnitContact); data.setGeneralRepairUnitContact(generalRepairUnitContact); } if (StringUtils.isNotBlank(generalRepairUnitDirector)) { @@ -505,6 +508,7 @@ data.setRepairUnit(repairUnit); } if (StringUtils.isNotBlank(generalRepairUnit)) { + generalRepairUnit = TranslateToPlainStrUtils.translateToPlainStr(generalRepairUnit); data.setRepairUnitContact(repairUnitContact); } if (StringUtils.isNotBlank(generalRepairUnit)) { @@ -512,15 +516,7 @@ } if (!isErr) { - Long oldId = baseDao.getIsExit(data.getLevel3NetworkId(),data.getProcessName()); - if (oldId!=null) { - data.setId(oldId); - data.setIsUpdate(true); - }else{ - data.setIsUpdate(false); - } - - this.save(data,"import"); + this.save(data, "import"); } if (isErr) { err++; diff --git a/src/main/java/com/example/server/progressTrack/service/NetWorkDiagramService.java b/src/main/java/com/example/server/progressTrack/service/NetWorkDiagramService.java index 4cc3de7..cb75318 100644 --- a/src/main/java/com/example/server/progressTrack/service/NetWorkDiagramService.java +++ b/src/main/java/com/example/server/progressTrack/service/NetWorkDiagramService.java @@ -3,6 +3,7 @@ import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONNull; import cn.hutool.json.JSONObject;; import com.example.client.service.BaseService; import com.example.client.utils.UUIDUtil; @@ -1456,7 +1457,7 @@ case "custom-circle": case "custom-circle1": String text = (String) JsonUtils2.getJsonValueByPath(jsonObject, "attrs/text/text".split("/")); - String title = (String) JsonUtils2.getJsonValueByPath(jsonObject, "attrs/title/text".split("/")); + String title = JsonUtils2.getJsonValueByPath(jsonObject, "attrs/title/text".split("/")) instanceof JSONNull ? null : (String) JsonUtils2.getJsonValueByPath(jsonObject, "attrs/title/text".split("/")); String idValue = jsonObject.get("id").toString(); Integer x = (Integer) JsonUtils2.getJsonValueByPath(jsonObject, "position/x".split("/")) + defX; diff --git a/src/main/resources/db/csiczb1.db b/src/main/resources/db/csiczb1.db index f7a61aa..919bf77 100644 --- a/src/main/resources/db/csiczb1.db +++ b/src/main/resources/db/csiczb1.db Binary files differ diff --git a/src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel2Dao.xml b/src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel2Dao.xml index 293e84a..51302a6 100644 --- a/src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel2Dao.xml +++ b/src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel2Dao.xml @@ -45,9 +45,6 @@ and b.ship_id = ${shipId} </if> </where> - <if test="orderBySql!=null"> - ORDER BY ${orderBySql} - </if> </select> <select id="getLevel2List" resultType="com.example.client.dto.JComboBoxItem"> select a.id,c.process_name as `name` diff --git a/src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3Dao.xml b/src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3Dao.xml index 8ff478e..e017744 100644 --- a/src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3Dao.xml +++ b/src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3Dao.xml @@ -224,6 +224,46 @@ LIMIT 1; </select> + <select id="getdata" resultType="com.example.server.progressTrack.Dto.Level3ExportCloum"> + select c.NAME,b.PROCESS_NAME,b.CURRENT_STATUS,b.REQUIRED_COMPLETION_TIME,b.ACTUAL_COMPLETION,c.dept_id,c.teamgroup_id + FROM dj_jdgz_track_record a + LEFT JOIN dj_jdgz_network_level3_list b on b.ID = a.LEVEL3_NODE_ID + LEFT JOIN dj_jdgz_network_level3 c on c.ID = b.NETWORK_ID + LEFT JOIN dj_jdgz_network_level1 d on d.ID = c.LEVEL1_NETWORK_ID + where a.IS_DELETE = 0 + and c.LEVEL1_NETWORK_ID = ${level1NetworkId} + and c.LEVEL1_NETWORK_ID = d.id + and b.IS_DELETE = 0 + and b.NETWORK_ID = c.id + and c.IS_DELETE = 0 + and d.IS_DELETE = 0 + <if test="deptId!=null"> + and c.DEPT_ID = ${deptId} + </if> + <if test="teamGroupId!=null"> + and c.TEAMGROUP_ID = ${teamGroupId} + </if> + <if test="status!=null and status=='杩涜涓�'"> + and (b.CURRENT_STATUS = 0 or b.CURRENT_STATUS is null) + and b.REQUIRED_COMPLETION_TIME >= ( SELECT date( 'now', '-' || d.advent_day || ' days' ) ) + </if> + <if test="status!=null and status=='涓存湡'"> + and (b.CURRENT_STATUS = 0 or b.CURRENT_STATUS is null) + and b.REQUIRED_COMPLETION_TIME < ( SELECT date( 'now', '-' || d.advent_day || ' days' ) ) + </if> + <if test="status!=null and status=='閫炬湡'"> + and (b.CURRENT_STATUS = 0 or b.CURRENT_STATUS is null) + and b.REQUIRED_COMPLETION_TIME < ( SELECT datetime( 'now' ) ) + </if> + <if test="status!=null and status=='姝e父瀹屾垚'"> + and b.CURRENT_STATUS = 1 + AND b.REQUIRED_COMPLETION_TIME >= b.ACTUAL_COMPLETION + </if> + <if test="status!=null and status=='瓒呮湡瀹屾垚'"> + and b.CURRENT_STATUS = 1 + AND b.REQUIRED_COMPLETION_TIME < b.ACTUAL_COMPLETION + </if> + </select> </mapper> diff --git a/src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3ListDao.xml b/src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3ListDao.xml index fa406ef..aba92a8 100644 --- a/src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3ListDao.xml +++ b/src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3ListDao.xml @@ -27,8 +27,8 @@ from dj_jdgz_network_level3_list where is_delete = 0 and network_id = ${networkId} - and sort = ${sort} - ORDER BY sort + and sort > ${sort} + ORDER BY sort limit 1 </select> <select id="getDefult" resultType="com.example.server.progressTrack.model.DjJdgzNetworkLevel3List"> diff --git a/src/main/resources/mapper/progressTrack/DjJdgzTrackRecordDao.xml b/src/main/resources/mapper/progressTrack/DjJdgzTrackRecordDao.xml index f4883e6..22b7237 100644 --- a/src/main/resources/mapper/progressTrack/DjJdgzTrackRecordDao.xml +++ b/src/main/resources/mapper/progressTrack/DjJdgzTrackRecordDao.xml @@ -90,7 +90,7 @@ <if test="deptId!=null"> and c.dept_id = ${deptId} </if> - <if test="isealCabin!=10000"> + <if test="isealCabin!=10000 and isealCabin!=null"> and c.iseal_cabin = ${isealCabin} </if> <if test="teamId!=null"> @@ -137,38 +137,38 @@ </select> <select id="getReport" resultType="com.example.server.progressTrack.Dto.StatistReportsDto"> select d.*, e.name as teamGroupName - from ( - select TEAMGROUP_ID, - count(1) as allNum, - sum(case when status = 'zcjxz' or status = 'lq' then 1 else 0 end) as jxzNum, - sum(case when status = 'lq' then 1 else 0 end) as lqNum, - sum(case when status = 'yq' then 1 else 0 end) as yqNum, - sum(case when status = 'zcwc' then 1 else 0 end) as zcwcNum, - sum(case when status = 'cqwc' then 1 else 0 end) as cqwcNum - from ( - select a.TEAMGROUP_ID, - CASE - WHEN b.CURRENT_STATUS = 1 - AND b.REQUIRED_COMPLETION_TIME > b.ACTUAL_COMPLETION THEN - 'cqwc' - WHEN b.CURRENT_STATUS = 1 THEN - 'zcwc' - WHEN b.REQUIRED_COMPLETION_TIME < (SELECT datetime('now')) THEN 'yq' - WHEN b.REQUIRED_COMPLETION_TIME < - (SELECT date('now', '-' || c.advent_day || ' days')) THEN 'lq' + from (select TEAMGROUP_ID, + count(1) as allNum, + sum(case when status = 'zcjxz' or status = 'lq' then 1 else 0 end) as jxzNum, + sum(case when status = 'lq' then 1 else 0 end) as lqNum, + sum(case when status = 'yq' then 1 else 0 end) as yqNum, + sum(case when status = 'zcwc' then 1 else 0 end) as zcwcNum, + sum(case when status = 'cqwc' then 1 else 0 end) as cqwcNum + from (select c.TEAMGROUP_ID, + CASE + WHEN b.CURRENT_STATUS = 1 + AND b.REQUIRED_COMPLETION_TIME > b.ACTUAL_COMPLETION THEN + 'cqwc' + WHEN b.CURRENT_STATUS = 1 THEN + 'zcwc' + WHEN b.REQUIRED_COMPLETION_TIME < (SELECT datetime('now')) THEN 'yq' + WHEN b.REQUIRED_COMPLETION_TIME < + (SELECT date('now', '-' || d.advent_day || ' days')) THEN 'lq' ELSE 'zcjxz' END AS status - from dj_jdgz_network_level3 a, - dj_jdgz_network_level3_list b, - dj_jdgz_network_level1 c - where a.IS_DELETE = 0 - and a.LEVEL1_NETWORK_ID = ${level1NetworkId} - and a.LEVEL1_NETWORK_ID = c.id - and b.IS_DELETE = 0 - and b.NETWORK_ID = a.id - ) c - group by TEAMGROUP_ID - ) d, + FROM dj_jdgz_track_record a + LEFT JOIN dj_jdgz_network_level3_list b + on b.ID = a.LEVEL3_NODE_ID + LEFT JOIN dj_jdgz_network_level3 c on c.ID = b.NETWORK_ID + LEFT JOIN dj_jdgz_network_level1 d on d.ID = c.LEVEL1_NETWORK_ID + where c.IS_DELETE = 0 + and c.LEVEL1_NETWORK_ID = ${level1NetworkId} + and c.LEVEL1_NETWORK_ID = d.id + and b.IS_DELETE = 0 + and a.IS_DELETE = 0 + and d.IS_DELETE = 0 + and b.NETWORK_ID = c.id) c + group by TEAMGROUP_ID ) d, dj_sys_teamgroup_class e where d.TEAMGROUP_ID = e.id </select> @@ -258,7 +258,7 @@ a.IS_DELETE = 0 and a.network_id != 10000 <if test="teamgroupId!=null and teamgroupId!=''"> - AND a.TEAMGROUP_ID in (${teamgroupId}) + AND h.ID in (${teamgroupId}) </if> <if test="istq!=1 and istq!=null"> AND a.REQUIRED_COMPLETION_TIME < b.estimated_completion_time @@ -470,24 +470,26 @@ a.REQUIRED_COMPLETION_TIME </select> <select id="getReportRecord" resultType="com.example.server.progressTrack.Dto.ReportRecordDto"> - select a.NAME,b.PROCESS_NAME - from dj_jdgz_network_level3 a, - dj_jdgz_network_level3_list b, - dj_jdgz_network_level1 c + select c.NAME,b.PROCESS_NAME + FROM dj_jdgz_track_record a + LEFT JOIN dj_jdgz_network_level3_list b on b.ID = a.LEVEL3_NODE_ID + LEFT JOIN dj_jdgz_network_level3 c on c.ID = b.NETWORK_ID + LEFT JOIN dj_jdgz_network_level1 d on d.ID = c.LEVEL1_NETWORK_ID where a.IS_DELETE = 0 - and a.LEVEL1_NETWORK_ID = ${level1NetworkId} - and a.TEAMGROUP_ID = ${teamgroupId} - and a.LEVEL1_NETWORK_ID = c.id + and c.LEVEL1_NETWORK_ID = ${level1NetworkId} + and c.TEAMGROUP_ID = ${teamgroupId} + and c.LEVEL1_NETWORK_ID = d.id and b.IS_DELETE = 0 - and b.NETWORK_ID = a.id + and b.NETWORK_ID = c.id and c.IS_DELETE = 0 + and d.IS_DELETE = 0 <if test="column==2"> and (b.CURRENT_STATUS = 0 or b.CURRENT_STATUS is null) - and b.REQUIRED_COMPLETION_TIME >= ( SELECT date( 'now', '-' || c.advent_day || ' days' ) ) + and b.REQUIRED_COMPLETION_TIME >= ( SELECT date( 'now', '-' || d.advent_day || ' days' ) ) </if> <if test="column==3"> and (b.CURRENT_STATUS = 0 or b.CURRENT_STATUS is null) - and b.REQUIRED_COMPLETION_TIME < ( SELECT date( 'now', '-' || c.advent_day || ' days' ) ) + and b.REQUIRED_COMPLETION_TIME < ( SELECT date( 'now', '-' || d.advent_day || ' days' ) ) </if> <if test="column==4"> and (b.CURRENT_STATUS = 0 or b.CURRENT_STATUS is null) @@ -508,13 +510,10 @@ WHERE LEVEL3_NETWORK_ID = ${level3NetworkId} AND process_name = #{processName} AND is_delete = 0 - AND update_date = ( - SELECT MAX(update_date) - FROM dj_jdgz_track_record - WHERE LEVEL3_NETWORK_ID = ${level3NetworkId} - AND process_name = #{processName} - AND is_delete = 0 - ) + <if test="weekNo!=null"> + and week_no = ${weekNo} + </if> + limit 1 </select> <select id="getName" resultType="com.example.server.progressTrack.model.DjJdgzTrackRecord"> SELECT @@ -529,5 +528,15 @@ ORDER BY CREATE_DATE ,UPDATE_DATE </select> + <select id="isExistTrackRecord" resultType="com.example.server.progressTrack.model.DjJdgzNetworkLevel3List"> + select a.*,b.id as trackRecordId + from dj_jdgz_network_level3_list a + left join dj_jdgz_track_record b on b.is_delete = 0 and a.id = b.LEVEL3_NODE_ID + where a.is_delete = 0 + and a.network_id = ${level3NetworkId} + and a.sort > ${sort} + order by a.sort + limit 1 + </select> </mapper> -- Gitblit v1.9.1