Browse Source

修改出库记录删除功能

lwx_dev
erdanergou 3 years ago
parent
commit
882fdd6bf5
  1. 8
      src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.java
  2. 16
      src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml
  3. 36
      src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java

8
src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.java

@ -337,6 +337,14 @@ public interface DepositoryRecordMapper {
*/ */
ApplicationOutRecordP findApplicationOutRecordPById(Integer id); ApplicationOutRecordP findApplicationOutRecordPById(Integer id);
/**
* 根据id批量查询出库申请
* @param list
* @return
*/
List<ApplicationOutRecordP> findApplicationOutRecordPByIds(List<Integer> list);
/** /**
* 根据id删除入库记录 * 根据id删除入库记录
* @return 受影响的行数 * @return 受影响的行数

16
src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml

@ -748,6 +748,22 @@
group by aorid group by aorid
</select> </select>
<!--根据主键查询出库记录-->
<select id="findApplicationOutRecordPByIds" parameterType="list" resultMap="applicationOutRecord">
select
<include refid="ApplicationOutRecordInfo"/>
from applicationOutRecordInfo
where 1 = 1
and aorid in
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
group by aorid
</select>
<select id="findApplicationOutByCode" parameterType="string" resultMap="applicationOutRecord"> <select id="findApplicationOutByCode" parameterType="string" resultMap="applicationOutRecord">
select select
<include refid="ApplicationOutRecordInfo"/> <include refid="ApplicationOutRecordInfo"/>

36
src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java

@ -272,6 +272,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public Integer deleteApplicationOutRecordById(Integer id, UserByPort userByPort) { public Integer deleteApplicationOutRecordById(Integer id, UserByPort userByPort) {
// 获取主单
ApplicationOutRecordP recordP = depositoryRecordMapper.findApplicationOutRecordPById(id);
// 删除主单 // 删除主单
Integer integer = depositoryRecordMapper.deleteApplicationOutRecordById(id); Integer integer = depositoryRecordMapper.deleteApplicationOutRecordById(id);
// 获取当前主单下的子单 // 获取当前主单下的子单
@ -282,7 +285,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
@Override @Override
public void run() { public void run() {
// 获取该用户在redis中的订单记录 // 获取该用户在redis中的订单记录
String key = "user:" + userByPort.getId().toString(); String key = "user:" + recordP.getApplicantId();
// 获取当前用户所有处理单 // 获取当前用户所有处理单
String minRecord = (String) redisTemplate.opsForHash().get(key, "minRecord"); String minRecord = (String) redisTemplate.opsForHash().get(key, "minRecord");
for (ApplicationOutRecordMin recordMin : for (ApplicationOutRecordMin recordMin :
@ -295,7 +298,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
if (minRecord.length() == 2) { if (minRecord.length() == 2) {
// [] // []
// 如果当前用户已经没有剩余订单,则删除 // 如果当前用户已经没有剩余订单,则删除
redisTemplate.delete("user:" + userByPort.getId()); redisTemplate.delete(key);
} else { } else {
redisTemplate.opsForHash().put(key, "minRecord", minRecord); redisTemplate.opsForHash().put(key, "minRecord", minRecord);
} }
@ -322,42 +325,41 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public Integer deleteApplicationOutRecordByIds(List<Integer> list, UserByPort userByPort) { public Integer deleteApplicationOutRecordByIds(List<Integer> list, UserByPort userByPort) {
Integer integer = depositoryRecordMapper.deleteApplicationOutRecordByIds(list); // 获取出库单列表
List<ApplicationOutRecordP> recordPList = depositoryRecordMapper.findApplicationOutRecordPByIds(list);
Integer integer = depositoryRecordMapper.deleteApplicationOutRecordByIds(list);
List<ApplicationOutRecordMin> applicationOutRecordMinByParent = depositoryRecordMapper.findApplicationOutRecordMinByParents(list);
// 开启一个线程去删除redis中的数据 // 开启一个线程去删除redis中的数据
new Thread(new Runnable() { new Thread(new Runnable() {
@Override @Override
public void run() { public void run() {
for (ApplicationOutRecordP recordP : recordPList
) {
// 获取该用户在redis中的订单记录 // 获取该用户在redis中的订单记录
String key = "user:" + userByPort.getId().toString(); String key = "user:" + recordP.getApplicantId();
List<ApplicationOutRecordMin> recordMinList = depositoryRecordMapper.findApplicationOutRecordMinByParent(recordP.getId());
for (ApplicationOutRecordMin recordMin : recordMinList
) {
// 获取当前用户所有订单 // 获取当前用户所有订单
String minRecord = (String) redisTemplate.opsForHash().get(key, "minRecord"); String minRecord = (String) redisTemplate.opsForHash().get(key, "minRecord");
for (ApplicationOutRecordMin recordMin :
applicationOutRecordMinByParent) {
Inventory inventoryById = materialMapper.findInventoryById(recordMin.getMid());
inventoryById.setNumberOfTemporary(inventoryById.getNumberOfTemporary() - recordMin.getQuantity());
materialMapper.updateInventory(inventoryById);
String redisMinRecordKey = "minRecord:" + recordMin.getId(); String redisMinRecordKey = "minRecord:" + recordMin.getId();
minRecord = minRecord.replace(redisMinRecordKey + ",", ""); minRecord = minRecord.replace(redisMinRecordKey + ",", "");
if (minRecord.length() == 2) { if (minRecord.length() == 2) {
// [] // []
// 如果当前用户已经没有剩余订单,则删除 // 如果当前用户已经没有剩余订单,则删除
redisTemplate.delete("user:" + userByPort.getId()); redisTemplate.delete(key);
} else { } else {
redisTemplate.opsForHash().put(key, "minRecord", minRecord); redisTemplate.opsForHash().put(key, "minRecord", minRecord);
} }
redisTemplate.delete(redisMinRecordKey); redisTemplate.delete(redisMinRecordKey);
} }
String redisMainRecordKey = "record:" + recordP.getId(); // 设置redis中主订单键值
for (Integer value : list) {
String redisMainRecordKey = "record:" + value; // 设置redis中主订单键值
redisTemplate.delete(redisMainRecordKey); redisTemplate.delete(redisMainRecordKey);
} }

Loading…
Cancel
Save