From ca4a1efcfb021a3db0866f9be4739da6e05a8f69 Mon Sep 17 00:00:00 2001 From: rui_li <877258667@qq.com> Date: Wed, 16 Mar 2022 17:56:57 +0800 Subject: [PATCH] =?UTF-8?q?FQC=E6=8E=92=E4=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SchedulingController.java | 16 +++ .../modules/schedule/data/OperatorInData.java | 112 ++++++++++++++++++ .../schedule/data/SearchScheduleData.java | 2 + .../schedule/service/SchedulingService.java | 9 ++ .../service/impl/SchedulingServiceImpl.java | 61 ++++++++-- 5 files changed, 192 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/gaotao/modules/schedule/data/OperatorInData.java diff --git a/src/main/java/com/gaotao/modules/schedule/controller/SchedulingController.java b/src/main/java/com/gaotao/modules/schedule/controller/SchedulingController.java index e537ba0..0034b6d 100644 --- a/src/main/java/com/gaotao/modules/schedule/controller/SchedulingController.java +++ b/src/main/java/com/gaotao/modules/schedule/controller/SchedulingController.java @@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; +import java.util.Map; /** * @Author LR @@ -183,6 +184,21 @@ public class SchedulingController { .put("total", resultList.size()); } + /** + * TODO FQC操作员排产 + * @author LR + * @date 2022/3/16 10:11 + * @Param [inMap] + * @return com.gaotao.common.utils.R + **/ + @RequestMapping(value = "scheduleFqcOperators") + public R scheduleFqcOperators(@RequestBody Map inMap){ + schedulingService.scheduleFqcOperators(inMap); + return R.ok() + .put("code", 200) + .put("msg", "操作成功!"); + } + diff --git a/src/main/java/com/gaotao/modules/schedule/data/OperatorInData.java b/src/main/java/com/gaotao/modules/schedule/data/OperatorInData.java new file mode 100644 index 0000000..4fb8c34 --- /dev/null +++ b/src/main/java/com/gaotao/modules/schedule/data/OperatorInData.java @@ -0,0 +1,112 @@ +package com.gaotao.modules.schedule.data; + +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.ibatis.type.Alias; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @author LR + * @Title: operatorData + * 操作员信息 + * @Date 2021/11/4 11:16 + */ +@Alias("OperatorInData") +public class OperatorInData extends BaseData { + private String username; + private String operatorId; + private String operatorName; + private String status; + private String showFlag; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date lastScheduledTime;//最后排产时间 + private Float efficiency;//效率 + private Float qtyToSchedule;//带排产数量 + private String calendarId;//工作日历 + private String virturlFlag;//虚拟机台 + + public OperatorInData() { + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getOperatorId() { + return operatorId; + } + + public void setOperatorId(String operatorId) { + this.operatorId = operatorId; + } + + public String getOperatorName() { + return operatorName; + } + + public void setOperatorName(String operatorName) { + this.operatorName = operatorName; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getShowFlag() { + return showFlag; + } + + public void setShowFlag(String showFlag) { + this.showFlag = showFlag; + } + + public Date getLastScheduledTime() { + return lastScheduledTime; + } + + public void setLastScheduledTime(Date lastScheduledTime) { + this.lastScheduledTime = lastScheduledTime; + } + + public Float getEfficiency() { + return efficiency; + } + + public void setEfficiency(Float efficiency) { + this.efficiency = efficiency; + } + + public Float getQtyToSchedule() { + return qtyToSchedule; + } + + public void setQtyToSchedule(Float qtyToSchedule) { + this.qtyToSchedule = qtyToSchedule; + } + + public String getCalendarId() { + return calendarId; + } + + public void setCalendarId(String calendarId) { + this.calendarId = calendarId; + } + + public String getVirturlFlag() { + return virturlFlag; + } + + public void setVirturlFlag(String virturlFlag) { + this.virturlFlag = virturlFlag; + } +} diff --git a/src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java b/src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java index 302b203..c1b1332 100644 --- a/src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java +++ b/src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java @@ -1,5 +1,6 @@ package com.gaotao.modules.schedule.data; +import com.alibaba.fastjson.annotation.JSONField; import com.fasterxml.jackson.annotation.JsonFormat; import org.apache.ibatis.type.Alias; import org.springframework.format.annotation.DateTimeFormat; @@ -25,6 +26,7 @@ public class SearchScheduleData extends BaseData { private Date scheduleDate; @DateTimeFormat(pattern = "HH:mm") @JsonFormat(pattern = "HH:mm", timezone = "GMT+8") + @JSONField(format = "HH:mm") private Date scheduleTime;//排产的时分秒 @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") diff --git a/src/main/java/com/gaotao/modules/schedule/service/SchedulingService.java b/src/main/java/com/gaotao/modules/schedule/service/SchedulingService.java index c450d6e..5c6523e 100644 --- a/src/main/java/com/gaotao/modules/schedule/service/SchedulingService.java +++ b/src/main/java/com/gaotao/modules/schedule/service/SchedulingService.java @@ -7,6 +7,7 @@ import com.gaotao.modules.schedule.data.SearchScheduleData; import com.gaotao.modules.schedule.data.ShopOrderOutData; import java.util.List; +import java.util.Map; /** * @Author LR @@ -106,4 +107,12 @@ public interface SchedulingService { **/ List getOperatorListWithFqc(SearchScheduleData inData); + /** + * TODO FQC操作员排产 + * @author LR + * @date 2022/3/16 10:15 + * @Param [inMap] + * @return java.util.Map + **/ + void scheduleFqcOperators(Map inMap); } diff --git a/src/main/java/com/gaotao/modules/schedule/service/impl/SchedulingServiceImpl.java b/src/main/java/com/gaotao/modules/schedule/service/impl/SchedulingServiceImpl.java index 83fc4f5..7ae5668 100644 --- a/src/main/java/com/gaotao/modules/schedule/service/impl/SchedulingServiceImpl.java +++ b/src/main/java/com/gaotao/modules/schedule/service/impl/SchedulingServiceImpl.java @@ -1,10 +1,9 @@ package com.gaotao.modules.schedule.service.impl; +import com.alibaba.fastjson.JSON; import com.gaotao.common.exception.RRException; -import com.gaotao.modules.schedule.data.OperatorOutData; -import com.gaotao.modules.schedule.data.ScheduleData; -import com.gaotao.modules.schedule.data.SearchScheduleData; -import com.gaotao.modules.schedule.data.ShopOrderOutData; +import com.gaotao.modules.pda.dao.InventoryDao; +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; @@ -13,10 +12,7 @@ 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; +import java.util.*; /** * @Author LR @@ -392,4 +388,53 @@ public class SchedulingServiceImpl implements SchedulingService { return schedulingMapper.getOrderScheduleListWithFqc(inData); } + @Override + @Transactional + public void scheduleFqcOperators(Map inMap) { + String strPageData = String.valueOf(inMap.get("pageData")); + SearchScheduleData pageData = JSON.parseObject(strPageData, SearchScheduleData.class); + String strOperatorlList = String.valueOf(inMap.get("operatorList")); + List operatorList = JSON.parseArray(strOperatorlList, OperatorInData.class); + if(operatorList.size() == 0){ + throw new RRException("暂无需要排产的数据!"); + } + //公共参数 + String site = pageData.getSite(); + String orderNo = pageData.getOrderNo(); + int itemNo = pageData.getItemNo(); + String workCenterNo = pageData.getWorkCenterNo(); + String username = pageData.getUsername(); + //循环插入派工单 + for(OperatorInData operatorData : operatorList){ + String resourceId = operatorData.getOperatorId(); + Date scheduleDate = operatorData.getLastScheduledTime(); + float scheduledQty = operatorData.getQtyToSchedule(); + pageData.setResourceId(resourceId); + //获取当前加工中心机台对应的calendarId + Map calendarMap = scheduleMapper.getCalendarId(pageData); + //判断是否存在当前的加工中心机台数据 + if (calendarMap == null || calendarMap.size() == 0) { + throw new RRException("班次异常!"); + } + //设置查询的条件 + String calendarId = String.valueOf(calendarMap.get("calendarId")); + //调用存储过程 执行排产的方法 + Map resultMap = null; + //针对null特殊处理 + if(null == scheduleDate){ + Date currentScheduleDate = pageData.getScheduleDate(); + Date scheduleTime = pageData.getScheduleTime(); + resultMap = this.scheduleWorkOrder(site, orderNo, itemNo, workCenterNo, resourceId, scheduledQty, "Y", currentScheduleDate, scheduleTime, calendarId, username); + }else{ + resultMap = this.scheduleWorkOrder(site, orderNo, itemNo, workCenterNo, resourceId, scheduledQty, "Y", scheduleDate, scheduleDate, calendarId, username); + } + //判断是否检验成功 + String resultCode = String.valueOf(resultMap.get("resultCode")); + if ("400".equalsIgnoreCase(resultCode)) { + String msg = String.valueOf(resultMap.get("resultMsg")); + throw new RRException(msg); + } + } + } + }