Browse Source

生产订单排产 产量报告 结束卷操作 等待对接

master
rui_li 4 years ago
parent
commit
261b07c295
  1. 89
      src/main/java/com/gaotao/modules/schedule/controller/ScheduleController.java
  2. 54
      src/main/java/com/gaotao/modules/schedule/dao/ScheduleMapper.java
  3. 37
      src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java
  4. 52
      src/main/java/com/gaotao/modules/schedule/data/SfdcData.java
  5. 54
      src/main/java/com/gaotao/modules/schedule/service/ScheduleService.java
  6. 69
      src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java
  7. 171
      src/main/resources/mapper/schedule/ScheduleMapper.xml

89
src/main/java/com/gaotao/modules/schedule/controller/ScheduleController.java

@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
* 生产订单排产
@ -278,7 +279,95 @@ public class ScheduleController {
.put("total", resultList.size());
}
/**
* TODO 获取卷的报工数据
* @author LR
* @date 2021/11/25 18:02
* @param inData
* @return com.gaotao.common.utils.R
**/
@RequestMapping(value = "getSfdcDataByCon")
public R getSfdcDataByCon(@RequestBody SearchScheduleData inData){
List<SfdcData> resultList = scheduleService.getSfdcDataByCon(inData);
return R.ok()
.put("msg", "操作成功!")
.put("rows", resultList)
.put("total", resultList.size());
}
/**
* TODO 查询sfdc_rolls表中的汇总报工数据
* @author LR
* @date 2021/11/26 16:13
* @param inData
* @return com.gaotao.common.utils.R
**/
@RequestMapping(value = "getSfdcRollReportedQty")
public R getSfdcRollReportedQty(@RequestBody SearchScheduleData inData){
Float reportedQty = scheduleService.getSfdcRollReportedQty(inData);
return R.ok()
.put("msg", "操作成功!")
.put("reportedQty", reportedQty);
}
/**
* TODO 查询当前是否存在报工的数据
* @author LR
* @date 2021/11/26 16:14
* @param inData
* @return com.gaotao.common.utils.R
**/
@RequestMapping(value = "countSfdcRollByRollNo")
public R countSfdcRollByRollNo(@RequestBody SearchScheduleData inData){
Integer countNums = scheduleService.countSfdcRollByRollNo(inData);
return R.ok()
.put("msg", "操作成功!")
.put("countNums", countNums);
}
/**
* TODO 查询报告的不良数据
* @author LR
* @date 2021/11/26 16:17
* @param inData
* @return com.gaotao.common.utils.R
**/
@RequestMapping(value = "getSfdcDefectDefectedQty")
public R getSfdcDefectDefectedQty(@RequestBody SearchScheduleData inData){
Float defectedQty = scheduleService.getSfdcDefectDefectedQty(inData);
return R.ok()
.put("msg", "操作成功!")
.put("defectedQty", defectedQty);
}
/**
* TODO 查询sfdc_time的时间汇总数据
* @author LR
* @date 2021/11/26 16:20
* @param inData
* @return com.gaotao.common.utils.R
**/
@RequestMapping(value = "countSfdcTimeQty")
public R countSfdcTimeQty(@RequestBody SearchScheduleData inData){
Map<String, Object> result = scheduleService.countSfdcTimeQty(inData);
return R.ok()
.put("msg", "操作成功!")
.put("row", result);
}
/**
* TODO 查询sfdc_time的最大和最小以及一些汇总数据
* @author LR
* @date 2021/11/26 16:21
* @param inData
* @return com.gaotao.common.utils.R
**/
public R getSfdcTimeMaxAndMinTime(@RequestBody SearchScheduleData inData){
Map<String, Object> result = scheduleService.getSfdcTimeMaxAndMinTime(inData);
return R.ok()
.put("msg", "操作成功!")
.put("row", result);
}
}

54
src/main/java/com/gaotao/modules/schedule/dao/ScheduleMapper.java

