1.添加网页端新增扫码单据接口

2.修改垛码明细查询,删除接口
master
x_z 3 years ago
parent 1a94a5b251
commit 8eecda5a2d

@ -3,6 +3,7 @@ package com.glxp.udi.admin.constant;
public class ConstantStatus {
//订单状态
public static final Integer ORDER_STATUS_TEMP_SAVE = -1; //等待提交
public static final Integer ORDER_STATUS_WAIT = 1; //等待处理
public static final Integer ORDER_STATUS_PROCESS = 2; //正在处理
@ -11,6 +12,12 @@ public class ConstantStatus {
public static final Integer ORDER_STATUS_FAIL = 9; //异常
//ERP订单导出传状态
public static final Integer ORDER_EXPORT_UN = 0; //未导出
public static final Integer ORDER_EXPORT_ED = 1; //已导出
public static final Integer ORDER_EXPORT_FAIL = 2; //导出失败
public static final int RECEIVE_UN = 0; //未验收
public static final int RECEIVE_ED = 1; //已验收
@ -27,9 +34,27 @@ public class ConstantStatus {
//往来信息类型-单据
public static final int CORP_TYPE_INPUT = 2; //客户
//往来信息类型-单据
public static final int CORP_TYPE_OUT = 0; //供应商
public static final int CORP_TYPE_INNOR = 1; //内部科室等
public static final int CORP_TYPE_SPECIAL = 3; //特殊往来
public static final int CORP_TYPE_DEPT = 4; //部门
public static final int CORP_SICK_SICK = 1;
public static final int DITYPE_SYDY = 2; //使用单元标识
//单据来源
public static final int FROM_UDIMS = 1; //1.UDIMS平台
public static final int FROM_WEBNEW = 2; //网页新增
public static final int FROM_PDAED = 3; //pda已校验
public static final int FROM_PDAUN = 4; //pda未校验
public static final int FROM_PC = 5; //pc端扫码精灵
public static final int FROM_CHANGE = 6; //单据流转
public static final int FROM_UDISP = 7; //udi供应商平台
public static final int FROM_PEACE_CHANGE = 8; //平衡补单
public static final int FROM_UDIWMS = 9;
public static final int FROM_COPY = 10; //单据复制
}

@ -1,26 +1,33 @@
package com.glxp.udi.admin.controller.inout;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.glxp.udi.admin.annotation.AuthRuleAnnotation;
import com.glxp.udi.admin.common.enums.ResultEnum;
import com.glxp.udi.admin.common.res.BaseResponse;
import com.glxp.udi.admin.common.util.ResultVOUtils;
import com.glxp.udi.admin.constant.ConstantStatus;
import com.glxp.udi.admin.entity.auth.AuthAdmin;
import com.glxp.udi.admin.entity.basic.BussinessTypeEntity;
import com.glxp.udi.admin.entity.inout.*;
import com.glxp.udi.admin.entity.param.SystemParamConfigEntity;
import com.glxp.udi.admin.entity.udid.UdiEntity;
import com.glxp.udi.admin.req.inout.*;
import com.glxp.udi.admin.req.inventory.FilterInvLinkDataRequest;
import com.glxp.udi.admin.res.PageSimpleResponse;
import com.glxp.udi.admin.res.basic.BussinessTypResponse;
import com.glxp.udi.admin.service.auth.AuthAdminService;
import com.glxp.udi.admin.service.auth.CustomerService;
import com.glxp.udi.admin.service.basic.BussinessTypeService;
import com.glxp.udi.admin.service.inout.*;
import com.glxp.udi.admin.service.param.SystemParamCustomerConfigService;
import com.glxp.udi.admin.thread.TransInoutService;
import com.glxp.udi.admin.util.FilterUdiUtils;
import com.glxp.udi.admin.common.enums.ResultEnum;
import com.glxp.udi.admin.common.util.ResultVOUtils;
import com.glxp.udi.admin.util.*;
import org.apache.commons.lang3.StringUtils;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@ -29,7 +36,9 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@RestController
@ -51,6 +60,14 @@ public class WareHouseController {
private OrderService orderService;
@Resource
private UdiInfoService udiInfoService;
@Resource
private BussinessTypeService bussinessTypeService;
@Resource
private SystemParamCustomerConfigService systemParamCustomerConfigService;
@Resource
private GennerOrderUtils gennerOrderUtils;
@Resource
private CustomerService customerService;
@AuthRuleAnnotation("")
@PostMapping("warehouse/inout/postOrders")
@ -276,4 +293,228 @@ public class WareHouseController {
warehouseService.updateCodesTime(codeEditRequest);
return ResultVOUtils.success("更新成功");
}
/**
*
*
* @param addOrderRequest
* @param bindingResult
* @return
*/
@AuthRuleAnnotation("")
@PostMapping("/warehouse/inout/addOrderWeb")
public BaseResponse addOrderWeb(@RequestBody AddOrderRequest addOrderRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
AddCodeResult addCodeResult = new AddCodeResult();
if (addOrderRequest.getActor() == null) {
addOrderRequest.setAction(addOrderRequest.getBillType());
}
BussinessTypeEntity bussinessType = bussinessTypeService.findBTByAction(addOrderRequest.getAction(), addOrderRequest.getCustomerId());
String code = addOrderRequest.getCode();
if (StrUtil.isBlank(code)) {
return ResultVOUtils.error(ResultEnum.DATA_ERROR);
}
UdiEntity udiEntity = FilterUdiUtils.getUdi(code);
if (udiEntity == null)
return ResultVOUtils.error(500, "无效条码!");
if (StrUtil.isNotEmpty(addOrderRequest.getBatchNo())) {
udiEntity.setBatchNo(addOrderRequest.getBatchNo());
}
if (StrUtil.isNotEmpty(addOrderRequest.getProduceDate())) {
udiEntity.setProduceDate(addOrderRequest.getProduceDate());
}
if (StrUtil.isNotEmpty(addOrderRequest.getExpireDate())) {
udiEntity.setExpireDate(addOrderRequest.getExpireDate());
}
if (StrUtil.isNotEmpty(addOrderRequest.getSerialNo())) {
udiEntity.setSerialNo(addOrderRequest.getSerialNo());
}
if (StrUtil.isNotEmpty(udiEntity.getSerialNo()) && udiEntity.getSerialNo().length() > 20) {
return ResultVOUtils.error(500, "无效条码!序列号超出最大范围");
}
if (StrUtil.isNotEmpty(udiEntity.getBatchNo()) && udiEntity.getBatchNo().length() > 20) {
return ResultVOUtils.error(500, "无效条码!批次号超出最大范围");
}
//批次号校验
if (StrUtil.isEmpty(udiEntity.getSerialNo()) && StrUtil.isEmpty(udiEntity.getBatchNo())) {
return ResultVOUtils.error(500, "批次号不能为空!");
}
//过期提醒:
SystemParamConfigEntity expireParamConfigEntity = systemParamCustomerConfigService.getParamByKey("expire_date_tip", Long.valueOf(addOrderRequest.getCustomerId()));
if (expireParamConfigEntity.getParamValue().equals("1") && !addOrderRequest.isIgnoreExpire()) {
if (StrUtil.isNotEmpty(udiEntity.getExpireDate())) {
String expireDate = "20" + udiEntity.getExpireDate();
long expireTime = DateUtil.parseDateExpire(expireDate);
if (expireTime - System.currentTimeMillis() < 0) {
return ResultVOUtils.error(504, "当前产品已过期,是否确定继续添加?");
}
}
}
//失效期提醒
SystemParamConfigEntity recentParamConfigEntity = systemParamCustomerConfigService.getParamByKey("recent_date_tip", Long.valueOf(addOrderRequest.getCustomerId()));
long recent = Long.parseLong(recentParamConfigEntity.getParamValue());
if (recent > 0 && !addOrderRequest.isIgnoreRecentExpire()) {
if (StrUtil.isNotEmpty(udiEntity.getExpireDate())) {
String expireDate = "20" + udiEntity.getExpireDate();
long expireTime = DateUtil.parseDateExpire(expireDate);
long recentTieme = Math.abs(recent * 24 * 60 * 60 * 1000);
long resultTime = expireTime - System.currentTimeMillis();
if (resultTime > 0) {
long time = resultTime / (24 * 60 * 60 * 1000);
if (resultTime < recentTieme) {
return ResultVOUtils.error(505, "当前产品临近过期,距过期还剩" + time + "天,是否确定继续添加?");
}
}
}
}
String orderId = addOrderRequest.getOrderId();
//先生成扫码单据
OrderEntity orderEntity = orderService.findById(orderId);
if (StringUtils.isBlank(orderId) || orderEntity == null) {
String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trim(bussinessType.getPrefix()), "yyyyMMdd"));
orderId = orderNo;
}
WarehouseQueryRequest warehouseQueryRequest = new WarehouseQueryRequest();
warehouseQueryRequest.setOrderId(orderId);
List<WarehouseEntity> warehouseEntitys = warehouseTempService.findByOrderIdAndCode(warehouseQueryRequest);
WarehousetempEntity warehousetempEntity = new WarehousetempEntity();
WarehouseEntity exitLocalEntity = null;
if (warehouseEntitys.size() > 0) {
exitLocalEntity = isExitLocal(code, warehouseEntitys);
if (exitLocalEntity != null) {
BeanUtil.copyProperties(exitLocalEntity, warehousetempEntity);
warehousetempEntity.setCount(warehousetempEntity.getCount() + 1);
if (StringUtils.isBlank(warehousetempEntity.getSerialNo())) {
warehouseTempService.updateById(warehousetempEntity);
} else {
return ResultVOUtils.error(ResultEnum.DATA_REPEAT);
}
}
}
if (exitLocalEntity == null) {
warehousetempEntity.setCode(code);
warehousetempEntity.setOrderId(orderId);
warehousetempEntity.setCorpOrderId(addOrderRequest.getCorpOrderId());
warehousetempEntity.setActDate(addOrderRequest.getActDate());
warehousetempEntity.setMainAction(bussinessType.getMainAction());
warehousetempEntity.setAction(bussinessType.getAction());
warehousetempEntity.setActor(addOrderRequest.getActor());
warehousetempEntity.setFromCorpId(addOrderRequest.getFromCorpId());
warehousetempEntity.setFromCorp(addOrderRequest.getFromCorp());
warehousetempEntity.setBatchNo(udiEntity.getBatchNo());
warehousetempEntity.setProduceDate(udiEntity.getProduceDate());
warehousetempEntity.setLocStorageCode(addOrderRequest.getInvWarehouseCode());
warehousetempEntity.setNameCode(udiEntity.getUdi());
warehousetempEntity.setExpireDate(udiEntity.getExpireDate());
warehousetempEntity.setSerialNo(udiEntity.getSerialNo());
warehousetempEntity.setLocStorageCode(addOrderRequest.getLocStorageCode());
warehousetempEntity.setCount(1);
List<WarehousetempEntity> warehousetempEntities = new ArrayList<>();
warehousetempEntities.add(warehousetempEntity);
String unitFk = null;
if (bussinessType.getCorpType() == ConstantStatus.CORP_TYPE_OUT) {
unitFk = warehousetempEntity.getFromCorpId();
}
//产品是否可以以使用单元入库
UdiInfoEntity udiInfoEntity = udiInfoService.findByNameCode(warehousetempEntity.getNameCode(), unitFk);
if (null != udiInfoEntity) {
//计算实际数量
int actCount = 0;
if (udiInfoEntity.getIsUseDy() == 1 && udiInfoEntity.getDiType() != 2) {
if (udiInfoEntity.getBhzxxsbzsl() == 0) {
actCount = udiInfoEntity.getZxxsbzbhsydysl();
} else {
actCount = udiInfoEntity.getBhzxxsbzsl() * udiInfoEntity.getBhzxxsbzsl();
}
} else {
actCount = udiInfoEntity.getBhzxxsbzsl();
}
warehousetempEntity.setCount(warehousetempEntity.getCount() * actCount);
} else {
if (unitFk == null)
return ResultVOUtils.error(500, "耗材字典不存在此产品!");
else
return ResultVOUtils.error(500, "当前供应商不存在此配送产品!");
}
OrderEntity isExit = orderService.findById(orderId);
if (isExit == null) {
OrderEntity orderSaveRequest = new OrderEntity();
orderSaveRequest.setOrderId(orderId);
if (addOrderRequest.getActDate() != null) {
orderSaveRequest.setActDate(addOrderRequest.getActDate());
}
long customerId = customerService.getCustomerId();
orderSaveRequest.setMainAction(bussinessType.getMainAction());
orderSaveRequest.setAction(bussinessType.getAction());
orderSaveRequest.setActor(addOrderRequest.getActor());
orderSaveRequest.setCorpOrderId(addOrderRequest.getCorpOrderId());
orderSaveRequest.setLocStorageCode(addOrderRequest.getLocStorageCode());
orderSaveRequest.setFromCorpId(addOrderRequest.getFromCorpId());
orderSaveRequest.setFromCorp(addOrderRequest.getFromCorp());
orderSaveRequest.setFromType("网页新增");
orderSaveRequest.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE);
orderSaveRequest.setExportStatus("未上传");
orderSaveRequest.setReceiveStatus(ConstantStatus.RECEIVE_UN);
orderSaveRequest.setLocStorageCode(addOrderRequest.getInvWarehouseCode());
orderSaveRequest.setCustomerId(customerId);
orderService.insertOrder(orderSaveRequest);
}
}
addCodeResult.setOrderId(orderId);
return ResultVOUtils.success(addCodeResult);
}
//判断本单是否存在
public WarehouseEntity isExitLocal(String code, List<WarehouseEntity> warehouseEntityList) {
UdiEntity udiEntity = FilterUdiUtils.getUdi(code);
for (int i = 0; i < warehouseEntityList.size(); i++) {
WarehouseEntity drugCodeSelectEntity = warehouseEntityList.get(i);
if (warehouseEntityList.get(i).getCode().equals(code)) {
return drugCodeSelectEntity;
}
UdiEntity originUdiEntity = FilterUdiUtils.getUdi(drugCodeSelectEntity.getCode());
if (!StrUtil.emptyIfNull(originUdiEntity.getUdi()).equals(StrUtil.emptyIfNull(udiEntity.getUdi()))) {
continue;
}
if (!StrUtil.emptyIfNull(originUdiEntity.getBatchNo()).toUpperCase(Locale.ROOT).equals(StrUtil.emptyIfNull(udiEntity.getBatchNo()).toUpperCase(Locale.ROOT))) {
continue;
}
if (!StrUtil.emptyIfNull(originUdiEntity.getProduceDate()).equals(StrUtil.emptyIfNull(udiEntity.getProduceDate()))) {
continue;
}
if (!StrUtil.emptyIfNull(originUdiEntity.getExpireDate()).equals(StrUtil.emptyIfNull(udiEntity.getExpireDate()))) {
continue;
}
if (!StrUtil.emptyIfNull(originUdiEntity.getSerialNo()).equals(StrUtil.emptyIfNull(udiEntity.getSerialNo()))) {
continue;
}
return drugCodeSelectEntity;
}
return null;
}
}

