考勤月报管理记录中最新记录为关闭时,上月排班记录不允许修改,最新记录为开启时,上月排班记录允许修改,上上月排班记录默认不允许修改
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…
Reference in New Issue