JOB
增加单位信息的同步任务
金蝶:
同步销售订单、采购订单和项目信息增加根据状态的过滤
原材料条码:
打印时切换成本地服务打印
成品条码:
打印时成品条码切换本地服务,增加补打印功能
master
xs 3 weeks ago
parent 882c84ea1b
commit e007884249

@ -20,6 +20,11 @@ import org.springframework.web.bind.annotation.RequestHeader;
@FeignClient(contextId = "remoteJindieService", value = ServiceNameConstants.JINDIE_SERVICE, fallbackFactory = RemoteJindieFallbackFactory.class)
public interface RemoteJindieService {
/** 同步单位信息*/
@PostMapping("/jindie/syncUnitInfoFromErp")
R<Integer> syncUnitInfoFromErp(@RequestBody ErpSyncInfoVo erpSyncInfoVo,@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/** 同步供应商*/
@PostMapping("/jindie/syncSupplierInfoFromErp")
R<Integer> syncSupplierInfoFromErp(@RequestBody ErpSyncInfoVo erpSyncInfoVo,@RequestHeader(SecurityConstants.FROM_SOURCE) String source);

@ -16,6 +16,11 @@ import org.springframework.web.bind.annotation.RequestBody;
public class RemoteJindieFallbackFactory implements FallbackFactory<RemoteJindieService> {
public RemoteJindieService create(Throwable throwable) {
return new RemoteJindieService() {
@Override
public R<Integer> syncUnitInfoFromErp(ErpSyncInfoVo erpSyncInfoVo, String source) {
return R.fail("同步单位信息失败:" + throwable.getMessage());
}
@Override
public R<Integer> syncSupplierInfoFromErp(ErpSyncInfoVo erpSyncInfoVo,String source) {
return R.fail("同步供应商信息失败:" + throwable.getMessage());

@ -21,9 +21,16 @@ public class PrintContentVo {
public static final String RAW_MATERIAL_LABEL_KEY_QC_RESULT_YES = "qcResultYes";
public static final String RAW_MATERIAL_LABEL_KEY_QC_RESULT_NO = "qcResultNo";
public static final String RAW_MATERIAL_LABEL_KEY_QRCODE = "qrcode";
public static final String RAW_MATERIAL_LABEL_KEY_BARCODE = "barcode";
public static final String PRODUCT_PLAN_CODE = "productPlanCode";
public static final String PRINT_TEMPLATE_RAW = "raw";
public static final String PRINT_TEMPLATE_PRODUCT = "product";
public static final String PRINT_TEMPLATE_BIND = "bind";
private String key;
private String value;

@ -79,6 +79,14 @@ public class RyTask
System.out.println("++创建保养工单++getDmsMaintInstance");
remoteDmsService.getDmsBillsMaintInstance(SecurityConstants.INNER,planMaintCode);
}
public void syncUnitInfoFromErp(String maxErpModifyDate){
ErpSyncInfoVo erpSyncInfoVo = new ErpSyncInfoVo();
erpSyncInfoVo.setMaxErpModifyDate(maxErpModifyDate);
System.out.println("++同步ERP中物料供应商++ErpSupplierInfo");
remoteJindieService.syncUnitInfoFromErp(erpSyncInfoVo,SecurityConstants.INNER);
}
public void syncSupplierInfoFromErp(String maxErpModifyDate){
ErpSyncInfoVo erpSyncInfoVo = new ErpSyncInfoVo();
erpSyncInfoVo.setMaxErpModifyDate(maxErpModifyDate);

@ -314,6 +314,17 @@ public class MesApiController extends BaseController {
}
/**
*
* @param barcodeIds
* @return
*/
@GetMapping(value = "/reprintBarcodes/{barcodeIds}")
public AjaxResult reprintBarcodes(@PathVariable Long[] barcodeIds)
{
return success(mesBaseBarcodeInfoService.printBarcodes(barcodeIds,MesConstants.MES_BARCODE_TYPE_PRODUCT,true,1));
}
/**
*
*

@ -212,7 +212,7 @@ public class MesBaseBarcodeInfoController extends BaseController
/**
*
* ()
* @param barcodeIds
* @return
*/

@ -1,5 +1,7 @@
package com.hw.mes.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.hw.common.core.constant.*;
import com.hw.common.core.domain.R;
import com.hw.common.core.exception.ServiceException;
@ -24,6 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.data.redis.core.StringRedisTemplate;
import javax.annotation.Resource;
import java.math.BigDecimal;
@ -42,8 +45,8 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService
@Autowired
private MesBaseBarcodeInfoMapper mesBaseBarcodeInfoMapper;
@Resource
private RemotePrinterService remotePrinterService;
@Autowired
private StringRedisTemplate redisTemplate;
@Autowired
private MesOrderBindMapper mesOrderBindMapper;
@ -623,184 +626,130 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService
* @return
*/
@Override
@Transactional
@Transactional(rollbackFor = Exception.class)
public int printBarcodes(Long[] barcodeIds, String printType, boolean reprintFlag, Integer printNumber) {
//获取条码List
// List<List<PrintContentVo>> printContents = new ArrayList<>();
// List<MesBaseBarcodeInfo> toUpdatedBaseBarcodeInfos = new ArrayList<>();
JSONArray pintBarcodeJsonArr = new JSONArray();
JSONObject printContentJson = new JSONObject();
String barcodeType = "";
for (Long barcodeId : barcodeIds) {
MesBaseBarcodeInfo mesBaseBarcodeInfo = mesBaseBarcodeInfoMapper.selectMesBaseBarcodeInfoByBarcodeId(barcodeId);
if (StringUtils.isEmpty(barcodeType)) {
barcodeType = mesBaseBarcodeInfo.getBarcodeType();
}
this.updateBaseBarcodePrintFlag(mesBaseBarcodeInfo, reprintFlag);
if (printNumber != null && printNumber > 1) {
for (int i = 0; i < printNumber; i++) {
printBarcodesByBarcodeId(barcodeId, printType, reprintFlag);
JSONObject printBarcodeJson = getBarcodeJsonByBarcode(mesBaseBarcodeInfo, printType);
pintBarcodeJsonArr.add(printBarcodeJson);
}
} else {
printBarcodesByBarcodeId(barcodeId, printType, reprintFlag);
JSONObject printBarcodeJson = getBarcodeJsonByBarcode(mesBaseBarcodeInfo, printType);
pintBarcodeJsonArr.add(printBarcodeJson);
}
}
String printTemplate = "";
if (barcodeType.equals(MesConstants.MES_BARCODE_TYPE_RAW)) {
printTemplate = PrintContentVo.PRINT_TEMPLATE_RAW;
} else if (barcodeType.equals(MesConstants.MES_BARCODE_TYPE_PRODUCT)) {
printTemplate = PrintContentVo.PRINT_TEMPLATE_PRODUCT;
} else if (barcodeType.equals(MesConstants.MES_BARCODE_TYPE_BIND)) {
printTemplate = PrintContentVo.PRINT_TEMPLATE_BIND;
}
printContentJson.put("template", printTemplate);
printContentJson.put("printContent", pintBarcodeJsonArr.toString());
System.out.println(printContentJson.toString());
// for (MesBaseBarcodeInfo toUpdateMesBaseBarcodeInfo : toUpdatedBaseBarcodeInfos) {
// toUpdateMesBaseBarcodeInfo.setPrintTime(DateUtils.getNowDate());
// toUpdateMesBaseBarcodeInfo.setPrintPerson(SecurityUtils.getUsername());
// toUpdateMesBaseBarcodeInfo.setPrintFlag(MesConstants.MES_BARCODE_PRINT_FLAG_YES);
// toUpdateMesBaseBarcodeInfo.setPrintNumber(1L);
// toUpdateMesBaseBarcodeInfo.setAcceptedDate(DateUtils.getNowDate());
// this.updateMesBaseBarcodeInfo(toUpdateMesBaseBarcodeInfo);
// }
//
// PrinterVo printerVo = new PrinterVo();
// printerVo.setPrintType(printType);
// printerVo.setPrintContents(printContents);
//
// //调用的打印接口
// R<?> printResultR = remotePrinterService.printBarcodes(printerVo, SecurityConstants.INNER);
// if (printResultR.getCode() != Constants.SUCCESS) {//抛出异常,回滚事务
// throw new RuntimeException(printResultR.getMsg());
// }
try {
redisTemplate.opsForList().rightPush("print_10.10.3.119", printContentJson.toString());
// redisTemplate.convertAndSend("print_10.10.3.119", printContentJson.toString());
} catch (Exception e) {
throw new ServiceException("打印失败:" + e.getMessage());
}
return 1;
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void printBarcodesByBarcodeId(Long barcodeId, String printType, boolean reprintFlag) {
MesBaseBarcodeInfo mesBaseBarcodeInfo = mesBaseBarcodeInfoMapper.selectMesBaseBarcodeInfoJoinByBarcodeId(barcodeId);
if (!reprintFlag) {
public void updateBaseBarcodePrintFlag(MesBaseBarcodeInfo mesBaseBarcodeInfo, boolean reprintFlag) {
String barcodeType = mesBaseBarcodeInfo.getBarcodeType();
if (!reprintFlag && !barcodeType.equals(MesConstants.MES_BARCODE_TYPE_BIND)) {
String printFlag = mesBaseBarcodeInfo.getPrintFlag();
if (printFlag.equals(MesConstants.MES_BARCODE_PRINT_FLAG_YES)) {
throw new ServiceException("此物料条码[" + mesBaseBarcodeInfo.getBarcodeInfo() + "]已经打印过,不能重复打印");
}
}
String materialName = mesBaseBarcodeInfo.getMaterialName();
List<PrintContentVo> printContentVos = new ArrayList<>();
PrintContentVo printMaterialCode = new PrintContentVo();
printMaterialCode.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_CODE);
printMaterialCode.setValue(mesBaseBarcodeInfo.getMaterialCode());
printMaterialCode.setType(PrintContentVo.TYPE_TEXT);
Date currentDate = new Date();
mesBaseBarcodeInfo.setUpdateTime(currentDate);
mesBaseBarcodeInfo.setUpdateBy(SecurityUtils.getUsername());
mesBaseBarcodeInfo.setPrintTime(DateUtils.getNowDate());
mesBaseBarcodeInfo.setPrintPerson(SecurityUtils.getUsername());
mesBaseBarcodeInfo.setPrintFlag(MesConstants.MES_BARCODE_PRINT_FLAG_YES);
mesBaseBarcodeInfo.setPrintNumber(mesBaseBarcodeInfo.getPrintNumber() == null ? 1L : mesBaseBarcodeInfo.getPrintNumber() + 1);
mesBaseBarcodeInfo.setAcceptedDate(currentDate);
mesBaseBarcodeInfoMapper.updateMesBaseBarcodeInfo(mesBaseBarcodeInfo);
}
PrintContentVo printPreMaterial = new PrintContentVo();
// if (mesBaseBarcodeInfo.getBindFlag() == null) {
//
// }
PrintContentVo printSaleOrderCode = new PrintContentVo();
printSaleOrderCode.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_SALE_ORDER_CODE);
printSaleOrderCode.setValue(mesBaseBarcodeInfo.getSaleorderCode());
printSaleOrderCode.setType(PrintContentVo.TYPE_TEXT);
// @Transactional(propagation = Propagation.REQUIRES_NEW)
public JSONObject getBarcodeJsonByBarcode(MesBaseBarcodeInfo mesBaseBarcodeInfo, String printType) {
String materialName = mesBaseBarcodeInfo.getMaterialName();
JSONObject printInfoObject = new JSONObject();
printInfoObject.put(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_CODE, mesBaseBarcodeInfo.getMaterialCode());
printInfoObject.put(PrintContentVo.RAW_MATERIAL_LABEL_KEY_SALE_ORDER_CODE, mesBaseBarcodeInfo.getSaleorderCode());
printInfoObject.put(PrintContentVo.RAW_MATERIAL_LABEL_KEY_QRCODE, mesBaseBarcodeInfo.getBarcodeInfo());
PrintContentVo printBarCode = new PrintContentVo();
printBarCode.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_QRCODE);
printBarCode.setValue(mesBaseBarcodeInfo.getBarcodeInfo());
printBarCode.setType(PrintContentVo.TYPE_QRCODE);
if (printType.equals(PrinterVo.PRINT_TYPE_RAW_LABEL)) {
PrintContentVo printMaterialName = new PrintContentVo();
printMaterialName.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_NAME);
materialName = materialName.length() <= 10 ? "\n" + materialName : materialName;
printMaterialName.setValue(materialName.replaceAll("[\\x00-\\x1F\\x7F-\\x9F]", ""));
printMaterialName.setType(PrintContentVo.TYPE_TEXT);
PrintContentVo printBatchCode = new PrintContentVo();
printBatchCode.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_BATCH_CODE);
printBatchCode.setValue(mesBaseBarcodeInfo.getBatchCode());
printBatchCode.setType(PrintContentVo.TYPE_TEXT);
PrintContentVo printPoNo = new PrintContentVo();
printPoNo.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_PO_NO);
printPoNo.setValue(mesBaseBarcodeInfo.getPoNo());
printPoNo.setType(PrintContentVo.TYPE_TEXT);
// materialName = materialName.length() <= 10 ? "\n" + materialName : materialName;
// printMaterialName.setValue(materialName.replaceAll("[\\x00-\\x1F\\x7F-\\x9F]", ""));
// printMaterialName.setType(PrintContentVo.TYPE_TEXT);
printInfoObject.put(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_NAME, materialName);
printInfoObject.put(PrintContentVo.RAW_MATERIAL_LABEL_KEY_BARCODE, mesBaseBarcodeInfo.getBarcodeInfo());
printInfoObject.put(PrintContentVo.RAW_MATERIAL_LABEL_KEY_BATCH_CODE, mesBaseBarcodeInfo.getBatchCode());
printInfoObject.put(PrintContentVo.RAW_MATERIAL_LABEL_KEY_PO_NO, mesBaseBarcodeInfo.getPoNo());
//常备物料为安全库存
String printPreMaterialKey = mesBaseBarcodeInfo.getAlwaysFlag() != null && mesBaseBarcodeInfo.getAlwaysFlag().equals(MesConstants.MES_MATERIAL_ALWAYS_FLAG_YES)
? PrintContentVo.RAW_MATERIAL_LABEL_KEY_PRE_MATERIAL_YES : PrintContentVo.RAW_MATERIAL_LABEL_KEY_PRE_MATERIAL_NO;
printPreMaterial.setKey(printPreMaterialKey);
printPreMaterial.setType(PrintContentVo.TYPE_CHECKBOX);
PrintContentVo printMaterialSpec = new PrintContentVo();
printMaterialSpec.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_SPEC);
if (StringUtils.isNotEmpty(mesBaseBarcodeInfo.getBarcodeSpec())) {
printMaterialSpec.setValue(mesBaseBarcodeInfo.getBarcodeSpec().replaceAll("[\\x00-\\x1F\\x7F-\\x9F]", ""));
}
printMaterialSpec.setType(PrintContentVo.TYPE_TEXT);
PrintContentVo printQty = new PrintContentVo();
printQty.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_QTY);
DecimalFormat df = new DecimalFormat("#.##");
String formattedNumber = df.format(mesBaseBarcodeInfo.getAmount() == null ? BigDecimal.ZERO : mesBaseBarcodeInfo.getAmount());
printQty.setValue(formattedNumber);
printQty.setType(PrintContentVo.TYPE_TEXT);
printContentVos.add(printMaterialName);
printContentVos.add(printBatchCode);
printContentVos.add(printPoNo);
printContentVos.add(printMaterialSpec);
printContentVos.add(printQty);
// String printPreMaterialKey = mesBaseBarcodeInfo.getAlwaysFlag() != null && mesBaseBarcodeInfo.getAlwaysFlag().equals(MesConstants.MES_MATERIAL_ALWAYS_FLAG_YES)
// ? PrintContentVo.RAW_MATERIAL_LABEL_KEY_PRE_MATERIAL_YES : PrintContentVo.RAW_MATERIAL_LABEL_KEY_PRE_MATERIAL_NO;
// printPreMaterial.setKey(printPreMaterialKey);
// printPreMaterial.setType(PrintContentVo.TYPE_CHECKBOX);
} else if (printType.equals(PrinterVo.PRINT_TYPE_PRODUCT_LABEL)) {
PrintContentVo printMaterialName = new PrintContentVo();
materialName = materialName.length() <= 8 ? "\n" + materialName : materialName;
printMaterialName.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_NAME);
printMaterialName.setValue(materialName);
printMaterialName.setType(PrintContentVo.TYPE_TEXT);
PrintContentVo printQty = new PrintContentVo();
printQty.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_QTY);
printQty.setValue("1");
printQty.setType(PrintContentVo.TYPE_TEXT);
PrintContentVo printPlanCode = new PrintContentVo();
printPlanCode.setKey(PrintContentVo.PRODUCT_PLAN_CODE);
printPlanCode.setValue(mesBaseBarcodeInfo.getPlanCode());
printPlanCode.setType(PrintContentVo.TYPE_TEXT);
printContentVos.add(printMaterialName);
printContentVos.add(printQty);
printContentVos.add(printPlanCode);
}
printContentVos.add(printMaterialCode);
printContentVos.add(printPreMaterial);
printContentVos.add(printSaleOrderCode);
printContentVos.add(printBarCode);
String checkStatus = mesBaseBarcodeInfo.getCheckStatus() == null ? "" : mesBaseBarcodeInfo.getCheckStatus();
if (checkStatus.equals(QmsConstants.QMS_CHECK_RESULT_CHECK_STATUS_PASS)) {
PrintContentVo printQcResult = new PrintContentVo();
printQcResult.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_QC_RESULT_YES);
printQcResult.setType(PrintContentVo.TYPE_CHECKBOX);
printContentVos.add(printQcResult);
} else if (checkStatus.equals(QmsConstants.QMS_CHECK_RESULT_CHECK_STATUS_FAIL)) {
PrintContentVo printQcResult = new PrintContentVo();
printQcResult.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_QC_RESULT_NO);
printQcResult.setType(PrintContentVo.TYPE_CHECKBOX);
printContentVos.add(printQcResult);
}
// printContents.add(printContentVos);
// toUpdatedBaseBarcodeInfos.add(mesBaseBarcodeInfo);
mesBaseBarcodeInfo.setPrintTime(DateUtils.getNowDate());
mesBaseBarcodeInfo.setPrintPerson(SecurityUtils.getUsername());
mesBaseBarcodeInfo.setPrintFlag(MesConstants.MES_BARCODE_PRINT_FLAG_YES);
mesBaseBarcodeInfo.setPrintNumber(mesBaseBarcodeInfo.getPrintNumber() == null ? 1L : mesBaseBarcodeInfo.getPrintNumber() + 1);
mesBaseBarcodeInfo.setAcceptedDate(DateUtils.getNowDate());
this.updateMesBaseBarcodeInfo(mesBaseBarcodeInfo);
printInfoObject.put(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_SPEC, mesBaseBarcodeInfo.getBarcodeSpec() == null ? ""
: mesBaseBarcodeInfo.getBarcodeSpec().replaceAll("[\\x00-\\x1F\\x7F-\\x9F]", ""));
// PrintContentVo printQty = new PrintContentVo();
// printQty.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_QTY);
// DecimalFormat df = new DecimalFormat("#.##");
// String formattedNumber = df.format(mesBaseBarcodeInfo.getAmount() == null ? BigDecimal.ZERO : mesBaseBarcodeInfo.getAmount());
// printQty.setValue(formattedNumber);
// printQty.setType(PrintContentVo.TYPE_TEXT);
PrinterVo printerVo = new PrinterVo();
printerVo.setPrintType(printType);
printerVo.setPrintContentVos(printContentVos);
} else if (printType.equals(PrinterVo.PRINT_TYPE_PRODUCT_LABEL)) {
printInfoObject.put(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_NAME, materialName);
printInfoObject.put(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_SPEC, mesBaseBarcodeInfo.getBarcodeSpec() == null ? ""
: mesBaseBarcodeInfo.getBarcodeSpec().replaceAll("[\\x00-\\x1F\\x7F-\\x9F]", ""));
printInfoObject.put(PrintContentVo.RAW_MATERIAL_LABEL_KEY_BARCODE, mesBaseBarcodeInfo.getBarcodeInfo());
printInfoObject.put(PrintContentVo.PRODUCT_PLAN_CODE, mesBaseBarcodeInfo.getPlanCode());
printInfoObject.put(PrintContentVo.RAW_MATERIAL_LABEL_KEY_QTY, "1");
//调用的打印接口
R<?> printResultR = remotePrinterService.printBarcodes(printerVo, SecurityConstants.INNER);
if (printResultR.getCode() != Constants.SUCCESS) {
throw new RuntimeException(printResultR.getMsg());
}
return printInfoObject;
}
@ -1667,7 +1616,7 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService
userName, currentDate);
//新增的绑定信息
StringBuilder errorMsgBuilder = this.handleInsertSaleOrderRelates(mesSaleOrderRelateList,mesBaseBarcodeInfo, virtualMaterialBom, userName, currentDate);
StringBuilder errorMsgBuilder = this.handleInsertSaleOrderRelates(mesSaleOrderRelateList, mesBaseBarcodeInfo, virtualMaterialBom, userName, currentDate);
if (errorMsgBuilder.length() > 0) {
@ -1727,7 +1676,7 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService
}
public StringBuilder handleInsertSaleOrderRelates(List<MesSaleOrderRelate> toInsertedSaleOrderRelateList,MesBaseBarcodeInfo baseBarcodeInfo,
public StringBuilder handleInsertSaleOrderRelates(List<MesSaleOrderRelate> toInsertedSaleOrderRelateList, MesBaseBarcodeInfo baseBarcodeInfo,
MesMaterialBom virtualMaterialBom, String userName, Date currentDate) {
StringBuilder errorMsgBuilder = new StringBuilder();
List<MesMaterialBom> toUpdatedMaterialBoms = new ArrayList<>();
@ -2066,4 +2015,194 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService
// return 1;
// }
// /**
// * 打印物料条码
// *
// * @param barcodeIds
// * @param printType 打印类型1原材料 3成品
// * @param reprintFlag 重新打印标识(1重新打印)
// * @param printNumber 打印数量
// * @return
// */
// @Override
// @Transactional
// public int printBarcodes(Long[] barcodeIds, String printType, boolean reprintFlag, Integer printNumber) {
// //获取条码List
//// List<List<PrintContentVo>> printContents = new ArrayList<>();
//// List<MesBaseBarcodeInfo> toUpdatedBaseBarcodeInfos = new ArrayList<>();
//
// for (Long barcodeId : barcodeIds) {
// if (printNumber != null && printNumber > 1) {
// for (int i = 0; i < printNumber; i++) {
// printBarcodesByBarcodeId(barcodeId, printType, reprintFlag);
// }
// } else {
// printBarcodesByBarcodeId(barcodeId, printType, reprintFlag);
// }
//
// }
//
//// for (MesBaseBarcodeInfo toUpdateMesBaseBarcodeInfo : toUpdatedBaseBarcodeInfos) {
//// toUpdateMesBaseBarcodeInfo.setPrintTime(DateUtils.getNowDate());
//// toUpdateMesBaseBarcodeInfo.setPrintPerson(SecurityUtils.getUsername());
//// toUpdateMesBaseBarcodeInfo.setPrintFlag(MesConstants.MES_BARCODE_PRINT_FLAG_YES);
//// toUpdateMesBaseBarcodeInfo.setPrintNumber(1L);
//// toUpdateMesBaseBarcodeInfo.setAcceptedDate(DateUtils.getNowDate());
//// this.updateMesBaseBarcodeInfo(toUpdateMesBaseBarcodeInfo);
//// }
////
//// PrinterVo printerVo = new PrinterVo();
//// printerVo.setPrintType(printType);
//// printerVo.setPrintContents(printContents);
////
//// //调用的打印接口
//// R<?> printResultR = remotePrinterService.printBarcodes(printerVo, SecurityConstants.INNER);
//// if (printResultR.getCode() != Constants.SUCCESS) {//抛出异常,回滚事务
//// throw new RuntimeException(printResultR.getMsg());
//// }
//
// return 1;
//
// }
// @Transactional(propagation = Propagation.REQUIRES_NEW)
// public void printBarcodesByBarcodeId(Long barcodeId, String printType, boolean reprintFlag) {
// MesBaseBarcodeInfo mesBaseBarcodeInfo = mesBaseBarcodeInfoMapper.selectMesBaseBarcodeInfoJoinByBarcodeId(barcodeId);
// if (!reprintFlag) {
// String printFlag = mesBaseBarcodeInfo.getPrintFlag();
// if (printFlag.equals(MesConstants.MES_BARCODE_PRINT_FLAG_YES)) {
// throw new ServiceException("此物料条码[" + mesBaseBarcodeInfo.getBarcodeInfo() + "]已经打印过,不能重复打印");
// }
// }
//
// String materialName = mesBaseBarcodeInfo.getMaterialName();
// List<PrintContentVo> printContentVos = new ArrayList<>();
//
// PrintContentVo printMaterialCode = new PrintContentVo();
// printMaterialCode.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_CODE);
// printMaterialCode.setValue(mesBaseBarcodeInfo.getMaterialCode());
// printMaterialCode.setType(PrintContentVo.TYPE_TEXT);
//
// PrintContentVo printPreMaterial = new PrintContentVo();
//// if (mesBaseBarcodeInfo.getBindFlag() == null) {
////
//// }
//
// PrintContentVo printSaleOrderCode = new PrintContentVo();
// printSaleOrderCode.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_SALE_ORDER_CODE);
// printSaleOrderCode.setValue(mesBaseBarcodeInfo.getSaleorderCode());
// printSaleOrderCode.setType(PrintContentVo.TYPE_TEXT);
//
//
// PrintContentVo printBarCode = new PrintContentVo();
// printBarCode.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_QRCODE);
// printBarCode.setValue(mesBaseBarcodeInfo.getBarcodeInfo());
// printBarCode.setType(PrintContentVo.TYPE_QRCODE);
//
// if (printType.equals(PrinterVo.PRINT_TYPE_RAW_LABEL)) {
// PrintContentVo printMaterialName = new PrintContentVo();
// printMaterialName.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_NAME);
// materialName = materialName.length() <= 10 ? "\n" + materialName : materialName;
// printMaterialName.setValue(materialName.replaceAll("[\\x00-\\x1F\\x7F-\\x9F]", ""));
// printMaterialName.setType(PrintContentVo.TYPE_TEXT);
//
// PrintContentVo printBatchCode = new PrintContentVo();
// printBatchCode.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_BATCH_CODE);
// printBatchCode.setValue(mesBaseBarcodeInfo.getBatchCode());
// printBatchCode.setType(PrintContentVo.TYPE_TEXT);
//
// PrintContentVo printPoNo = new PrintContentVo();
// printPoNo.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_PO_NO);
// printPoNo.setValue(mesBaseBarcodeInfo.getPoNo());
// printPoNo.setType(PrintContentVo.TYPE_TEXT);
//
// //常备物料为安全库存
// String printPreMaterialKey = mesBaseBarcodeInfo.getAlwaysFlag() != null && mesBaseBarcodeInfo.getAlwaysFlag().equals(MesConstants.MES_MATERIAL_ALWAYS_FLAG_YES)
// ? PrintContentVo.RAW_MATERIAL_LABEL_KEY_PRE_MATERIAL_YES : PrintContentVo.RAW_MATERIAL_LABEL_KEY_PRE_MATERIAL_NO;
// printPreMaterial.setKey(printPreMaterialKey);
// printPreMaterial.setType(PrintContentVo.TYPE_CHECKBOX);
//
// PrintContentVo printMaterialSpec = new PrintContentVo();
// printMaterialSpec.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_SPEC);
// if (StringUtils.isNotEmpty(mesBaseBarcodeInfo.getBarcodeSpec())) {
// printMaterialSpec.setValue(mesBaseBarcodeInfo.getBarcodeSpec().replaceAll("[\\x00-\\x1F\\x7F-\\x9F]", ""));
// }
// printMaterialSpec.setType(PrintContentVo.TYPE_TEXT);
//
// PrintContentVo printQty = new PrintContentVo();
// printQty.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_QTY);
// DecimalFormat df = new DecimalFormat("#.##");
// String formattedNumber = df.format(mesBaseBarcodeInfo.getAmount() == null ? BigDecimal.ZERO : mesBaseBarcodeInfo.getAmount());
// printQty.setValue(formattedNumber);
// printQty.setType(PrintContentVo.TYPE_TEXT);
//
// printContentVos.add(printMaterialName);
// printContentVos.add(printBatchCode);
// printContentVos.add(printPoNo);
// printContentVos.add(printMaterialSpec);
// printContentVos.add(printQty);
//
// } else if (printType.equals(PrinterVo.PRINT_TYPE_PRODUCT_LABEL)) {
// PrintContentVo printMaterialName = new PrintContentVo();
// materialName = materialName.length() <= 8 ? "\n" + materialName : materialName;
// printMaterialName.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_MATERIAL_NAME);
// printMaterialName.setValue(materialName);
// printMaterialName.setType(PrintContentVo.TYPE_TEXT);
//
// PrintContentVo printQty = new PrintContentVo();
// printQty.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_QTY);
// printQty.setValue("1");
// printQty.setType(PrintContentVo.TYPE_TEXT);
//
// PrintContentVo printPlanCode = new PrintContentVo();
// printPlanCode.setKey(PrintContentVo.PRODUCT_PLAN_CODE);
// printPlanCode.setValue(mesBaseBarcodeInfo.getPlanCode());
// printPlanCode.setType(PrintContentVo.TYPE_TEXT);
// printContentVos.add(printMaterialName);
// printContentVos.add(printQty);
// printContentVos.add(printPlanCode);
// }
//
// printContentVos.add(printMaterialCode);
// printContentVos.add(printPreMaterial);
// printContentVos.add(printSaleOrderCode);
// printContentVos.add(printBarCode);
//
// String checkStatus = mesBaseBarcodeInfo.getCheckStatus() == null ? "" : mesBaseBarcodeInfo.getCheckStatus();
// if (checkStatus.equals(QmsConstants.QMS_CHECK_RESULT_CHECK_STATUS_PASS)) {
// PrintContentVo printQcResult = new PrintContentVo();
// printQcResult.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_QC_RESULT_YES);
// printQcResult.setType(PrintContentVo.TYPE_CHECKBOX);
// printContentVos.add(printQcResult);
// } else if (checkStatus.equals(QmsConstants.QMS_CHECK_RESULT_CHECK_STATUS_FAIL)) {
// PrintContentVo printQcResult = new PrintContentVo();
// printQcResult.setKey(PrintContentVo.RAW_MATERIAL_LABEL_KEY_QC_RESULT_NO);
// printQcResult.setType(PrintContentVo.TYPE_CHECKBOX);
// printContentVos.add(printQcResult);
// }
//
//// printContents.add(printContentVos);
//// toUpdatedBaseBarcodeInfos.add(mesBaseBarcodeInfo);
//
// mesBaseBarcodeInfo.setPrintTime(DateUtils.getNowDate());
// mesBaseBarcodeInfo.setPrintPerson(SecurityUtils.getUsername());
// mesBaseBarcodeInfo.setPrintFlag(MesConstants.MES_BARCODE_PRINT_FLAG_YES);
// mesBaseBarcodeInfo.setPrintNumber(mesBaseBarcodeInfo.getPrintNumber() == null ? 1L : mesBaseBarcodeInfo.getPrintNumber() + 1);
// mesBaseBarcodeInfo.setAcceptedDate(DateUtils.getNowDate());
// this.updateMesBaseBarcodeInfo(mesBaseBarcodeInfo);
//
//
// PrinterVo printerVo = new PrinterVo();
// printerVo.setPrintType(printType);
// printerVo.setPrintContentVos(printContentVos);
//
// //调用的打印接口
// R<?> printResultR = remotePrinterService.printBarcodes(printerVo, SecurityConstants.INNER);
// if (printResultR.getCode() != Constants.SUCCESS) {
// throw new RuntimeException(printResultR.getMsg());
// }
//
// }
}

@ -190,7 +190,7 @@ public class MesPurchaseApplyServiceImpl implements IMesPurchaseApplyService {
String materialName = purchaseRequisitionTemplate.getMaterialName();
String productModel = purchaseRequisitionTemplate.getProductModel();
//产品规格型号把excel中的除.的符号都去掉(包括空格换行)
productModel = productModel.replaceAll("[^\\w.]", "");
productModel = productModel.replaceAll("[^\\u4e00-\\u9fa5a-zA-Z0-9\\.]", "");
MesBaseMaterialInfo materialInfo = new MesBaseMaterialInfo();
materialInfo.setMaterialName(materialName);
List<MesBaseMaterialInfo> materialInfoList = mesBaseMaterialInfoMapper.selectMesBaseMaterialInfoList(materialInfo);
@ -199,7 +199,7 @@ public class MesPurchaseApplyServiceImpl implements IMesPurchaseApplyService {
MesBaseMaterialInfo findMaterialInfo = new MesBaseMaterialInfo();
for (MesBaseMaterialInfo baseMaterialInfo : materialInfoList) {
String materialSpec = baseMaterialInfo.getMaterialSpec();
materialSpec = materialSpec.replaceAll("[^\\w.]", "");
materialSpec = materialSpec.replaceAll("[^\\u4e00-\\u9fa5a-zA-Z0-9\\.]", "");
if (materialSpec.equals(productModel)) {
successFlag++;
findMaterialInfo = baseMaterialInfo;
@ -208,7 +208,10 @@ public class MesPurchaseApplyServiceImpl implements IMesPurchaseApplyService {
if (successFlag == 1) {
MesBaseUnitInfo baseUnitInfo = mesBaseUnitInfoMapper.selectMesBaseUnitInfoByErpId(findMaterialInfo.getMaterialUnitId());
MesBaseUnitInfo priceUnitIdUnitInfo = mesBaseUnitInfoMapper.selectMesBaseUnitInfoByErpId(findMaterialInfo.getPurchasePriceUnitId());
if (baseUnitInfo == null || priceUnitIdUnitInfo == null) {
failureNum++;
failureMsg.append("<br/>").append(failureNum).append(" 未找到单位信息 导入失败");
}
MesPurchaseApplyDetail mesPurchaseApplyDetail = new MesPurchaseApplyDetail();
mesPurchaseApplyDetail.setTondBase(purchaseRequisitionTemplate.getTondBase());
@ -237,6 +240,7 @@ public class MesPurchaseApplyServiceImpl implements IMesPurchaseApplyService {
failureMsg.append("<br/>").append(failureNum).append(" 未找到物料记录 导入失败");
}
} catch (Exception e) {
e.printStackTrace();
failureNum++;
String msg = "<br/>" + failureNum + " 导入失败:";
failureMsg.append(msg).append(e.getMessage());
@ -267,7 +271,7 @@ public class MesPurchaseApplyServiceImpl implements IMesPurchaseApplyService {
public int syncMesPurchaseApply(MesPurchaseApply mesPurchaseApply) {
Date currentDate = new Date();
MesPurchaseApply dbMesPurchaseApply = mesPurchaseApplyMapper.selectOnlyMesPurchaseApplyByPurchaseApplyId(mesPurchaseApply.getPurchaseApplyId());
if(dbMesPurchaseApply.getSyncStatus().equals(MesConstants.MES_PURCHASE_APPALY_SYNC_YES)){
if (dbMesPurchaseApply.getSyncStatus().equals(MesConstants.MES_PURCHASE_APPALY_SYNC_YES)) {
throw new ServiceException("此采购申请单已经同步");
}

@ -52,6 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="syncStatus != null and syncStatus != ''"> and sync_status = #{syncStatus}</if>
<if test="syncTime != null "> and sync_time = #{syncTime}</if>
</where>
order by purchase_apply_id desc
</select>
<select id="selectMesPurchaseApplyByPurchaseApplyId" parameterType="Long" resultMap="MesPurchaseApplyMesPurchaseApplyDetailResult">

@ -73,3 +73,12 @@ export function checkSemiOutstock(query) {
params: query
})
}
// 打印成品条码
export function reprintBarcodes(barcodeIds) {
return request({
url: '/mes/api/reprintBarcodes/' + barcodeIds,
method: 'get'
})
}

@ -115,6 +115,16 @@
>
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-printer"
@click="reprintBarcodes(scope.row)"
v-if="scope.row.printFlag ==='1' && scope.row.barcodeType !== BARCODE_TYPE.BIND_BARCODE"
>补打印
</el-button>
<el-popover
placement="top"
@ -277,9 +287,9 @@ import {
printBindBarcodes,
selectProductBarcodeInfoByBarcodeInfo,
addInternalBarcode, regenerateBarcode,
checkSemiOutstock
checkSemiOutstock,
reprintBarcodes
} from "@/api/board/barcode";
import {getMaterialInfoByMaterialId} from "@/api/board";
export default {
name: "Barcode",
@ -888,6 +898,23 @@ export default {
},
reprintBarcodes(row) {
this.loading = true;
const barcodeId = row.barcodeId;
const barcodeInfo = row.barcodeInfo;
this.$modal.confirm('请确认是否要补打印条码内容为"' + barcodeInfo + '"的数据项?').then(function () {
return reprintBarcodes(barcodeId);
}).then(() => {
this.getList();
this.$modal.msgSuccess("重新打印成功");
}).catch(() => {
}).finally(e => {
this.loading = false;
});
},
}
};
</script>

@ -231,7 +231,7 @@
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-if="scope.row.printFlag !==PRINT_FLAG.YES && scope.row.barcodeType === BARCODE_TYPE.RAW &&
scope.row.purchaseOrderId && scope.row.purchaseOrderId!==null && scope.row.purchaseOrderId > 0"
scope.row.purchaseOrderId && scope.row.purchaseOrderId!==null"
v-hasPermi="['mes:barcode:edit']"
>编辑
</el-button>
@ -1160,7 +1160,7 @@ export default {
});
this.materialRelateForm.poNo = firstRowPoNo;
this.materialRelateForm.saleOrderCode = firstRowSaleOrderCode;
this.materialRelateForm.saleorderCode = firstRowSaleOrderCode;
this.purchaseOrderOpen = false;
})
@ -1257,8 +1257,9 @@ export default {
handlePrintBarcodes(row) {
this.loading = true;
const barcodeIds = row.barcodeId || this.ids;
if (barcodeIds == null || barcodeIds === '') {
if (barcodeIds == null || barcodeIds === '' || barcodeIds.length===0) {
this.$modal.msgWarning("请选择要打印的物料条码");
this.loading = false;
return;
}
@ -1307,7 +1308,7 @@ export default {
return reprintBarcodes(barcodeId);
}).then(() => {
this.getList();
this.$modal.msgSuccess("重新生成成功");
this.$modal.msgSuccess("重新打印成功");
}).catch(() => {
}).finally(e => {
this.loading = false;

@ -425,6 +425,7 @@ export default {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
// alert(JSON.stringify(response))
if(response.code === 200){
this.$modal.msgSuccess("导入成功");
this.getList();
@ -437,8 +438,10 @@ export default {
this.title = "查看采购申请单";
});
}else{
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", {dangerouslyUseHTMLString: true});
}
// this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "", {dangerouslyUseHTMLString: true});
},
//

Loading…
Cancel
Save