Browse Source

FQC排产

master
rui_li 4 years ago
parent
commit
3f9ff20c4c
  1. 18
      src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java
  2. 1
      src/main/java/com/gaotao/modules/schedule/service/SchedulingService.java
  3. 64
      src/main/java/com/gaotao/modules/schedule/service/impl/SchedulingServiceImpl.java

18
src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java

@ -129,6 +129,8 @@ public class SearchScheduleData extends BaseData {
private String userSpecialSecurityNo; // 特殊权限编号
private Date closedDate; // 关闭事件
private String parkFlag; // 暂停状态
private String virtualFlag;//虚拟排产标记
private boolean checkFlag; //是否检查
public String getParkFlag() {
return parkFlag;
@ -884,4 +886,20 @@ public class SearchScheduleData extends BaseData {
public void setPreScheduledFlag(String preScheduledFlag) {
this.preScheduledFlag = preScheduledFlag;
}
public String getVirtualFlag() {
return virtualFlag;
}
public void setVirtualFlag(String virtualFlag) {
this.virtualFlag = virtualFlag;
}
public boolean isCheckFlag() {
return checkFlag;
}
public void setCheckFlag(boolean checkFlag) {
this.checkFlag = checkFlag;
}
}

1
src/main/java/com/gaotao/modules/schedule/service/SchedulingService.java

@ -115,4 +115,5 @@ public interface SchedulingService {
* @return java.util.Map<java.lang.String, java.lang.Object>
**/
void scheduleFqcOperators(Map<String, Object> inMap);
}

64
src/main/java/com/gaotao/modules/schedule/service/impl/SchedulingServiceImpl.java

@ -395,6 +395,7 @@ public class SchedulingServiceImpl implements SchedulingService {
SearchScheduleData pageData = JSON.parseObject(strPageData, SearchScheduleData.class);
String strOperatorlList = String.valueOf(inMap.get("operatorList"));
List<OperatorInData> operatorList = JSON.parseArray(strOperatorlList, OperatorInData.class);
String strCheckFlag = String.valueOf(inMap.get("checkFlag"));
if(operatorList.size() == 0){
throw new RRException("暂无需要排产的数据!");
}
@ -407,6 +408,26 @@ public class SchedulingServiceImpl implements SchedulingService {
Date scheduleDate = pageData.getScheduleDate();
Date scheduleTime = pageData.getScheduleTime();
String specifiedTime = pageData.getSpecifiedTime();
boolean checkFlag = Boolean.parseBoolean(strCheckFlag);
String virtualFlag = pageData.getVirtualFlag();
//统计排产的数量
Float countScheduledQty = 0f;
//循环计算
for(OperatorInData operatorData : operatorList){
float scheduledQty = operatorData.getQtyToSchedule();
countScheduledQty = countScheduledQty + scheduledQty;
}
//判断是否校验总数量
if(checkFlag){
//调用存储过程 校验数量是否超过上限
Map<String, Object> checkMap = this.checkFQCScheduleWithScheduledQty(site, orderNo, itemNo, countScheduledQty);
//判断是否检验成功
String resultCode = String.valueOf(checkMap.get("resultCode"));
if (!"200".equalsIgnoreCase(resultCode)) {
String msg = String.valueOf(checkMap.get("resultMsg"));
throw new RRException(msg, Integer.parseInt(resultCode));
}
}
//循环插入派工单
for(OperatorInData operatorData : operatorList){
String resourceId = operatorData.getOperatorId();
@ -421,7 +442,7 @@ public class SchedulingServiceImpl implements SchedulingService {
//设置查询的条件
String calendarId = String.valueOf(calendarMap.get("calendarId"));
//调用存储过程 执行排产的方法
Map<String, Object> resultMap = this.scheduleWorkOrder(site, orderNo, itemNo, workCenterNo, resourceId, scheduledQty, specifiedTime, scheduleDate, scheduleTime, calendarId, username);
Map<String, Object> resultMap = this.scheduleFQCWorkOrder(site, orderNo, itemNo, workCenterNo, resourceId, scheduledQty, specifiedTime, scheduleDate, scheduleTime, calendarId, username, virtualFlag);
//判断是否检验成功
String resultCode = String.valueOf(resultMap.get("resultCode"));
if ("400".equalsIgnoreCase(resultCode)) {
@ -431,5 +452,46 @@ public class SchedulingServiceImpl implements SchedulingService {
}
}
private Map<String, Object> scheduleFQCWorkOrder(String site, String orderNo, int itemNo, String workCenterNo, String resourceId, float scheduledQty, String specifiedTime, Date scheduleDate,
Date scheduleTime, String calendarId, String username, String virtualFlag) {
List<Object> params = new ArrayList<>();
params.add(site);
params.add(orderNo);
params.add(itemNo);
params.add(workCenterNo);
params.add(resourceId);
params.add(scheduledQty);
params.add(specifiedTime);
params.add(scheduleDate);
params.add(scheduleTime);
params.add(calendarId);
params.add(username);
params.add(virtualFlag);
//调用存储过程
List<Map<String, Object>> resultList = procedureMapper.getProcedureData("soschedule_newjob_FQC", params);
//处理返回的结果
return resultList.get(0);
}
/**
* TODO 校验排产的数量
* @author LR
* @date 2022/3/18 15:52
* @Param [site, orderNo, itemNo, countScheduledQty]
* @return java.util.Map<java.lang.String, java.lang.Object>
**/
public Map<String, Object> checkFQCScheduleWithScheduledQty(String site, String orderNo, int itemNo, Float countScheduledQty) {
List<Object> params = new ArrayList<>();
params.add(site);
params.add(orderNo);
params.add(itemNo);
params.add(countScheduledQty);
//调用存储过程
List<Map<String, Object>> resultList = procedureMapper.getProcedureData("checkFQCScheduleWithScheduledQty", params);
//处理返回的结果
return resultList.get(0);
}
}
Loading…
Cancel
Save