Merge remote-tracking branch 'origin/master'

This commit is contained in:
star 2024-11-08 17:01:01 +08:00
commit 863c471442
10 changed files with 606 additions and 167 deletions

View File

@ -94,12 +94,19 @@ public class WmsOutPlanController extends BaseController {
}
@PreAuthorize("@ss.hasPermi('md:PLAN:edit')")
@Log(title = "出库计划执行", businessType = BusinessType.UPDATE)
@Log(title = "出库计划管理", businessType = BusinessType.UPDATE)
@PutMapping("/run/{wmsOutPlanIds}")
public AjaxResult run(@PathVariable Long[] wmsOutPlanIds) {
return toAjax(wmsOutPlanService.runWmsOutPlan(wmsOutPlanIds));
}
@PreAuthorize("@ss.hasPermi('md:PLAN:edit')")
@Log(title = "出库计划管理", businessType = BusinessType.UPDATE)
@PutMapping("/auto-scrap-out")
public AjaxResult autoScrapOut() {
return AjaxResult.success(wmsOutPlanService.autoScrapOut(getUsername()));
}
/**
* 删除出库计划管理
*/

View File

@ -2,8 +2,9 @@ package com.ktg.mes.md.domain;
import com.ktg.common.annotation.Excel;
import com.ktg.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.HashMap;
import java.util.List;
/**
* 出库任务对象 WMS_OUT_TASK
@ -129,6 +130,8 @@ public class WmsOutTask extends BaseEntity {
*/
private Integer attr4;
private List<HashMap<String, Object>> outInfoList;
public Long getWmsOutTaskId() {
return wmsOutTaskId;
}
@ -289,34 +292,38 @@ public class WmsOutTask extends BaseEntity {
this.attr4 = attr4;
}
public List<HashMap<String, Object>> getOutInfoList() {
return outInfoList;
}
public void setOutInfoList(List<HashMap<String, Object>> outInfoList) {
this.outInfoList = outInfoList;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("wmsOutTaskId", getWmsOutTaskId())
.append("wmsOutPlanId", getWmsOutPlanId())
.append("wmsOutPlanCode", getWmsOutPlanCode())
.append("wmsOutPlanDetailId", getWmsOutPlanDetailId())
.append("wmsBusinessTypeId", getWmsBusinessTypeId())
.append("taskCode", getTaskCode())
.append("taskNumber", getTaskNumber())
.append("outNumber", getOutNumber())
.append("wmStorageAreaId", getWmStorageAreaId())
.append("batchNum", getBatchNum())
.append("mdItemId", getMdItemId())
.append("mdItemCode", getMdItemCode())
.append("mdItemName", getMdItemName())
.append("mdItemUnit", getMdItemUnit())
.append("taskState", getTaskState())
.append("recipientUsername", getRecipientUsername())
.append("remark", getRemark())
.append("attr1", getAttr1())
.append("attr2", getAttr2())
.append("attr3", getAttr3())
.append("attr4", getAttr4())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.toString();
return "WmsOutTask{" +
"wmsOutTaskId=" + wmsOutTaskId +
", wmsOutPlanId=" + wmsOutPlanId +
", wmsOutPlanCode='" + wmsOutPlanCode + '\'' +
", wmsOutPlanDetailId=" + wmsOutPlanDetailId +
", wmsBusinessTypeId=" + wmsBusinessTypeId +
", taskCode='" + taskCode + '\'' +
", taskNumber=" + taskNumber +
", outNumber=" + outNumber +
", wmStorageAreaId=" + wmStorageAreaId +
", batchNum='" + batchNum + '\'' +
", mdItemId=" + mdItemId +
", mdItemCode='" + mdItemCode + '\'' +
", mdItemName='" + mdItemName + '\'' +
", mdItemUnit='" + mdItemUnit + '\'' +
", taskState='" + taskState + '\'' +
", recipientUsername='" + recipientUsername + '\'' +
", attr1='" + attr1 + '\'' +
", attr2='" + attr2 + '\'' +
", attr3=" + attr3 +
", attr4=" + attr4 +
", outInfoList=" + outInfoList +
'}';
}
}

View File

@ -97,5 +97,10 @@ public interface BaseKnifeMapper {
@Param("isLocked") Integer isLocked
);
List<BaseKnife> selectScrapList(
@Param("knifeFineState") Integer knifeFineState,
@Param("isLocked") Integer isLocked
);
long countBaseKnife(Long mbbBdMrlId);
}

View File

