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')") @PreAuthorize("@ss.hasPermi('md:PLAN:edit')")
@Log(title = "出库计划执行", businessType = BusinessType.UPDATE) @Log(title = "出库计划管理", businessType = BusinessType.UPDATE)
@PutMapping("/run/{wmsOutPlanIds}") @PutMapping("/run/{wmsOutPlanIds}")
public AjaxResult run(@PathVariable Long[] wmsOutPlanIds) { public AjaxResult run(@PathVariable Long[] wmsOutPlanIds) {
return toAjax(wmsOutPlanService.runWmsOutPlan(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.annotation.Excel;
import com.ktg.common.core.domain.BaseEntity; 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 * 出库任务对象 WMS_OUT_TASK
@ -129,6 +130,8 @@ public class WmsOutTask extends BaseEntity {
*/ */
private Integer attr4; private Integer attr4;
private List<HashMap<String, Object>> outInfoList;
public Long getWmsOutTaskId() { public Long getWmsOutTaskId() {
return wmsOutTaskId; return wmsOutTaskId;
} }
@ -289,34 +292,38 @@ public class WmsOutTask extends BaseEntity {
this.attr4 = attr4; this.attr4 = attr4;
} }
public List<HashMap<String, Object>> getOutInfoList() {
return outInfoList;
}
public void setOutInfoList(List<HashMap<String, Object>> outInfoList) {
this.outInfoList = outInfoList;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) return "WmsOutTask{" +
.append("wmsOutTaskId", getWmsOutTaskId()) "wmsOutTaskId=" + wmsOutTaskId +
.append("wmsOutPlanId", getWmsOutPlanId()) ", wmsOutPlanId=" + wmsOutPlanId +
.append("wmsOutPlanCode", getWmsOutPlanCode()) ", wmsOutPlanCode='" + wmsOutPlanCode + '\'' +
.append("wmsOutPlanDetailId", getWmsOutPlanDetailId()) ", wmsOutPlanDetailId=" + wmsOutPlanDetailId +
.append("wmsBusinessTypeId", getWmsBusinessTypeId()) ", wmsBusinessTypeId=" + wmsBusinessTypeId +
.append("taskCode", getTaskCode()) ", taskCode='" + taskCode + '\'' +
.append("taskNumber", getTaskNumber()) ", taskNumber=" + taskNumber +
.append("outNumber", getOutNumber()) ", outNumber=" + outNumber +
.append("wmStorageAreaId", getWmStorageAreaId()) ", wmStorageAreaId=" + wmStorageAreaId +
.append("batchNum", getBatchNum()) ", batchNum='" + batchNum + '\'' +
.append("mdItemId", getMdItemId()) ", mdItemId=" + mdItemId +
.append("mdItemCode", getMdItemCode()) ", mdItemCode='" + mdItemCode + '\'' +
.append("mdItemName", getMdItemName()) ", mdItemName='" + mdItemName + '\'' +
.append("mdItemUnit", getMdItemUnit()) ", mdItemUnit='" + mdItemUnit + '\'' +
.append("taskState", getTaskState()) ", taskState='" + taskState + '\'' +
.append("recipientUsername", getRecipientUsername()) ", recipientUsername='" + recipientUsername + '\'' +
.append("remark", getRemark()) ", attr1='" + attr1 + '\'' +
.append("attr1", getAttr1()) ", attr2='" + attr2 + '\'' +
.append("attr2", getAttr2()) ", attr3=" + attr3 +
.append("attr3", getAttr3()) ", attr4=" + attr4 +
.append("attr4", getAttr4()) ", outInfoList=" + outInfoList +
.append("createBy", getCreateBy()) '}';
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.toString();
} }
} }

View File

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

View File

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

View File

@ -64,4 +64,6 @@ public interface IWmsOutPlanService {
boolean runWmsOutPlan(Long[] wmsOutPlanIds); boolean runWmsOutPlan(Long[] wmsOutPlanIds);
List<HashMap<String, Object>> selectWmsOutPlanDetailEntityList(WmsOutPlanDetailEntity wmsOutPlanDetailEntity); 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.domain.*;
import com.ktg.mes.md.mapper.*; import com.ktg.mes.md.mapper.*;
import com.ktg.mes.md.service.IWmsOutPlanService; 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.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.*;
import java.util.Date; import java.util.concurrent.atomic.AtomicInteger;
import java.util.HashMap;
import java.util.List;
/** /**
* 出库计划管理Service业务层处理 * 出库计划管理Service业务层处理
@ -41,6 +41,9 @@ public class WmsOutPlanServiceImpl implements IWmsOutPlanService {
@Autowired @Autowired
private MdItemMapper mdItemMapper; private MdItemMapper mdItemMapper;
@Autowired
private WmStorageAreaMapper wmStorageAreaMapper;
/** /**
* 查询出库计划管理 * 查询出库计划管理
* *
@ -242,6 +245,129 @@ public class WmsOutPlanServiceImpl implements IWmsOutPlanService {
return hashMapList; 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; package com.ktg.mes.md.service.impl;
import com.ktg.common.utils.DateUtils; import com.ktg.common.utils.DateUtils;
import com.ktg.mes.md.domain.WmsOutPlanDetailEntity; import com.ktg.mes.md.domain.*;
import com.ktg.mes.md.domain.WmsOutTask; import com.ktg.mes.md.mapper.*;
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.service.IWmsOutTaskService; import com.ktg.mes.md.service.IWmsOutTaskService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
/** /**
@ -30,6 +30,15 @@ public class WmsOutTaskServiceImpl implements IWmsOutTaskService {
@Autowired @Autowired
private BaseKnifeMapper baseKnifeMapper; 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 @Override
public WmsOutTask selectWmsOutTaskByWmsOutTaskId(Long wmsOutTaskId) { 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 getDataTable(list);
} }
/** // /** TODO E
* 查询树型的列表 // * 查询树型的列表
* @return // * @return
*/ // */
@GetMapping("/getTreeList") // @GetMapping("/getTreeList")
public AjaxResult getTreeList(){ // public AjaxResult getTreeList(){
return AjaxResult.success(wmWarehouseService.getTreeList()); // return AjaxResult.success(wmWarehouseService.getTreeList());
} // }
/** /**
* 导出仓库设置列表 * 导出仓库设置列表

View File

@ -561,4 +561,18 @@
FROM BASE_KNIFE BK FROM BASE_KNIFE BK
WHERE MBB_BD_MRL_ID = #{mbbBdMrlId} WHERE MBB_BD_MRL_ID = #{mbbBdMrlId}
</select> </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> </mapper>

View File

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