Browse Source

排产拓展 2022年11月24日 sxm

master
[li_she] 4 years ago
parent
commit
d21050ed22
  1. 16
      src/main/java/com/gaotao/modules/schedule/controller/SchedulingController.java
  2. 22
      src/main/java/com/gaotao/modules/schedule/data/ShopOrderOutData.java
  3. 9
      src/main/java/com/gaotao/modules/schedule/service/SchedulingService.java
  4. 102
      src/main/java/com/gaotao/modules/schedule/service/impl/SchedulingServiceImpl.java
  5. 3
      src/main/resources/mapper/schedule/SchedulingMapper.xml

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

@ -5,7 +5,6 @@ import com.gaotao.modules.purchasingManagement.entity.ViewSapPoData;
import com.gaotao.modules.schedule.data.*;
import com.gaotao.modules.schedule.service.SchedulingService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@ -601,4 +600,19 @@ public class SchedulingController {
}
/**
* @author: sxm
* @description: 拓展排产批量排产
* @param [inData]
* @return: com.gaotao.common.utils.R
* @date: 2022/11/23 14:13
*/
@RequestMapping(value = "batchScheduleOrderWithExpand")
public R batchScheduleOrderWithExpand(@RequestBody List<SearchScheduleData> inData){
schedulingService.batchScheduleOrderWithExpand(inData);
return R.ok()
.put("code", 200)
.put("msg", "操作成功!");
}
}

22
src/main/java/com/gaotao/modules/schedule/data/ShopOrderOutData.java

