@@ -1737,7 +1737,7 @@
|
|||||||
$("#ProjectIdShow").text(depotHeadInfo[10]);
|
$("#ProjectIdShow").text(depotHeadInfo[10]);
|
||||||
$("#NumberShow").text(depotHeadInfo[2]);
|
$("#NumberShow").text(depotHeadInfo[2]);
|
||||||
$("#OperTimeShow").text(depotHeadInfo[4]);
|
$("#OperTimeShow").text(depotHeadInfo[4]);
|
||||||
$('#OrganIdShow').text(depotHeadInfo[11]);
|
$('#OrganIdShow').text(depotHeadInfo[11]=="undefined"?'':depotHeadInfo[11]);
|
||||||
$("#HandsPersonIdShow").text(depotHeadInfo[12]);
|
$("#HandsPersonIdShow").text(depotHeadInfo[12]);
|
||||||
if(depotHeadInfo[13] && depotHeadInfo[13]!="undefined"){
|
if(depotHeadInfo[13] && depotHeadInfo[13]!="undefined"){
|
||||||
$("#AccountIdShow").text(depotHeadInfo[13]); //结算账户
|
$("#AccountIdShow").text(depotHeadInfo[13]); //结算账户
|
||||||
|
|||||||
@@ -188,30 +188,42 @@
|
|||||||
pageList: initPageNum,
|
pageList: initPageNum,
|
||||||
columns: [[
|
columns: [[
|
||||||
{field: 'id', width: 35, align: "center", checkbox: true},
|
{field: 'id', width: 35, align: "center", checkbox: true},
|
||||||
|
{field: 'depotheadId', hidden: true},
|
||||||
|
{field: 'depotHeadType', hidden: true},
|
||||||
{
|
{
|
||||||
title: '操作', field: 'op', align: "center", width: 60, formatter: function (value, rec) {
|
title: '操作', field: 'op', align: "center", width: 60, formatter: function (value, rec) {
|
||||||
var str = '';
|
var str = '';
|
||||||
var rowInfo = rec.id + 'AaBb' + rec.materialId + 'AaBb' + rec.materialName + 'AaBb' + rec.serialNumber + 'AaBb' + rec.isSell + 'AaBb' + rec.remark
|
var rowInfo = rec.id + 'AaBb' + rec.materialId + 'AaBb' + rec.materialName + 'AaBb' + rec.serialNumber + 'AaBb' + rec.isSell + 'AaBb' + rec.remark
|
||||||
+ 'AaBb' + rec.deleteFlag + 'AaBb' + rec.createTime + 'AaBb' + rec.updateTime + 'AaBb' + rec.creator + 'AaBb' + rec.updater
|
+ 'AaBb' + rec.deleteFlag + 'AaBb' + rec.createTime + 'AaBb' + rec.updateTime + 'AaBb' + rec.creator + 'AaBb' + rec.updater
|
||||||
+ 'AaBb' + rec.creatorName + 'AaBb' + rec.updaterName;
|
+ 'AaBb' + rec.creatorName + 'AaBb' + rec.updaterName +'AaBb' + rec.depotheadId+'AaBb' + rec.depotHeadNumber +'AaBb' + rec.depotHeadType;
|
||||||
str += '<img title="编辑" src="/js/easyui-1.3.5/themes/icons/pencil.png" style="cursor: pointer;" onclick="editSerialNumber(\'' + rowInfo + '\');"/> ';
|
str += '<img title="编辑" src="/js/easyui-1.3.5/themes/icons/pencil.png" style="cursor: pointer;" onclick="editSerialNumber(\'' + rowInfo + '\');"/> ';
|
||||||
str += '<img title="删除" src="/js/easyui-1.3.5/themes/icons/edit_remove.png" style="cursor: pointer;" onclick="deleteSerialNumber(' + rec.id + ');"/>';
|
str += '<img title="删除" src="/js/easyui-1.3.5/themes/icons/edit_remove.png" style="cursor: pointer;" onclick="deleteSerialNumber(' + rec.id + ');"/>';
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{title: '商品名称', field: 'materialName', width: 100},
|
{title: '商品名称', align: "center",field: 'materialName', width: 100},
|
||||||
{title: '序列号', field: 'serialNumber', width: 200},
|
{title: '序列号',align: "center", field: 'serialNumber', width: 200},
|
||||||
{title: '已卖出', field: 'isSell', width: 60 , formatter: function (value) {
|
{title: '单据编号', align: "center", field: 'depotHeadNumber', width: 140,
|
||||||
|
formatter: function (value, row) {
|
||||||
|
if(row.depotHeadNumber){
|
||||||
|
|
||||||
|
return "<a class='n-link' onclick=\"newTab('" + row.depotHeadNumber + "','../materials/bill_detail.html?n=" + row.depotHeadNumber + "&type=" + row.depotHeadType + "','')\">"
|
||||||
|
+ row.depotHeadNumber + "</a>";
|
||||||
|
}
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{title: '已卖出', align: "center", field: 'isSell', width: 60 , formatter: function (value) {
|
||||||
return value=='1' ? "是" : "否";
|
return value=='1' ? "是" : "否";
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{title: '已删除', field: 'deleteFlag', width: 60, formatter: function (value) {
|
{title: '已删除', align: "center", field: 'deleteFlag', width: 60, formatter: function (value) {
|
||||||
return value=='1' ? "是" : "否";
|
return value=='1' ? "是" : "否";
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{title: '创建时间', field: 'createTime', width: 140,formatter: formatDatebox},
|
{title: '创建时间',align: "center", field: 'createTime', width: 140,formatter: formatDatebox},
|
||||||
{title: '更新时间', field: 'updateTime', width: 140,formatter: formatDatebox},
|
{title: '更新时间', align: "center", field: 'updateTime', width: 140,formatter: formatDatebox},
|
||||||
{title: '备注', field: 'remark',width: 300}
|
{title: '备注',align: "center", field: 'remark',width: 200}
|
||||||
]],
|
]],
|
||||||
toolbar: [
|
toolbar: [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -32,10 +32,10 @@ public class ExceptionConstants {
|
|||||||
public static final int SERIAL_NUMBERE_ALREADY_EXISTS_CODE = 10500000;
|
public static final int SERIAL_NUMBERE_ALREADY_EXISTS_CODE = 10500000;
|
||||||
public static final String SERIAL_NUMBERE_ALREADY_EXISTS_MSG = "序列号已存在";
|
public static final String SERIAL_NUMBERE_ALREADY_EXISTS_MSG = "序列号已存在";
|
||||||
/**序列号不能为为空*/
|
/**序列号不能为为空*/
|
||||||
public static final int SERIAL_NUMBERE_NOT_BE_EMPTY_CODE = 10500000;
|
public static final int SERIAL_NUMBERE_NOT_BE_EMPTY_CODE = 10500001;
|
||||||
public static final String SERIAL_NUMBERE_NOT_BE_EMPTY_MSG = "序列号不能为为空";
|
public static final String SERIAL_NUMBERE_NOT_BE_EMPTY_MSG = "序列号不能为为空";
|
||||||
/**商品%s下序列号不充足,请补充后重试*/
|
/**商品%s下序列号不充足,请补充后重试*/
|
||||||
public static final int MATERIAL_SERIAL_NUMBERE_NOT_ENOUGH_CODE = 10500000;
|
public static final int MATERIAL_SERIAL_NUMBERE_NOT_ENOUGH_CODE = 10500002;
|
||||||
public static final String MATERIAL_SERIAL_NUMBERE_NOT_ENOUGH_MSG = "商品:%s下序列号不充足,请补充后重试";
|
public static final String MATERIAL_SERIAL_NUMBERE_NOT_ENOUGH_MSG = "商品:%s下序列号不充足,请补充后重试";
|
||||||
|
|
||||||
|
|
||||||
@@ -56,6 +56,9 @@ public class ExceptionConstants {
|
|||||||
//该商品已绑定序列号数量小于等于商品现有库存
|
//该商品已绑定序列号数量小于等于商品现有库存
|
||||||
public static final int MATERIAL_SERIAL_NUMBERE_NOT_MORE_THAN_STORAGE_CODE = 8000003;
|
public static final int MATERIAL_SERIAL_NUMBERE_NOT_MORE_THAN_STORAGE_CODE = 8000003;
|
||||||
public static final String MATERIAL_SERIAL_NUMBERE_NOT_MORE_THAN_STORAGE_MSG = "该商品已绑定序列号数量大于等于商品现有库存";
|
public static final String MATERIAL_SERIAL_NUMBERE_NOT_MORE_THAN_STORAGE_MSG = "该商品已绑定序列号数量大于等于商品现有库存";
|
||||||
|
//商品库存不足
|
||||||
|
public static final int MATERIAL_STOCK_NOT_ENOUGH_CODE = 8000004;
|
||||||
|
public static final String MATERIAL_STOCK_NOT_ENOUGH_MSG = "商品:%s库存不足";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 标准正常返回/操作成功返回
|
* 标准正常返回/操作成功返回
|
||||||
|
|||||||
@@ -19,6 +19,10 @@ public class SerialNumberEx extends SerialNumber{
|
|||||||
* 更新者名称
|
* 更新者名称
|
||||||
* */
|
* */
|
||||||
private String updaterName;
|
private String updaterName;
|
||||||
|
/**单据编号*/
|
||||||
|
private String depotHeadNumber;
|
||||||
|
/**单据类型(出库入库)*/
|
||||||
|
private String depotHeadType;
|
||||||
|
|
||||||
public String getMaterialName() {
|
public String getMaterialName() {
|
||||||
return materialName;
|
return materialName;
|
||||||
@@ -43,4 +47,20 @@ public class SerialNumberEx extends SerialNumber{
|
|||||||
public void setUpdaterName(String updaterName) {
|
public void setUpdaterName(String updaterName) {
|
||||||
this.updaterName = updaterName;
|
this.updaterName = updaterName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getDepotHeadNumber() {
|
||||||
|
return depotHeadNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDepotHeadNumber(String depotHeadNumber) {
|
||||||
|
this.depotHeadNumber = depotHeadNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDepotHeadType() {
|
||||||
|
return depotHeadType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDepotHeadType(String depotHeadType) {
|
||||||
|
this.depotHeadType = depotHeadType;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,13 @@ package com.jsh.erp.service.depotItem;
|
|||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.jsh.erp.constants.BusinessConstants;
|
import com.jsh.erp.constants.BusinessConstants;
|
||||||
|
import com.jsh.erp.constants.ExceptionConstants;
|
||||||
import com.jsh.erp.datasource.entities.*;
|
import com.jsh.erp.datasource.entities.*;
|
||||||
import com.jsh.erp.datasource.mappers.DepotHeadMapper;
|
import com.jsh.erp.datasource.mappers.DepotHeadMapper;
|
||||||
import com.jsh.erp.datasource.mappers.DepotItemMapper;
|
import com.jsh.erp.datasource.mappers.DepotItemMapper;
|
||||||
import com.jsh.erp.datasource.mappers.DepotItemMapperEx;
|
import com.jsh.erp.datasource.mappers.DepotItemMapperEx;
|
||||||
import com.jsh.erp.datasource.mappers.SerialNumberMapperEx;
|
import com.jsh.erp.datasource.mappers.SerialNumberMapperEx;
|
||||||
|
import com.jsh.erp.exception.BusinessRunTimeException;
|
||||||
import com.jsh.erp.service.material.MaterialService;
|
import com.jsh.erp.service.material.MaterialService;
|
||||||
import com.jsh.erp.service.serialNumber.SerialNumberService;
|
import com.jsh.erp.service.serialNumber.SerialNumberService;
|
||||||
import com.jsh.erp.service.user.UserService;
|
import com.jsh.erp.service.user.UserService;
|
||||||
@@ -246,8 +248,20 @@ public class DepotItemService {
|
|||||||
if(BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType())
|
if(BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType())
|
||||||
&&!BusinessConstants.SUB_TYPE_TRANSFER.equals(depotHead.getSubtype())){
|
&&!BusinessConstants.SUB_TYPE_TRANSFER.equals(depotHead.getSubtype())){
|
||||||
DepotItem depotItem = getDepotItem(tempDeletedJson.getLong("Id"));
|
DepotItem depotItem = getDepotItem(tempDeletedJson.getLong("Id"));
|
||||||
serialNumberMapperEx.cancelSerialNumber(depotItem.getMaterialid(),depotItem.getHeaderid(),depotItem.getOpernumber().intValue(),
|
if(depotItem==null){
|
||||||
new Date(),userInfo==null?null:userInfo.getId());
|
continue;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 判断商品是否开启序列号,开启的收回序列号,未开启的跳过
|
||||||
|
* */
|
||||||
|
Material material= materialService.getMaterial(depotItem.getMaterialid());
|
||||||
|
if(material==null){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(BusinessConstants.ENABLE_SERIAL_NUMBER_ENABLED.equals(material.getEnableSerialNumber())){
|
||||||
|
serialNumberMapperEx.cancelSerialNumber(depotItem.getMaterialid(),depotItem.getHeaderid(),depotItem.getOpernumber().intValue(),
|
||||||
|
new Date(),userInfo==null?null:userInfo.getId());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
this.deleteDepotItem(tempDeletedJson.getLong("Id"));
|
this.deleteDepotItem(tempDeletedJson.getLong("Id"));
|
||||||
}
|
}
|
||||||
@@ -328,13 +342,34 @@ public class DepotItemService {
|
|||||||
if (tempInsertedJson.get("MType") != null) {
|
if (tempInsertedJson.get("MType") != null) {
|
||||||
depotItem.setMtype(tempInsertedJson.getString("MType"));
|
depotItem.setMtype(tempInsertedJson.getString("MType"));
|
||||||
}
|
}
|
||||||
this.insertDepotItemWithObj(depotItem);
|
/**
|
||||||
/**出库时处理序列号*/
|
* 出库时判断库存是否充足
|
||||||
if(BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType())
|
* */
|
||||||
&&!BusinessConstants.SUB_TYPE_TRANSFER.equals(depotHead.getSubtype())){
|
if(BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType())){
|
||||||
//查询单据子表中开启序列号的数据列表
|
if(depotItem==null){
|
||||||
serialNumberService.checkAndUpdateSerialNumber(depotItem,userInfo);
|
continue;
|
||||||
|
}
|
||||||
|
Material material= materialService.getMaterial(depotItem.getMaterialid());
|
||||||
|
if(material==null){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(getCurrentInStock(depotItem.getMaterialid())<depotItem.getOpernumber().intValue()){
|
||||||
|
throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_STOCK_NOT_ENOUGH_CODE,
|
||||||
|
String.format(ExceptionConstants.MATERIAL_STOCK_NOT_ENOUGH_MSG,material==null?"":material.getName()));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**出库时处理序列号*/
|
||||||
|
if(!BusinessConstants.SUB_TYPE_TRANSFER.equals(depotHead.getSubtype())) {
|
||||||
|
/**
|
||||||
|
* 判断商品是否开启序列号,开启的收回序列号,未开启的跳过
|
||||||
|
* */
|
||||||
|
if(BusinessConstants.ENABLE_SERIAL_NUMBER_ENABLED.equals(material.getEnableSerialNumber())) {
|
||||||
|
//查询单据子表中开启序列号的数据列表
|
||||||
|
serialNumberService.checkAndUpdateSerialNumber(depotItem, userInfo);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
this.insertDepotItemWithObj(depotItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -342,11 +377,23 @@ public class DepotItemService {
|
|||||||
for (int i = 0; i < updatedJson.size(); i++) {
|
for (int i = 0; i < updatedJson.size(); i++) {
|
||||||
JSONObject tempUpdatedJson = JSONObject.parseObject(updatedJson.getString(i));
|
JSONObject tempUpdatedJson = JSONObject.parseObject(updatedJson.getString(i));
|
||||||
DepotItem depotItem = this.getDepotItem(tempUpdatedJson.getLong("Id"));
|
DepotItem depotItem = this.getDepotItem(tempUpdatedJson.getLong("Id"));
|
||||||
|
if(depotItem==null){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Material material= materialService.getMaterial(depotItem.getMaterialid());
|
||||||
|
if(material==null){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
//首先回收序列号
|
//首先回收序列号
|
||||||
if(BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType())
|
if(BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType())
|
||||||
&&!BusinessConstants.SUB_TYPE_TRANSFER.equals(depotHead.getSubtype())) {
|
&&!BusinessConstants.SUB_TYPE_TRANSFER.equals(depotHead.getSubtype())) {
|
||||||
serialNumberMapperEx.cancelSerialNumber(depotItem.getMaterialid(), depotItem.getHeaderid(), depotItem.getOpernumber().intValue(),
|
/**
|
||||||
new Date(),userInfo==null?null:userInfo.getId());
|
* 判断商品是否开启序列号,开启的收回序列号,未开启的跳过
|
||||||
|
* */
|
||||||
|
if(BusinessConstants.ENABLE_SERIAL_NUMBER_ENABLED.equals(material.getEnableSerialNumber())) {
|
||||||
|
serialNumberMapperEx.cancelSerialNumber(depotItem.getMaterialid(), depotItem.getHeaderid(), depotItem.getOpernumber().intValue(),
|
||||||
|
new Date(), userInfo == null ? null : userInfo.getId());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
depotItem.setId(tempUpdatedJson.getLong("Id"));
|
depotItem.setId(tempUpdatedJson.getLong("Id"));
|
||||||
depotItem.setMaterialid(tempUpdatedJson.getLong("MaterialId"));
|
depotItem.setMaterialid(tempUpdatedJson.getLong("MaterialId"));
|
||||||
@@ -408,13 +455,23 @@ public class DepotItemService {
|
|||||||
depotItem.setOtherfield4(tempUpdatedJson.getString("OtherField4"));
|
depotItem.setOtherfield4(tempUpdatedJson.getString("OtherField4"));
|
||||||
depotItem.setOtherfield5(tempUpdatedJson.getString("OtherField5"));
|
depotItem.setOtherfield5(tempUpdatedJson.getString("OtherField5"));
|
||||||
depotItem.setMtype(tempUpdatedJson.getString("MType"));
|
depotItem.setMtype(tempUpdatedJson.getString("MType"));
|
||||||
this.updateDepotItemWithObj(depotItem);
|
|
||||||
/**出库时处理序列号*/
|
/**出库时处理序列号*/
|
||||||
if(BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType())
|
if(BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType())){
|
||||||
&&!BusinessConstants.SUB_TYPE_TRANSFER.equals(depotHead.getSubtype())){
|
if(getCurrentInStock(depotItem.getMaterialid())<depotItem.getOpernumber().intValue()){
|
||||||
//查询单据子表中开启序列号的数据列表
|
throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_STOCK_NOT_ENOUGH_CODE,
|
||||||
serialNumberService.checkAndUpdateSerialNumber(depotItem,userInfo);
|
String.format(ExceptionConstants.MATERIAL_STOCK_NOT_ENOUGH_MSG,material==null?"":material.getName()));
|
||||||
|
}
|
||||||
|
if(!BusinessConstants.SUB_TYPE_TRANSFER.equals(depotHead.getSubtype())) {
|
||||||
|
/**
|
||||||
|
* 判断商品是否开启序列号,开启的收回序列号,未开启的跳过
|
||||||
|
* */
|
||||||
|
if(BusinessConstants.ENABLE_SERIAL_NUMBER_ENABLED.equals(material.getEnableSerialNumber())) {
|
||||||
|
//查询单据子表中开启序列号的数据列表
|
||||||
|
serialNumberService.checkAndUpdateSerialNumber(depotItem, userInfo);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
this.updateDepotItemWithObj(depotItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
@@ -439,5 +496,16 @@ public class DepotItemService {
|
|||||||
}
|
}
|
||||||
return unitName;
|
return unitName;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 查询商品当前库存数量是否充足,
|
||||||
|
*
|
||||||
|
* */
|
||||||
|
public int getCurrentInStock(Long materialId){
|
||||||
|
//入库数量
|
||||||
|
int inSum = findByTypeAndMaterialId(BusinessConstants.DEPOTHEAD_TYPE_STORAGE, materialId);
|
||||||
|
//出库数量
|
||||||
|
int outSum = findByTypeAndMaterialId(BusinessConstants.DEPOTHEAD_TYPE_OUT, materialId);
|
||||||
|
return (inSum-outSum);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,14 +6,17 @@
|
|||||||
<result column="materialName" jdbcType="VARCHAR" property="materialName" />
|
<result column="materialName" jdbcType="VARCHAR" property="materialName" />
|
||||||
<result column="creatorName" jdbcType="VARCHAR" property="creatorName" />
|
<result column="creatorName" jdbcType="VARCHAR" property="creatorName" />
|
||||||
<result column="updaterName" jdbcType="VARCHAR" property="updaterName" />
|
<result column="updaterName" jdbcType="VARCHAR" property="updaterName" />
|
||||||
|
<result column="depotHeadNumber" jdbcType="VARCHAR" property="depotHeadNumber" />
|
||||||
|
<result column="depotHeadType" jdbcType="VARCHAR" property="depotHeadType" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
<select id="selectByConditionSerialNumber" resultMap="SerialNumberExBaseResultMap">
|
<select id="selectByConditionSerialNumber" resultMap="SerialNumberExBaseResultMap">
|
||||||
select
|
select
|
||||||
ser.id, ser.material_Id, ser.serial_Number, ser.is_Sell, ser.remark, ser.delete_Flag, ser.create_Time,
|
ser.id, ser.material_Id, ser.serial_Number, ser.is_Sell, ser.remark, ser.delete_Flag, ser.create_Time,
|
||||||
ser.update_Time,mat.name as materialName,null as creator,null as updater,null as creatorName,
|
ser.update_Time,mat.name as materialName,null as creator,null as updater,null as creatorName,
|
||||||
null as updaterName,ser.depothead_Id
|
null as updaterName,ser.depothead_Id, dh.number as depotHeadNumber,concat(dh.SubType,dh.Type) as depotHeadType
|
||||||
FROM jsh_serial_number ser
|
FROM jsh_serial_number ser
|
||||||
left JOIN jsh_material mat on mat.id = ser.material_Id
|
left join jsh_material mat on mat.id = ser.material_Id
|
||||||
|
left join jsh_depothead dh on dh.id= ser.depothead_Id
|
||||||
where 1=1
|
where 1=1
|
||||||
<if test="serialNumber != null">
|
<if test="serialNumber != null">
|
||||||
<bind name="serialNumber" value="'%' + _parameter.serialNumber + '%'" />
|
<bind name="serialNumber" value="'%' + _parameter.serialNumber + '%'" />
|
||||||
|
|||||||
Reference in New Issue
Block a user