|
1
2
|
package com.huaheng.pc.task.taskDetail.service;
|
|
3
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
4
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
5
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
6
|
import com.huaheng.common.constant.QuantityConstant;
|
|
7
|
import com.huaheng.common.exception.service.ServiceException;
|
|
8
9
|
import com.huaheng.pc.config.FilterConfigDetail.domain.FilterConfigDetail;
import com.huaheng.pc.config.FilterConfigDetail.service.FilterConfigDetailService;
|
|
10
11
|
import com.huaheng.pc.config.cycleCountPreference.domain.CycleCountPreference;
import com.huaheng.pc.config.cycleCountPreference.service.CycleCountPreferenceService;
|
|
12
13
14
15
|
import com.huaheng.pc.config.receiptPreference.domain.ReceiptPreference;
import com.huaheng.pc.config.receiptPreference.service.ReceiptPreferenceService;
import com.huaheng.pc.config.shipmentPreference.domain.ShipmentPreference;
import com.huaheng.pc.config.shipmentPreference.service.ShipmentPreferenceService;
|
|
16
17
|
import com.huaheng.pc.inventory.cycleCountDetail.domain.CycleCountDetail;
import com.huaheng.pc.inventory.cycleCountDetail.service.CycleCountDetailService;
|
|
18
19
|
import com.huaheng.pc.task.taskHeader.domain.TaskHeader;
import com.huaheng.pc.task.taskHeader.service.TaskHeaderService;
|
|
20
21
|
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
|
|
22
|
import java.util.ArrayList;
|
|
23
|
import java.util.List;
|
|
24
|
|
|
25
26
27
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.huaheng.pc.task.taskDetail.mapper.TaskDetailMapper;
import com.huaheng.pc.task.taskDetail.domain.TaskDetail;
|
|
28
29
|
import org.springframework.transaction.annotation.Transactional;
|
|
30
31
32
|
@Service
public class TaskDetailServiceImpl extends ServiceImpl<TaskDetailMapper, TaskDetail> implements TaskDetailService{
|
|
33
34
35
36
37
|
@Resource
private CycleCountDetailService cycleCountDetailService;
@Resource
private CycleCountPreferenceService cycleCountPreferenceService;
|
|
38
39
40
41
42
43
44
45
|
@Resource
private TaskHeaderService taskHeaderService;
@Resource
private ReceiptPreferenceService receiptPreferenceService;
@Resource
private ShipmentPreferenceService shipmentPreferenceService;
@Resource
private FilterConfigDetailService filterConfigDetailService;
|
|
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
/**
* 盘点任务首选项
* @param taskDetailList
* @return
*/
@Transactional
@Override
public List<TaskDetail> preferenceRealize(List<TaskDetail> taskDetailList) {
/*查出盘点明细,找出盘点首选项,根据首选项显示字段*/
List<TaskDetail> taskDetails = new ArrayList<>();
for (TaskDetail item:taskDetailList){
//盘点明细
CycleCountDetail cycleCountDetailtemp = new CycleCountDetail();
cycleCountDetailtemp.setCycleCountHeadCode(item.getBillCode());
cycleCountDetailtemp.setId(item.getBillDetailId());
LambdaQueryWrapper<CycleCountDetail> detailLambdaQueryWrapper = Wrappers.lambdaQuery(cycleCountDetailtemp);
CycleCountDetail cycleCountDetail = cycleCountDetailService.getOne(detailLambdaQueryWrapper);
if(cycleCountDetail == null){
throw new SecurityException("没有找到子任务对应的盘点明细!");
}
//找盘点首选项
CycleCountPreference cycleCountPreferenceTemp = new CycleCountPreference();
cycleCountPreferenceTemp.setCode(cycleCountDetail.getPreferenceCode());
cycleCountPreferenceTemp.setWarehouseCode(cycleCountDetail.getWarehouseCode());
LambdaQueryWrapper<CycleCountPreference> preferenceLambdaQueryWrapper = Wrappers.lambdaQuery(cycleCountPreferenceTemp);
CycleCountPreference cycleCountPreference = cycleCountPreferenceService.getOne(preferenceLambdaQueryWrapper);
if(cycleCountPreference == null){
throw new SecurityException("没有找到盘点首选项!");
}
//根据首选项判断数据
if(cycleCountPreference.getPromptLocation() == false){
//库位
item.setFromLocation("");
item.setToLocation("");
}
if(cycleCountPreference.getPromptLpn() == false){
//容器
item.setContainerCode("");
}
if(cycleCountPreference.getPromptItem() == false){
//物料
item.setMaterialCode("");
item.setMaterialName("");
item.setMaterialUnit("");
|
|
92
|
item.setMaterialSpec("");
|
|
93
94
95
96
97
98
99
100
101
102
|
}
if(cycleCountPreference.getPromptQuantity() == false){
//系统数量
item.setQty(null);
}
taskDetails.add(item);
}
return taskDetails;
}
|
|
103
|
/**
|
|
104
105
|
* 任务位置拣货单打印
* 根据任务头表id查询任务明细,根据上架或拣货货规则排序
|
|
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
* @param ids 头表id数组
* @return
*/
@Override
public List<TaskDetail> findByTaskId(Integer[] ids) {
Integer taskType = taskHeaderService.getById(ids[0]).getTaskType();
String filterConfigCode = "";
if (taskType.equals(QuantityConstant.TASK_TYPE_WHOLERECEIPT) || taskType.equals(QuantityConstant.TASK_TYPE_SUPPLEMENTRECEIPT)) {
ReceiptPreference receiptPreference = receiptPreferenceService.list().get(0);
filterConfigCode = receiptPreference.getListingRules();
}
if (taskType.equals(QuantityConstant.TASK_TYPE_WHOLESHIPMENT) || taskType.equals(QuantityConstant.TASK_TYPE_SORTINGSHIPMENT)) {
ShipmentPreference shipmentPreference = shipmentPreferenceService.list().get(0);
filterConfigCode = shipmentPreference.getShipmentPickingRule();
}
FilterConfigDetail filterConfigDetail = new FilterConfigDetail();
if (StringUtils.isNotEmpty(filterConfigCode)) {
LambdaQueryWrapper<FilterConfigDetail> detailQueryWrapper = Wrappers.lambdaQuery();
detailQueryWrapper.eq(FilterConfigDetail::getCode, filterConfigCode);
filterConfigDetail = filterConfigDetailService.getOne(detailQueryWrapper);
}
|
|
127
128
129
130
131
132
133
134
135
136
|
//Integer数组转object数组
Object[] objects = new Object[ids.length];
try{
for(int i = 0; i < ids.length ; i++){
Object a = (ids[i]);
objects[i] = a;
}
}catch (Exception e){
throw new ServiceException(e.toString());
}
|
|
137
|
LambdaQueryWrapper<TaskDetail> queryWrapper = Wrappers.lambdaQuery();
|
|
138
|
queryWrapper
|
|
139
|
.in(TaskDetail::getTaskId, objects)
|
|
140
141
142
143
144
|
.last(StringUtils.isNotEmpty(filterConfigDetail.getStatement()), filterConfigDetail.getStatement());
return this.list(queryWrapper);
}
/**
|
|
145
146
147
148
149
150
151
152
153
154
|
* 根据任务头表id查询任务明细
* @param id
* @return
*/
@Override
public List<TaskDetail> findByTaskId(Integer id) {
LambdaQueryWrapper<TaskDetail> queryWrapper = Wrappers.lambdaQuery();
queryWrapper.eq(TaskDetail::getTaskId, id);
return this.list(queryWrapper);
}
|
|
155
156
|
|
|
157
|
}
|