@ -5,6 +5,7 @@ import com.gaotao.modules.shopOrder.entity.OperatorData;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
/**
* @author LR
@ -177,4 +178,57 @@ public interface ScheduleMapper {
List<SfdcRollData> getSfdcRollByCon(SearchScheduleData inData);
/**
* TODO 获取卷的报工数据
* @author LR
* @date 2021/11/25 18:04
* @param inData
* @return java.util.List<com.gaotao.modules.schedule.data.SfdcData>
**/
List<SfdcData> getSfdcDataByCon(SearchScheduleData inData);
/**
* TODO 查询sfdcRolls表的汇总数据
* @author LR
* @date 2021/11/26 16:31
* @param inData
* @return java.lang.Float
**/
Float getSfdcRollReportedQty(SearchScheduleData inData);
/**
* TODO 统计sfdcRolls表的卷数
* @author LR
* @date 2021/11/26 16:32
* @param inData
* @return java.lang.Integer
**/
Integer countSfdcRollByRollNo(SearchScheduleData inData);
/**
* TODO 查询sfdcDefect不良数据
* @author LR
* @date 2021/11/26 16:32
* @param inData
* @return java.lang.Float
**/
Float getSfdcDefectDefectedQty(SearchScheduleData inData);
/**
* TODO 统计sfdcTime时间数据
* @author LR
* @date 2021/11/26 16:33
* @param inData
* @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
**/
List<Map<String, Object>> countSfdcTimeQty(SearchScheduleData inData);
/**
* TODO 获取sfdcTime最大和最小时间数据
* @author LR
* @date 2021/11/26 16:34
* @param inData
* @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
**/
List<Map<String, Object>> getSfdcTimeMaxAndMinTime(SearchScheduleData inData);
}

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

@ -47,6 +47,11 @@ public class SearchScheduleData extends BaseData {
private String closedFlag;//是否关闭 Y N
private String rollNo;//当前上机卷的数据
private String referenceCustomerId;//关联客户编码
private String finishedFlag;
private String keyRMFlag;
private String histType;
private String switchKey;//管控动态的SQL语句
public SearchScheduleData() {
}
@ -202,4 +207,36 @@ public class SearchScheduleData extends BaseData {
public void setReferenceCustomerId(String referenceCustomerId) {
this.referenceCustomerId = referenceCustomerId;
}
public String getFinishedFlag() {
return finishedFlag;
}
public void setFinishedFlag(String finishedFlag) {
this.finishedFlag = finishedFlag;
}
public String getKeyRMFlag() {
return keyRMFlag;
}
public void setKeyRMFlag(String keyRMFlag) {
this.keyRMFlag = keyRMFlag;
}
public String getHistType() {
return histType;
}
public void setHistType(String histType) {
this.histType = histType;
}
public String getSwitchKey() {
return switchKey;
}
public void setSwitchKey(String switchKey) {
this.switchKey = switchKey;
}
}

52
src/main/java/com/gaotao/modules/schedule/data/SfdcData.java

@ -0,0 +1,52 @@
package com.gaotao.modules.schedule.data;
import org.apache.ibatis.type.Alias;
/**
* @author LR
* @Title: SfdcData
* 报工数据汇总表
* @Date 2021/11/25 16:51
*/
@Alias("SfdcData")
public class SfdcData extends BaseRollData {
private Float approveQty;//良品数量
private Float defectQty;//不良数量
private Float reportedManfTime;//报告制造时间
private Float downtime;//停机时间
public SfdcData() {
}
public Float getApproveQty() {
return approveQty;
}
public void setApproveQty(Float approveQty) {
this.approveQty = approveQty;
}
public Float getDefectQty() {
return defectQty;
}
public void setDefectQty(Float defectQty) {
this.defectQty = defectQty;
}
public Float getReportedManfTime() {
return reportedManfTime;
}
public void setReportedManfTime(Float reportedManfTime) {
this.reportedManfTime = reportedManfTime;
}
public Float getDowntime() {
return downtime;
}
public void setDowntime(Float downtime) {
this.downtime = downtime;
}
}

54
src/main/java/com/gaotao/modules/schedule/service/ScheduleService.java

@ -4,6 +4,7 @@ import com.gaotao.modules.schedule.data.*;
import com.gaotao.modules.shopOrder.entity.OperatorData;
import java.util.List;
import java.util.Map;
/**
* @author LR
@ -157,4 +158,57 @@ public interface ScheduleService {
**/
List<SfdcRollData> getSfdcRollByCon(SearchScheduleData inData);
/**
* TODO 获取卷的报工数据
* @author LR
* @date 2021/11/25 18:03
* @param inData
* @return java.util.List<com.gaotao.modules.schedule.data.SfdcData>
**/
List<SfdcData> getSfdcDataByCon(SearchScheduleData inData);
/**
* TODO 查询sfdc_rolls表中的汇总报工数据
* @author LR
* @date 2021/11/26 16:13
* @param inData
* @return java.lang.Float
**/
Float getSfdcRollReportedQty(SearchScheduleData inData);
/**
* TODO 查询当前是否存在报工的数据
* @author LR
* @date 2021/11/26 16:15
* @param inData
* @return java.lang.Integer
**/
Integer countSfdcRollByRollNo(SearchScheduleData inData);
/**
* TODO 查询报告的不良数据
* @author LR
* @date 2021/11/26 16:18
* @param inData
* @return java.lang.Float
**/
Float getSfdcDefectDefectedQty(SearchScheduleData inData);
/**
* TODO 查询sfdc_time的时间汇总数据
* @author LR
* @date 2021/11/26 16:20
* @param inData
* @return java.util.Map<java.lang.String, java.lang.Object>
**/
Map<String, Object> countSfdcTimeQty(SearchScheduleData inData);
/**
* TODO 查询sfdc_time的最大和最小以及一些汇总数据
* @author LR
* @date 2021/11/26 16:22
* @param inData
* @return java.util.Map<java.lang.String, java.lang.Object>
**/
Map<String, Object> getSfdcTimeMaxAndMinTime(SearchScheduleData inData);
}

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

@ -8,7 +8,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author LR
@ -119,4 +121,71 @@ public class ScheduleServiceImpl implements ScheduleService {
public List<SfdcRollData> getSfdcRollByCon(SearchScheduleData inData) {
return scheduleMapper.getSfdcRollByCon(inData);
}
@Override
public List<SfdcData> getSfdcDataByCon(SearchScheduleData inData) {
return scheduleMapper.getSfdcDataByCon(inData);
}
@Override
public Float getSfdcRollReportedQty(SearchScheduleData inData) {
Float reportedQty = scheduleMapper.getSfdcRollReportedQty(inData);
//判断null
if(reportedQty == null){
reportedQty = 0f;
}
return reportedQty;
}
@Override
public Integer countSfdcRollByRollNo(SearchScheduleData inData) {
Integer countNums = scheduleMapper.countSfdcRollByRollNo(inData);
//判断null
if(countNums == null){
countNums = 0;
}
return countNums;
}
@Override
public Float getSfdcDefectDefectedQty(SearchScheduleData inData) {
Float defectedQty = scheduleMapper.getSfdcDefectDefectedQty(inData);
//判断null
if(defectedQty == null){
defectedQty = 0f;
}
return defectedQty;
}
@Override
public Map<String, Object> countSfdcTimeQty(SearchScheduleData inData) {
//返回数据
Map<String, Object> result = new HashMap<>();
//查询数据
List<Map<String, Object>> resultList = scheduleMapper.countSfdcTimeQty(inData);
//判断是否查询到结果数据
if(resultList.size() > 0){
result = resultList.get(0);
result.put("code", "200");
}else{
result.put("code", "500");
}
return result;
}
@Override
public Map<String, Object> getSfdcTimeMaxAndMinTime(SearchScheduleData inData) {
//返回数据
Map<String, Object> result = new HashMap<>();
//查询数据
List<Map<String, Object>> resultList = scheduleMapper.getSfdcTimeMaxAndMinTime(inData);
//判断是否查询到结果数据
if(resultList.size() > 0){
result = resultList.get(0);
result.put("code", "200");
}else{
result.put("code", "500");
}
return result;
}
}

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