@ -27,9 +27,13 @@ public class ShopOrderOutData extends BaseShopOrderData {
private Date enterDate;
private String availResource;//
private String scheduledFlag;//
private String resourceId;
private String routingRevNo;
private Float qtyScheduled;
private Float qtyToSchedule;
private Float scheduledQty;
private Float qtyScheduledPreOps;
private String oriSOOrderNo;
private String custPartNo;//
@ -49,6 +53,14 @@ public class ShopOrderOutData extends BaseShopOrderData {
private String resourceList; // 可用机台列表
public Float getScheduledQty() {
return scheduledQty;
}
public void setScheduledQty(Float scheduledQty) {
this.scheduledQty = scheduledQty;
}
public String getResourceList() {
return resourceList;
}
@ -57,6 +69,16 @@ public class ShopOrderOutData extends BaseShopOrderData {
this.resourceList = resourceList;
}
@Override
public String getResourceId() {
return resourceId;
}
@Override
public void setResourceId(String resourceId) {
this.resourceId = resourceId;
}
public ShopOrderOutData() {
}

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

@ -346,4 +346,13 @@ public interface SchedulingService {
* @version 1.0
*/
int getScheduleNextItemNo(SearchScheduleData inData);
/**
* @author: sxm
* @description: 批量排产
* @param [inData]
* @return: void
* @date: 2022/11/23 14:13
*/
void batchScheduleOrderWithExpand(List<SearchScheduleData> inData);
}

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

@ -10,6 +10,7 @@ import com.gaotao.modules.schedule.data.*;
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.ScheduleService;
import com.gaotao.modules.schedule.service.SchedulingService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -36,6 +37,9 @@ public class SchedulingServiceImpl implements SchedulingService {
@Autowired
private TransNoDao transNoDao;
@Autowired
private ScheduleService scheduleService;
@Override
public String getCurrentWorkCenterNoByResourceId(SearchScheduleData inData) {
String workCenterNo = schedulingMapper.getCurrentWorkCenterNoByResourceId(inData);
@ -79,11 +83,11 @@ public class SchedulingServiceImpl implements SchedulingService {
}
/**
* @return java.util.Map<java.lang.String, java.lang.Object>
* @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) {
@ -145,10 +149,11 @@ public class SchedulingServiceImpl implements SchedulingService {
/**
* TODO 执行存储过程 --刷新排产的时间和序号的存储过程
*
* @return java.util.Map<java.lang.String, java.lang.Object>
* @author LR
* @date 2022/3/14 15:01
* @Param [site, workCenterNo, resourceId, scheduleSeqNo, planStartTime]
* @return java.util.Map<java.lang.String, java.lang.Object>
**/
public Map<String, Object> cancelSoScheduleRefreshJob(String site, String workCenterNo, String resourceId, Integer scheduleSeqNo, Date planStartTime) {
List<Object> params = new ArrayList<>();
@ -164,11 +169,11 @@ public class SchedulingServiceImpl implements SchedulingService {
}
/**
* @return java.util.Map<java.lang.String, java.lang.Object>
* @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<>();
@ -222,11 +227,11 @@ public class SchedulingServiceImpl implements SchedulingService {
}
/**
* @return java.util.Map<java.lang.String, java.lang.Object>
* @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) {
@ -279,11 +284,11 @@ public class SchedulingServiceImpl implements SchedulingService {
}
/**
* @return java.util.Map<java.lang.String, java.lang.Object>
* @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<>();
@ -321,10 +326,11 @@ public class SchedulingServiceImpl implements SchedulingService {
/**
* TODO 向上移动派工单
*
* @return java.util.Map<java.lang.String, java.lang.Object>
* @author LR
* @date 2022/3/14 15:28
* @Param [site, workCenterNo, resourceId, scheduleSeqNo, direction]
* @return java.util.Map<java.lang.String, java.lang.Object>
**/
public Map<String, Object> moveUpSchedule(String site, String workCenterNo, String resourceId, int scheduleSeqNo, String direction) {
List<Object> params = new ArrayList<>();
@ -360,10 +366,11 @@ public class SchedulingServiceImpl implements SchedulingService {
/**
* TODO 调用存储过程 --向下移动派工单
*
* @return java.util.Map<java.lang.String, java.lang.Object>
* @author LR
* @date 2022/3/14 15:32
* @Param [site, workCenterNo, resourceId, scheduleSeqNo, s]
* @return java.util.Map<java.lang.String, java.lang.Object>
**/
public Map<String, Object> moveDownSchedule(String site, String workCenterNo, String resourceId, int scheduleSeqNo, String direction) {
List<Object> params = new ArrayList<>();
@ -484,10 +491,11 @@ public class SchedulingServiceImpl implements SchedulingService {
/**
* TODO 校验排产的数量
*
* @return java.util.Map<java.lang.String, java.lang.Object>
* @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<>();
@ -545,10 +553,11 @@ public class SchedulingServiceImpl implements SchedulingService {
/**
* TODO 修改等待派工单以及以下的排产时间
*
* @return java.util.Map<java.lang.String, java.lang.Object>
* @author LR
* @date 2022/3/23 13:25
* @Param [site, workCenterNo, resourceId, scheduledSeqNo]
* @return java.util.Map<java.lang.String, java.lang.Object>
**/
public Map<String, Object> resortScheduleTimes(String site, String workCenterNo, String resourceId, int scheduledSeqNo) {
List<Object> params = new ArrayList<>();
@ -564,10 +573,11 @@ public class SchedulingServiceImpl implements SchedulingService {
/**
* TODO 修改等待派工单时的等待时间
*
* @return java.util.Map<java.lang.String, java.lang.Object>
* @author LR
* @date 2022/3/23 13:18
* @Param [site, orderNo, itemNo, seqNo, waitTimes]
* @return java.util.Map<java.lang.String, java.lang.Object>
**/
public Map<String, Object> updateScheduleWaitTimes(String site, String orderNo, int itemNo, String seqNo, int waitTimes) {
List<Object> params = new ArrayList<>();
@ -615,10 +625,11 @@ public class SchedulingServiceImpl implements SchedulingService {
/**
* TODO 根据工艺路线刷新派工单数据
*
* @return java.util.Map<java.lang.String, java.lang.Object>
* @author LR
* @date 2022/3/23 13:35
* @Param [site, orderNo, itemNo, seqNo, scheduledSeqNo, workCenterNo]
* @return java.util.Map<java.lang.String, java.lang.Object>
**/
public Map<String, Object> refreshScheduleByRouting(String site, String orderNo, int itemNo, String seqNo, int scheduledSeqNo, String workCenterNo) {
List<Object> params = new ArrayList<>();
@ -711,10 +722,11 @@ public class SchedulingServiceImpl implements SchedulingService {
/**
* TODO 调用存储过程 查询工单+工序的可用机台的数据
*
* @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
* @author LR
* @date 2022/4/1 13:56
* @Param [site, orderNo, itemNo]
* @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
**/
public List<Map<String, Object>> getOrderAvailableResource(String site, String orderNo, int itemNo) {
List<Object> params = new ArrayList<>();
@ -793,10 +805,11 @@ public class SchedulingServiceImpl implements SchedulingService {
/**
* TODO 获取分切派工单创建分卷的页面参数
*
* @return java.util.Map<java.lang.String, java.lang.Object>
* @author LR
* @date 2022/4/8 16:57
* @Param [site, partNo, partDesc, customerId, fgPartNo, supplierId]
* @return java.util.Map<java.lang.String, java.lang.Object>
**/
public Map<String, Object> getSplitScheduleCreateRollPageData(String site, String partNo, String partDesc, String customerId, String fgPartNo, String supplierId) {
List<Object> params = new ArrayList<>();
@ -829,10 +842,11 @@ public class SchedulingServiceImpl implements SchedulingService {
/**
* TODO 检查创建分切派工单的分卷
*
* @return java.util.Map<java.lang.String, java.lang.Object>
* @author LR
* @date 2022/4/8 18:12
* @Param [site, customerId, partNo, fgPartNo]
* @return java.util.Map<java.lang.String, java.lang.Object>
**/
public Map<String, Object> checkCreateSplitScheduleSeparateRoll(String site, String customerId, String partNo, String fgPartNo) {
List<Object> params = new ArrayList<>();
@ -896,10 +910,11 @@ public class SchedulingServiceImpl implements SchedulingService {
/**
* TODO 校验通过执行创建分卷的操作
*
* @return void
* @author LR
* @date 2022/4/8 18:20
* @Param [site, orderNo, itemNo, splitType, supplierId, username, rollQty, rollNums, rollDate, customerId, partNo, fgPartNo, supplierNote, rollNo]
* @return void
**/
public Map<String, Object> createSplitScheduleSeparateRoll(String site, String orderNo, int itemNo, String splitType, String supplierId, String username, Float rollQty, int rollNums,
String rollDate, String customerId, String partNo, String fgPartNo, String supplierNote, String rollNo) {
@ -1022,10 +1037,11 @@ public class SchedulingServiceImpl implements SchedulingService {
/**
* TODO 执行transData CRollInfo数据
*
* @return void
* @author LR
* @date 2022/4/28 13:58
* @Param [site, orderNo, rollDate, siPartNo, sirPartNo, siTransNo, sirTransNo, username]
* @return void
**/
public List<Map<String, Object>> transformRollPartProcessCrollInfoAndTransData(String site, String orderNo, String rollDate, String siPartNo, String sirPartNo, String siTransNo, String sirTransNo, String username) {
List<Object> params = new ArrayList<>();
@ -1042,10 +1058,11 @@ public class SchedulingServiceImpl implements SchedulingService {
/**
* TODO 校验是否可以卷转换物料
*
* @return void
* @author LR
* @date 2022/4/28 13:47
* @Param [site, orderNo, username]
* @return void
**/
public Map<String, Object> checkTransformRollPart(String site, String orderNo, String username) {
List<Object> params = new ArrayList<>();
@ -1084,10 +1101,11 @@ public class SchedulingServiceImpl implements SchedulingService {
/**
* TODO 获取返回派工单的各种权限
*
* @return java.util.Map<java.lang.String, java.lang.Object>
* @author LR
* @date 2022/6/21 14:02
* @Param [site]
* @return java.util.Map<java.lang.String, java.lang.Object>
**/
public Map<String, Object> getScheduleMultiReportSpecialAuth(String site) {
List<Object> params = new ArrayList<>();
@ -1135,11 +1153,11 @@ public class SchedulingServiceImpl implements SchedulingService {
}
/**
* @return void
* @Author LR
* @Description查询派工单--取消排产操作
* @DateTime 2022/8/17 14:39
* @Param [site, orderNo, itemNo, seqNo, workCenterNo, resourceId, lotSize]
* @return void
**/
public void cancelScheduleWithScheduleQuery(String site, String orderNo, int itemNo, String seqNo, String workCenterNo, String resourceId, Float lotSize) {
List<Object> params = new ArrayList<>();
@ -1155,11 +1173,11 @@ public class SchedulingServiceImpl implements SchedulingService {
}
/**
* @return java.util.Map<java.lang.String, java.lang.Object>
* @Author LR
* @Description 查询派工单--取消排产检查校验
* @DateTime 2022/8/17 14:26
* @Param [site, orderNo, itemNo, seqNo]
* @return java.util.Map<java.lang.String,java.lang.Object>
**/
public Map<String, Object> checkCancelScheduleWithScheduleQuery(String site, String orderNo, int itemNo, String seqNo) {
List<Object> params = new ArrayList<>();
@ -1204,4 +1222,48 @@ public class SchedulingServiceImpl implements SchedulingService {
return Integer.parseInt(strItemNo);
}
@Override
@Transactional
public void batchScheduleOrderWithExpand(List<SearchScheduleData> inDatas) {
for (SearchScheduleData inData : inDatas) {
//获取当前的calendarId
Map<String, Object> calendarMap = scheduleService.getCalendarIdByResourceId(inData);
//公共参数
String site = inData.getSite();
String orderNo = inData.getOrderNo();
int itemNo = inData.getItemNo();
String workCenterNo = inData.getWorkCenterNo();
String resourceId = inData.getResourceId();
String username = inData.getUsername();
Date scheduleDate = inData.getScheduleDate();
Date scheduleTime = inData.getScheduleTime();
String specifiedTime = inData.getSpecifiedTime();
boolean checkFlag = inData.isCheckFlag();
Float scheduledQty = inData.getScheduledQty();
String calendarId = calendarMap.get("calendarId").toString();
//判断是否校验总数量
if (checkFlag) {
//调用存储过程 校验数量是否超过上限
Map<String, Object> checkMap = this.checkFQCScheduleWithScheduledQty(site, orderNo, itemNo, scheduledQty);
//判断是否检验成功
String resultCode = String.valueOf(checkMap.get("resultCode"));
if (!"200".equalsIgnoreCase(resultCode)) {
String msg = String.valueOf(checkMap.get("resultMsg"));
throw new XJException(msg, Integer.parseInt(resultCode));
}
}
//验证通过 继续执行排产操作
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 XJException(msg);
}
}
}
}

3
src/main/resources/mapper/schedule/SchedulingMapper.xml

@ -194,7 +194,8 @@
T.QtyScheduled qtyScheduled,(round(T.QtyRequired,3) - Round(T.QtyScheduled,3)) qtyToSchedule, Isnull(S1.QtyScheduled,0.0) qtyScheduledPreOps,
dbo.getScheduleToPlanTime(D.LotSize, T.MachSetupTime, T.MachRunFactor, T.FactorUnit, t.Efficiency) scheduleToPlanTime,
D.OriSOOrderNo oriSOOrderNo, P.Remark custPartNo, 1*t.Efficiency efficiency, D.CostRollUpFlag costRollUpFlag, isnull(S1.QtyApprove,0.0) qtyApprovedPreOps,
d.ManualFlag manualFlag, d.RepairSOFlag repairSOFlag ,dbo.Get_ShopOrderAvailResource( T.Site,T.OrderNo,T.WorkCenterNo,T.ItemNo) resourceList
d.ManualFlag manualFlag, d.RepairSOFlag repairSOFlag ,dbo.Get_ShopOrderAvailResource( T.Site,T.OrderNo,T.WorkCenterNo,T.ItemNo) resourceList,
dbo.Get_FirstShopOrderAvailResource(T.Site,T.OrderNo,T.WorkCenterNo,T.ItemNo) resource_id , (round(T.QtyRequired,3) - Round(T.QtyScheduled,3)) scheduled_qty
from SORouting as T
Left Join ShopOrder as D On T.Site=D.Site and T.OrderNo=D.OrderNo
Left Join Part as P On T.Site=P.Site and T.PartNo=P.PartNo

Loading…
Cancel
Save