@ -1,7 +1,9 @@
package com.ktg.mes.md.mapper;
import java.util.List;
import com.ktg.mes.md.domain.WmsBusinessType;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 出入库类型Mapper接口
@ -17,7 +19,15 @@ public interface WmsBusinessTypeMapper
* @param typeId 出入库类型主键
* @return 出入库类型
*/
public WmsBusinessType selectWmsBusinessTypeByTypeId(String typeId);
WmsBusinessType selectWmsBusinessTypeByTypeId(String typeId);
/**
* 查询出入库类型
*
* @param code 编码
* @return 出入库类型
*/
WmsBusinessType selectWmsBusinessTypeByCode(@Param("code") String code);
/**
* 查询出入库类型列表
@ -25,7 +35,7 @@ public interface WmsBusinessTypeMapper
* @param wmsBusinessType 出入库类型
* @return 出入库类型集合
*/
public List<WmsBusinessType> selectWmsBusinessTypeList(WmsBusinessType wmsBusinessType);
List<WmsBusinessType> selectWmsBusinessTypeList(WmsBusinessType wmsBusinessType);
/**
* 新增出入库类型
@ -33,7 +43,7 @@ public interface WmsBusinessTypeMapper
* @param wmsBusinessType 出入库类型
* @return 结果
*/
public int insertWmsBusinessType(WmsBusinessType wmsBusinessType);
int insertWmsBusinessType(WmsBusinessType wmsBusinessType);
/**
* 修改出入库类型
@ -41,7 +51,7 @@ public interface WmsBusinessTypeMapper
* @param wmsBusinessType 出入库类型
* @return 结果
*/
public int updateWmsBusinessType(WmsBusinessType wmsBusinessType);
int updateWmsBusinessType(WmsBusinessType wmsBusinessType);
/**
* 删除出入库类型
@ -49,7 +59,7 @@ public interface WmsBusinessTypeMapper
* @param typeId 出入库类型主键
* @return 结果
*/
public int deleteWmsBusinessTypeByTypeId(String typeId);
int deleteWmsBusinessTypeByTypeId(String typeId);
/**
* 批量删除出入库类型
@ -57,5 +67,5 @@ public interface WmsBusinessTypeMapper
* @param typeIds 需要删除的数据主键集合
* @return 结果
*/
public int deleteWmsBusinessTypeByTypeIds(String[] typeIds);
int deleteWmsBusinessTypeByTypeIds(String[] typeIds);
}

View File

@ -64,4 +64,6 @@ public interface IWmsOutPlanService {
boolean runWmsOutPlan(Long[] wmsOutPlanIds);
List<HashMap<String, Object>> selectWmsOutPlanDetailEntityList(WmsOutPlanDetailEntity wmsOutPlanDetailEntity);
int autoScrapOut(String username);
}

View File