@ -6,11 +6,14 @@ import com.glxp.udi.admin.common.enums.ResultEnum;
import com.glxp.udi.admin.common.res.BaseResponse;
import com.glxp.udi.admin.common.util.ResultVOUtils;
import com.glxp.udi.admin.entity.product.StackCode;
import com.glxp.udi.admin.req.inout.DeleteRequest;
import com.glxp.udi.admin.req.product.FilterStackCodeRequest;
import com.glxp.udi.admin.res.PageSimpleResponse;
import com.glxp.udi.admin.service.product.StackCodeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@ -43,4 +46,19 @@ public class StackCodeController {
return ResultVOUtils.success(pageSimpleResponse);
}
/**
*
*
* @param deleteRequest
* @return
*/
@PostMapping("/udims/stack/code/delete")
public BaseResponse delete(@RequestBody DeleteRequest deleteRequest) {
if (null == deleteRequest || StrUtil.isBlank(deleteRequest.getId())) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
stackCodeService.deleteById(deleteRequest.getId());
return ResultVOUtils.success("删除成功");
}
}

@ -1,7 +1,9 @@
package com.glxp.udi.admin.dao.inout;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.udi.admin.entity.inout.WarehouseEntity;
import com.glxp.udi.admin.entity.inout.WarehousetempEntity;
import com.glxp.udi.admin.req.inout.WarehouseQueryRequest;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -59,4 +61,12 @@ public interface CodesTempDao extends BaseMapper<WarehousetempEntity> {
* @return
*/
int countByOrderId(@Param("orderId") String orderId);
/**
*
*
* @param warehouseQueryRequest
* @return
*/
List<WarehouseEntity> findByOrderIdAndCode(WarehouseQueryRequest warehouseQueryRequest);
}

