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. 94
      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());
}
/**
* @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.shopOrder.entity.OperatorData;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@ -440,4 +441,23 @@ public interface ScheduleMapper {
* @return
**/
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);
/**
* @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);
}

94
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) {
//判断是否查询当前卷的
boolean currentRollFlag = inData.isCurrentRollFlag();
if(!currentRollFlag){
if (!currentRollFlag) {
inData.setRollNo(null);
}
return scheduleMapper.getSfdcTimeByCon(inData);
@ -152,7 +152,7 @@ public class ScheduleServiceImpl implements ScheduleService {
public List<SfdcToolData> getSfdcToolByCon(SearchScheduleData inData) {
//判断是否查询当前卷的
boolean currentRollFlag = inData.isCurrentRollFlag();
if(!currentRollFlag){
if (!currentRollFlag) {
inData.setRollNo(null);
}
return scheduleMapper.getSfdcToolByCon(inData);
@ -166,7 +166,7 @@ public class ScheduleServiceImpl implements ScheduleService {
inData.setReferenceCustomerId(referenceCustomerId);
//判断是否查询当前卷的
boolean currentRollFlag = inData.isCurrentRollFlag();
if(!currentRollFlag){
if (!currentRollFlag) {
inData.setRollNo(null);
}
return scheduleMapper.getOrderBomByCon(inData);
@ -176,7 +176,7 @@ public class ScheduleServiceImpl implements ScheduleService {
public List<SfdcMaterialData> getSfdcMaterialByCon(SearchScheduleData inData) {
//判断是否查询当前卷的
boolean currentRollFlag = inData.isCurrentRollFlag();
if(!currentRollFlag){
if (!currentRollFlag) {
inData.setRollNo(null);
}
return scheduleMapper.getSfdcMaterialByCon(inData);
@ -186,7 +186,7 @@ public class ScheduleServiceImpl implements ScheduleService {
public List<SfdcRollOpsData> getSfdcRollOpsByCon(SearchScheduleData inData) {
//判断是否查询当前卷的
boolean currentRollFlag = inData.isCurrentRollFlag();
if(!currentRollFlag){
if (!currentRollFlag) {
inData.setRollNo(null);
}
return scheduleMapper.getSfdcRollOpsByCon(inData);
@ -196,7 +196,7 @@ public class ScheduleServiceImpl implements ScheduleService {
public List<SfdcDefectData> getSfdcDefectByCon(SearchScheduleData inData) {
//判断是否查询当前卷的
boolean currentRollFlag = inData.isCurrentRollFlag();
if(!currentRollFlag){
if (!currentRollFlag) {
inData.setRollNo(null);
}
return scheduleMapper.getSfdcDefectByCon(inData);
@ -206,7 +206,7 @@ public class ScheduleServiceImpl implements ScheduleService {
public List<SfdcRollData> getSfdcRollByCon(SearchScheduleData inData) {
//判断是否查询当前卷的
boolean currentRollFlag = inData.isCurrentRollFlag();
if(!currentRollFlag){
if (!currentRollFlag) {
inData.setRollNo(null);
}
return scheduleMapper.getSfdcRollByCon(inData);
@ -216,7 +216,7 @@ public class ScheduleServiceImpl implements ScheduleService {
public List<SfdcData> getSfdcDataByCon(SearchScheduleData inData) {
//判断是否查询当前卷的
boolean currentRollFlag = inData.isCurrentRollFlag();
if(!currentRollFlag){
if (!currentRollFlag) {
inData.setRollNo(null);
}
return scheduleMapper.getSfdcDataByCon(inData);
@ -1968,27 +1968,27 @@ public class ScheduleServiceImpl implements ScheduleService {
String msg = String.valueOf(resultMap.get("resultMsg"));
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 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<>();
params.add(site);
params.add(orderNo);
params.add(itemNo);
params.add(seqNo);
params.add(rollNo);
params.add(newRollQty);
params.add(operatorId);
//执行存储过程
procedureMapper.getProcedureData("finishRollProcessSFDCNewRoll", params);
List<Object> params = new ArrayList<>();
params.add(site);
params.add(orderNo);
params.add(itemNo);
params.add(seqNo);
params.add(rollNo);
params.add(newRollQty);
params.add(operatorId);
//执行存储过程
procedureMapper.getProcedureData("finishRollProcessSFDCNewRoll", params);
}
@ -2048,7 +2048,7 @@ public class ScheduleServiceImpl implements ScheduleService {
* @DateTime 2022/1/25 13:55
* @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<>();
params.add(site);
params.add(orderNo);
@ -2136,12 +2136,12 @@ public class ScheduleServiceImpl implements ScheduleService {
//4.调用存储过程 处理SfdcMaterialHist的信息 --非主材
this.finishRollProcessSfdcMaterialHistWithNotKeyRm(site, orderNo, itemNo, seqNo, rollNo, operatorId, reportedTime);
//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和派工单
this.finishRollProcessSfdcAndSchedule(site, orderNo, itemNo, seqNo, rollNo, sfdcReportedQty, sfdcApprovedQty,
sfdcSetupTime, sfdcProdTime, sfdcDownTime, eventTime, tillTime, remark,
sfdcSetupDownTime, sfdcProdSetupTime, defectedQty, sfdcManufactureTime, operatorId, reportedTime);
//7.调用存储过程 处理异常信息
//7.正常结束卷还是 异常下机
if ("Y".equalsIgnoreCase(exceptionFlag)) {
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]
**/
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<>();
params.add(site);
params.add(orderNo);
@ -3295,7 +3295,7 @@ public class ScheduleServiceImpl implements ScheduleService {
}
//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"));
if ("400".equalsIgnoreCase(code2)) {
@ -3628,8 +3628,8 @@ public class ScheduleServiceImpl implements ScheduleService {
params.add(inData.getsFQCSlitFlag());
// 调用存储过程
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) {
//调用存储过程
List<Map<String, Object>> resultList = procedureMapper.getProcedureData(procedureName, params);
if(CollectionUtils.isEmpty(resultList)){
if (CollectionUtils.isEmpty(resultList)) {
return null;
}
//处理返回的结果
@ -3799,7 +3799,7 @@ public class ScheduleServiceImpl implements ScheduleService {
params.add(dto.getSite());
params.add(dto.getResourceId());
params.add(dto.getCurrentDateTime());
return workbenchCreateslittingrollFqcCheck("get_ScheduleDate_Shift",params);
return workbenchCreateslittingrollFqcCheck("get_ScheduleDate_Shift", params);
}
@Override
@ -3820,11 +3820,11 @@ public class ScheduleServiceImpl implements ScheduleService {
params.add(rollData.getCurrentDatetime());
params.add(" ");
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) {
//判断是否查询当前卷的
boolean currentRollFlag = inData.isCurrentRollFlag();
if(!currentRollFlag){
if (!currentRollFlag) {
inData.setRollNo(null);
}
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='直接送检'
ORDER BY sfr.RollNo
</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">

Loading…
Cancel
Save