package com.zy.asrs.service.impl; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.common.DateUtils; import com.core.common.R; import com.core.common.SnowflakeIdWorker; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.*; import com.zy.asrs.entity.result.OpenOrderCompeteResult; import com.zy.asrs.entity.result.StockVo; import com.zy.asrs.mapper.TagMapper; import com.zy.asrs.mapper.WrkMastMapper; import com.zy.asrs.service.*; import com.zy.asrs.utils.MatUtils; import com.zy.common.model.DetlDto; import com.zy.common.model.LocTypeDto; import com.zy.common.model.StartupDto; import com.zy.common.service.CommonService; import com.zy.common.utils.NodeUtils; import com.zy.system.entity.Config; import com.zy.system.service.ConfigService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * Created by vincent on 2022/4/9 */ @Slf4j @Service public class OpenServiceImpl implements OpenService { @Autowired private OrderService orderService; @Autowired private OrderDetlService orderDetlService; @Autowired private SnowflakeIdWorker snowflakeIdWorker; @Autowired private DocTypeService docTypeService; @Autowired private MatService matService; @Autowired private LocDetlService locDetlService; @Autowired private PackService packService; @Autowired private TagService tagService; @Autowired private TagMapper tagMapper; @Resource private WrkMastMapper wrkMastMapper; @Autowired private BasDevpService basDevpService; @Autowired private CommonService commonService; @Autowired private WrkMastService wrkMastService; @Autowired private WrkDetlService wrkDetlService; @Autowired private LocMastService locMastService; @Autowired private ConfigService configService; @Override public R synCallowWarehousing() { Config outModel = configService.selectConfigByCode("outModel"); if (outModel.getValue().equals("Y")) { // 没有到305的出库任务(305的出库任务优先) int count = wrkMastService.selectCount(new EntityWrapper().eq("io_type", 101) .eq("sta_no", 305)); if (count > 0) { return R.parse("存在305出库任务"); } outModel.setValue("N"); configService.updateById(outModel); } return R.ok(); } @Autowired private WaitPakinService waitPakinService; @Override public R syncWarehousing(CombParam param) { Long userId = 9999L; // 参数非空判断 if (Cools.isEmpty(param.getCombMats())) { throw new CoolException("数据不完整,请检查请求参数"); } Config outModel = configService.selectConfigByCode("outModel"); if (outModel.getValue().equals("Y")) { throw new CoolException("305不允许入库"); } for (CombParam.CombMat combMat : param.getCombMats()) { String batch = combMat.getBatch(); int countL = locDetlService.selectCount(new EntityWrapper().eq("batch", batch)); int countW = wrkDetlService.selectCount(new EntityWrapper().eq("batch", batch)); if (countW > 0) { return R.ok("存在任务"); } int countP = waitPakinService.selectCount(new EntityWrapper().eq("batch", batch)); if (countL > 0 || countW > 0 || countP > 0) { throw new CoolException("该批号已经存在===>>" + batch); } WaitPakin waitPakin = new WaitPakin(); Date now = new Date(); waitPakin.sync(combMat); waitPakin.setBarcode(""); waitPakin.setZpallet(""); // 托盘码 waitPakin.setIoStatus("N"); // 入出状态 waitPakin.setAnfme(1.0); // 数量 waitPakin.setStatus("Y"); // 状态 waitPakin.setAppeUser(userId); waitPakin.setAppeTime(now); waitPakin.setModiUser(userId); waitPakin.setModiTime(now); // 源站点状态检测 BasDevp sourceStaNo = basDevpService.checkSiteStatus(305, true); // 长度>3500放宽库位 sourceStaNo.setLocType2((short) (waitPakin.getLength() > 4600 ? 2 : 1)); LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo); // 寻找库位 StartupDto dto = commonService.getLocNo(sourceStaNo, locTypeDto, 1); int workNo = dto.getWorkNo(); // 生成工作档 WrkMast wrkMast = new WrkMast(); wrkMast.setWrkNo(workNo); wrkMast.setWhsType(1); wrkMast.setIoTime(new Date()); wrkMast.setWrkSts(1L); // 工作状态:生成入库ID wrkMast.setIoType(1); // 入出库状态:1.入库 wrkMast.setIoPri(13D); // 优先级 wrkMast.setCrnNo(dto.getCrnNo()); wrkMast.setSourceStaNo(dto.getSourceStaNo()); wrkMast.setStaNo(dto.getStaNo()); wrkMast.setLocNo(dto.getLocNo()); wrkMast.setBarcode(""); // 托盘码 wrkMast.setFullPlt("Y"); // 满板:Y wrkMast.setPicking("N"); // 拣料 wrkMast.setExitMk("N"); // 退出 wrkMast.setEmptyMk("N"); // 空板 wrkMast.setLinkMis("Y"); wrkMast.setCtnType(sourceStaNo.getCtnType()); // 容器类型 // 操作人员数据 wrkMast.setAppeTime(now); wrkMast.setModiTime(now); boolean res = wrkMastService.insert(wrkMast); if (!res) { throw new CoolException("保存工作档失败"); } // 生成工作档明细 WrkDetl wrkDetl = new WrkDetl(); wrkDetl.sync(waitPakin); wrkDetl.setWrkNo(wrkMast.getWrkNo()); wrkDetl.setIoTime(wrkMast.getIoTime()); wrkDetl.setAppeTime(now); wrkDetl.setModiTime(now); if (!wrkDetlService.insert(wrkDetl)) { throw new CoolException("保存工作明细失败"); } // // 更新源站点信息 // sourceStaNo.setWrkNo(workNo); // sourceStaNo.setModiTime(now); // if (!basDevpService.updateById(sourceStaNo)) { // throw new CoolException("更新源站失败"); // } // 更新目标库位状态 LocMast locMast = locMastService.selectById(dto.getLocNo()); if (locMast.getLocSts().equals("O")) { locMast.setLocSts("S"); // S.入库预约 locMast.setModiTime(now); if (!locMastService.updateById(locMast)) { throw new CoolException("改变库位状态失败"); } } else { throw new CoolException(dto.getLocNo() + "目标库位已被占用"); } } return R.ok(); } @Override public R agvAskOpen(AgvAskOpenParam param) { if (param.getFlag() == 0) { // 出库请求wms开门 BasDevp basDevp = basDevpService.selectOne(new EntityWrapper().eq("dev_no", 305)); if (basDevp.getWrkNo() > 6000 && basDevp.getWrkNo() <= 9000 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y") && basDevp.getOutEnable().equals("Y")) { // 出库工作档 WrkMast wrkMast = wrkMastService.selectById(basDevp.getWrkNo()); if (wrkMast.getWhsType() == null) { throw new CoolException("没有通知agv过来取货"); } else if (wrkMast.getWhsType() == 1) { WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper().eq("wrk_no", basDevp.getWrkNo())); if (wrkDetl.getMatnr().equals(param.getMatnr()) && wrkDetl.getBatch().equals(param.getBatch())) { wrkMast.setWhsType(2); wrkMastService.updateById(wrkMast); return R.ok("物料校验成功,马上开门"); } else { throw new CoolException("编码+批号校验失败:" + param.getBatch()); } } else if (wrkMast.getWhsType() == 2) { return R.ok("马上开门"); } else if (wrkMast.getWhsType() == 3) { return R.ok("已开门"); }else { return R.error("工作档当前状态有误"); } } else { return R.error("不满足出库条件"); } } else if(param.getFlag() == 1) { // 入库请求wms开门 BasDevp basDevp = basDevpService.selectOne(new EntityWrapper().eq("dev_no", 305)); if (basDevp.getAutoing().equals("Y") && basDevp.getLoading().equals("Y") && basDevp.getInEnable().equals("Y")) { // 入库底座 WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper().eq("io_type",1) .eq("source_sta_no",305).lt("wrk_sts",3)); if (wrkMast.getWhsType() == null) { throw new CoolException("没有入库任务"); } else if (wrkMast.getWhsType() == 1) { WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper().eq("wrk_no", wrkMast.getWrkNo())); if (wrkDetl.getMatnr().equals(param.getMatnr()) && wrkDetl.getBatch().equals(param.getBatch())) { wrkMast.setWhsType(2); wrkMastService.updateById(wrkMast); return R.ok("物料校验成功,马上开门"); } else { throw new CoolException("编码+批号校验失败:" + param.getBatch()); } } else if (wrkMast.getWhsType() == 2) { return R.ok("马上开门"); } else if (wrkMast.getWhsType() == 3) { return R.ok("已开门"); }else { return R.error("工作档当前状态有误"); } } else { return R.error("底座还未达到"); } } return R.error("出入库标识错误:" + param.getFlag()); } @Override @Transactional public void pakinOrderCreate(OpenOrderPakinParam param) { Order order = orderService.selectByNo(param.getOrderNo()); if (!Cools.isEmpty(order)) { throw new CoolException(param.getOrderNo() + "单据已存在,请勿重复提交"); } DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.TRUE); Date now = new Date(); // 单据主档 order = new Order( String.valueOf(snowflakeIdWorker.nextId()), // 编号[非空] param.getOrderNo(), // 订单编号 DateUtils.convert(now), // 单据日期 docType.getDocId(), // 单据类型 null, // 项目编号 null, // null, // 调拨项目编号 null, // 初始票据号 null, // 票据号 null, // 客户编号 null, // 客户 null, // 联系方式 null, // 操作人员 null, // 合计金额 null, // 优惠率 null, // 优惠金额 null, // 销售或采购费用合计 null, // 实付金额 null, // 付款类型 null, // 业务员 null, // 结算天数 null, // 邮费支付类型 null, // 邮费 null, // 付款时间 null, // 发货时间 null, // 物流名称 null, // 物流单号 1L, // 订单状态 1, // 状态 9527L, // 添加人员 now, // 添加时间 9527L, // 修改人员 now, // 修改时间 null // 备注 ); if (!orderService.insert(order)) { throw new CoolException("生成单据主档失败,请联系管理员"); } // 单据明细档 List list = new ArrayList<>(); List orderDetails = param.getOrderDetails(); for (DetlDto detail : orderDetails) { DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme()); if (DetlDto.has(list, dto)) { DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch()); assert detlDto != null; detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme()); } else { list.add(dto); } } for (DetlDto detlDto : list) { Mat mat = matService.selectByMatnr(detlDto.getMatnr()); if (Cools.isEmpty(mat)) { throw new CoolException(detlDto.getMatnr() + "编号商品检索失败,请先添加商品"); } OrderDetl orderDetl = new OrderDetl(); orderDetl.sync(mat); orderDetl.setBatch(detlDto.getBatch()); orderDetl.setAnfme(detlDto.getAnfme()); orderDetl.setOrderId(order.getId()); orderDetl.setOrderNo(order.getOrderNo()); orderDetl.setCreateBy(9527L); orderDetl.setCreateTime(now); orderDetl.setUpdateBy(9527L); orderDetl.setUpdateTime(now); orderDetl.setStatus(1); orderDetl.setQty(0.0D); if (!orderDetlService.insert(orderDetl)) { throw new CoolException("生成单据明细失败,请联系管理员"); } } } @Override @Transactional public List pakinOrderComplete(OpenOrderCompleteParam param) { List results = new ArrayList<>(); if (!Cools.isEmpty(param) && !Cools.isEmpty(param.getOrderNo())) { // 指定订单 Order order = orderService.selectByNo(param.getOrderNo()); if (null != order) { OpenOrderCompeteResult result = new OpenOrderCompeteResult(); results.add(result); result.setOrderNo(order.getOrderNo()); result.setOrderTime(order.getOrderTime()); result.setOrderType(order.getDocType$()); List orderDetls = orderDetlService.selectByOrderId(order.getId()); for (OrderDetl orderDetl : orderDetls) { result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty())); } if (order.getSettle() == 4L) { // 修改订单状态 4.完成 ===>> 6.已上报 if (!orderService.updateSettle(order.getId(), 6L, null)) { throw new CoolException("服务器内部错误,请联系管理员"); } } } } else { // 所有订单 List orders = orderService.selectList(new EntityWrapper().eq("settle", 4L)); for (Order order : orders) { OpenOrderCompeteResult result = new OpenOrderCompeteResult(); results.add(result); result.setOrderNo(order.getOrderNo()); result.setOrderTime(order.getOrderTime()); result.setOrderType(order.getDocType$()); List orderDetls = orderDetlService.selectByOrderId(order.getId()); for (OrderDetl orderDetl : orderDetls) { result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty())); } // 修改订单状态 4.完成 ===>> 6.已上报 if (!orderService.updateSettle(order.getId(), 6L, null)) { throw new CoolException("服务器内部错误,请联系管理员"); } } } return results; } @Override @Transactional public void pakoutOrderCreate(OpenOrderPakoutParam param) { Order order = orderService.selectByNo(param.getOrderNo()); // 如果单据不存在则添加;如果单据存在,作业中无法修改,反之则修改单据 if (!Cools.isEmpty(order)) { if (order.getSettle() > 1L) { throw new CoolException(param.getOrderNo() + "正在出库,无法修改单据"); } orderService.remove(order.getId()); } DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.FALSE); Date now = new Date(); // 单据主档 order = new Order( String.valueOf(snowflakeIdWorker.nextId()), // 编号[非空] param.getOrderNo(), // 订单编号 DateUtils.convert(now), // 单据日期 docType.getDocId(), // 单据类型 null, // 项目编号 null, // null, // 调拨项目编号 null, // 初始票据号 null, // 票据号 null, // 客户编号 null, // 客户 null, // 联系方式 null, // 操作人员 null, // 合计金额 null, // 优惠率 null, // 优惠金额 null, // 销售或采购费用合计 null, // 实付金额 null, // 付款类型 null, // 业务员 null, // 结算天数 null, // 邮费支付类型 null, // 邮费 null, // 付款时间 null, // 发货时间 null, // 物流名称 null, // 物流单号 1L, // 订单状态 1, // 状态 9527L, // 添加人员 now, // 添加时间 9527L, // 修改人员 now, // 修改时间 null // 备注 ); if (!orderService.insert(order)) { throw new CoolException("生成单据主档失败,请联系管理员"); } // 单据明细档 List list = new ArrayList<>(); List orderDetails = param.getOrderDetails(); for (DetlDto detail : orderDetails) { DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme()); if (DetlDto.has(list, dto)) { DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch()); assert detlDto != null; detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme()); } else { list.add(dto); } } for (DetlDto detlDto : list) { Mat mat = matService.selectByMatnr(detlDto.getMatnr()); if (Cools.isEmpty(mat)) { throw new CoolException(detlDto.getMatnr() + "编号商品检索失败,请先添加商品"); } OrderDetl orderDetl = new OrderDetl(); orderDetl.sync(mat); orderDetl.setBatch(detlDto.getBatch()); orderDetl.setAnfme(detlDto.getAnfme()); orderDetl.setOrderId(order.getId()); orderDetl.setOrderNo(order.getOrderNo()); orderDetl.setCreateBy(9527L); orderDetl.setCreateTime(now); orderDetl.setUpdateBy(9527L); orderDetl.setUpdateTime(now); orderDetl.setStatus(1); orderDetl.setQty(0.0D); if (!orderDetlService.insert(orderDetl)) { throw new CoolException("生成单据明细失败,请联系管理员"); } } } @Override public List pakoutOrderComplete(OpenOrderCompleteParam param) { List results = new ArrayList<>(); if (!Cools.isEmpty(param) && !Cools.isEmpty(param.getOrderNo())) { // 指定订单 Order order = orderService.selectByNo(param.getOrderNo()); if (null != order) { OpenOrderCompeteResult result = new OpenOrderCompeteResult(); results.add(result); result.setOrderNo(order.getOrderNo()); result.setOrderTime(order.getOrderTime()); result.setOrderType(order.getDocType$()); List orderDetls = orderDetlService.selectByOrderId(order.getId()); for (OrderDetl orderDetl : orderDetls) { result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty())); } if (order.getSettle() == 4L) { // 修改订单状态 4.完成 ===>> 6.已上报 if (!orderService.updateSettle(order.getId(), 6L, null)) { throw new CoolException("服务器内部错误,请联系管理员"); } } } } else { // 所有订单 List orders = orderService.selectList(new EntityWrapper().eq("settle", 4L)); for (Order order : orders) { OpenOrderCompeteResult result = new OpenOrderCompeteResult(); results.add(result); result.setOrderNo(order.getOrderNo()); result.setOrderTime(order.getOrderTime()); result.setOrderType(order.getDocType$()); List orderDetls = orderDetlService.selectByOrderId(order.getId()); for (OrderDetl orderDetl : orderDetls) { result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty())); } // 修改订单状态 4.完成 ===>> 6.已上报 if (!orderService.updateSettle(order.getId(), 6L, null)) { throw new CoolException("服务器内部错误,请联系管理员"); } } } return results; } @Override @Transactional public List queryStock() { return locDetlService.queryStockTotal(); } @Override @Transactional public void packageUp(PackParam param) { if (Cools.isEmpty(param.getBarcode())) { throw new CoolException("barcode不能为空"); } Mat analyse = MatUtils.analyseMat(param.getBarcode()); Pack pack = packService.selectByBarcode(param.getBarcode()); if (null != pack) { throw new CoolException(param.getBarcode() + "重复提交"); } Date now = new Date(); pack = new Pack( param.getBarcode(), // 条码[非空] analyse.getMatnr(), // 商品编号 analyse.getBarcode(), // 序列码 1L, // 订单状态 1, // 状态 now, // 添加时间 null, // 添加人员 now, // 修改时间 null, // 修改人员 null // 备注 ); if (!packService.insert(pack)) { throw new CoolException("服务器内部错误,请联系管理员"); } Mat mat = matService.selectByMatnr(analyse.getMatnr()); if (mat == null) { mat = new Mat(); // 分类 Long tagId; // 一级分类 if (!Cools.isEmpty(param.getGroupCode()) && !Cools.isEmpty(param.getGroupName())) { Tag priTag = tagService.selectByName(param.getGroupCode(), 2); if (priTag == null) { Tag top = tagService.getTop(); NodeUtils nodeUtils = new NodeUtils(); nodeUtils.executePath(top.getId()); priTag = new Tag( null, // 编号 param.getGroupCode(), // 名称 top.getId(), // 父级 top.getName(), // 父级名称 nodeUtils.path.toString(), // 关联路径 nodeUtils.pathName.toString(), // 关联路径名 0, // 类型 null, // 负责人 null, // 图片 null, // 简要描述 null, // 数量 2, // 等级 null, // 排序 1, // 状态 now, // 添加时间 null, // 添加人员 now, // 修改时间 null, // 修改人员 null // 备注 ); if (tagMapper.insert(priTag) == 0) { throw new CoolException("服务器内部错误,请联系管理员"); } } // 二级分类 Tag secTag = tagService.selectByName(param.getGroupName(), 3); if (secTag == null) { NodeUtils nodeUtils = new NodeUtils(); nodeUtils.executePath(priTag.getId()); secTag = new Tag( null, // 编号 param.getGroupName(), // 名称 priTag.getId(), // 父级 priTag.getName(), // 父级名称 nodeUtils.path.toString(), // 关联路径 nodeUtils.pathName.toString(), // 关联路径名 0, // 类型 null, // 负责人 null, // 图片 null, // 简要描述 null, // 数量 3, // 等级 null, // 排序 1, // 状态 now, // 添加时间 null, // 添加人员 now, // 修改时间 null, // 修改人员 null // 备注 ); if (tagMapper.insert(secTag) == 0) { throw new CoolException("服务器内部错误,请联系管理员"); } } tagId = secTag.getId(); } else { tagId = tagService.getTop().getId(); } mat.setTagId(tagId); mat.setMatnr(analyse.getMatnr()); mat.setMaktx(param.getMaterialName()); mat.setSpecs(param.getConfigureDesc()); mat.setModel(analyse.getModel()); mat.setStatus(1); mat.setCreateTime(now); mat.setUpdateTime(now); if (!matService.insert(mat)) { throw new CoolException("服务器内部错误,请联系管理员"); } else { log.info("打包上线添加新物料[商品编号:{}]", mat.getMatnr()); } } } @Override @Transactional public void syncMat(MatSyncParam param) { if (Cools.isEmpty(param.getMatDetails()) || param.getMatDetails().size() <=0 ) { throw new CoolException("商品数据为空"); } for(MatSyncParam.MatParam matParam : param.getMatDetails()){ if(Cools.isEmpty(matParam.getMatnr())){ throw new CoolException("商品编码不能为空"); } Date now = new Date(); Mat mat = matService.selectByMatnr(matParam.getMatnr()); if (mat == null) { mat = new Mat(); // 分类 Long tagId; // 一级分类 if (!Cools.isEmpty(matParam.getGroupCode()) && !Cools.isEmpty(matParam.getGroupName())) { Tag priTag = tagService.selectByName(matParam.getGroupCode(), 2); if (priTag == null) { Tag top = tagService.getTop(); NodeUtils nodeUtils = new NodeUtils(); nodeUtils.executePath(top.getId()); priTag = new Tag( null, // 编号 matParam.getGroupCode(), // 名称 top.getId(), // 父级 top.getName(), // 父级名称 nodeUtils.path.toString(), // 关联路径 nodeUtils.pathName.toString(), // 关联路径名 0, // 类型 null, // 负责人 null, // 图片 null, // 简要描述 null, // 数量 2, // 等级 null, // 排序 1, // 状态 now, // 添加时间 null, // 添加人员 now, // 修改时间 null, // 修改人员 null // 备注 ); if (tagMapper.insert(priTag) == 0) { throw new CoolException("服务器内部错误,请联系管理员"); } } // 二级分类 Tag secTag = tagService.selectByName(matParam.getGroupName(), 3); if (secTag == null) { NodeUtils nodeUtils = new NodeUtils(); nodeUtils.executePath(priTag.getId()); secTag = new Tag( null, // 编号 matParam.getGroupName(), // 名称 priTag.getId(), // 父级 priTag.getName(), // 父级名称 nodeUtils.path.toString(), // 关联路径 nodeUtils.pathName.toString(), // 关联路径名 0, // 类型 null, // 负责人 null, // 图片 null, // 简要描述 null, // 数量 3, // 等级 null, // 排序 1, // 状态 now, // 添加时间 null, // 添加人员 now, // 修改时间 null, // 修改人员 null // 备注 ); if (tagMapper.insert(secTag) == 0) { throw new CoolException("服务器内部错误,请联系管理员"); } } tagId = secTag.getId(); } else { tagId = tagService.getTop().getId(); } mat.sync(param); // mat.setMatnr(param.getMatnr()); // mat.setMaktx(param.getMaktx()); // mat.setSpecs(param.getSpecs()); // mat.setModel(param.getModel()); mat.setTagId(tagId); mat.setStatus(1); mat.setCreateTime(now); mat.setUpdateTime(now); if (!matService.insert(mat)) { throw new CoolException("服务器内部错误,请联系管理员"); } else { log.info("同步新物料[商品编号:{}]", mat.getMatnr()); } } else { mat.sync(param); if (!matService.update(mat, new EntityWrapper().eq("matnr",matParam.getMatnr()))) { throw new CoolException("更新已存在商品信息失败,请联系管理员"); } } } } }