@ -3,7 +3,15 @@ package com.glxp.udi.admin.dao.product;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.udi.admin.entity.product.StackCode;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface StackCodeDao extends BaseMapper<StackCode> {
/**
*
*
* @param orderId
*/
void deleteByOrderId(@Param("orderId") String orderId);
}

@ -3,7 +3,16 @@ package com.glxp.udi.admin.dao.product;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.udi.admin.entity.product.StackOrder;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface StackOrderDao extends BaseMapper<StackOrder> {
/**
* ID
*
* @param id
* @return
*/
String selectOrderIdById(@Param("id") Integer id);
}

@ -0,0 +1,9 @@
package com.glxp.udi.admin.req.inout;
import lombok.Data;
@Data
public class AddCodeResult {
private String orderId;
private String errMsg;
}

@ -0,0 +1,35 @@
package com.glxp.udi.admin.req.inout;
import lombok.Data;
@Data
public class AddOrderRequest {
private String corpOrderId;
private String code;
private String actor;
private String mainAction;
private String action;
private String fromCorpId;
private String fromCorp;
private Integer fromType;
private String actDate;
private String billType;
private String locStorageCode;
private String invWarehouseCode;
private String orderId;
private String customerId;
private boolean outChangeEnable;
private boolean ignoreExpire;
private boolean ignoreRecentExpire;
private boolean ignoreCode;
private boolean preCheck;
private String fromSubInvCode;
private boolean vailInv;
private boolean codeFillCheck;
private String batchNo;
private String produceDate;
private String expireDate;
private String serialNo;
private String deptCode;
}

