Browse Source

换包装 sxm 2022年3月30日

master
[li_she] 4 years ago
parent
commit
7bf84cc2aa
  1. 64
      src/main/java/com/gaotao/modules/schedule/controller/ScheduleController.java
  2. 9
      src/main/java/com/gaotao/modules/schedule/mapper/ScheduleMapper.java
  3. 34
      src/main/java/com/gaotao/modules/schedule/service/ScheduleService.java
  4. 242
      src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java
  5. 5
      src/main/resources/mapper/schedule/ScheduleMapper.xml

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

@ -7,7 +7,7 @@ import com.gaotao.modules.schedule.data.dto.ScheduleDateShifDto;
import com.gaotao.modules.schedule.data.dto.WorkbenchPostinspection;
import com.gaotao.modules.schedule.service.ScheduleService;
import com.gaotao.modules.shopOrder.entity.OperatorData;
import oracle.jdbc.proxy.annotation.Post;
import com.gaotao.modules.shopOrder.entity.ShopOrderData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -1528,4 +1528,66 @@ public class ScheduleController {
}
/**
* @Author sxm
* @Description 换包装校验
* @Date 2022/3/30 16:14
* @Param
* @return
**/
@RequestMapping(value = "checkRepackFinishRollWithNoFqc")
public R checkRepackFinishRollWithNoFqc(@RequestBody Map<String, Object> inMap){
Map<String, Object> resultMap = scheduleService.checkRepackFinishRollWithNoFqc(inMap);
return R.ok()
.put("resultMap", resultMap);
}
/**
* @Author sxm
* @Description 换包装结束卷
* @Date 2022/3/30 16:26
* @Param
* @return
**/
@RequestMapping(value = "repackFinishRollWithNoFqc")
public R repackFinishRollWithNoFqc(@RequestBody Map<String, Object> inMap){
scheduleService.repackFinishRollWithNoFqc(inMap);
return R.ok()
.put("code", 200)
.put("success", true)
.put("msg", "操作成功!");
}
/**
* @Author sxm
* @Description 结束换包装 fqc
* @Date 2022/3/30 16:30
* @Param
* @return
**/
@RequestMapping(value = "repackFinishScheduleWithNoFqc")
public R repackFinishScheduleWithNoFqc(@RequestBody SearchScheduleData inData) {
scheduleService.repackFinishScheduleWithNoFqc(inData);
return R.ok()
.put("code", 200)
.put("msg", "操作成功!");
}
/**
* @Author sxm
* @Description 获取订单类型
* @Date 2022/3/30 17:37
* @Param
* @return
**/
@PostMapping("getShopOrderType")
public R getShopOrderType(@RequestBody SearchScheduleData inData){
String shopOrderType = scheduleService.getShopOrderType(inData);
return R.ok()
.put("data", shopOrderType)
.put("msg", "操作成功!");
}
}

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

@ -534,4 +534,13 @@ public interface ScheduleMapper {
* @return
**/
void repairSOFlagProduceOrder(SearchScheduleData inData);
/**
* @Author sxm
* @Description 获取订单信息
* @Date 2022/3/30 17:39
* @Param
* @return
**/
String getShopOrderType(SearchScheduleData inData);
}

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

@ -902,5 +902,39 @@ public interface ScheduleService {
R soscheduleNewReinspectjob(SearchScheduleData inData);
/**
* @Author sxm
* @Description 换包装结束卷校验
* @Date 2022/3/30 15:59
* @Param
* @return
**/
Map<String, Object> checkRepackFinishRollWithNoFqc(Map<String, Object> inMap);
/**
* @Author sxm
* @Description 换包装结束卷
* @Date 2022/3/30 15:59
* @Param
* @return
**/
void repackFinishRollWithNoFqc(Map<String, Object> inMap);
/**
* @Author sxm
* @Description 换包装结单
* @Date 2022/3/30 16:32
* @Param
* @return
**/
void repackFinishScheduleWithNoFqc(SearchScheduleData inData);
/**
* @Author sxm
* @Description 获取生产订单类型
* @Date 2022/3/30 17:37
* @Param
* @return
**/
String getShopOrderType(SearchScheduleData inData);
}

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

