fix:SN码删除功能优化

This commit is contained in:
zhangxuanming 2024-12-24 16:59:22 +08:00
parent effd939522
commit 32b9aebafc
7 changed files with 96 additions and 18 deletions

View File

@ -7,6 +7,7 @@ import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.ktg.common.constant.UserConstants; import com.ktg.common.constant.UserConstants;
import com.ktg.common.utils.StringUtils; import com.ktg.common.utils.StringUtils;
import com.ktg.mes.wm.domain.vo.WmSnPageVO;
import com.ktg.system.strategy.AutoCodeUtil; import com.ktg.system.strategy.AutoCodeUtil;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
@ -52,7 +53,7 @@ public class WmSnController extends BaseController
public TableDataInfo list(WmSn wmSn) public TableDataInfo list(WmSn wmSn)
{ {
startPage(); startPage();
List<WmSn> list = wmSnService.selectWmSnList(wmSn); List<WmSnPageVO> list = wmSnService.getWmSnList(wmSn);
return getDataTable(list); return getDataTable(list);
} }
@ -63,7 +64,7 @@ public class WmSnController extends BaseController
public TableDataInfo listSn(WmSn wmSn) public TableDataInfo listSn(WmSn wmSn)
{ {
startPage(); startPage();
List<WmSn> list = wmSnService.selectSnList(wmSn); List<WmSnPageVO> list = wmSnService.getWmSnList(wmSn);
return getDataTable(list); return getDataTable(list);
} }
@ -145,9 +146,9 @@ public class WmSnController extends BaseController
*/ */
@PreAuthorize("@ss.hasPermi('mes:wm:sn:remove')") @PreAuthorize("@ss.hasPermi('mes:wm:sn:remove')")
@Log(title = "SN码", businessType = BusinessType.DELETE) @Log(title = "SN码", businessType = BusinessType.DELETE)
@DeleteMapping("/{snIds}") @GetMapping("/remove")
public AjaxResult remove(@PathVariable Long[] snIds) public AjaxResult remove(String ids)
{ {
return toAjax(wmSnService.deleteWmSnBySnIds(snIds)); return toAjax(wmSnService.deleteWmSnBySnIds(ids));
} }
} }

View File

@ -21,6 +21,8 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -140,7 +142,7 @@ public class WmSnMobController extends BaseController {
@PreAuthorize("@ss.hasPermi('mes:wm:sn:remove')") @PreAuthorize("@ss.hasPermi('mes:wm:sn:remove')")
@Log(title = "SN码", businessType = BusinessType.DELETE) @Log(title = "SN码", businessType = BusinessType.DELETE)
@DeleteMapping("/{snIds}") @DeleteMapping("/{snIds}")
public AjaxResult remove(@PathVariable Long[] snIds) public AjaxResult remove(@PathVariable String snIds)
{ {
return toAjax(wmSnService.deleteWmSnBySnIds(snIds)); return toAjax(wmSnService.deleteWmSnBySnIds(snIds));
} }

View File

@ -0,0 +1,11 @@
package com.ktg.mes.wm.domain.vo;
import com.ktg.mes.wm.domain.WmSn;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
public class WmSnPageVO extends WmSn {
private String ids;
}

View File

@ -2,8 +2,9 @@ package com.ktg.mes.wm.mapper;
import java.util.List; import java.util.List;
import com.ktg.mes.pro.domain.ProSnProcess;
import com.ktg.mes.wm.domain.WmSn; import com.ktg.mes.wm.domain.WmSn;
import com.ktg.mes.wm.domain.vo.WmSnPageVO;
import org.apache.ibatis.annotations.Param;
/** /**
* SN码Mapper接口 * SN码Mapper接口
@ -70,8 +71,10 @@ public interface WmSnMapper
/** /**
* 批量删除SN码 * 批量删除SN码
* *
* @param snIds 需要删除的数据主键集合 * @param ids 需要删除的数据主键集合
* @return 结果 * @return 结果
*/ */
public int deleteWmSnBySnIds(Long[] snIds); public int deleteWmSnBySnIds(@Param("ids") List<Long> ids);
List<WmSnPageVO> getWmSnList(WmSn wmSn);
} }

View File

@ -2,6 +2,7 @@ package com.ktg.mes.wm.service;
import java.util.List; import java.util.List;
import com.ktg.mes.wm.domain.WmSn; import com.ktg.mes.wm.domain.WmSn;
import com.ktg.mes.wm.domain.vo.WmSnPageVO;
/** /**
* SN码Service接口 * SN码Service接口
@ -64,7 +65,7 @@ public interface IWmSnService
* @param snIds 需要删除的SN码主键集合 * @param snIds 需要删除的SN码主键集合
* @return 结果 * @return 结果
*/ */
public int deleteWmSnBySnIds(Long[] snIds); public int deleteWmSnBySnIds(String snIds);
/** /**
* 删除SN码信息 * 删除SN码信息
@ -73,4 +74,6 @@ public interface IWmSnService
* @return 结果 * @return 结果
*/ */
public int deleteWmSnBySnId(Long snId); public int deleteWmSnBySnId(Long snId);
List<WmSnPageVO> getWmSnList(WmSn wmSn);
} }

View File