@ -9,6 +9,7 @@ import com.glxp.udi.admin.common.res.BaseResponse;
import com.glxp.udi.admin.common.util.ResultVOUtils;
import com.glxp.udi.admin.dao.inout.CodesTempDao;
import com.glxp.udi.admin.dao.inout.OrderDao;
import com.glxp.udi.admin.entity.inout.WarehouseEntity;
import com.glxp.udi.admin.entity.inout.WarehousetempEntity;
import com.glxp.udi.admin.req.inout.DeleteRequest;
import com.glxp.udi.admin.req.inout.WarehouseQueryRequest;
@ -115,4 +116,18 @@ public class WarehouseTempService {
}
return ResultVOUtils.success();
}
/**
*
*
* @param warehouseQueryRequest
* @return
*/
public List<WarehouseEntity> findByOrderIdAndCode(WarehouseQueryRequest warehouseQueryRequest) {
if (warehouseQueryRequest == null) {
return Collections.emptyList();
}
return codesTempDao.findByOrderIdAndCode(warehouseQueryRequest);
}
}

@ -51,8 +51,17 @@ public class StackCodeService {
public IPage<StackCode> filterList(FilterStackCodeRequest filterStackCodeRequest) {
QueryWrapper<StackCode> wrapper = new QueryWrapper<StackCode>()
.eq("orderIdFk", filterStackCodeRequest.getOrderIdFk())
.eq(StrUtil.isNotBlank(filterStackCodeRequest.getCode()), "code", filterStackCodeRequest.getCode());
.like(StrUtil.isNotBlank(filterStackCodeRequest.getCode()), "code", filterStackCodeRequest.getCode());
IPage<StackCode> page = new Page<>(filterStackCodeRequest.getPage(), filterStackCodeRequest.getLimit());
return stackCodeDao.selectPage(page, wrapper);
}
/**
* ID
*
* @param id
*/
public void deleteById(String id) {
stackCodeDao.deleteById(id);
}
}

