From 20068b13b5c180c0619a674d71a9683417c1fba2 Mon Sep 17 00:00:00 2001 From: howec <> Date: Tue, 14 Nov 2023 18:30:04 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=83=E5=8B=A4=E6=9C=88=E6=8A=A5=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E8=AE=B0=E5=BD=95=E4=B8=AD=E6=9C=80=E6=96=B0=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E4=B8=BA=E5=85=B3=E9=97=AD=E6=97=B6=EF=BC=8C=E4=B8=8A?= =?UTF-8?q?=E6=9C=88=E6=8E=92=E7=8F=AD=E8=AE=B0=E5=BD=95=E4=B8=8D=E5=85=81?= =?UTF-8?q?=E8=AE=B8=E4=BF=AE=E6=94=B9=EF=BC=8C=E6=9C=80=E6=96=B0=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E4=B8=BA=E5=BC=80=E5=90=AF=E6=97=B6=EF=BC=8C=E4=B8=8A?= =?UTF-8?q?=E6=9C=88=E6=8E=92=E7=8F=AD=E8=AE=B0=E5=BD=95=E5=85=81=E8=AE=B8?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=8C=E4=B8=8A=E4=B8=8A=E6=9C=88=E6=8E=92?= =?UTF-8?q?=E7=8F=AD=E8=AE=B0=E5=BD=95=E9=BB=98=E8=AE=A4=E4=B8=8D=E5=85=81?= =?UTF-8?q?=E8=AE=B8=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ppl/web/MonthlyReportSettingsIAction.java | 9 ++ .../demo/ppl/ImportExcelProxyWithCmd.java | 117 ++++++++++++++++++ .../ppl/web/MonthlyReportSettingsAction.java | 67 ++++++++++ 3 files changed, 193 insertions(+) create mode 100644 e9欧姆龙/src/com/api/ppl/web/MonthlyReportSettingsIAction.java create mode 100644 e9欧姆龙/src/com/customization/demo/ppl/ImportExcelProxyWithCmd.java create mode 100644 e9欧姆龙/src/com/engine/ppl/web/MonthlyReportSettingsAction.java diff --git a/e9欧姆龙/src/com/api/ppl/web/MonthlyReportSettingsIAction.java b/e9欧姆龙/src/com/api/ppl/web/MonthlyReportSettingsIAction.java new file mode 100644 index 0000000..1a0b63e --- /dev/null +++ b/e9欧姆龙/src/com/api/ppl/web/MonthlyReportSettingsIAction.java @@ -0,0 +1,9 @@ +package com.api.ppl.web; + +import com.engine.ppl.web.MonthlyReportSettingsAction; + +import javax.ws.rs.Path; + +@Path("/month/setting") +public class MonthlyReportSettingsIAction extends MonthlyReportSettingsAction { +} diff --git a/e9欧姆龙/src/com/customization/demo/ppl/ImportExcelProxyWithCmd.java b/e9欧姆龙/src/com/customization/demo/ppl/ImportExcelProxyWithCmd.java new file mode 100644 index 0000000..2a86166 --- /dev/null +++ b/e9欧姆龙/src/com/customization/demo/ppl/ImportExcelProxyWithCmd.java @@ -0,0 +1,117 @@ + + +package com.customization.demo.ppl; + +import com.engine.core.cfg.annotation.CommandDynamicProxy; +import com.engine.core.interceptor.AbstractCommandProxy; +import com.engine.core.interceptor.Command; +import com.engine.core.interceptor.CommandContext; +import com.engine.kq.cmd.shiftschedule.ImportExcelCmd; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import weaver.conn.RecordSet; +import weaver.file.ImageFileManager; +import weaver.general.Util; + +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.ZoneId; +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +import static com.engine.kq.util.ExcelUtil.getCellValue; + +@CommandDynamicProxy(target = ImportExcelCmd.class, desc = "代理cmd") +public class ImportExcelProxyWithCmd extends AbstractCommandProxy> { + private static final Logger LOGGER = LoggerFactory.getLogger(ImportExcelProxyWithCmd.class); + @Override + public Map execute(Command> targetCommand) { + Map r11 = new HashMap<>(); + //读取excel内容 + ImportExcelCmd cmd = (ImportExcelCmd) targetCommand; + Map params = cmd.getParams(); + String filename = Util.null2String(params.get("filename")); + try { + ImageFileManager manager = new ImageFileManager(); + manager.getImageFileInfoById(Util.getIntValue(filename)); + Workbook workbook = new XSSFWorkbook(manager.getInputStream()); + + RecordSet recordSet = new RecordSet(); + String querySql = "SELECT czrq,sykqhzzt FROM (SELECT czrq, sykqhzzt FROM uf_ydkqglbd ORDER BY czrq DESC) WHERE ROWNUM = 1"; + recordSet.executeQuery(querySql); + recordSet.next(); + String rq = recordSet.getString("czrq"); + String zt = recordSet.getString("sykqhzzt"); + LOGGER.error("howec-zt:"+zt); + LOGGER.error("howec-rq:"+rq); + for (int idx = 0; idx < workbook.getNumberOfSheets(); idx++) { + Sheet sheet = workbook.getSheetAt(idx); + Row row = null; + Cell cell = null; + if(sheet.getLastRowNum()>=6) { + row = sheet.getRow(6); + if (row == null) { + continue; + } + for (int cellIndex = 3; cellIndex < row.getLastCellNum(); cellIndex++) { + cell = row.getCell((short) cellIndex); + if (cell == null) continue; + String serialName = Util.null2String(getCellValue(cell)).trim(); + LOGGER.error("howec-date:"+serialName); + r11.put("serialName",serialName); + r11.put("rq",rq); + r11.put("zt",zt); + if(!isCanEdit(rq,serialName,zt)) { + r11 = new HashMap<>(); + r11.put("status","-1"); + r11.put("message","根据配置条件,无法导入当前月的排班设置!"); + return r11; + } + } + } + } + + }catch (Exception e){ + LOGGER.error("eeeeeeerrrrrrrrrrrooooooooorrrrr"); + e.printStackTrace(); + } + Map r1 = this.nextExecute(targetCommand); + r1.putAll(r11); + return r1; + } + + + //关闭 日期小于上月最后一天 都不能改 开启 日期小于上上月最后一天都不能修改 + public Boolean isCanEdit (String xdrq1,String bjrq1,String status){ + boolean flag = true; + try{ + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date date = dateFormat.parse(xdrq1); + Date date1 = dateFormat.parse(bjrq1); + LocalDate xdrq = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + LocalDate bjrq = date1.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + if("0".equals(status)) { + LocalDate sgy = xdrq.minusMonths(1); + if(bjrq.compareTo(sgy) < 0) { + flag = false; + } + }else { + LocalDate ssgy = xdrq.minusMonths(2); + if(bjrq.compareTo(ssgy) < 0) { + flag = false; + } + } + return flag; + } catch (Exception e){ + e.printStackTrace(); + return false; + } + } +} diff --git a/e9欧姆龙/src/com/engine/ppl/web/MonthlyReportSettingsAction.java b/e9欧姆龙/src/com/engine/ppl/web/MonthlyReportSettingsAction.java new file mode 100644 index 0000000..29ce043 --- /dev/null +++ b/e9欧姆龙/src/com/engine/ppl/web/MonthlyReportSettingsAction.java @@ -0,0 +1,67 @@ +package com.engine.ppl.web; + +import com.engine.common.util.ParamUtil; +import weaver.conn.RecordSet; +import weaver.integration.logging.Logger; +import weaver.integration.logging.LoggerFactory; + +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.ZoneId; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +public class MonthlyReportSettingsAction { + private final Logger log = LoggerFactory.getLogger(MonthlyReportSettingsAction.class); + + @GET + @Path("/queryRuleByDateppl") + @Produces(MediaType.APPLICATION_JSON) + public Map queryById(@Context HttpServletRequest request) { + Map rs = new HashMap<>(); + Map map = ParamUtil.request2Map(request); + String date = (String) map.get("date"); + RecordSet recordSet = new RecordSet(); + String querySql = "SELECT czrq,sykqhzzt FROM (SELECT czrq, sykqhzzt FROM uf_ydkqglbd ORDER BY czrq DESC) WHERE ROWNUM = 1"; + recordSet.executeQuery(querySql); + recordSet.next(); + String rq = recordSet.getString("czrq"); + String zt = recordSet.getString("sykqhzzt"); + Boolean flag =isCanEdit(rq,date,zt); + rs.put("result",flag); + return rs; + } + //关闭 日期小于上月最后一天 都不能改 开启 日期小于上上月最后一天都不能修改 + public Boolean isCanEdit (String xdrq1,String bjrq1,String status) { + boolean flag = true; + try { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date date = dateFormat.parse(xdrq1); + Date date1 = dateFormat.parse(bjrq1); + LocalDate xdrq = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + LocalDate bjrq = date1.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + if ("0".equals(status)) { + LocalDate sgy = xdrq.minusMonths(1); + if (bjrq.compareTo(sgy) < 0) { + flag = false; + } + } else { + LocalDate ssgy = xdrq.minusMonths(2); + if (bjrq.compareTo(ssgy) < 0) { + flag = false; + } + } + return flag; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } +}