Browse Source

排产的 排产 取消 分批排产

master
Rui_Li 4 years ago
parent
commit
13952e4787
  1. 31
      src/main/java/com/gaotao/modules/schedule/controller/SchedulingController.java
  2. 29
      src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java
  3. 19
      src/main/java/com/gaotao/modules/schedule/service/SchedulingService.java
  4. 120
      src/main/java/com/gaotao/modules/schedule/service/impl/SchedulingServiceImpl.java
  5. 2
      src/main/resources/mapper/schedule/ScheduleMapper.xml

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

@ -42,6 +42,37 @@ public class SchedulingController {
.put("workCenterNo", workCenterNo);
}
/**
* @Author LR
* @Description 排产生产工单
* @DateTime 2022/3/1 11:08
* @Param [inData]
* @return com.gaotao.common.utils.R
**/
@PostMapping(value = "scheduleWorkOrder")
public R scheduleWorkOrder(@RequestBody SearchScheduleData inData){
schedulingService.scheduleWorkOrder(inData);
return R.ok()
.put("code", 200)
.put("msg", "操作成功!");
}
/**
* @Author LR
* @Description 取消排产操作
* @DateTime 2022/3/1 14:45
* @Param [inData]
* @return com.gaotao.common.utils.R
**/
@PostMapping(value = "cancelSoSchedule")
public R cancelSoSchedule(@RequestBody SearchScheduleData inData){
schedulingService.cancelSoSchedule(inData);
return R.ok()
.put("code", 200)
.put("msg", "操作成功!");
}

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

