|
|
|
@ -12,8 +12,8 @@ import com.gaotao.modules.shopOrder.entity.OperatorData; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
import org.springframework.web.bind.annotation.RequestBody; |
|
|
|
|
|
|
|
import javax.xml.transform.Result; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.util.*; |
|
|
|
|
|
|
|
@ -377,7 +377,7 @@ public class ScheduleServiceImpl implements ScheduleService { |
|
|
|
//查询数据 |
|
|
|
List<Map<String, Object>> resultList = scheduleMapper.getSfdcTimeData(inData); |
|
|
|
//判断是否查询到结果数据 |
|
|
|
if(resultList.size() > 0){ |
|
|
|
if(resultList.size() > 0 && resultList.get(0) != null){ |
|
|
|
result = resultList.get(0); |
|
|
|
String strReportedSetupTime = String.valueOf(result.get("reportedSetupTime")); |
|
|
|
//判断null |
|
|
|
@ -465,7 +465,7 @@ public class ScheduleServiceImpl implements ScheduleService { |
|
|
|
//按照条件查询当前的数据 |
|
|
|
List<SfdcData> resultList = scheduleMapper.getSfdcDataByCon(inData); |
|
|
|
//判断是否查询到结果 |
|
|
|
if(resultList.size() > 0){ |
|
|
|
if(resultList.size() > 0 && resultList.get(0) != null){ |
|
|
|
return resultList.get(0); |
|
|
|
}else{ |
|
|
|
return new SfdcData(); |
|
|
|
@ -1481,5 +1481,122 @@ public class ScheduleServiceImpl implements ScheduleService { |
|
|
|
procedureMapper.execProduceData("endTuning", params); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public Map<String, Object> checkFinishRoll(@RequestBody Map<String, Object> inMap) { |
|
|
|
String strPageData = String.valueOf(inMap.get("pageData")); |
|
|
|
SearchScheduleData pageData = JSON.parseObject(strPageData, SearchScheduleData.class); |
|
|
|
String strSfdcMaterialList = String.valueOf(inMap.get("materialList")); |
|
|
|
List<SfdcMaterialData> sfdcMaterialList = JSON.parseArray(strSfdcMaterialList, SfdcMaterialData.class); |
|
|
|
//公共参数 |
|
|
|
String site = pageData.getSite(); |
|
|
|
String orderNo = pageData.getOrderNo(); |
|
|
|
Integer itemNo = pageData.getItemNo(); |
|
|
|
String seqNo = pageData.getSeqNo(); |
|
|
|
String rollNo = pageData.getRollNo(); |
|
|
|
String resourceId = pageData.getResourceId(); |
|
|
|
String shiftNo = pageData.getShiftNo(); |
|
|
|
Float approvedQty = pageData.getApprovedQty(); |
|
|
|
Date scheduleDate = pageData.getScheduleDate(); |
|
|
|
String scheduleTime = DateUtil.getStringDate(scheduleDate, "yyyy-MM-dd"); |
|
|
|
//判断报工的数量是否为正整数 |
|
|
|
Double remainderQty = approvedQty % 1.0; |
|
|
|
if(remainderQty > 0){ |
|
|
|
throw new RRException("总良品数量不允许输入小数!"); |
|
|
|
} |
|
|
|
//先循环验证参数是否符合规则 |
|
|
|
for (int i = 0; i < sfdcMaterialList.size(); i++){ |
|
|
|
SfdcMaterialData sfdcMaterialData = sfdcMaterialList.get(0); |
|
|
|
Float transQty = sfdcMaterialData.getTransQty(); |
|
|
|
Float netIssueQty = sfdcMaterialData.getNetIssueQty(); |
|
|
|
//判断是否符合规则 |
|
|
|
if (netIssueQty == null){ |
|
|
|
throw new RRException("材料上本卷耗用数量不能为空!"); |
|
|
|
} |
|
|
|
if (netIssueQty <= 0){ |
|
|
|
throw new RRException("材料上本卷耗用数量必须大于0!"); |
|
|
|
} |
|
|
|
if (netIssueQty > transQty){ |
|
|
|
throw new RRException("材料上本卷耗用数量大于发料数量!"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//首先检查材料是否可以开始生产 |
|
|
|
Map<String, Object> materialMap = this.checkCompleteMaterialRoll(site, orderNo, itemNo, seqNo, rollNo); |
|
|
|
//判断是否可以 |
|
|
|
String materialCode = String.valueOf(materialMap.get("resultCode")); |
|
|
|
if (!"200".equalsIgnoreCase(materialCode)){ |
|
|
|
String materialMsg = String.valueOf(materialMap.get("resultMsg")); |
|
|
|
throw new RRException(materialMsg); |
|
|
|
} |
|
|
|
|
|
|
|
//其次检查工具是否可以开始生产 |
|
|
|
Map<String, Object> toolMap = this.checkCompleteToolId(site, orderNo, itemNo, seqNo, rollNo); |
|
|
|
//判断是否可以 |
|
|
|
String toolCode = String.valueOf(materialMap.get("resultCode")); |
|
|
|
if (!"200".equalsIgnoreCase(toolCode)){ |
|
|
|
String toolMsg = String.valueOf(toolMap.get("resultMsg")); |
|
|
|
throw new RRException(toolMsg); |
|
|
|
} |
|
|
|
|
|
|
|
//检查是否可以开始生产 |
|
|
|
Map<String, Object> resultMap = this.checkFinishRoll(site, orderNo, itemNo, seqNo, rollNo, scheduleTime, resourceId, shiftNo); |
|
|
|
//判断是否是异常 |
|
|
|
String resultCode = String.valueOf(resultMap.get("resultCode")); |
|
|
|
if ("400".equalsIgnoreCase(resultCode)){ |
|
|
|
String resultMsg = String.valueOf(resultMap.get("resultMsg")); |
|
|
|
throw new RRException(resultMsg); |
|
|
|
} |
|
|
|
return resultMap; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* TODO 结束卷校验 |
|
|
|
* @author LR |
|
|
|
* @date 2022/1/13 18:11 |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
**/ |
|
|
|
public Map<String, Object> checkFinishRoll(String site, String orderNo, Integer itemNo, String seqNo, String rollNo, String scheduleTime, String resourceId, String shiftNo) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
params.add(site); |
|
|
|
params.add(orderNo); |
|
|
|
params.add(itemNo); |
|
|
|
params.add(seqNo); |
|
|
|
params.add(rollNo); |
|
|
|
params.add(scheduleTime); |
|
|
|
params.add(resourceId); |
|
|
|
params.add(shiftNo); |
|
|
|
//执行存储过程 |
|
|
|
List<Map<String, Object>> resultList = procedureMapper.getProcedureData("checkFinishRoll", params); |
|
|
|
//返回执行的结果 |
|
|
|
return resultList.get(0); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public void finishRoll(Map<String, Object> inMap) { |
|
|
|
//先验证是否可以结束卷的操作 |
|
|
|
this.checkFinishRoll(inMap); |
|
|
|
|
|
|
|
//结束 |
|
|
|
String strPageData = String.valueOf(inMap.get("pageData")); |
|
|
|
SearchScheduleData pageData = JSON.parseObject(strPageData, SearchScheduleData.class); |
|
|
|
String strSfdcMaterialList = String.valueOf(inMap.get("materialList")); |
|
|
|
List<SfdcMaterialData> sfdcMaterialList = JSON.parseArray(strSfdcMaterialList, SfdcMaterialData.class); |
|
|
|
//公共参数 |
|
|
|
String site = pageData.getSite(); |
|
|
|
String orderNo = pageData.getOrderNo(); |
|
|
|
Integer itemNo = pageData.getItemNo(); |
|
|
|
String seqNo = pageData.getSeqNo(); |
|
|
|
String rollNo = pageData.getRollNo(); |
|
|
|
Float approvedQty = pageData.getApprovedQty(); |
|
|
|
Date scheduleDate = pageData.getScheduleDate(); |
|
|
|
String scheduleTime = DateUtil.getStringDate(scheduleDate, "yyyy-MM-dd"); |
|
|
|
//判断报工的数量是否为正整数 |
|
|
|
Double remainderQty = approvedQty % 1.0; |
|
|
|
if(remainderQty > 0){ |
|
|
|
throw new RRException("总良品数量不允许输入小数!"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |