考勤月报管理记录中最新记录为关闭时,上月排班记录不允许修改,最新记录为开启时,上月排班记录允许修改,上上月排班记录默认不允许修改

main
howec 1 year ago
parent ae7a5ca2f7
commit 20068b13b5

@ -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 {
}

@ -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<Map<String,Object>> {
private static final Logger LOGGER = LoggerFactory.getLogger(ImportExcelProxyWithCmd.class);
@Override
public Map<String, Object> execute(Command<Map<String, Object>> targetCommand) {
Map<String, Object> r11 = new HashMap<>();
//读取excel内容
ImportExcelCmd cmd = (ImportExcelCmd) targetCommand;
Map<String,Object> 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<String, Object> 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;
}
}
}

@ -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<String, Boolean> queryById(@Context HttpServletRequest request) {
Map<String, Boolean> rs = new HashMap<>();
Map<String, Object> 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;
}
}
}
Loading…
Cancel
Save