package com.zy.asrs.service.impl; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.BaseRes; import com.core.common.Cools; import com.core.common.DateUtils; 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.ReportQueryMapper; import com.zy.asrs.mapper.TagMapper; import com.zy.asrs.service.*; import com.zy.asrs.utils.MatUtils; import com.zy.common.model.DetlDto; import com.zy.common.utils.NodeUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; /** * 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; @Autowired private ApiLogService apiLogService; @Autowired private WaitPakinService waitPakinService; @Autowired private WrkDetlService wrkDetlService; @Autowired private ReportQueryMapper reportQueryMapper; @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(),dto.getCsocode(),dto.getIsoseq(),null); 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(),dto.getCsocode(),dto.getIsoseq(),null); 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 MatSyncParam syncMat(MatSyncParam param) { if (Cools.isEmpty(param.getMats()) || param.getMats().size() <=0 ) { throw new CoolException("商品数据为空"); } MatSyncParam matSyncParam = new MatSyncParam(); ArrayList matParams = new ArrayList<>(); Tag tag = tagService.selectByName("全部", 1); for (MatSyncParam.Mats matParam : param.getMats()){ Date date = new Date(); Mat mat = matService.selectByMatnr(matParam.getMatnr()); if (Cools.isEmpty(mat)) { Mat matNew = new Mat(); matNew.setTagId(tag.getId()); matNew.setMatnr(matParam.getMatnr());//物料编码 matNew.setMaktx(matParam.getMaktx());//物料名称 matNew.setSpecs(matParam.getSpecs());//规格 matNew.setModel(matParam.getModel());//型号 matNew.setColor(matParam.getColor());//颜色 matNew.setUnit(matParam.getUnit());//单位 matNew.setMemo(matParam.getMemo());//备注 matNew.setCreateBy(9999L);//9999表示erp下发 matNew.setCreateTime(date); matNew.setUpdateBy(9999L);//9999表示erp下发 matNew.setUpdateTime(date); if (matService.insert(matNew)) { callApiLogSave(matParam, "/open/asrs/mat/v1", "接收ERP下发商品信息成功!添加商品信息成功!", true); matParam.setType(true); } else { callApiLogSave(matParam, "/open/asrs/mat/v1", "添加ERP下发商品信息失败!!!状态异常!!!", false); matParam.setType(false); matParam.setMemo("添加ERP下发商品信息失败!"); } } else { callApiLogSave(matParam, "/open/asrs/mat/v1", "接收ERP下发商品信息失败!!!商品已存在!!!", false); matParam.setType(false); matParam.setMemo("商品已存在!"); } matParams.add(matParam); } matSyncParam.setMats(matParams); return matSyncParam; } public void callApiLogSave(MatSyncParam.Mats matParam, String tableName, String response, Boolean bool) { apiLogService.save("ERP下发商品信息", tableName, "null", "10.10.10.1", "物料编码:" + matParam.getMatnr() + "、物料名称:" + matParam.getMaktx() + "、规格:" + matParam.getSpecs() + "、备注:" + matParam.getMemo(), response, bool); } @Override @Transactional public void combMes(CombParam param) { Long userId=9999l; if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) { callApiLogSaveMES(null, null, BaseRes.PARAM, false); throw new CoolException(BaseRes.PARAM); } if(param.getBarcode().length()!=8){ callApiLogSaveMES(param, null, param.getBarcode() + ":条码长度不是8位", false); throw new CoolException("条码长度不是8位===>>" + param.getBarcode()); } // 判断是否有相同条码的数据 if (waitPakinService.selectCount(new EntityWrapper(). eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) { callApiLogSaveMES(param, null, param.getBarcode() + "数据正在进行入库", false); throw new CoolException(param.getBarcode() + "数据正在进行入库"); } int countLoc = locDetlService.selectCount(new EntityWrapper().eq("zpallet",param.getBarcode())); int countWrk = wrkDetlService.selectCount(new EntityWrapper().eq("zpallet",param.getBarcode())); if (countLoc > 0) { callApiLogSaveMES(param, null, param.getBarcode() + ":库存条码数据已存在", false); throw new CoolException("库存条码数据已存在===>>" + param.getBarcode()); }else if (countWrk > 0){ callApiLogSaveMES(param, null, param.getBarcode() + ":工作明细档已存在此数据", false); throw new CoolException("工作明细档已存在此数据===>>" + param.getBarcode()); } Date now = new Date(); try{ // 生成入库通知档 List detlDtos = new ArrayList<>(); param.getCombMats().forEach(elem -> { DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme()); detlDto.setContainerCode(elem.getContainerCode()); if (DetlDto.has(detlDtos, detlDto)) { DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(),detlDto.getCsocode(),detlDto.getIsoseq(),detlDto.getContainerCode()); assert one != null; one.setAnfme(one.getAnfme() + detlDto.getAnfme()); } else { detlDtos.add(detlDto); } }); for (DetlDto detlDto : detlDtos) { Mat mat = matService.selectByMatnr(detlDto.getMatnr()); if (Cools.isEmpty(mat)) { callApiLogSaveMES(param, null,mat.getMatnr()+"商品档案不存在", false); throw new CoolException(detlDto.getMatnr() + "商品档案不存在"); } WaitPakin waitPakin = new WaitPakin(); waitPakin.sync(mat); waitPakin.setBatch(detlDto.getBatch()); waitPakin.setZpallet(param.getBarcode()); // 托盘码 waitPakin.setIoStatus("N"); // 入出状态 waitPakin.setAnfme(detlDto.getAnfme()); // 数量 waitPakin.setStatus("Y"); // 状态 waitPakin.setAppeUser(userId); waitPakin.setAppeTime(now); waitPakin.setModiUser(userId); waitPakin.setModiTime(now); if (!waitPakinService.insert(waitPakin)) { callApiLogSaveMES(param, null,mat.getMatnr()+"保存入库通知档失败", false); throw new CoolException("保存入库通知档失败"); } } }catch (Exception e){ callApiLogSaveMES(null, null,""+e, false); } callApiLogSaveMES(param, param.getCombMats().get(0),"组托成功", true); } public void callApiLogSaveMES(CombParam combParam,CombParam.CombMat combMat, String response, Boolean bool) { if (Cools.isEmpty(combParam)){ apiLogService.save("MES下发入库通知单", "/open/asrs/comb/v1", "null", "10.10.10.1", "", response, bool); }else if (Cools.isEmpty(combMat)){ apiLogService.save("MES下发入库通知单", "/open/asrs/comb/v1", "null", "10.10.10.1", "托盘码:" + combParam.getBarcode(), response, bool); }else { apiLogService.save("MES下发入库通知单", "/open/asrs/comb/v1", "null", "10.10.10.1", "托盘码:" + combParam.getBarcode() + "、物料编号:" + combMat.getMatnr() + "、数量:" + combMat.getAnfme(), response, bool); } } /** * 入库记录获取 */ @Override @Transactional public List inlogERP() { List viewWorkInERP = reportQueryMapper.getViewWorkInERP(); ArrayList viewWorkInBeans = new ArrayList<>(); for (ViewWorkInBean viewWorkInBean:viewWorkInERP){ viewWorkInBean.sype(); viewWorkInBeans.add(viewWorkInBean); } return viewWorkInBeans; } /** * 出库记录获取 */ @Override @Transactional public List outlogERP() { List viewWorkInERP = reportQueryMapper.getViewWorkOutERP(); ArrayList viewWorkInBeans = new ArrayList<>(); for (ViewWorkInBean viewWorkInBean:viewWorkInERP){ viewWorkInBean.sype(); viewWorkInBeans.add(viewWorkInBean); } return viewWorkInBeans; } @Transactional public boolean syncMat(MatInfoParam param) { Date now = new Date(); Mat mat = matService.selectByMatnr(param.getCinvcode()); boolean update = true; if(Cools.isEmpty(matService.selectByMatnr(param.getCinvcode()))){ //物料号 mat = new Mat(); mat.setMatnr(param.getCinvcode()); mat.setCreateTime(now); mat.setCreateBy(9999L); update = false; // callApiLogSave(param, "/open/asrs/mat/v1", "接收ERP下发商品信息失败!!!商品已存在!!!", false); // param.setType(false); // param.setMemo("商品已存在!"); // return false; } //Mat mat = new Mat(); //物料号 //mat.setMatnr(param.getCinvcode()); //物料名称 mat.setMaktx(param.getCinvname()); //规格型号 mat.setSpecs(param.getCInvStd()); //存货分类编码 mat.setBrand(param.getCinvccode()); //存货分类名称 mat.setColor(param.getCInvCName()); //计量单位 mat.setUnit(param.getCComUnitName()); //进项税 mat.setPrice(param.getIImpTaxRate()); //销项税 mat.setUnits(param.getITaxRate()); //启用日期 mat.setDsDate(param.getDSDate()); //建档人 mat.setSupp(param.getCCreatePerson()); //建档日期 mat.setDInvCreateDatetime(param.getDInvCreateDatetime()); //通用型号 mat.setModel(param.getCinvdefine4()); //9999表示erp下发 mat.setUpdateBy(9999L); mat.setTagId(1L); mat.setUpdateTime(now); if(update){ if (matService.updateById(mat)){ callApiLogSave(param, "/open/asrs/mat/v1", "接收ERP下发商品信息成功!添加商品信息成功!", true); param.setUpdate(true); } else { callApiLogSave(param, "/open/asrs/mat/v1", "添加ERP下发商品信息失败!!!状态异常!!!", false); param.setError(true); param.setMemo("添加ERP下发商品信息失败!"); } }else { if (matService.insert(mat)) { callApiLogSave(param, "/open/asrs/mat/v1", "接收ERP下发商品信息成功!添加商品信息成功!", true); param.setInsert(true); } else { callApiLogSave(param, "/open/asrs/mat/v1", "添加ERP下发商品信息失败!!!状态异常!!!", false); param.setError(true); param.setMemo("添加ERP下发商品信息失败!"); } } return true; } @Transactional public boolean syncOrder(Map param, boolean pakin) { if(Cools.isEmpty(param) || Cools.isEmpty(param.get("orderDetails"))){ throw new CoolException("单据参数为空或者单据详情为空,无法生成单据信息"); } if(!Cools.isEmpty(orderService.selectByNo(param.get("id").toString()))){ throw new CoolException("该单据已存在,无法生成单据信息"); } Date now = new Date(); Order order = orderMapping(param,now,pakin); orderService.insert(order); List> orderDetails = (List>) param.get("orderDetails"); orderDetails.forEach(odParam -> { OrderDetl od = orderDetlMapping(order,odParam,now); orderDetlService.insert(od); }); return true; } @Transactional public boolean orderDelete(String orderNo) { Order order = orderService.selectByNo(orderNo); if(Cools.isEmpty(order)){ throw new CoolException("单据不存在,无法删除单据"); } if(order.getSettle() != 1){ return false; } orderService.deleteById(order); orderDetlService.delete(new EntityWrapper().eq("order_no",orderNo)); return true; } private Order orderMapping(Map param, Date now, boolean pakin){ Order order = new Order(); //uuid order.setUuid(String.valueOf(snowflakeIdWorker.nextId())); //核算主体 //order.setItemName(param.get("account").toString()); order.setItemName(toString(param.get("account"))); //单据唯一表示 //order.setOrderNo(param.get("id").toString()); order.setOrderNo(toString(param.get("id"))); //业务类型 //order.setDefNumber(param.get("cBusType").toString()); order.setDefNumber(toString(param.get("cVouchType"))); //单据类型 DocType docType = docTypeService.selectOrAdd(param.get("cBusType").toString(), pakin); order.setDocType(docType.getDocId()); //单据日期 //order.setOrderTime(param.get("dDate").toString()); order.setOrderTime(toString(param.get("dDate"))); //供应商/客户编码 //order.setCstmrName(param.get("ks").toString()); order.setCstmrName(toString(param.get("ks"))); //仓库 //order.setTel(param.get("cWhName").toString()); order.setTel(toString(param.get("cWhName"))); //出入库类别 //setOperMemb(param.get("cRdName").toString()); order.setOperMemb(toString(param.get("cRdName"))); //部门 //order.setSalesman(param.get("cDepCode").toString()); order.setSalesman(toString(param.get("cDepCode"))); //备注 //order.setMemo(param.get("cMemo").toString()); order.setMemo(toString(param.get("cMemo"))); //制单人 //order.setShipCode(param.get("cMaker").toString()); order.setShipCode(toString(param.get("cMaker"))); order.setCreateTime(now); order.setUpdateTime(now); //订单状态 order.setSettle(1L); //状态 order.setStatus(1); return order; } private OrderDetl orderDetlMapping(Order order, Map odParam, Date now){ OrderDetl od = new OrderDetl(); od.setOrderId(order.getId()); od.setOrderNo(order.getOrderNo()); //行唯一标识 //od.setItemNum(odParam.get("autoId").toString()); od.setItemNum(toString(odParam.get("autoId"))); //存货编码 //od.setMatnr(odParam.get("cInvCode").toString()); od.setMatnr(toString(odParam.get("cInvCode"))); //存货名称 //od.setMaktx(odParam.get("cInvName").toString()); od.setMaktx(toString(odParam.get("cInvName"))); //规格型号 //od.setSpecs(odParam.get("cInvStd").toString()); od.setSpecs(toString(odParam.get("cInvStd"))); //计量单位 //od.setUnit(odParam.get("cComUnitName").toString()); od.setUnit(toString(odParam.get("cComUnitName"))); //数量 od.setAnfme(Double.parseDouble(odParam.get("iQuantity").toString())); //od.setAnfme(toString(odParam.get("iQuantity"))); //行号 //od.setBrand(odParam.get("irowno").toString()); //od.setBrand(toString(odParam.get("irowno"))); od.setManu(toString(odParam.get("irowno"))); //销售订单号 //od.setColor(odParam.get("csocode").toString()); //od.setColor(toString(odParam.get("csocode"))); od.setThreeCode(toString(odParam.get("csocode"))); //销售订单行号 //od.setOrigin(odParam.get("isoseq").toString()); //od.setOrigin(toString(odParam.get("isoseq"))); od.setDeadTime(toString(odParam.get("isoseq"))); od.setStatus(1); od.setQty(0.0D); od.setCreateBy(9999L); od.setCreateTime(now); od.setUpdateBy(9999L); od.setUpdateTime(now); return od; } private String toString(Object o){ if(StringUtils.isEmpty(o)){ return null; }else{ return o.toString(); } } public void callApiLogSave(MatInfoParam matParam, String tableName, String response, Boolean bool) { apiLogService.save("ERP下发商品信息", tableName, "null", "10.10.10.1", "物料编码:" + matParam.getCinvcode() + "、物料名称:" + matParam.getCinvname() + "、规格:" + matParam.getCInvStd() + "、备注:" + matParam.getMemo(), response, bool); } public static void main(String[] args) { Object s = null; if(StringUtils.isEmpty(s)){ System.out.println("null"); }else { System.out.println(s.toString()); } } }