Browse Source

产量报告

master
Rui_Li 4 years ago
parent
commit
802fa58294
  1. 31
      src/main/java/com/gaotao/modules/schedule/controller/ScheduleController.java
  2. 18
      src/main/java/com/gaotao/modules/schedule/service/ScheduleService.java
  3. 114
      src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java

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

@ -1122,4 +1122,35 @@ public class ScheduleController {
}
/**
* @Author LR
* @Description 产量报告 --检查报告一部分卷数量
* @DateTime 2022/2/18 17:31
* @Param [inMap]
* @return com.gaotao.common.utils.R
**/
@RequestMapping(value = "checkFinishPartRollWithNoFqc")
public R checkFinishPartRollWithNoFqc(@RequestBody Map<String, Object> inMap){
Map<String, Object> resultMap = scheduleService.checkFinishPartRollWithNoFqc(inMap);
return R.ok()
.put("resultMap", resultMap);
}
/**
* @Author LR
* @Description 产量报告 --提前报告一部分卷数量
* @DateTime 2022/2/18 17:31
* @Param [inMap]
* @return com.gaotao.common.utils.R
**/
@RequestMapping(value = "finishPartRollWithNoFqc")
public R finishPartRollWithNoFqc(@RequestBody Map<String, Object> inMap){
scheduleService.finishPartRollWithNoFqc(inMap);
return R.ok()
.put("code", 200)
.put("success", true)
.put("msg", "操作成功!");
}
}

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

@ -635,4 +635,22 @@ public interface ScheduleService {
* @return void
**/
void processFinishMaterialWithNoRemainder(SearchScheduleData inData);
/**
* @Author LR
* @Description 产量报告 --检查报告一部分卷数量
* @DateTime 2022/2/18 17:32
* @Param [inMap]
* @return java.util.Map<java.lang.String,java.lang.Object>
**/
Map<String, Object> checkFinishPartRollWithNoFqc(Map<String, Object> inMap);
/**
* @Author LR
* @Description 产量报告 --提前报告一部分卷数量
* @DateTime 2022/2/18 17:32
* @Param [inMap]
* @return void
**/
void finishPartRollWithNoFqc(Map<String, Object> inMap);
}

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

@ -3069,5 +3069,119 @@ public class ScheduleServiceImpl implements ScheduleService {
return resultList.get(0);
}
@Override
public Map<String, Object> checkFinishPartRollWithNoFqc(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 username = pageData.getOperatorId();
Float approvedQty = pageData.getApprovedQty();
Float editReportQty = pageData.getSfdcReportedQty();
Float editTotalReportQty = pageData.getTotalQty();//总数量
Float editTotalApprovedQty = pageData.getApprovedQty();//总量数量
Float otherRollQty = pageData.getOtherRollQty();
Float editNewRollQty = pageData.getEditNewRollQty();
String scheduledDate = pageData.getScheduledDate();
String shiftDesc = pageData.getShiftDesc();
String shiftNo = pageData.getShiftNo();
//判断报工的数量是否为正整数
Double remainderQty = approvedQty % 1.0;
if (remainderQty > 0) {
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);
}
//判断是否有主材上机
if (sfdcMaterialList.size() == 0) {
throw new RRException("为扫描主材不可结束卷!");
}
//1.调用存储过程 校验工单 派工单 上机卷 信息是否符合条件
Map<String, Object> checkMap1 = this.checkFinishRollWithScheduleOpsShift(site, orderNo, itemNo, seqNo, rollNo, scheduledDate, shiftNo);
//判断是否检验成功
String code1 = String.valueOf(checkMap1.get("resultCode"));
if ("400".equalsIgnoreCase(code1)) {
String msg = String.valueOf(checkMap1.get("resultMsg"));
throw new RRException(msg);
}
//2.调用存储过程 校验是否可以下机卷
Map<String, Object> checkMap2 = this.checkFinishRollWithSfdcRoll(site, orderNo, itemNo, seqNo, rollNo);
//判断是否检验成功
String code2 = String.valueOf(checkMap2.get("resultCode"));
if ("400".equalsIgnoreCase(code2)) {
String msg = String.valueOf(checkMap2.get("resultMsg"));
throw new RRException(msg);
}
//3.调用存储过程 校验不同工序间数量大小
Map<String, Object> checkMap3 = this.checkFinishRollWithSoRoutingQty(site, orderNo, itemNo, editReportQty);
//判断是否检验成功
String code3 = String.valueOf(checkMap3.get("resultCode"));
if ("400".equalsIgnoreCase(code3)) {
String msg = String.valueOf(checkMap3.get("resultMsg"));
throw new RRException(msg);
}
//4.调用存储过程 上机的主材依次校验
//先循环验证参数是否符合规则
for (int i = 0; i < sfdcMaterialList.size(); i++) {
SfdcMaterialData sfdcMaterialData = sfdcMaterialList.get(0);
Float transQty = sfdcMaterialData.getTransQty();
Float netIssueQty = sfdcMaterialData.getNetIssueQty();
Integer histSeqNo = sfdcMaterialData.getHistSeqNo();
//判断是否符合规则
if (netIssueQty == null) {
throw new RRException("材料上本卷耗用数量不能为空!");
}
if (netIssueQty <= 0) {
throw new RRException("材料上本卷耗用数量必须大于0!");
}
if (netIssueQty > transQty) {
throw new RRException("材料上本卷耗用数量大于发料数量!");
}
//调用存储过程校验每一个卷的数量
Map<String, Object> resultMap = this.checkFinishRollWithSfdcMaterialHist(site, orderNo, itemNo, rollNo, seqNo, editTotalReportQty, otherRollQty, editNewRollQty, netIssueQty, histSeqNo, username);
//区分是否抛出异常的信息
String resultCode = String.valueOf(resultMap.get("resultCode"));
if ("400".equalsIgnoreCase(resultCode)) {
String msg = String.valueOf(resultMap.get("resultMsg"));
throw new RRException(msg);
}
return resultMap;
}
return null;
}
@Override
@Transactional
public void finishPartRollWithNoFqc(Map<String, Object> inMap) {
}
}
Loading…
Cancel
Save