Browse Source

删除卷,选择报工单校验机台,异常结束卷

sxm 2022-3-15
master
[li_she] 4 years ago
parent
commit
87c80f07a0
  1. 26
      src/main/java/com/gaotao/modules/schedule/controller/ScheduleController.java
  2. 20
      src/main/java/com/gaotao/modules/schedule/mapper/ScheduleMapper.java
  3. 18
      src/main/java/com/gaotao/modules/schedule/service/ScheduleService.java
  4. 74
      src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java
  5. 38
      src/main/resources/mapper/schedule/ScheduleMapper.xml

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

@ -1363,4 +1363,30 @@ public class ScheduleController {
.put("total", resultList.size()); .put("total", resultList.size());
} }
/**
* @Author sxm
* @Description 删除卷
* @Date 2022/3/15 16:20
* @Param
* @return
**/
@RequestMapping(value = "switchrollReverse")
public R switchrollReverse(@RequestBody SearchScheduleData inData){
scheduleService.switchrollReverse(inData);
return R.ok("验证通过");
}
/**
* @Author sxm
* @Description 报工校验
* @Date 2022/3/15 16:20
* @Param
* @return
**/
@RequestMapping(value = "reportCheck")
public R reportCheck(@RequestBody SearchScheduleData inData){
scheduleService.reportCheck(inData);
return R.ok("验证通过");
}
} }

20
src/main/java/com/gaotao/modules/schedule/mapper/ScheduleMapper.java

@ -3,6 +3,7 @@ package com.gaotao.modules.schedule.mapper;
import com.gaotao.modules.schedule.data.*; import com.gaotao.modules.schedule.data.*;
import com.gaotao.modules.shopOrder.entity.OperatorData; import com.gaotao.modules.shopOrder.entity.OperatorData;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
@ -440,4 +441,23 @@ public interface ScheduleMapper {
* @return * @return
**/ **/
List<SfdcRollData> getReworkSfdcRollByCon(SearchScheduleData inData); List<SfdcRollData> getReworkSfdcRollByCon(SearchScheduleData inData);
/**
* @Author sxm
* @Description 检查是否正在报工
* @Date 2022/3/15 17:10
* @Param
* @return
**/
int reportCheck(SearchScheduleData inData);
/**
* @Author sxm
* @Description 判断权限
* @Date 2022/3/15 17:28
* @Param
* @return
**/
String getUserSpecialSecurity(@Param("username") String username,@Param("sNo") String sNo);
} }

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

@ -781,4 +781,22 @@ public interface ScheduleService {
**/ **/
List<SfdcRollData> getReworkSfdcRollByCon(SearchScheduleData inData); List<SfdcRollData> getReworkSfdcRollByCon(SearchScheduleData inData);
/**
* @Author sxm
* @Description 删除卷操作
* @Date 2022/3/15 16:23
* @Param
* @return
**/
void switchrollReverse(SearchScheduleData inData);
/**
* @Author sxm
* @Description 检查是否又正在报工
* @Date 2022/3/15 17:09
* @Param
* @return
**/
void reportCheck(SearchScheduleData inData);
} }

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