@ -1,7 +1,9 @@
package com.ktg.mes.wm.service.impl; package com.ktg.mes.wm.service.impl;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.ktg.common.utils.DateUtils; import com.ktg.common.utils.DateUtils;
import com.ktg.mes.wm.domain.vo.WmSnPageVO;
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 com.ktg.mes.wm.mapper.WmSnMapper; import com.ktg.mes.wm.mapper.WmSnMapper;
@ -87,9 +89,19 @@ public class WmSnServiceImpl implements IWmSnService
* @return 结果 * @return 结果
*/ */
@Override @Override
public int deleteWmSnBySnIds(Long[] snIds) public int deleteWmSnBySnIds(String ids)
{ {
return wmSnMapper.deleteWmSnBySnIds(snIds); String[] split = ids.split(",");
List<Long> longList = new ArrayList<>();
for (String s : split) {
try {
longList.add(Long.parseLong(s.trim()));
} catch (NumberFormatException e) {
System.err.println("无法解析为 Long 的字符串: " + s);
}
}
return wmSnMapper.deleteWmSnBySnIds(longList);
} }
/** /**
@ -103,4 +115,9 @@ public class WmSnServiceImpl implements IWmSnService
{ {
return wmSnMapper.deleteWmSnBySnId(snId); return wmSnMapper.deleteWmSnBySnId(snId);
} }
@Override
public List<WmSnPageVO> getWmSnList(WmSn wmSn) {
return wmSnMapper.getWmSnList(wmSn);
}
} }

View File

@ -29,11 +29,37 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
</resultMap> </resultMap>
<resultMap type="WmSnPageVO" id="WmSnVOResult">
<result property="ids" column="ids" />
<result property="snId" column="sn_id" />
<result property="snCode" column="sn_code" />
<result property="itemId" column="item_id" />
<result property="itemCode" column="item_code" />
<result property="itemName" column="item_name" />
<result property="specification" column="specification" />
<result property="unitOfMeasure" column="unit_of_measure" />
<result property="batchCode" column="batch_code" />
<result property="snNum" column="snNum"></result>
<result property="workorderId" column="workorder_id"></result>
<result property="workorderCode" column="workorder_code"></result>
<result property="inputTime" column="input_time"></result>
<result property="genDate" column="gen_date"></result>
<result property="remark" column="remark" />
<result property="attr1" column="attr1" />
<result property="attr2" column="attr2" />
<result property="attr3" column="attr3" />
<result property="attr4" column="attr4" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectWmSnVo"> <sql id="selectWmSnVo">
select sn_id, sn_code, item_id, item_code, item_name, specification, unit_of_measure, batch_code, workorder_id, gen_date, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from wm_sn select sn_id, sn_code, item_id, item_code, item_name, specification, unit_of_measure, batch_code, workorder_id, gen_date, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from wm_sn
</sql> </sql>
<select id="selectWmSnList" parameterType="WmSn" resultMap="WmSnResult"> <select id="selectWmSnList" parameterType="WmSn" resultMap="WmSnVOResult">
<include refid="selectWmSnVo"/> <include refid="selectWmSnVo"/>
<where> <where>
<if test="snCode != null and snCode != ''"> and sn_code = #{snCode}</if> <if test="snCode != null and snCode != ''"> and sn_code = #{snCode}</if>
@ -79,6 +105,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and ps.workstation_id = #{workstationId} and ps.workstation_id = #{workstationId}
order by ps.input_time desc order by ps.input_time desc
</select> </select>
<select id="getWmSnList" parameterType="WmSn" resultMap="WmSnVOResult">
select group_concat(sn_id) as ids, item_id, item_code, item_name, specification, unit_of_measure, batch_code,gen_date , count(*) as snNum
from wm_sn
<where>
<if test="snCode != null and snCode != ''"> and sn_code = #{snCode}</if>
<if test="itemId != null "> and item_id = #{itemId}</if>
<if test="itemCode != null and itemCode != ''"> and item_code = #{itemCode}</if>
<if test="itemName != null and itemName != ''"> and item_name like concat('%', #{itemName}, '%')</if>
<if test="specification != null and specification != ''"> and specification = #{specification}</if>
<if test="unitOfMeasure != null and unitOfMeasure != ''"> and unit_of_measure = #{unitOfMeasure}</if>
<if test="batchCode != null and batchCode != ''"> and batch_code = #{batchCode}</if>
</where>
group by item_id, item_code, item_name, specification, unit_of_measure, batch_code, gen_date
order by item_id,batch_code desc
</select>
<insert id="insertWmSn" parameterType="WmSn" useGeneratedKeys="true" keyProperty="snId"> <insert id="insertWmSn" parameterType="WmSn" useGeneratedKeys="true" keyProperty="snId">
@ -155,8 +196,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<delete id="deleteWmSnBySnIds" parameterType="String"> <delete id="deleteWmSnBySnIds" parameterType="String">
delete from wm_sn where sn_id in delete from wm_sn where sn_id in
<foreach item="snId" collection="array" open="(" separator="," close=")"> <foreach item="item" collection="ids" open="(" separator="," close=")">
#{snId} #{item}
</foreach> </foreach>
</delete> </delete>
</mapper> </mapper>