@ -1954,7 +1954,7 @@ public class ScheduleServiceImpl implements ScheduleService {
//2.调用存储过程 校验是否可以下机卷 todo sxm 2022-3-15 添加参数 CreateNewRollFlag
Map<String, Object> checkMap2 = this.checkFinishRollWithSfdcRoll(site, orderNo, itemNo, seqNo, rollNo, pageData.getCreateNewRollFlag());
//判断是否检验成功
//判断是否检验成功+
String code2 = String.valueOf(checkMap2.get("resultCode"));
if ("400".equalsIgnoreCase(code2)) {
String msg = String.valueOf(checkMap2.get("resultMsg"));
@ -3997,4 +3997,244 @@ public class ScheduleServiceImpl implements ScheduleService {
}
return R.ok("操作成功!");
}
@Override
public Map<String, Object> checkRepackFinishRollWithNoFqc(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.getUsername();
String operatorId = 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("总良品数量不允许输入小数!");
}
//判断是否有主材上机
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);
}
//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.checkRepackFinishRollWithSfdcMaterialHist (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;
}
/**
* @return java.util.Map<java.lang.String, java.lang.Object>
* @Author LR
* @Description 存储过程校验 单个材料的校验数据
* @DateTime 2022/1/25 15:05
* @Param [site, orderNo, itemNo, rollNo, seqNo, editTotalReportQty, otherRollQty, editNewRollQty, netIssueQty, histSeqNo]
**/
public Map<String, Object> checkRepackFinishRollWithSfdcMaterialHist (String site, String orderNo, Integer itemNo, String rollNo, String seqNo, Float editTotalReportQty, Float otherRollQty,
Float editNewRollQty, Float netIssueQty, Integer histSeqNo, String username) {
List<Object> params = new ArrayList<>();
params.add(site);
params.add(orderNo);
params.add(itemNo);
params.add(seqNo);
params.add(rollNo);
params.add(editTotalReportQty);
params.add(otherRollQty);
params.add(editNewRollQty);
params.add(netIssueQty);
params.add(histSeqNo);
params.add(username);
//执行存储过程
List<Map<String, Object>> resultList = procedureMapper.getProcedureData("checkFinishRollWithSfdcMaterialHist", params);
//返回执行的结果
return resultList.get(0);
}
@Override
@Transactional
public void repackFinishRollWithNoFqc(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.getUsername();
String operatorId = pageData.getOperatorId();
String operatorName = pageData.getOperatorName();
Float editTotalReportQty = pageData.getTotalQty();//总数量
Float totalApprovedQty = pageData.getApprovedQty();//总良数量
Float otherRollQty = pageData.getOtherRollQty();
Float defectedQty = pageData.getDefectedQty();
Float editNewRollQty = pageData.getEditNewRollQty();
String reportedTime = pageData.getReportedTime();
Float sfdcReportedQty = pageData.getSfdcReportedQty();//报告数量
Float sfdcApprovedQty = pageData.getSfdcApprovedQty();//合格数量
Float sfdcSetupTime = pageData.getSfdcSetupTime();//调机时间
Float sfdcProdTime = pageData.getSfdcProdTime(); //生产时间
Float sfdcDownTime = pageData.getSfdcDownTime();//停机时间
String eventTime = pageData.getEventTime();//开工时间
String tillTime = pageData.getTillTime();//完工时间
String remark = pageData.getRemark();//备注
Float sfdcSetupDownTime = pageData.getSfdcSetupDownTime();//调机停机
Float sfdcProdSetupTime = pageData.getSfdcProdSetupTime();//生产调机
Float sfdcManufactureTime = pageData.getSfdcManufactureTime();//制造时间
String exceptionFlag = pageData.getExceptionFlag();
String exceptionReason = pageData.getExceptionReason();
//首先调用校验的方法
this.checkRepackFinishRollWithNoFqc(inMap);
//1.调用存储过程 处理SfdcTimeHist的信息
this.finishRollProcessSfdcTimeHist(site, orderNo, itemNo, seqNo, rollNo, operatorId, reportedTime);
//2.调用存储过程 处理SfdcToolHist的信息
this.finishRollProcessSfdcToolHist(site, orderNo, itemNo, seqNo, rollNo, editTotalReportQty, operatorId, operatorName, reportedTime);
//3.调用存储过程 处理SfdcMaterialHist的信息 --主材
//循环for循环处理
for (int i = 0; i < sfdcMaterialList.size(); i++) {
SfdcMaterialData sfdcMaterialData = sfdcMaterialList.get(0);
Float netIssueQty = sfdcMaterialData.getNetIssueQty();
Integer histSeqNo = sfdcMaterialData.getHistSeqNo();
this.finishRollProcessSfdcMaterialHistWithKeyRm(site, orderNo, itemNo, seqNo, rollNo, netIssueQty, histSeqNo, operatorId, reportedTime);
}
//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());
//6.调用存储过程 处理Sfdc和派工单
this.finishRollProcessSfdcAndSchedule(site, orderNo, itemNo, seqNo, rollNo, sfdcReportedQty, sfdcApprovedQty,
sfdcSetupTime, sfdcProdTime, sfdcDownTime, eventTime, tillTime, remark,
sfdcSetupDownTime, sfdcProdSetupTime, defectedQty, sfdcManufactureTime, operatorId, reportedTime);
//7.正常结束卷还是 异常下机
if ("Y".equalsIgnoreCase(exceptionFlag)) {
this.finishRollProcessException(site, orderNo, itemNo, seqNo, rollNo, exceptionReason, username);
}
// 调用未结生产生产订单下机卷
if ("Y".equals(pageData.getCreateNewRollFlag())) {
this.finishRollProcessSFDCNewRoll(site, orderNo, itemNo, seqNo, rollNo, pageData.getNewCreateRollQty(), pageData.getOperatorId());
}
}
@Override
@Transactional
public void repackFinishScheduleWithNoFqc(SearchScheduleData inData) {
//公共参数
String site = inData.getSite();
String orderNo = inData.getOrderNo();
Integer itemNo = inData.getItemNo();
String seqNo = inData.getSeqNo();
String scheduledDate = inData.getScheduledDate();
String shiftDesc = inData.getShiftDesc();
Float reportedQty = inData.getApprovedQty();//总良品数量
Float defectedQty = inData.getDefectedQty();//总不良数量
String username = inData.getUsername();
String operatorId = inData.getOperatorId();
String operatorName = inData.getOperatorName();
String reportedTime = inData.getReportedTime();
String exceptionFlag = inData.getExceptionFlag();
String exceptionReason = inData.getExceptionReason();
//1.调用检查的方法
this.checkFinishScheduleWithNoFqc(inData);
//调用结束派工单的存储过程
// 1. 调用存储过程 处理工具的信息
this.finishScheduleProcessSfdcToolHist(site, orderNo, itemNo, seqNo, reportedTime);
// 2. 调用存储过程 处理时间的信息
Map<String, Object> timeMap = this.finishScheduleProcessSfdcTimeHist(site, orderNo, itemNo, seqNo, operatorId, reportedTime);
//获取最后的序号
int histSeqNo = Integer.parseInt(String.valueOf(timeMap.get("histSeqNo")));
//3.调用存储过程处理 材料历史记录数据 以及原材料的数据
this.finishScheduleProcessSfdcMaterialHist(site, orderNo, itemNo, seqNo, reportedTime);
//4.调用存储过程处理 派工单和sfdc的信息
this.finishScheduleProcessSfdcAndSchedule(site, orderNo, itemNo, seqNo, histSeqNo, shiftDesc, username, operatorId, reportedTime, scheduledDate);
//5.调用存储过程处理 transHeader TransDetail TransDetailSub数据
this.finishRepackScheduleProcessTransData(site, orderNo, itemNo, seqNo, username, operatorName, reportedTime);
//6.调用存储过程 处理异常信息
if ("Y".equalsIgnoreCase(exceptionFlag)) {
this.finishScheduleProcessException(site, orderNo, itemNo, seqNo, exceptionReason, username, reportedTime);
}
//7.调用SAP 处理程序
//8.反写交易记录表的SAP交易号
}
/**
* @return void
* @Author LR
* @Description 调用存储过程处理 transHeader TransDetail TransDetailSub数据
* @DateTime 2022/2/8 14:12
* @Param [site, orderNo, itemNo, seqNo, username, reportedTime]
**/
public void finishRepackScheduleProcessTransData (String site, String orderNo, Integer itemNo, String seqNo, String username, String operatorName, String reportedTime) {
List<Object> params = new ArrayList<>();
params.add(site);
params.add(orderNo);
params.add(itemNo);
params.add(seqNo);
params.add(username);
params.add(operatorName);
params.add(reportedTime);
//调用存储过程
procedureMapper.getProcedureData("finishRepackScheduleProcessTransData ", params);
}
@Override
public String getShopOrderType(SearchScheduleData inData) {
return scheduleMapper.getShopOrderType(inData);
}
}

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

@ -1168,4 +1168,9 @@
<select id="getSORoutingPreviousOperationItemNo" resultType="java.lang.Integer">
select dbo.Get_SORouting_PreviousOperationItemNo(#{site},#{orderNo},#{itemNo})
</select>
<select id="getShopOrderType" resultType="java.lang.String">
Select OrderType as order_type from ShopOrder
where Site=#{site}
and OrderNo=#{orderNo}
</select>
</mapper>
Loading…
Cancel
Save