@ -23,6 +23,9 @@ public class SearchScheduleData extends BaseData {
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date scheduleDate;
@DateTimeFormat(pattern = "HH:mm:ss")
@JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
private Date scheduleTime;//排产的时分秒
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date enterTime1;
@ -104,6 +107,8 @@ public class SearchScheduleData extends BaseData {
private Float rollQty;//当前卷的良品数量
private Integer rollNums;//当前卷的数量
private boolean newRollFlag;//是否是新卷
private String specifiedTime;//是否制定排产的时间
private Float scheduledQty;//排产的数量
public SearchScheduleData() {
}
@ -715,4 +720,28 @@ public class SearchScheduleData extends BaseData {
public void setOperatorName(String operatorName) {
this.operatorName = operatorName;
}
public Date getScheduleTime() {
return scheduleTime;
}
public void setScheduleTime(Date scheduleTime) {
this.scheduleTime = scheduleTime;
}
public String getSpecifiedTime() {
return specifiedTime;
}
public void setSpecifiedTime(String specifiedTime) {
this.specifiedTime = specifiedTime;
}
public Float getScheduledQty() {
return scheduledQty;
}
public void setScheduledQty(Float scheduledQty) {
this.scheduledQty = scheduledQty;
}
}

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

@ -1,5 +1,6 @@
package com.gaotao.modules.schedule.service;
import com.gaotao.common.exception.RRException;
import com.gaotao.modules.schedule.data.SearchScheduleData;
/**
@ -18,4 +19,22 @@ public interface SchedulingService {
* @return java.lang.String
**/
String getCurrentWorkCenterNoByResourceId(SearchScheduleData inData);
/**
* @Author LR
* @Description 排产生产工单
* @DateTime 11:10
* @Param [inData]
* @return void
**/
void scheduleWorkOrder(SearchScheduleData inData);
/**
* @Author LR
* @Description 取消排产操作
* @DateTime 2022/3/1 14:50
* @Param [inData]
* @return void
**/
void cancelSoSchedule(SearchScheduleData inData);
}

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

@ -2,10 +2,18 @@ package com.gaotao.modules.schedule.service.impl;
import com.gaotao.common.exception.RRException;
import com.gaotao.modules.schedule.data.SearchScheduleData;
import com.gaotao.modules.schedule.mapper.ProcedureMapper;
import com.gaotao.modules.schedule.mapper.ScheduleMapper;
import com.gaotao.modules.schedule.mapper.SchedulingMapper;
import com.gaotao.modules.schedule.service.SchedulingService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @Author LR
@ -19,6 +27,10 @@ public class SchedulingServiceImpl implements SchedulingService {
@Autowired
private SchedulingMapper schedulingMapper;
@Autowired
private ScheduleMapper scheduleMapper;
@Autowired
private ProcedureMapper procedureMapper;
@Override
public String getCurrentWorkCenterNoByResourceId(SearchScheduleData inData) {
@ -29,4 +41,112 @@ public class SchedulingServiceImpl implements SchedulingService {
}
return workCenterNo;
}
@Override
@Transactional
public void scheduleWorkOrder(SearchScheduleData inData) {
//公共参数
String site = inData.getSite();
String orderNo = inData.getOrderNo();
Integer itemNo = inData.getItemNo();
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();
//获取当前加工中心机台对应的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.scheduleWorkOrder(site, orderNo, itemNo, workCenterNo, resourceId, scheduledQty, 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/1 11:25
* @Param [site, orderNo, itemNo, workCenterNo, resourceId, scheduledQty, specifiedTime, scheduleDate, scheduleTime, calendarId, username]
* @return java.util.Map<java.lang.String,java.lang.Object>
**/
public Map<String, Object> scheduleWorkOrder(String site, String orderNo, Integer itemNo, String workCenterNo, String resourceId, Float scheduledQty,
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(scheduledQty);
params.add(specifiedTime);
params.add(scheduleDate);
params.add(scheduleTime);
params.add(calendarId);
params.add(username);
//调用存储过程
List<Map<String, Object>> resultList = procedureMapper.getProcedureData("soschedule_newjob", params);
//处理返回的结果
return resultList.get(0);
}
@Override
@Transactional
public void cancelSoSchedule(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();
//调用存储过程 取消排产的派工单
Map<String, Object> resultMap = this.cancelSoSchedule(site, orderNo, itemNo, seqNo, workCenterNo, resourceId, scheduledQty);
//判断是否检验成功
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/1 14:53
* @Param [site, orderNo, itemNo, seqNo, workCenterNo, resourceId, scheduledQty]
* @return java.util.Map<java.lang.String,java.lang.Object>
**/
public Map<String, Object> cancelSoSchedule(String site, String orderNo, Integer itemNo, String seqNo, String workCenterNo, String resourceId, Float scheduledQty) {
List<Object> params = new ArrayList<>();
params.add(site);
params.add(orderNo);
params.add(itemNo);
params.add(seqNo);
params.add(workCenterNo);
params.add(resourceId);
params.add(scheduledQty);
//调用存储过程
List<Map<String, Object>> resultList = procedureMapper.getProcedureData("soschedule_canceljob", params);
//处理返回的结果
return resultList.get(0);
}
}

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

@ -90,7 +90,7 @@
<!--按照条件查询工单的数据-->
<select id="getOrderScheduleList" parameterType="SearchScheduleData" resultType="ScheduleData">
select T.Site site, T.OrderNo orderNo, T.ItemNo itemNo, S.OperationDesc itemDesc, S.PartNo partNo, P.PartDescription partDesc,
P.Spec spec, T.QtyRequired lotSize, T.QtyReported qtyReported, D.NeedDate needDate, S.PreItemNo preItemNo, S1.OperationDesc preItemDesc,
P.Spec spec, T.QtyRequired qtyRequired, T.QtyReported qtyReported, D.NeedDate needDate, S.PreItemNo preItemNo, S1.OperationDesc preItemDesc,
S1.ScheduledFlag preScheduledFlag, S.NextItemNo nextItemNo, S2.OperationDesc nextItemDesc, S2.ScheduledFlag nextScheduledFlag,
D.CustomerID customerId, dbo.Get_CustomerDesc(D.Site,D.CustomerID) customerName, D.EnterDate enterDate,
dbo.Get_SOOpsScheduleAvailResource(T.Site,S.OrderNo,T.S_WorkCenterNo,T.ItemNo) availResource, T.S_WorkCenterNo workCenterNo,

Loading…
Cancel
Save