Browse Source

排产的 排产 取消 分批排产

master
Rui_Li 4 years ago
parent
commit
9da48a180c
  1. 30
      src/main/java/com/gaotao/modules/schedule/controller/SchedulingController.java
  2. 9
      src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java
  3. 18
      src/main/java/com/gaotao/modules/schedule/service/SchedulingService.java
  4. 26
      src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java
  5. 115
      src/main/java/com/gaotao/modules/schedule/service/impl/SchedulingServiceImpl.java
  6. 18
      src/main/resources/mapper/schedule/ScheduleMapper.xml

30
src/main/java/com/gaotao/modules/schedule/controller/SchedulingController.java

@ -72,6 +72,36 @@ public class SchedulingController {
.put("msg", "操作成功!");
}
/**
* @Author LR
* @Description 插入等待的派工单
* @DateTime 2022/3/2 15:42
* @Param [inData]
* @return com.gaotao.common.utils.R
**/
@PostMapping(value = "addWaitSchedule")
public R addWaitSchedule(@RequestBody SearchScheduleData inData){
schedulingService.addWaitSchedule(inData);
return R.ok()
.put("code", 200)
.put("msg", "操作成功!");
}
/**
* @Author LR
* @Description 重新排产
* @DateTime 2022/3/2 15:52
* @Param [inData]
* @return com.gaotao.common.utils.R
**/
@PostMapping(value = "reScheduleWorkOrders")
public R reScheduleWorkOrders(@RequestBody SearchScheduleData inData){
schedulingService.reScheduleWorkOrders(inData);
return R.ok()
.put("code", 200)
.put("msg", "操作成功!");
}

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

