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