@ -5,15 +5,15 @@ import com.ktg.common.utils.StringUtils;
import com.ktg.mes.md.domain.*;
import com.ktg.mes.md.mapper.*;
import com.ktg.mes.md.service.IWmsOutPlanService;
import com.ktg.mes.wm.domain.WmStorageArea;
import com.ktg.mes.wm.mapper.WmStorageAreaMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
/**
* 出库计划管理Service业务层处理
@ -41,6 +41,9 @@ public class WmsOutPlanServiceImpl implements IWmsOutPlanService {
@Autowired
private MdItemMapper mdItemMapper;
@Autowired
private WmStorageAreaMapper wmStorageAreaMapper;
/**
* 查询出库计划管理
*
@ -242,6 +245,129 @@ public class WmsOutPlanServiceImpl implements IWmsOutPlanService {
return hashMapList;
}
@Transactional
@Override
public int autoScrapOut(String username) {
// 获得全部可以报废物品
List<BaseKnife> baseKnifeList = this.baseKnifeMapper.selectScrapList(0, 0);
// 校验是否存在可报废物品
if (baseKnifeList.isEmpty()) {
return 0;
}
// 根据库位进一步分组数据容器
HashMap<Long, HashMap<String, List<BaseKnife>>> baseKnifeHashMapMap = new HashMap<>();
// 遍历全部可以报废物品
baseKnifeList.forEach(baseKnife -> {
// 判断当前物料主键是否已经被收录
baseKnifeHashMapMap.computeIfAbsent(baseKnife.getMbbBdMrlId(), k -> new HashMap<>());
// 判断当前库位编码是否已经被收录
baseKnifeHashMapMap.get(baseKnife.getMbbBdMrlId()).computeIfAbsent(baseKnife.getAreaCode(), k -> new ArrayList<>());
// 对当前台账对象进行收录
baseKnifeHashMapMap.get(baseKnife.getMbbBdMrlId()).get(baseKnife.getAreaCode()).add(baseKnife);
});
// 构建出库计划
WmsOutPlan wmsOutPlan = new WmsOutPlan();
wmsOutPlan.setPlanCode(Long.toString(System.currentTimeMillis(), 32).toUpperCase(Locale.ROOT));
wmsOutPlan.setWmsBusinessTypeId(this.wmsBusinessTypeMapper.selectWmsBusinessTypeByCode("CK04").getTypeId() != null ? Long.parseLong(this.wmsBusinessTypeMapper.selectWmsBusinessTypeByCode("CK04").getTypeId()) : 14L);
wmsOutPlan.setPlanState("1");
wmsOutPlan.setPlanType("SGLR");
wmsOutPlan.setRemark("一键清退无寿命物品");
wmsOutPlan.setCreateBy(username);
wmsOutPlan.setCreateTime(new Date());
wmsOutPlanMapper.insertWmsOutPlan(wmsOutPlan);
// 清退计数
AtomicInteger count = new AtomicInteger();
// 根据物料ID遍历
baseKnifeHashMapMap.keySet().forEach(mdItemId -> {
// 获得物料对象
MdItem mdItem = mdItemMapper.selectMdItemById(mdItemId);
// 根据库位编码遍历
baseKnifeHashMapMap.get(mdItemId).keySet().forEach(areaCode -> {
// 获得库位对象
WmStorageArea wmStorageArea = wmStorageAreaMapper.selectWmStorageAreaByAreaCode(areaCode);
// 校验是否存在库位
if (wmStorageArea == null || mdItem == null) {
return;
}
// 构建出库计划明细
WmsOutPlanDetail wmsOutPlanDetail = new WmsOutPlanDetail();
wmsOutPlanDetail.setWmsOutPlanId(wmsOutPlan.getWmsOutPlanId());
wmsOutPlanDetail.setMdItemId(mdItem.getItemId());
wmsOutPlanDetail.setMdItemCode(mdItem.getItemCode());
wmsOutPlanDetail.setMdItemName(mdItem.getItemName());
wmsOutPlanDetail.setMdItemUnit(mdItem.getUnitName());
wmsOutPlanDetail.setPlannedQuantity(baseKnifeHashMapMap.get(mdItemId).get(areaCode).size());
wmsOutPlanDetail.setRealQuantity(baseKnifeHashMapMap.get(mdItemId).get(areaCode).size());
wmsOutPlanDetail.setDetailBatchNum("1");
wmsOutPlanDetail.setWmStorageAreaId(wmStorageArea.getAreaId());
wmsOutPlanDetail.setWmStorageAreaCode(wmStorageArea.getAreaCode());
wmsOutPlanDetail.setWmStorageAreaName(wmStorageArea.getAreaName());
wmsOutPlanDetail.setDetailState("1");
wmsOutPlanDetail.setRemark("一键清退无寿命物品");
wmsOutPlanDetail.setCreateBy(username);
wmsOutPlanDetail.setCreateTime(new Date());
wmsOutPlanMapper.insertWmsOutPlanDetail(wmsOutPlanDetail);
// 遍历台账对象
baseKnifeHashMapMap.get(mdItemId).get(areaCode).forEach(baseKnife -> {
// 构建出库计划明细实体
WmsOutPlanDetailEntity wmsOutPlanDetailEntity = new WmsOutPlanDetailEntity();
wmsOutPlanDetailEntity.setWmsOutPlanDetailId(wmsOutPlanDetail.getWmsOutPlanDetailId());
wmsOutPlanDetailEntity.setBaseKnifeId(baseKnife.getBaseKnifeId());
wmsOutPlanDetailEntity.setRemark("一键清退无寿命物品");
wmsOutPlanDetailEntity.setCreateBy(username);
wmsOutPlanDetailEntity.setCreateTime(new Date());
wmsOutPlanDetailEntityMapper.insertWmsOutPlanDetailEntity(wmsOutPlanDetailEntity);
// 锁定并出库台账明细实体
this.baseKnifeMapper.updateBaseKnifeKnifeFineStateAndIsLockedByBaseKnifeId(
wmsOutPlanDetailEntity.getBaseKnifeId(),
2,
1
);
// 增加计数
count.getAndIncrement();
});
// 构建出库任务
WmsOutTask wmsOutTask = new WmsOutTask();
wmsOutTask.setWmsOutPlanId(wmsOutPlan.getWmsOutPlanId());
wmsOutTask.setWmsOutPlanCode(wmsOutPlan.getPlanCode());
wmsOutTask.setWmsOutPlanDetailId(wmsOutPlanDetail.getWmsOutPlanDetailId());
wmsOutTask.setWmsBusinessTypeId(wmsOutPlan.getWmsBusinessTypeId());
wmsOutTask.setTaskCode(wmsOutPlan.getPlanCode());
wmsOutTask.setTaskNumber(wmsOutPlanDetail.getPlannedQuantity());
wmsOutTask.setOutNumber(wmsOutPlanDetail.getRealQuantity());
wmsOutTask.setWmStorageAreaId(wmsOutPlanDetail.getWmStorageAreaId());
wmsOutTask.setBatchNum("1");
wmsOutTask.setMdItemId(wmsOutPlanDetail.getMdItemId());
wmsOutTask.setMdItemCode(wmsOutPlanDetail.getMdItemCode());
wmsOutTask.setMdItemName(wmsOutPlanDetail.getMdItemName());
wmsOutTask.setMdItemUnit(wmsOutPlanDetail.getMdItemUnit());
wmsOutTask.setTaskState("1");
wmsOutTask.setRemark("一键清退无寿命物品");
wmsOutTask.setCreateBy(username);
wmsOutTask.setCreateTime(new Date());
wmsOutTaskMapper.insertWmsOutTask(wmsOutTask);
});
});
// 返回数量
return count.get();
}
/**
* 新增出库计划明细信息
*

View File

@ -1,16 +1,16 @@
package com.ktg.mes.md.service.impl;
import com.ktg.common.utils.DateUtils;
import com.ktg.mes.md.domain.WmsOutPlanDetailEntity;
import com.ktg.mes.md.domain.WmsOutTask;
import com.ktg.mes.md.mapper.BaseKnifeMapper;
import com.ktg.mes.md.mapper.WmsOutPlanDetailEntityMapper;
import com.ktg.mes.md.mapper.WmsOutTaskMapper;
import com.ktg.mes.md.domain.*;
import com.ktg.mes.md.mapper.*;
import com.ktg.mes.md.service.IWmsOutTaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
@ -30,6 +30,15 @@ public class WmsOutTaskServiceImpl implements IWmsOutTaskService {
@Autowired
private BaseKnifeMapper baseKnifeMapper;
@Autowired
private WmsOutPlanMapper wmsOutPlanMapper;
@Autowired
private WmsBusinessTypeMapper wmsBusinessTypeMapper;
@Autowired
private MdItemMapper mdItemMapper;
/**
* 查询出库任务
*
@ -38,7 +47,63 @@ public class WmsOutTaskServiceImpl implements IWmsOutTaskService {
*/
@Override
public WmsOutTask selectWmsOutTaskByWmsOutTaskId(Long wmsOutTaskId) {
return wmsOutTaskMapper.selectWmsOutTaskByWmsOutTaskId(wmsOutTaskId);
WmsOutTask wmsOutTask = wmsOutTaskMapper.selectWmsOutTaskByWmsOutTaskId(wmsOutTaskId);
// 构建出库信息
List<HashMap<String, Object>> hashMapList = new ArrayList<>();
// 获得物料
MdItem mdItem = this.mdItemMapper.selectMdItemById(wmsOutTask.getMdItemId());
// 获得当前出库计划明细实体列表并遍历
WmsOutPlanDetailEntity entityQuery = new WmsOutPlanDetailEntity();
entityQuery.setWmsOutPlanDetailId(wmsOutTask.getWmsOutPlanDetailId());
List<WmsOutPlanDetailEntity> wmsOutPlanDetailEntityList = wmsOutPlanDetailEntityMapper.selectWmsOutPlanDetailEntityList(entityQuery);
wmsOutPlanDetailEntityList.forEach(nowWmsOutPlanDetailEntity -> {
// 根据出库实例对象获取出库计划明细
WmsOutPlanDetail wmsOutPlanDetail = this.wmsOutPlanMapper.selectWmsOutPlanDetailById(nowWmsOutPlanDetailEntity.getWmsOutPlanDetailId());
// 根据计划明细获得出库计划
WmsOutPlan wmsOutPlan = this.wmsOutPlanMapper.selectWmsOutPlanByWmsOutPlanId(wmsOutPlanDetail.getWmsOutPlanId());
// 根据出库计划获得出库类型
WmsBusinessType wmsBusinessType = this.wmsBusinessTypeMapper.selectWmsBusinessTypeByTypeId(wmsOutPlan.getWmsBusinessTypeId().toString());
// 设定出库信息数据
HashMap<String, Object> hashMap = new HashMap<>();
/* 来自物料 */
hashMap.put("mdItemId", mdItem.getItemId()); // 物料ID
hashMap.put("mdItemCode", mdItem.getItemCode()); // 物料编码
hashMap.put("mdItemName", mdItem.getItemName()); // 物料名称
/* 来自计划 */
hashMap.put("planCode", wmsOutPlan.getPlanCode()); // 计划编号
hashMap.put("planStatus", wmsOutPlan.getPlanState()); // 计划状态
hashMap.put("planType", wmsOutPlan.getPlanType()); // 计划类型
hashMap.put("useUsername", wmsOutPlan.getRecipientUsername()); // 领用人
/* 来自出入库计划类型 */
hashMap.put("planTypeId", wmsBusinessType.getTypeId()); // 出库类型ID
hashMap.put("planTypeCode", wmsBusinessType.getCode()); // 出库类型编码
hashMap.put("planTypeName", wmsBusinessType.getName()); // 出库类型名称
/* 来自计划明细 */
hashMap.put("detailBatchNum", wmsOutPlanDetail.getDetailBatchNum()); // 明细批次
hashMap.put("wmStorageAreaId", wmsOutPlanDetail.getWmStorageAreaId()); // 库位ID
hashMap.put("wmStorageAreaCode", wmsOutPlanDetail.getWmStorageAreaCode()); // 库位编码
hashMap.put("wmStorageAreaName", wmsOutPlanDetail.getWmStorageAreaName()); // 库位名称
hashMap.put("detailStatus", wmsOutPlanDetail.getDetailState()); // 明细状态
/* 实体 */
String outTime = null;
if (nowWmsOutPlanDetailEntity.getCreateTime() != null)
outTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(nowWmsOutPlanDetailEntity.getCreateTime());
hashMap.put("outTime", outTime); // 出库时间
hashMap.put("baseKnifeId", nowWmsOutPlanDetailEntity.getBaseKnifeId());
hashMapList.add(hashMap);
// 注入出库信息对象
wmsOutTask.setOutInfoList(hashMapList);
});
return wmsOutTask;
}
/**

View File

@ -53,14 +53,14 @@ public class WmWarehouseController extends BaseController
return getDataTable(list);
}
/**
* 查询树型的列表
* @return
*/
@GetMapping("/getTreeList")
public AjaxResult getTreeList(){
return AjaxResult.success(wmWarehouseService.getTreeList());
}
// /** TODO E
// * 查询树型的列表
// * @return
// */
// @GetMapping("/getTreeList")
// public AjaxResult getTreeList(){
// return AjaxResult.success(wmWarehouseService.getTreeList());
// }
/**
* 导出仓库设置列表

View File

@ -561,4 +561,18 @@
FROM BASE_KNIFE BK
WHERE MBB_BD_MRL_ID = #{mbbBdMrlId}
</select>
<select id="selectScrapList" resultMap="BaseKnifeResult">
<include refid="selectBaseKnifeVo"/>
<where>
<if test="knifeFineState != null">
and KNIFE_FINE_STATE = #{knifeFineState}
</if>
<if test="isLocked != null">
and IS_LOCKED = #{isLocked}
</if>
and RESET_COUNT = 0
and KNIFE_LIFE = 0
</where>
</select>
</mapper>

View File

@ -3,7 +3,6 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ktg.mes.md.mapper.WmsBusinessTypeMapper">
<resultMap type="WmsBusinessType" id="WmsBusinessTypeResult">
<result property="typeId" column="TYPE_ID"/>
<result property="createBy" column="CREATE_BY"/>
@ -68,47 +67,89 @@
<select id="selectWmsBusinessTypeList" parameterType="WmsBusinessType" resultMap="WmsBusinessTypeResult">
<include refid="selectWmsBusinessTypeVo"/>
<where>
<if test="createBy != null and createBy != ''">and CREATE_BY = #{createBy}</if>
<if test="createTime != null and createTime != ''">and CREATE_TIME = #{createTime}</if>
<if test="updateBy != null and updateBy != ''">and UPDATE_BY = #{updateBy}</if>
<if test="modifyDate != null and modifyDate != ''">and MODIFY_DATE = #{modifyDate}</if>
<if test="isActive != null and isActive != ''">and IS_ACTIVE = #{isActive}</if>
<if test="createBy != null and createBy != ''">
and CREATE_BY = #{createBy}
</if>
<if test="createTime != null and createTime != ''">
and CREATE_TIME = #{createTime}
</if>
<if test="updateBy != null and updateBy != ''">
and UPDATE_BY = #{updateBy}
</if>
<if test="modifyDate != null and modifyDate != ''">
and MODIFY_DATE = #{modifyDate}
</if>
<if test="isActive != null and isActive != ''">
and IS_ACTIVE = #{isActive}
</if>
and IS_DELETE = 0
<if test="code != null and code != ''">and CODE = #{code}</if>
<if test="name != null and name != ''">and NAME like concat('%', #{name}, '%')</if>
<if test="flag != null and flag != ''">and FLAG = #{flag}</if>
<if test="type != null and type != ''">and TYPE = #{type}</if>
<if test="isDefault != null and isDefault != ''">and IS_DEFAULT = #{isDefault}</if>
<if test="isGlobal != null and isGlobal != ''">and IS_GLOBAL = #{isGlobal}</if>
<if test="isNeedUp != null and isNeedUp != ''">and IS_NEED_UP = #{isNeedUp}</if>
<if test="qualityType != null and qualityType != ''">and QUALITY_TYPE = #{qualityType}</if>
<if test="isOutboundReview != null and isOutboundReview != ''">and IS_OUTBOUND_REVIEW =
#{isOutboundReview}
<if test="code != null and code != ''">
and CODE = #{code}
</if>
<if test="waveStrategy != null and waveStrategy != ''">and WAVE_STRATEGY = #{waveStrategy}</if>
<if test="isMultipleAllowed != null and isMultipleAllowed != ''">and IS_MULTIPLE_ALLOWED =
#{isMultipleAllowed}
<if test="name != null and name != ''">
and NAME like concat('%', #{name}, '%')
</if>
<if test="isShortageAllowed != null and isShortageAllowed != ''">and IS_SHORTAGE_ALLOWED =
#{isShortageAllowed}
<if test="flag != null and flag != ''">
and FLAG = #{flag}
</if>
<if test="isExcessAllowed != null and isExcessAllowed != ''">and IS_EXCESS_ALLOWED = #{isExcessAllowed}
<if test="type != null and type != ''">
and TYPE = #{type}
</if>
<if test="isWholeOrderPost != null and isWholeOrderPost != ''">and IS_WHOLE_ORDER_POST =
#{isWholeOrderPost}
<if test="isDefault != null and isDefault != ''">
and IS_DEFAULT = #{isDefault}
</if>
<if test="isManuallyCreate != null and isManuallyCreate != ''">and IS_MANUALLY_CREATE =
#{isManuallyCreate}
<if test="isGlobal != null and isGlobal != ''">
and IS_GLOBAL = #{isGlobal}
</if>
<if test="isNoTask != null and isNoTask != ''">and IS_NO_TASK = #{isNoTask}</if>
<if test="isNegativeInv != null and isNegativeInv != ''">and IS_NEGATIVE_INV = #{isNegativeInv}</if>
<if test="isCheckSafetyStock != null and isCheckSafetyStock != ''">and IS_CHECK_SAFETY_STOCK =
#{isCheckSafetyStock}
<if test="isNeedUp != null and isNeedUp != ''">
and IS_NEED_UP = #{isNeedUp}
</if>
<if test="isRecordInboundTime != null and isRecordInboundTime != ''">and IS_RECORD_INBOUND_TIME =
#{isRecordInboundTime}
<if test="qualityType != null and qualityType != ''">
and QUALITY_TYPE = #{qualityType}
</if>
<if test="isOutboundReview != null and isOutboundReview != ''">
and IS_OUTBOUND_REVIEW =
#{isOutboundReview}
</if>
<if test="waveStrategy != null and waveStrategy != ''">
and WAVE_STRATEGY = #{waveStrategy}
</if>
<if test="isMultipleAllowed != null and isMultipleAllowed != ''">
and IS_MULTIPLE_ALLOWED =
#{isMultipleAllowed}
</if>
<if test="isShortageAllowed != null and isShortageAllowed != ''">
and IS_SHORTAGE_ALLOWED =
#{isShortageAllowed}
</if>
<if test="isExcessAllowed != null and isExcessAllowed != ''">
and IS_EXCESS_ALLOWED = #{isExcessAllowed}
</if>
<if test="isWholeOrderPost != null and isWholeOrderPost != ''">
and IS_WHOLE_ORDER_POST =
#{isWholeOrderPost}
</if>
<if test="isManuallyCreate != null and isManuallyCreate != ''">
and IS_MANUALLY_CREATE =
#{isManuallyCreate}
</if>
<if test="isNoTask != null and isNoTask != ''">
and IS_NO_TASK = #{isNoTask}
</if>
<if test="isNegativeInv != null and isNegativeInv != ''">
and IS_NEGATIVE_INV = #{isNegativeInv}
</if>
<if test="isCheckSafetyStock != null and isCheckSafetyStock != ''">
and IS_CHECK_SAFETY_STOCK =
#{isCheckSafetyStock}
</if>
<if test="isRecordInboundTime != null and isRecordInboundTime != ''">
and IS_RECORD_INBOUND_TIME =
#{isRecordInboundTime}
</if>
<if test="remark != null and remark != ''">
and REMARK = #{remark}
</if>
<if test="remark != null and remark != ''">and REMARK = #{remark}</if>
</where>
</select>
@ -120,92 +161,248 @@
<insert id="insertWmsBusinessType" parameterType="WmsBusinessType" useGeneratedKeys="true" keyProperty="typeId">
insert into WMS_BUSINESS_TYPE
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="createBy != null">CREATE_BY,</if>
<if test="createTime != null">CREATE_TIME,</if>
<if test="updateBy != null">UPDATE_BY,</if>
<if test="modifyDate != null">MODIFY_DATE,</if>
<if test="isActive != null">IS_ACTIVE,</if>
<if test="isDelete != null">IS_DELETE,</if>
<if test="code != null">CODE,</if>
<if test="name != null">NAME,</if>
<if test="flag != null">FLAG,</if>
<if test="type != null">TYPE,</if>
<if test="isDefault != null">IS_DEFAULT,</if>
<if test="isGlobal != null">IS_GLOBAL,</if>
<if test="isNeedUp != null">IS_NEED_UP,</if>
<if test="qualityType != null">QUALITY_TYPE,</if>
<if test="isOutboundReview != null">IS_OUTBOUND_REVIEW,</if>
<if test="waveStrategy != null">WAVE_STRATEGY,</if>
<if test="isMultipleAllowed != null">IS_MULTIPLE_ALLOWED,</if>
<if test="isShortageAllowed != null">IS_SHORTAGE_ALLOWED,</if>
<if test="isExcessAllowed != null">IS_EXCESS_ALLOWED,</if>
<if test="isWholeOrderPost != null">IS_WHOLE_ORDER_POST,</if>
<if test="isManuallyCreate != null">IS_MANUALLY_CREATE,</if>
<if test="isNoTask != null">IS_NO_TASK,</if>
<if test="isNegativeInv != null">IS_NEGATIVE_INV,</if>
<if test="isCheckSafetyStock != null">IS_CHECK_SAFETY_STOCK,</if>
<if test="isRecordInboundTime != null">IS_RECORD_INBOUND_TIME,</if>
<if test="remark != null">REMARK,</if>
<if test="createBy != null">
CREATE_BY,
</if>
<if test="createTime != null">
CREATE_TIME,
</if>
<if test="updateBy != null">
UPDATE_BY,
</if>
<if test="modifyDate != null">
MODIFY_DATE,
</if>
<if test="isActive != null">
IS_ACTIVE,
</if>
<if test="isDelete != null">
IS_DELETE,
</if>
<if test="code != null">
CODE,
</if>
<if test="name != null">
NAME,
</if>
<if test="flag != null">
FLAG,
</if>
<if test="type != null">
TYPE,
</if>
<if test="isDefault != null">
IS_DEFAULT,
</if>
<if test="isGlobal != null">
IS_GLOBAL,
</if>
<if test="isNeedUp != null">
IS_NEED_UP,
</if>
<if test="qualityType != null">
QUALITY_TYPE,
</if>
<if test="isOutboundReview != null">
IS_OUTBOUND_REVIEW,
</if>
<if test="waveStrategy != null">
WAVE_STRATEGY,
</if>
<if test="isMultipleAllowed != null">
IS_MULTIPLE_ALLOWED,
</if>
<if test="isShortageAllowed != null">
IS_SHORTAGE_ALLOWED,
</if>
<if test="isExcessAllowed != null">
IS_EXCESS_ALLOWED,
</if>
<if test="isWholeOrderPost != null">
IS_WHOLE_ORDER_POST,
</if>
<if test="isManuallyCreate != null">
IS_MANUALLY_CREATE,
</if>
<if test="isNoTask != null">
IS_NO_TASK,
</if>
<if test="isNegativeInv != null">
IS_NEGATIVE_INV,
</if>
<if test="isCheckSafetyStock != null">
IS_CHECK_SAFETY_STOCK,
</if>
<if test="isRecordInboundTime != null">
IS_RECORD_INBOUND_TIME,
</if>
<if test="remark != null">
REMARK,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="modifyDate != null">#{modifyDate},</if>
<if test="isActive != null">#{isActive},</if>
<if test="isDelete != null">#{isDelete},</if>
<if test="code != null">#{code},</if>
<if test="name != null">#{name},</if>
<if test="flag != null">#{flag},</if>
<if test="type != null">#{type},</if>
<if test="isDefault != null">#{isDefault},</if>
<if test="isGlobal != null">#{isGlobal},</if>
<if test="isNeedUp != null">#{isNeedUp},</if>
<if test="qualityType != null">#{qualityType},</if>
<if test="isOutboundReview != null">#{isOutboundReview},</if>
<if test="waveStrategy != null">#{waveStrategy},</if>
<if test="isMultipleAllowed != null">#{isMultipleAllowed},</if>
<if test="isShortageAllowed != null">#{isShortageAllowed},</if>
<if test="isExcessAllowed != null">#{isExcessAllowed},</if>
<if test="isWholeOrderPost != null">#{isWholeOrderPost},</if>
<if test="isManuallyCreate != null">#{isManuallyCreate},</if>
<if test="isNoTask != null">#{isNoTask},</if>
<if test="isNegativeInv != null">#{isNegativeInv},</if>
<if test="isCheckSafetyStock != null">#{isCheckSafetyStock},</if>
<if test="isRecordInboundTime != null">#{isRecordInboundTime},</if>
<if test="remark != null">#{remark},</if>
<if test="createBy != null">
#{createBy},
</if>
<if test="createTime != null">
#{createTime},
</if>
<if test="updateBy != null">
#{updateBy},
</if>
<if test="modifyDate != null">
#{modifyDate},
</if>
<if test="isActive != null">
#{isActive},
</if>
<if test="isDelete != null">
#{isDelete},
</if>
<if test="code != null">
#{code},
</if>
<if test="name != null">
#{name},
</if>
<if test="flag != null">
#{flag},
</if>
<if test="type != null">
#{type},
</if>
<if test="isDefault != null">
#{isDefault},
</if>
<if test="isGlobal != null">
#{isGlobal},
</if>
<if test="isNeedUp != null">
#{isNeedUp},
</if>
<if test="qualityType != null">
#{qualityType},
</if>
<if test="isOutboundReview != null">
#{isOutboundReview},
</if>
<if test="waveStrategy != null">
#{waveStrategy},
</if>
<if test="isMultipleAllowed != null">
#{isMultipleAllowed},
</if>
<if test="isShortageAllowed != null">
#{isShortageAllowed},
</if>
<if test="isExcessAllowed != null">
#{isExcessAllowed},
</if>
<if test="isWholeOrderPost != null">
#{isWholeOrderPost},
</if>
<if test="isManuallyCreate != null">
#{isManuallyCreate},
</if>
<if test="isNoTask != null">
#{isNoTask},
</if>
<if test="isNegativeInv != null">
#{isNegativeInv},
</if>
<if test="isCheckSafetyStock != null">
#{isCheckSafetyStock},
</if>
<if test="isRecordInboundTime != null">
#{isRecordInboundTime},
</if>
<if test="remark != null">
#{remark},
</if>
</trim>
</insert>
<update id="updateWmsBusinessType" parameterType="WmsBusinessType">
update WMS_BUSINESS_TYPE
<trim prefix="SET" suffixOverrides=",">
<if test="createBy != null">CREATE_BY = #{createBy},</if>
<if test="createTime != null">CREATE_TIME = #{createTime},</if>
<if test="updateBy != null">UPDATE_BY = #{updateBy},</if>
<if test="modifyDate != null">MODIFY_DATE = #{modifyDate},</if>
<if test="isActive != null">IS_ACTIVE = #{isActive},</if>
<if test="isDelete != null">IS_DELETE = #{isDelete},</if>
<if test="code != null">CODE = #{code},</if>
<if test="name != null">NAME = #{name},</if>
<if test="flag != null">FLAG = #{flag},</if>
<if test="type != null">TYPE = #{type},</if>
<if test="isDefault != null">IS_DEFAULT = #{isDefault},</if>
<if test="isGlobal != null">IS_GLOBAL = #{isGlobal},</if>
<if test="isNeedUp != null">IS_NEED_UP = #{isNeedUp},</if>
<if test="qualityType != null">QUALITY_TYPE = #{qualityType},</if>
<if test="isOutboundReview != null">IS_OUTBOUND_REVIEW = #{isOutboundReview},</if>
<if test="waveStrategy != null">WAVE_STRATEGY = #{waveStrategy},</if>
<if test="isMultipleAllowed != null">IS_MULTIPLE_ALLOWED = #{isMultipleAllowed},</if>
<if test="isShortageAllowed != null">IS_SHORTAGE_ALLOWED = #{isShortageAllowed},</if>
<if test="isExcessAllowed != null">IS_EXCESS_ALLOWED = #{isExcessAllowed},</if>
<if test="isWholeOrderPost != null">IS_WHOLE_ORDER_POST = #{isWholeOrderPost},</if>
<if test="isManuallyCreate != null">IS_MANUALLY_CREATE = #{isManuallyCreate},</if>
<if test="isNoTask != null">IS_NO_TASK = #{isNoTask},</if>
<if test="isNegativeInv != null">IS_NEGATIVE_INV = #{isNegativeInv},</if>
<if test="isCheckSafetyStock != null">IS_CHECK_SAFETY_STOCK = #{isCheckSafetyStock},</if>
<if test="isRecordInboundTime != null">IS_RECORD_INBOUND_TIME = #{isRecordInboundTime},</if>
<if test="remark != null">REMARK = #{remark},</if>
<if test="createBy != null">
CREATE_BY = #{createBy},
</if>
<if test="createTime != null">
CREATE_TIME = #{createTime},
</if>
<if test="updateBy != null">
UPDATE_BY = #{updateBy},
</if>
<if test="modifyDate != null">
MODIFY_DATE = #{modifyDate},
</if>
<if test="isActive != null">
IS_ACTIVE = #{isActive},
</if>
<if test="isDelete != null">
IS_DELETE = #{isDelete},
</if>
<if test="code != null">
CODE = #{code},
</if>
<if test="name != null">
NAME = #{name},
</if>
<if test="flag != null">
FLAG = #{flag},
</if>
<if test="type != null">
TYPE = #{type},
</if>
<if test="isDefault != null">
IS_DEFAULT = #{isDefault},
</if>
<if test="isGlobal != null">
IS_GLOBAL = #{isGlobal},
</if>
<if test="isNeedUp != null">
IS_NEED_UP = #{isNeedUp},
</if>
<if test="qualityType != null">
QUALITY_TYPE = #{qualityType},
</if>
<if test="isOutboundReview != null">
IS_OUTBOUND_REVIEW = #{isOutboundReview},
</if>
<if test="waveStrategy != null">
WAVE_STRATEGY = #{waveStrategy},
</if>
<if test="isMultipleAllowed != null">
IS_MULTIPLE_ALLOWED = #{isMultipleAllowed},
</if>
<if test="isShortageAllowed != null">
IS_SHORTAGE_ALLOWED = #{isShortageAllowed},
</if>
<if test="isExcessAllowed != null">
IS_EXCESS_ALLOWED = #{isExcessAllowed},
</if>
<if test="isWholeOrderPost != null">
IS_WHOLE_ORDER_POST = #{isWholeOrderPost},
</if>
<if test="isManuallyCreate != null">
IS_MANUALLY_CREATE = #{isManuallyCreate},
</if>
<if test="isNoTask != null">
IS_NO_TASK = #{isNoTask},
</if>
<if test="isNegativeInv != null">
IS_NEGATIVE_INV = #{isNegativeInv},
</if>
<if test="isCheckSafetyStock != null">
IS_CHECK_SAFETY_STOCK = #{isCheckSafetyStock},
</if>
<if test="isRecordInboundTime != null">
IS_RECORD_INBOUND_TIME = #{isRecordInboundTime},
</if>
<if test="remark != null">
REMARK = #{remark},
</if>
</trim>
where TYPE_ID = #{typeId}
</update>
@ -216,9 +413,15 @@
</delete>
<delete id="deleteWmsBusinessTypeByTypeIds" parameterType="String">
update WMS_BUSINESS_TYPE set IS_DELETE = 1 where TYPE_ID in
update WMS_BUSINESS_TYPE
set IS_DELETE = 1 where TYPE_ID in
<foreach item="typeId" collection="array" open="(" separator="," close=")">
#{typeId}
</foreach>
</delete>
<select id="selectWmsBusinessTypeByCode" parameterType="String" resultMap="WmsBusinessTypeResult">
<include refid="selectWmsBusinessTypeVo"/>
where CODE = #{code}
</select>
</mapper>