@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.glxp.udi.admin.dao.product.StackCodeDao;
import com.glxp.udi.admin.dao.product.StackOrderDao;
import com.glxp.udi.admin.entity.product.StackOrder;
import com.glxp.udi.admin.req.product.StackOrderFilterRequest;
@ -21,6 +22,8 @@ public class StackOrderService {
private StackOrderDao stackOrderDao;
@Resource
private IdUtil idUtil;
@Resource
private StackCodeDao stackCodeDao;
public IPage<StackOrder> filterList(StackOrderFilterRequest stackOrderFilterRequest) {
@ -53,6 +56,12 @@ public class StackOrderService {
}
public void deleteById(Integer id) {
//查询此垛的垛号
String orderId = stackOrderDao.selectOrderIdById(id);
//删除垛数据
stackOrderDao.deleteById(id);
//删除关联的条码数据
stackCodeDao.deleteByOrderId(orderId);
}
}

@ -28,10 +28,21 @@
</delete>
<update id="updateActDateByOrderId">
update io_codes_temp set actDate = #{actDate} where orderId = #{orderId}
update io_codes_temp
set actDate = #{actDate}
where orderId = #{orderId}
</update>
<select id="countByOrderId" resultType="int">
select count(*) from io_codes_temp where orderId = #{orderId}
select count(*)
from io_codes_temp
where orderId = #{orderId}
</select>
<select id="findByOrderIdAndCode" resultType="com.glxp.udi.admin.entity.inout.WarehouseEntity">
select *
from io_codes_temp
where orderId = #{orderId}
and code = #{code}
</select>
</mapper>

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.udi.admin.dao.product.StackCodeDao">
<delete id="deleteByOrderId">
delete
from stack_code
where orderIdFk = #{orderId}
</delete>
</mapper>

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.udi.admin.dao.product.StackOrderDao">
<select id="selectOrderIdById" resultType="java.lang.String">
select orderId
from stack_order
where id = #{id}
</select>
</mapper>
Loading…
Cancel
Save