Browse Source

添加定时任务,每天凌晨清除出库数量为零的出库订单

lwx_dev
erdanergou 3 years ago
parent
commit
1eae2c9080
  1. 6
      src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.java
  2. 9
      src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml
  3. 10
      src/main/java/com/dreamchaser/depository_manage/scheduled/SaticScheduleTask.java
  4. 5
      src/main/java/com/dreamchaser/depository_manage/service/DepositoryRecordService.java
  5. 20
      src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java

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

@ -279,6 +279,12 @@ public interface DepositoryRecordMapper {
*/ */
List<ApplicationOutRecord> findApplicationOutRecordPByCondition(Map<String,Object> map); List<ApplicationOutRecord> findApplicationOutRecordPByCondition(Map<String,Object> map);
/**
* 获取所有数量为0的出库单
* @return
*/
List<ApplicationOutRecord> findApplicationOutRecordPForBad();
/** /**
* 查询当前用户出库记录及其管理仓库的出库记录 * 查询当前用户出库记录及其管理仓库的出库记录
* @param map 查询条件 * @param map 查询条件

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

@ -562,7 +562,7 @@
and applyRemark like CONCAT('%', #{applyRemark}, '%') and applyRemark like CONCAT('%', #{applyRemark}, '%')
</if> </if>
<if test="aorcode != null and aorcode != null"> <if test="aorcode != null and aorcode != null">
and aorcode = #{code} and aorcode = #{aorcode}
</if> </if>
<if test="departmenthead != null and departmenthead != null"> <if test="departmenthead != null and departmenthead != null">
and departmenthead = #{departmenthead} and departmenthead = #{departmenthead}
@ -618,6 +618,13 @@
</select> </select>
<select id="findApplicationOutRecordPForBad" resultMap="applicationOutRecord">
select
<include refid="ApplicationOutRecordInfo"/>
from applicationOutRecordInfo
where quantity = 0;
</select>
<select id="findApplicationOutRecordPByUser" parameterType="map" resultMap="applicationOutRecord"> <select id="findApplicationOutRecordPByUser" parameterType="map" resultMap="applicationOutRecord">
select select

10
src/main/java/com/dreamchaser/depository_manage/scheduled/SaticScheduleTask.java

@ -1,6 +1,7 @@
package com.dreamchaser.depository_manage.scheduled; package com.dreamchaser.depository_manage.scheduled;
import com.dreamchaser.depository_manage.controller.WebSocketController; import com.dreamchaser.depository_manage.controller.WebSocketController;
import com.dreamchaser.depository_manage.service.DepositoryRecordService;
import com.dreamchaser.depository_manage.service.MaterialService; import com.dreamchaser.depository_manage.service.MaterialService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@ -16,7 +17,10 @@ import org.springframework.scheduling.annotation.Scheduled;
public class SaticScheduleTask { public class SaticScheduleTask {
@Autowired @Autowired
MaterialService materialService; private MaterialService materialService;
@Autowired
private DepositoryRecordService depositoryRecordService;
// 每天凌晨0点执行一次 // 每天凌晨0点执行一次
@Scheduled(cron = "0 0 0 * * ?") @Scheduled(cron = "0 0 0 * * ?")
@ -25,6 +29,10 @@ public class SaticScheduleTask {
} }
@Scheduled(cron = "0 0 0 * * ?")
private void clearOutBadData(){
depositoryRecordService.clearOutBadData();
}
} }

5
src/main/java/com/dreamchaser/depository_manage/service/DepositoryRecordService.java

@ -474,4 +474,9 @@ public interface DepositoryRecordService {
* @return * @return
*/ */
Integer updateOutMinRecordInfo(Map<String,Object> map,UserByPort userToken,String userAgent,String userKey,String token); Integer updateOutMinRecordInfo(Map<String,Object> map,UserByPort userToken,String userAgent,String userKey,String token);
/**
* 删除出错的出库数据
*/
void clearOutBadData();
} }

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

@ -1,5 +1,6 @@
package com.dreamchaser.depository_manage.service.impl; package com.dreamchaser.depository_manage.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.dreamchaser.depository_manage.config.PublicConfig; import com.dreamchaser.depository_manage.config.PublicConfig;
import com.dreamchaser.depository_manage.config.QyWxConfig; import com.dreamchaser.depository_manage.config.QyWxConfig;
@ -2039,6 +2040,22 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
return result; return result;
} }
/**
* 删除出错的数据
*/
@Override
public void clearOutBadData() {
List<ApplicationOutRecord> applicationOutRecordPForBad = depositoryRecordMapper.findApplicationOutRecordPForBad();
for (ApplicationOutRecord record : applicationOutRecordPForBad) {
Integer id = record.getId();
List<ApplicationOutRecordMin> applicationOutRecordMinByParent = depositoryRecordMapper.findApplicationOutRecordMinByParent(id);
if(applicationOutRecordMinByParent == null || applicationOutRecordMinByParent.size() <= 0){
log.warn(DateUtil.getNowTime()+": 删除出错的出库订单:"+ JSONObject.toJSONString(record));
depositoryRecordMapper.deleteApplicationOutRecordById(id);
}
}
}
/** /**
* 用于完成出库时的相关处理操作 * 用于完成出库时的相关处理操作
* *
@ -4421,6 +4438,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
List<ApplicationOutRecord> list = depositoryRecordMapper.findApplicationOutRecordPByCondition(map); List<ApplicationOutRecord> list = depositoryRecordMapper.findApplicationOutRecordPByCondition(map);
List<ApplicationOutRecordP> result = new ArrayList<>(); List<ApplicationOutRecordP> result = new ArrayList<>();
for (ApplicationOutRecord recordP : list) { for (ApplicationOutRecord recordP : list) {
if (recordP.getQuantity() == null || 0 == recordP.getQuantity()) {
continue;
}
UserByPort userByPortById = LinkInterfaceUtil.FindUserById(recordP.getApplicantId(), userKey, token); UserByPort userByPortById = LinkInterfaceUtil.FindUserById(recordP.getApplicantId(), userKey, token);
String time = DateUtil.TimeStampToDateTime(Long.valueOf(recordP.getApplicantTime())); String time = DateUtil.TimeStampToDateTime(Long.valueOf(recordP.getApplicantTime()));
recordP.setApplicantName(userByPortById.getName()); recordP.setApplicantName(userByPortById.getName());

Loading…
Cancel
Save