@ -386,6 +386,15 @@
<if test="rollNo != null and rollNo != ''">
AND smh.RollNo = #{rollNo}
</if>
<if test="finishedFlag != null and finishedFlag != ''">
AND smh.FinishFlag = #{finishedFlag}
</if>
<if test="keyRMFlag != null and keyRMFlag != ''">
AND smh.KeyRMFlag = #{keyRMFlag}
</if>
<if test="histType != null and histType != ''">
AND smh.HistType = #{histType}
</if>
</where>
ORDER BY smh.HistSeqNo DESC
</select>
@ -470,7 +479,169 @@
</if>
</where>
ORDER BY sfr.RollNo
</select>
<!--查询报工数据-->
<select id="getSfdcDataByCon" parameterType="SearchScheduleData" resultType="SfdcData">
SELECT SUM (ApproveQty) approveQty, SUM (ReportQty - ApproveQty) defectQty, SUM (ReportedManfTime) reportedManfTime,
SUM (Downtime) downtime
FROM SFDC
<where>
<if test="site != null and site != ''">
AND Site = #{site}
</if>
<if test="orderNo != null and orderNo != ''">
AND OrderNo = #{orderNo}
</if>
<if test="itemNo != null and itemNo != ''">
AND ItemNo = #{itemNo}
</if>
<if test="seqNo != null and seqNo != ''">
AND AssJobSeqNo = #{seqNo}
</if>
<if test="rollNo != null and rollNo != ''">
AND RollNo = #{rollNo}
</if>
</where>
</select>
<!--查询sfdc_roll表的数据-->
<select id="getSfdcRollReportedQty" parameterType="SearchScheduleData" resultType="java.lang.Float">
SELECT SUM(RollQty) reportedQty FROM SFDC_Rolls sfr
<where>
<if test="site != null and site != ''">
AND sfr.Site = #{site}
</if>
<if test="orderNo != null and orderNo != ''">
AND sfr.OrderNo = #{orderNo}
</if>
<if test="itemNo != null and itemNo != ''">
AND sfr.CreatedOpsItemNo = #{itemNo}
</if>
<if test="seqNo != null and seqNo != ''">
AND sfr.CreatedOpsSeqNo = #{seqNo}
</if>
<if test="rollNo != null and rollNo != ''">
AND sfr.OriRollNo = #{rollNo}
</if>
<choose>
<when test='switchKey != null and switchKey == "V"'>
AND sfr.VirtualRollFlag<![CDATA[<>]]>'Y'
</when>
<when test='switchKey != null and switchKey == "VC"'>
AND NOT(T.VirtualRollFlag='N' AND T.CombineFlag='Y')
</when>
</choose>
AND sfr.RollType_DB<![CDATA[<>]]>'C'
</where>
</select>
<!--统计是否报工过-->
<select id="countSfdcRollByRollNo" parameterType="SearchScheduleData" resultType="java.lang.Integer">
SELECT COUNT(1) FROM SFDC_Rolls sfr
<where>
<if test="site != null and site != ''">
AND sfr.Site = #{site}
</if>
<if test="orderNo != null and orderNo != ''">
AND sfr.OrderNo = #{orderNo}
</if>
<if test="itemNo != null and itemNo != ''">
AND sfr.CreatedOpsItemNo = #{itemNo}
</if>
<if test="seqNo != null and seqNo != ''">
AND sfr.CreatedOpsSeqNo = #{seqNo}
</if>
<if test="rollNo != null and rollNo != ''">
AND sfr.OriRollNo = #{rollNo}
</if>
AND sfr.RollType_DB<![CDATA[<>]]>'C'
</where>
</select>
<!--查询sfdcdefect的数据-->
<select id="getSfdcDefectDefectedQty" parameterType="SearchScheduleData" resultType="java.lang.Float">
SELECT SUM(sfd.DefectQty) defectQty FROM SFDC_DefectHist sfd
<where>
<if test="site != null and site != ''">
AND sfd.Site = #{site}
</if>
<if test="orderNo != null and orderNo != ''">
AND sfd.OrderNo = #{orderNo}
</if>
<if test="itemNo != null and itemNo != ''">
AND sfd.ItemNo = #{itemNo}
</if>
<if test="seqNo != null and seqNo != ''">
AND sfd.SeqNo = #{seqNo}
</if>
<if test="rollNo != null and rollNo != ''">
AND sfd.RollNo = #{rollNo}
</if>
</where>
</select>
<!--查询sfdc_time_hist的数据-->
<select id="countSfdcTimeQty" parameterType="SearchScheduleData" resultType="java.util.HashMap">
SELECT SUM(CASE WHEN EventType='P' AND sfd.EventDesc='开始调机'
THEN ISNULL(((CONVERT(FLOAT,CONVERT(datetime,(CASE WHEN sfd.CompletedFlag='Y' THEN sfd.TillTime ELSE getdate() END))) - CONVERT(FLOAT,EventTime)) * 24),0.0)
ELSE 0.0 END) totalSetupTime
,SUM(CASE WHEN EventType='D' AND sfd.DowntimePhaseIn='调机'
THEN ISNULL(((CONVERT(FLOAT,CONVERT(datetime,(CASE WHEN sfd.CompletedFlag='Y' THEN sfd.TillTime ELSE getdate() END))) - CONVERT(FLOAT,EventTime)) * 24),0.0)
ELSE 0.0 END) totalDowntimeTime_Setup
,SUM(CASE WHEN EventType='P' AND sfd.EventDesc='开始生产'
THEN ISNULL(((CONVERT(FLOAT,CONVERT(datetime,(CASE WHEN sfd.CompletedFlag='Y' THEN sfd.TillTime ELSE getdate() END))) - CONVERT(FLOAT,EventTime)) * 24),0.0)
ELSE 0.0 END) totalProdTime
,SUM(CASE WHEN EventType='D' AND sfd.DowntimePhaseIn='生产'
THEN ISNULL(((CONVERT(FLOAT,CONVERT(datetime,(CASE WHEN sfd.CompletedFlag='Y' THEN sfd.TillTime ELSE getdate() END))) - CONVERT(FLOAT,EventTime)) * 24),0.0)
ELSE 0.0 END) totalDowntimeTime_Prod
,SUM(CASE WHEN CompletedFlag='N' THEN 1.0 ELSE 0.0 END) unCloseLeft
FROM SFDC_TimeHist sfd
<where>
<if test="site != null and site != ''">
AND sfd.Site = #{site}
</if>
<if test="orderNo != null and orderNo != ''">
AND sfd.OrderNo = #{orderNo}
</if>
<if test="ItemNo != null and itemNo != ''">
AND sfd.ItemNo = #{itemNo}
</if>
<if test="seqNo != null and seqNo != ''">
AND sfd.SeqNo = #{seqNo}
</if>
<if test="rollNo != null and rollNo != ''">
AND sfd.RollNo = #{rollNo}
</if>
</where>
</select>
<!--查询sfdc_time_hist的数据-->
<select id="getSfdcTimeMaxAndMinTime" parameterType="SearchScheduleData" resultType="java.util.HashMap">
SELECT MIN(sfd.EventTime) eventTime, COUNT(1) sl, SUM(TotalTime) totalTime,
MAX((CASE WHEN sfd.CompletedFlag='Y' THEN sfd.TillTime ELSE getdate()END)) tillTime
FROM SFDC_TimeHist sfd
<where>
<if test="site != null and site != ''">
AND sfd.Site = #{site}
</if>
<if test="orderNo != null and orderNo != ''">
AND sfd.OrderNo = #{orderNo}
</if>
<if test="ItemNo != null and itemNo != ''">
AND sfd.ItemNo = #{itemNo}
</if>
<if test="seqNo != null and seqNo != ''">
AND sfd.SeqNo = #{seqNo}
</if>
<if test="rollNo != null and rollNo != ''">
AND sfd.RollNo = #{rollNo}
</if>
AND sfd.EventType='P'
</where>
</select>
</mapper>
Loading…
Cancel
Save