@ -137,7 +137,7 @@ public class ScheduleServiceImpl implements ScheduleService {
public List<SfdcTimeData> getSfdcTimeByCon(SearchScheduleData inData) { public List<SfdcTimeData> getSfdcTimeByCon(SearchScheduleData inData) {
//判断是否查询当前卷的 //判断是否查询当前卷的
boolean currentRollFlag = inData.isCurrentRollFlag(); boolean currentRollFlag = inData.isCurrentRollFlag();
if(!currentRollFlag){
if (!currentRollFlag) {
inData.setRollNo(null); inData.setRollNo(null);
} }
return scheduleMapper.getSfdcTimeByCon(inData); return scheduleMapper.getSfdcTimeByCon(inData);
@ -152,7 +152,7 @@ public class ScheduleServiceImpl implements ScheduleService {
public List<SfdcToolData> getSfdcToolByCon(SearchScheduleData inData) { public List<SfdcToolData> getSfdcToolByCon(SearchScheduleData inData) {
//判断是否查询当前卷的 //判断是否查询当前卷的
boolean currentRollFlag = inData.isCurrentRollFlag(); boolean currentRollFlag = inData.isCurrentRollFlag();
if(!currentRollFlag){
if (!currentRollFlag) {
inData.setRollNo(null); inData.setRollNo(null);
} }
return scheduleMapper.getSfdcToolByCon(inData); return scheduleMapper.getSfdcToolByCon(inData);
@ -166,7 +166,7 @@ public class ScheduleServiceImpl implements ScheduleService {
inData.setReferenceCustomerId(referenceCustomerId); inData.setReferenceCustomerId(referenceCustomerId);
//判断是否查询当前卷的 //判断是否查询当前卷的
boolean currentRollFlag = inData.isCurrentRollFlag(); boolean currentRollFlag = inData.isCurrentRollFlag();
if(!currentRollFlag){
if (!currentRollFlag) {
inData.setRollNo(null); inData.setRollNo(null);
} }
return scheduleMapper.getOrderBomByCon(inData); return scheduleMapper.getOrderBomByCon(inData);
@ -176,7 +176,7 @@ public class ScheduleServiceImpl implements ScheduleService {
public List<SfdcMaterialData> getSfdcMaterialByCon(SearchScheduleData inData) { public List<SfdcMaterialData> getSfdcMaterialByCon(SearchScheduleData inData) {
//判断是否查询当前卷的 //判断是否查询当前卷的
boolean currentRollFlag = inData.isCurrentRollFlag(); boolean currentRollFlag = inData.isCurrentRollFlag();
if(!currentRollFlag){
if (!currentRollFlag) {
inData.setRollNo(null); inData.setRollNo(null);
} }
return scheduleMapper.getSfdcMaterialByCon(inData); return scheduleMapper.getSfdcMaterialByCon(inData);
@ -186,7 +186,7 @@ public class ScheduleServiceImpl implements ScheduleService {
public List<SfdcRollOpsData> getSfdcRollOpsByCon(SearchScheduleData inData) { public List<SfdcRollOpsData> getSfdcRollOpsByCon(SearchScheduleData inData) {
//判断是否查询当前卷的 //判断是否查询当前卷的
boolean currentRollFlag = inData.isCurrentRollFlag(); boolean currentRollFlag = inData.isCurrentRollFlag();
if(!currentRollFlag){
if (!currentRollFlag) {
inData.setRollNo(null); inData.setRollNo(null);
} }
return scheduleMapper.getSfdcRollOpsByCon(inData); return scheduleMapper.getSfdcRollOpsByCon(inData);
@ -196,7 +196,7 @@ public class ScheduleServiceImpl implements ScheduleService {
public List<SfdcDefectData> getSfdcDefectByCon(SearchScheduleData inData) { public List<SfdcDefectData> getSfdcDefectByCon(SearchScheduleData inData) {
//判断是否查询当前卷的 //判断是否查询当前卷的
boolean currentRollFlag = inData.isCurrentRollFlag(); boolean currentRollFlag = inData.isCurrentRollFlag();
if(!currentRollFlag){
if (!currentRollFlag) {
inData.setRollNo(null); inData.setRollNo(null);
} }
return scheduleMapper.getSfdcDefectByCon(inData); return scheduleMapper.getSfdcDefectByCon(inData);
@ -206,7 +206,7 @@ public class ScheduleServiceImpl implements ScheduleService {
public List<SfdcRollData> getSfdcRollByCon(SearchScheduleData inData) { public List<SfdcRollData> getSfdcRollByCon(SearchScheduleData inData) {
//判断是否查询当前卷的 //判断是否查询当前卷的
boolean currentRollFlag = inData.isCurrentRollFlag(); boolean currentRollFlag = inData.isCurrentRollFlag();
if(!currentRollFlag){
if (!currentRollFlag) {
inData.setRollNo(null); inData.setRollNo(null);
} }
return scheduleMapper.getSfdcRollByCon(inData); return scheduleMapper.getSfdcRollByCon(inData);
@ -216,7 +216,7 @@ public class ScheduleServiceImpl implements ScheduleService {
public List<SfdcData> getSfdcDataByCon(SearchScheduleData inData) { public List<SfdcData> getSfdcDataByCon(SearchScheduleData inData) {
//判断是否查询当前卷的 //判断是否查询当前卷的
boolean currentRollFlag = inData.isCurrentRollFlag(); boolean currentRollFlag = inData.isCurrentRollFlag();
if(!currentRollFlag){
if (!currentRollFlag) {
inData.setRollNo(null); inData.setRollNo(null);
} }
return scheduleMapper.getSfdcDataByCon(inData); return scheduleMapper.getSfdcDataByCon(inData);
@ -1968,16 +1968,16 @@ public class ScheduleServiceImpl implements ScheduleService {
String msg = String.valueOf(resultMap.get("resultMsg")); String msg = String.valueOf(resultMap.get("resultMsg"));
throw new RRException(msg); throw new RRException(msg);
} }
if("Y".equals(pageData.getCreateNewRollFlag())){
if ("Y".equals(pageData.getCreateNewRollFlag())) {
//调用存储过程校验每一个卷的数量 //调用存储过程校验每一个卷的数量
this.finishRollProcessSFDCNewRoll(site, orderNo, itemNo, rollNo, seqNo,pageData.getNewCreateRollQty(),pageData.getOperatorId() );
this.finishRollProcessSFDCNewRoll(site, orderNo, itemNo, rollNo, seqNo, pageData.getNewCreateRollQty(), pageData.getOperatorId());
} }
return resultMap; return resultMap;
} }
return null; return null;
} }
public void finishRollProcessSFDCNewRoll(String site, String orderNo, Integer itemNo, String seqNo, String rollNo,Double newRollQty,String operatorId){
public void finishRollProcessSFDCNewRoll(String site, String orderNo, Integer itemNo, String seqNo, String rollNo, Double newRollQty, String operatorId) {
List<Object> params = new ArrayList<>(); List<Object> params = new ArrayList<>();
params.add(site); params.add(site);
@ -2048,7 +2048,7 @@ public class ScheduleServiceImpl implements ScheduleService {
* @DateTime 2022/1/25 13:55 * @DateTime 2022/1/25 13:55
* @Param [site, orderNo, itemNo, seqNo, rollNo] // todo 添加是否创建新卷参数 sxm 2022 -3-15 * @Param [site, orderNo, itemNo, seqNo, rollNo] // todo 添加是否创建新卷参数 sxm 2022 -3-15
**/ **/
public Map<String, Object> checkFinishRollWithSfdcRoll(String site, String orderNo, Integer itemNo, String seqNo, String rollNo,String createNewRollFlag) {
public Map<String, Object> checkFinishRollWithSfdcRoll(String site, String orderNo, Integer itemNo, String seqNo, String rollNo, String createNewRollFlag) {
List<Object> params = new ArrayList<>(); List<Object> params = new ArrayList<>();
params.add(site); params.add(site);
params.add(orderNo); params.add(orderNo);
@ -2136,12 +2136,12 @@ public class ScheduleServiceImpl implements ScheduleService {
//4.调用存储过程 处理SfdcMaterialHist的信息 --非主材 //4.调用存储过程 处理SfdcMaterialHist的信息 --非主材
this.finishRollProcessSfdcMaterialHistWithNotKeyRm(site, orderNo, itemNo, seqNo, rollNo, operatorId, reportedTime); this.finishRollProcessSfdcMaterialHistWithNotKeyRm(site, orderNo, itemNo, seqNo, rollNo, operatorId, reportedTime);
//5.调用存储过程 处理SfdcRoll和SfdcRoollOps todo sxm 2022 -3 -15 添加参数 是否创建新卷 //5.调用存储过程 处理SfdcRoll和SfdcRoollOps todo sxm 2022 -3 -15 添加参数 是否创建新卷
this.finishRollProcessSfdcRollAndOps(site, orderNo, itemNo, seqNo, rollNo, totalApprovedQty, sfdcApprovedQty, defectedQty, operatorName, reportedTime,pageData.getCreateNewRollFlag());
this.finishRollProcessSfdcRollAndOps(site, orderNo, itemNo, seqNo, rollNo, totalApprovedQty, sfdcApprovedQty, defectedQty, operatorName, reportedTime, pageData.getCreateNewRollFlag());
//6.调用存储过程 处理Sfdc和派工单 //6.调用存储过程 处理Sfdc和派工单
this.finishRollProcessSfdcAndSchedule(site, orderNo, itemNo, seqNo, rollNo, sfdcReportedQty, sfdcApprovedQty, this.finishRollProcessSfdcAndSchedule(site, orderNo, itemNo, seqNo, rollNo, sfdcReportedQty, sfdcApprovedQty,
sfdcSetupTime, sfdcProdTime, sfdcDownTime, eventTime, tillTime, remark, sfdcSetupTime, sfdcProdTime, sfdcDownTime, eventTime, tillTime, remark,
sfdcSetupDownTime, sfdcProdSetupTime, defectedQty, sfdcManufactureTime, operatorId, reportedTime); sfdcSetupDownTime, sfdcProdSetupTime, defectedQty, sfdcManufactureTime, operatorId, reportedTime);
//7.调用存储过程 处理异常信息
//7.正常结束卷还是 异常下机
if ("Y".equalsIgnoreCase(exceptionFlag)) { if ("Y".equalsIgnoreCase(exceptionFlag)) {
this.finishRollProcessException(site, orderNo, itemNo, seqNo, rollNo, exceptionReason, username); this.finishRollProcessException(site, orderNo, itemNo, seqNo, rollNo, exceptionReason, username);
} }
@ -2210,7 +2210,7 @@ public class ScheduleServiceImpl implements ScheduleService {
* @Param [site, orderNo, itemNo, seqNo, rollNo, totalApprovedQty, sfdcApproveQty, defectedQty] * @Param [site, orderNo, itemNo, seqNo, rollNo, totalApprovedQty, sfdcApproveQty, defectedQty]
**/ **/
public void finishRollProcessSfdcRollAndOps(String site, String orderNo, Integer itemNo, String seqNo, String rollNo, public void finishRollProcessSfdcRollAndOps(String site, String orderNo, Integer itemNo, String seqNo, String rollNo,
Float totalApprovedQty, Float sfdcApproveQty, Float defectedQty, String username, String reportedTime,String createNewRollFlag) {
Float totalApprovedQty, Float sfdcApproveQty, Float defectedQty, String username, String reportedTime, String createNewRollFlag) {
List<Object> params = new ArrayList<>(); List<Object> params = new ArrayList<>();
params.add(site); params.add(site);
params.add(orderNo); params.add(orderNo);
@ -3295,7 +3295,7 @@ public class ScheduleServiceImpl implements ScheduleService {
} }
//2.调用存储过程 校验是否可以下机卷 //2.调用存储过程 校验是否可以下机卷
Map<String, Object> checkMap2 = this.checkFinishRollWithSfdcRoll(site, orderNo, itemNo, seqNo, rollNo,pageData.getCreateNewRollFlag());
Map<String, Object> checkMap2 = this.checkFinishRollWithSfdcRoll(site, orderNo, itemNo, seqNo, rollNo, pageData.getCreateNewRollFlag());
//判断是否检验成功 //判断是否检验成功
String code2 = String.valueOf(checkMap2.get("resultCode")); String code2 = String.valueOf(checkMap2.get("resultCode"));
if ("400".equalsIgnoreCase(code2)) { if ("400".equalsIgnoreCase(code2)) {
@ -3628,8 +3628,8 @@ public class ScheduleServiceImpl implements ScheduleService {
params.add(inData.getsFQCSlitFlag()); params.add(inData.getsFQCSlitFlag());
// 调用存储过程 // 调用存储过程
Map<String, Object> checkMap = workbenchCreateslittingrollFqcCheck("workbench_createslittingroll_fqc_check", params); Map<String, Object> checkMap = workbenchCreateslittingrollFqcCheck("workbench_createslittingroll_fqc_check", params);
if(checkMap == null){
throw new RRException("存储过程未返回信息",400);
if (checkMap == null) {
throw new RRException("存储过程未返回信息", 400);
} }
//判断结果是否成功 //判断结果是否成功
@ -3677,7 +3677,7 @@ public class ScheduleServiceImpl implements ScheduleService {
private Map<String, Object> workbenchCreateslittingrollFqcCheck(String procedureName, List<Object> params) { private Map<String, Object> workbenchCreateslittingrollFqcCheck(String procedureName, List<Object> params) {
//调用存储过程 //调用存储过程
List<Map<String, Object>> resultList = procedureMapper.getProcedureData(procedureName, params); List<Map<String, Object>> resultList = procedureMapper.getProcedureData(procedureName, params);
if(CollectionUtils.isEmpty(resultList)){
if (CollectionUtils.isEmpty(resultList)) {
return null; return null;
} }
//处理返回的结果 //处理返回的结果
@ -3799,7 +3799,7 @@ public class ScheduleServiceImpl implements ScheduleService {
params.add(dto.getSite()); params.add(dto.getSite());
params.add(dto.getResourceId()); params.add(dto.getResourceId());
params.add(dto.getCurrentDateTime()); params.add(dto.getCurrentDateTime());
return workbenchCreateslittingrollFqcCheck("get_ScheduleDate_Shift",params);
return workbenchCreateslittingrollFqcCheck("get_ScheduleDate_Shift", params);
} }
@Override @Override
@ -3820,11 +3820,11 @@ public class ScheduleServiceImpl implements ScheduleService {
params.add(rollData.getCurrentDatetime()); params.add(rollData.getCurrentDatetime());
params.add(" "); params.add(" ");
Map<String, Object> map = workbenchCreateslittingrollFqcCheck("workbench_postinspection", params); Map<String, Object> map = workbenchCreateslittingrollFqcCheck("workbench_postinspection", params);
if(map == null){
throw new RRException("存储过程未返回信息",400);
if (map == null) {
throw new RRException("存储过程未返回信息", 400);
} }
if ("400".equals(map.get("resultCode"))){
throw new RRException(map.get("resultMsg").toString(),400);
if ("400".equals(map.get("resultCode"))) {
throw new RRException(map.get("resultMsg").toString(), 400);
} }
} }
} }
@ -3833,9 +3833,33 @@ public class ScheduleServiceImpl implements ScheduleService {
public List<SfdcRollData> getReworkSfdcRollByCon(SearchScheduleData inData) { public List<SfdcRollData> getReworkSfdcRollByCon(SearchScheduleData inData) {
//判断是否查询当前卷的 //判断是否查询当前卷的
boolean currentRollFlag = inData.isCurrentRollFlag(); boolean currentRollFlag = inData.isCurrentRollFlag();
if(!currentRollFlag){
if (!currentRollFlag) {
inData.setRollNo(null); inData.setRollNo(null);
} }
return scheduleMapper.getReworkSfdcRollByCon(inData); return scheduleMapper.getReworkSfdcRollByCon(inData);
} }
@Override
public void switchrollReverse(SearchScheduleData inData) {
List<Object> params = new ArrayList<>();
params.add(inData.getSite());
params.add(inData.getOrderNo());
params.add(inData.getItemNo());
params.add(inData.getSeqNo());
params.add(inData.getRollNo());
workbenchCreateslittingrollFqcCheck("switchroll_reverse", params);
}
@Override
public void reportCheck(SearchScheduleData inData) {
int i = scheduleMapper.reportCheck(inData);
if (i > 0) {
String flag = scheduleMapper.getUserSpecialSecurity(inData.getUsername(), "236");
if ("Y".equals(flag)) {
throw new RRException("该机台尚有未结束的其他派工单,确实要继续对该派工单进行报工吗?", 400);
} else {
throw new RRException(" 该机台尚有未结束的其他派工单,不能对其他的派工单进行报工!", 300);
}
}
}
} }

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

@ -1053,6 +1053,44 @@
and T.Remark='直接送检' and T.Remark='直接送检'
ORDER BY sfr.RollNo ORDER BY sfr.RollNo
</select> </select>
<select id="reportCheck" resultType="java.lang.Integer">
Select count(1) from SOScheduledRouting as T
Where Site=#{site}
and S_ResourceID = #{resourceId}
and S_WorkCenterNo = #{workCenterNo}
and SeqNo != #{seqNo}
and ClosedFlag = 'N'
and StartProdFlag = 'Y'
and (
(case when exists(select 1 from SFDC_MaterialHist as T1
where T1.Site=T.Site and T1.OrderNo=T.OrderNo and T1.ItemNo=T.ItemNo and T1.SeqNo=T.SeqNo and T1.FinishFlag='N'
)
then 1 else 0 end
)
+
(case when exists(select 1 from SFDC_ToolingHist as T2
where T2.Site=T.Site and T2.OrderNo=T.OrderNo and T2.ItemNo=T.ItemNo and T2.SeqNo=T.SeqNo and T2.FinishFlag='N'
)
then 1 else 0 end
)
+
(case when exists(select 1 from SFDC_TimeHist as T3
where T3.Site=T.Site and T3.OrderNo=T.OrderNo and T3.ItemNo=T.ItemNo and T3.SeqNo=T.SeqNo and T3.CompletedFlag='N'
)
then 1 else 0 end
)
+
(case when exists(select 1 from SFDC_RollOps as T4
where T4.Site=T.Site and T4.OrderNo=T.OrderNo and T4.ItemNo=T.ItemNo and T4.SeqNo=T.SeqNo and T4.FinishedFlag='N'
)
then 1 else 0 end
)
)>0
</select>
<select id="getUserSpecialSecurity" resultType="java.lang.String">
select dbo.Get_User_Special_Security (#{username},#{sNo})
</select>
<insert id="saveSfdcDefect" parameterType="SfdcDefectData"> <insert id="saveSfdcDefect" parameterType="SfdcDefectData">

Loading…
Cancel
Save