裁片工单生成问题修复

tags/yfai-pcn-ext-v2.3
yxw 8 months ago
parent d818cb08d7
commit 487c627bf8

@ -10,6 +10,7 @@ import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@ -32,7 +33,8 @@ public class MesCutRawErrorProofingController {
@ApiOperation(value = "扫描裁片工单/原材料条码") @ApiOperation(value = "扫描裁片工单/原材料条码")
public ResultBean doScanSn(MesCutRawErrorProofingModel model) { public ResultBean doScanSn(MesCutRawErrorProofingModel model) {
try { try {
return ResultBean.success("扫描成功").setResultObject(cutRawErrorProofingService.doScanSn(model)); MesCutRawErrorProofingModel result = cutRawErrorProofingService.doScanSn(model);
return ResultBean.success(StringUtils.isEmpty(result.getShowInfo()) ? "扫描成功" : result.getShowInfo()).setResultObject(result);
} catch (ImppBusiException imppException) { } catch (ImppBusiException imppException) {
return ResultBean.fail(imppException); return ResultBean.fail(imppException);
} catch (Exception e) { } catch (Exception e) {

@ -6,6 +6,7 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesCutRawErrorProofingModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesCutUpdateRawLengthModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesCutUpdateRawLengthModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.Pager;
@ -70,9 +71,10 @@ public class MesCutRawErrorProofingService implements IMesCutRawErrorProofingSer
result.setCurScanType(CUR_SCAN_TYPE_BY_RAW_SN); result.setCurScanType(CUR_SCAN_TYPE_BY_RAW_SN);
result.setCutWorkOrderNo(workOrderCutDb.getCutWorkOrderNo()); result.setCutWorkOrderNo(workOrderCutDb.getCutWorkOrderNo());
result.setIsRedirect(CommonEnumUtil.FALSE); result.setIsRedirect(CommonEnumUtil.FALSE);
result.setIsReset(CommonEnumUtil.FALSE);
} else { } else {
result.setCurScanType(CUR_SCAN_TYPE_BY_RAW_SN);
// 校验条码有效性 // 校验条码有效性
String[] valueArray = model.getSn().split("\\|"); String[] valueArray = model.getSn().split("\\|");
@ -94,7 +96,7 @@ public class MesCutRawErrorProofingService implements IMesCutRawErrorProofingSer
Double length; Double length;
if (!workOrderCutMaterialMap.containsKey(partNo)) MesPcnException.throwMesBusiException("扫描条码【%s】物料【%s】不在裁片方案原材料中", model.getSn(), partNo); if (!workOrderCutMaterialMap.containsKey(partNo)) MesPcnException.throwMesBusiException("扫描条码【%s】零件号【%s】不在裁片方案原材料中", model.getSn(), partNo);
// 为 2 则为条码 // 为 2 则为条码
DdlPackBean packBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode()); DdlPackBean packBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode());
@ -118,25 +120,36 @@ public class MesCutRawErrorProofingService implements IMesCutRawErrorProofingSer
materialSnDb.setSurplusLength(length); materialSnDb.setSurplusLength(length);
} }
// 已扫描长度 // 剩余需要扫描的长度
Double surplusLength = workOrderCutMaterial.getMaterialDosage() - workOrderCutMaterial.getScanLength(); Double surplusLength = workOrderCutMaterial.getMaterialDosage() - workOrderCutMaterial.getScanLength();
if (surplusLength.compareTo(length) > 0) { if (surplusLength.compareTo(length) > 0) {
materialSnDb.setSurplusLength(0.0); materialSnDb.setSurplusLength(0.0);
workOrderCutMaterial.setScanLength(workOrderCutMaterial.getScanLength() + length); workOrderCutMaterial.setScanLength(workOrderCutMaterial.getScanLength() + length);
result.setIsRedirect(CommonEnumUtil.FALSE); result.setIsRedirect(CommonEnumUtil.FALSE);
result.setShowInfo("长度不足,请继续扫描条码"); result.setShowInfo("长度不足,请继续扫描条码");
result.setIsReset(CommonEnumUtil.FALSE);
} else { } else {
materialSnDb.setSurplusLength(length - surplusLength); materialSnDb.setSurplusLength(length - surplusLength);
// 已满足扫描总长度 修改工单状态为已校验原材料
DdlPackBean packBean1 = DdlPackBean.getDdlPackBean(model.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(model.getCutWorkOrderNo(), MesPcnExtConstWords.CUT_WORK_ORDER_NO, packBean);
MesWorkOrderCut workOrderCut = workOrderCutRepository.getByProperty(packBean1);
workOrderCut.setWorkOrderStatus(MesExtEnumUtil.CUT_ORDER_STATUS.CHECKED_RAW.getValue());
ConvertBean.serviceModelUpdate(workOrderCut, model.getUserName());
workOrderCutRepository.save(workOrderCut);
workOrderCutMaterial.setScanLength(workOrderCutMaterial.getMaterialDosage()); workOrderCutMaterial.setScanLength(workOrderCutMaterial.getMaterialDosage());
boolean isUpdateWorkOrderCut = true;
for (Map.Entry<String, MesWorkOrderCutMaterial> entry : workOrderCutMaterialMap.entrySet()) {
if (entry.getValue().getScanLength().compareTo(entry.getValue().getMaterialDosage()) != 0) isUpdateWorkOrderCut = false;
}
// 所有原材料已满足扫描总长度 则修改工单状态为已校验原材料并告知前端可重置页面
if (isUpdateWorkOrderCut) {
workOrderCutRepository.updateByProperties(
new String[]{MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.CUT_WORK_ORDER_NO},
new Object[]{CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(),
CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), model.getOrganizeCode(), model.getCutWorkOrderNo()},
new String[]{MesPcnExtConstWords.WORK_ORDER_STATUS, MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME, MesPcnExtConstWords.SYSTEM_SYNC_STATUS},
new Object[]{MesExtEnumUtil.CUT_ORDER_STATUS.CHECKED_RAW.getValue(), model.getUserName(), TimeTool.getNowTime(true)});
result.setIsReset(CommonEnumUtil.VALID);
} else result.setIsReset(CommonEnumUtil.FALSE);
result.setIsRedirect(CommonEnumUtil.VALID); result.setIsRedirect(CommonEnumUtil.VALID);
} }

@ -18,6 +18,9 @@ public class MesCutRawErrorProofingModel {
@ApiParam("是否跳转页面") @ApiParam("是否跳转页面")
private Integer isRedirect; private Integer isRedirect;
@ApiParam("是否重置")
private Integer isReset;
@ApiParam("工厂代码") @ApiParam("工厂代码")
private String organizeCode; private String organizeCode;

@ -422,4 +422,6 @@ public class MesPcnExtConstWords {
public static final String CUT_WORK_ORDER_NO = "cutWorkOrderNo"; public static final String CUT_WORK_ORDER_NO = "cutWorkOrderNo";
// 条码 // 条码
public static final String SN = "sn"; public static final String SN = "sn";
//工单状态
public static final String WORK_ORDER_STATUS = "workOrderStatus";
} }

Loading…
Cancel
Save