@ -109,6 +109,7 @@ public class SearchScheduleData extends BaseData {
private boolean newRollFlag;//是否是新卷
private String specifiedTime;//是否制定排产的时间
private Float scheduledQty;//排产的数量
private int waitTimes;//等待时间
public SearchScheduleData() {
}
@ -744,4 +745,12 @@ public class SearchScheduleData extends BaseData {
public void setScheduledQty(Float scheduledQty) {
this.scheduledQty = scheduledQty;
}
public int getWaitTimes() {
return waitTimes;
}
public void setWaitTimes(int waitTimes) {
this.waitTimes = waitTimes;
}
}

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

@ -37,4 +37,22 @@ public interface SchedulingService {
* @return void
**/
void cancelSoSchedule(SearchScheduleData inData);
/**
* @Author LR
* @Description 插入等待的派工单
* @DateTime 2022/3/2 15:42
* @Param [inData]
* @return void
**/
void addWaitSchedule(SearchScheduleData inData);
/**
* @Author LR
* @Description 重新排产
* @DateTime 2022/3/2 15:53
* @Param [inData]
* @return void
**/
void reScheduleWorkOrders(SearchScheduleData inData);
}

26
src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java

@ -48,11 +48,25 @@ public class ScheduleServiceImpl implements ScheduleService {
@Override
public List<ShopOrderOutData> getShopOrderList(SearchScheduleData inData) {
//公共参数
String workCenterNo = inData.getWorkCenterNo();
String resourceId = inData.getResourceId();
//判断是否查询数据源
if(null == workCenterNo || null == resourceId || "".equals(workCenterNo) || "".equals(resourceId)){
return new ArrayList<ShopOrderOutData>();
}
return scheduleMapper.getShopOrderList(inData);
}
@Override
public List<ScheduleData> getOrderScheduleList(SearchScheduleData inData) {
//公共参数
String workCenterNo = inData.getWorkCenterNo();
String resourceId = inData.getResourceId();
//判断是否查询数据源
if(null == workCenterNo || null == resourceId || "".equals(workCenterNo) || "".equals(resourceId)){
return new ArrayList<ScheduleData>();
}
return scheduleMapper.getOrderScheduleList(inData);
}
@ -81,6 +95,10 @@ public class ScheduleServiceImpl implements ScheduleService {
@Override
public OperatorOutData getOperatorData(OperatorOutData inData) {
String operatorId = inData.getOperatorId();
if(null == operatorId || "".equals(operatorId)){
throw new RRException("操作员编码不能为空!");
}
//查到需要做判断
OperatorOutData operatorData = scheduleMapper.getOperatorData(inData);
//判断是否存在
@ -768,8 +786,14 @@ public class ScheduleServiceImpl implements ScheduleService {
procedureMapper.execProduceData("refreshSfdcMaterialHistRollNo", params);
//刷新工具表的记录
procedureMapper.execProduceData("refreshSfdcToolHistRollNo", params);
List<Object> otherParams = new ArrayList<>();
otherParams.add(site);
otherParams.add(orderNo);
otherParams.add(itemNo);
otherParams.add(seqNo);
//修改派工单的状态
procedureMapper.execProduceData("startProduceSchedule", params);
procedureMapper.execProduceData("startProduceSchedule", otherParams);
//刷新表的表的时间记录数据
params.add(workCenterNo);

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

@ -149,4 +149,119 @@ public class SchedulingServiceImpl implements SchedulingService {
//处理返回的结果
return resultList.get(0);
}
@Override
@Transactional
public void addWaitSchedule(SearchScheduleData inData) {
//公共参数
String site = inData.getSite();
String orderNo = inData.getOrderNo();
Integer itemNo = inData.getItemNo();
String seqNo = inData.getSeqNo();
String workCenterNo = inData.getWorkCenterNo();
String resourceId = inData.getResourceId();
Float scheduledQty = inData.getScheduledQty();
String specifiedTime = inData.getSpecifiedTime();
Date scheduleDate = inData.getScheduleDate();
Date scheduleTime = inData.getScheduleTime();
String username = inData.getUsername();
int waitTimes = inData.getWaitTimes();
double waitHour = waitTimes/60.0;
//获取当前加工中心机台对应的calendarId
Map<String, Object> calendarMap = scheduleMapper.getCalendarId(inData);
//判断是否存在当前的加工中心机台数据
if (calendarMap == null || calendarMap.size() == 0) {
throw new RRException("班次异常!");
}
//设置查询的条件
String calendarId = String.valueOf(calendarMap.get("calendarId"));
//调用存储过程 取消排产的派工单
Map<String, Object> resultMap = this.addWaitSchedule(site, "9999", 10, workCenterNo, resourceId, waitHour, specifiedTime, scheduleDate, scheduleTime, calendarId, username);
//判断是否检验成功
String resultCode = String.valueOf(resultMap.get("resultCode"));
if ("400".equalsIgnoreCase(resultCode)) {
String msg = String.valueOf(resultMap.get("resultMsg"));
throw new RRException(msg);
}
}
/**
* @Author LR
* @Description 插入等待的派工单信息
* @DateTime 2022/3/2 15:49
* @Param [site, orderNo, itemNo, workCenterNo, resourceId, waitHour, specifiedTime, scheduleDate, scheduleTime, calendarId, username]
* @return java.util.Map<java.lang.String,java.lang.Object>
**/
public Map<String, Object> addWaitSchedule(String site, String orderNo, Integer itemNo, String workCenterNo, String resourceId, double waitHour,
String specifiedTime, Date scheduleDate, Date scheduleTime, String calendarId, String username) {
List<Object> params = new ArrayList<>();
params.add(site);
params.add(orderNo);
params.add(itemNo);
params.add(workCenterNo);
params.add(resourceId);
params.add(waitHour);
params.add(specifiedTime);
params.add(scheduleDate);
params.add(scheduleTime);
params.add(calendarId);
params.add(username);
//调用存储过程
List<Map<String, Object>> resultList = procedureMapper.getProcedureData("soschedule_newwaitjob", params);
//处理返回的结果
return resultList.get(0);
}
@Override
@Transactional
public void reScheduleWorkOrders(SearchScheduleData inData) {
//公共参数
String site = inData.getSite();
String workCenterNo = inData.getWorkCenterNo();
String resourceId = inData.getResourceId();
String specifiedTime = inData.getSpecifiedTime();
Date scheduleDate = inData.getScheduleDate();
Date scheduleTime = inData.getScheduleTime();
String username = inData.getUsername();
//获取当前加工中心机台对应的calendarId
Map<String, Object> calendarMap = scheduleMapper.getCalendarId(inData);
//判断是否存在当前的加工中心机台数据
if (calendarMap == null || calendarMap.size() == 0) {
throw new RRException("班次异常!");
}
//设置查询的条件
String calendarId = String.valueOf(calendarMap.get("calendarId"));
//调用存储过程 重新排产的派工单
Map<String, Object> resultMap = this.reScheduleWorkOrders(site, specifiedTime, scheduleDate, scheduleTime, calendarId, workCenterNo, resourceId);
//判断是否检验成功
String resultCode = String.valueOf(resultMap.get("resultCode"));
if ("400".equalsIgnoreCase(resultCode)) {
String msg = String.valueOf(resultMap.get("resultMsg"));
throw new RRException(msg);
}
}
/**
* @Author LR
* @Description 重新排产派工单
* @DateTime 2022/3/2 15:59
* @Param [site, specifiedTime, scheduleDate, scheduleTime, calendarId, workCenterNo, resourceId]
* @return java.util.Map<java.lang.String,java.lang.Object>
**/
public Map<String, Object> reScheduleWorkOrders(String site, String specifiedTime, Date scheduleDate, Date scheduleTime, String calendarId, String workCenterNo, String resourceId) {
List<Object> params = new ArrayList<>();
params.add(site);
params.add(specifiedTime);
params.add(scheduleDate);
params.add(scheduleTime);
params.add(calendarId);
params.add(workCenterNo);
params.add(resourceId);
//调用存储过程
List<Map<String, Object>> resultList = procedureMapper.getProcedureData("soschedule_reschedulejob", params);
//处理返回的结果
return resultList.get(0);
}
}

18
src/main/resources/mapper/schedule/ScheduleMapper.xml

@ -74,15 +74,11 @@
<if test="site != null and site != ''">
AND T.Site like '%' + #{site} + '%'
</if>
<if test="workCenterNo != null and workCenterNo != ''">
AND T.WorkCenterNo like '%' + #{workCenterNo} + '%'
</if>
AND T.WorkCenterNo like '%' + #{workCenterNo} + '%'
<if test="scheduledFlag != null and scheduledFlag != ''">
AND Isnull(S1.ScheduledFlag, 'Y') = #{scheduledFlag}
</if>
<if test="resourceId != null and resourceId != ''">
AND dbo.Get_SOOpsScheduleAvailResource(T.Site,T.OrderNo,T.WorkCenterNo,T.ItemNo) like '%' + #{resourceId} + '(%'
</if>
AND dbo.Get_SOOpsScheduleAvailResource(T.Site,T.OrderNo,T.WorkCenterNo,T.ItemNo) like '%' + #{resourceId} + '(%'
</where>
Order by D.NeedDate
</select>
@ -111,14 +107,10 @@
<where>
T.Site=S.Site and T.OrderNo=S.OrderNo and T.ItemNo=S.ItemNo and E.Site=T.Site and E.LinkedSeqNo=T.SeqNo
<if test="site != null and site != ''">
AND E.Site like '%' + #{site} + '%'
</if>
<if test="workCenterNo != null and workCenterNo != ''">
AND T.S_WorkCenterNo like '%' + #{workCenterNo} + '%'
</if>
<if test="resourceId != null and resourceId != ''">
AND E.ResourceID like '%' + #{resourceId} + '%'
AND E.Site like #{site}
</if>
AND T.S_WorkCenterNo like #{workCenterNo}
AND E.ResourceID like #{resourceId}
</where>
Order by E.S_ScheduledSeqNo
</select>

Loading…
Cancel
Save