原料采购合同内容分析:统计物料进出库数量
public Map<String, Double> getMaterielInOut(Long orgId) {
Map<String, Double> map = Maps.newHashMap();
// 获取已执行的原料采购合同
Map<String, Object> params = Maps.newHashMap();
params.put("contractType", ContractType.MATERIAL);
params.put("status", ContractStatus.EXECUTED);
params.put("orgId", orgId);
List<Contract> contracts = contractService.findBy(params);
if (contracts != null && contracts.size() > 0) {
for (Contract contract : contracts) {
// 获取此合同的所有明细
List<ContractDetail> details = contractDetailService.findByContractId(contract
.getId());
if (details != null && details.size() > 0) {
for (ContractDetail detail : details) {
String materielName = materielService.get(detail.getMaterielId()).getName();
if (map.containsKey(materielName)) {
// 已存在该物料,则将数量累加
map.put(materielName,
map.get(materielName) + detail.getAmount());
} else {
map.put(materielName, detail.getAmount());
}
}
}
}
}
// 获取生产任务单
params.clear();
params.put("orgId", orgId);
List<ProduceTask> tasks = produceTaskService.findBy(params);
if (tasks != null && tasks.size() > 0) {
for (ProduceTask task : tasks) {
// 获取此任务单的所有明细
List<ProduceTaskDetail> details = produceTaskDetailService
.findByProduceTaskId(task.getId());
if (details != null && details.size() > 0) {
for (ProduceTaskDetail detail : details) {
String materielName = materielService.get(
detail.getMaterielId()).getName();
if (map.containsKey(materielName)) {
// 已存在该物料,则将数量累加
map.put(materielName,
map.get(materielName) + detail.getAmount());
} else {
map.put(materielName, detail.getAmount());
}
}
}
}
}
// 获取退料单
params.clear();
params.put("status", ReturnedStatus.PASS);
params.put("orgId", orgId);
List<Returned> returneds = returnedService.findBy(params);
if (returneds != null && returneds.size() > 0) {
for (Returned returned : returneds) {
// 获取此退料单的所有明细
List<ReturnedDetail> details = returnedDetailService
.findByReturnedId(returned.getId());
if (details != null && details.size() > 0) {
for (ReturnedDetail detail : details) {
String materielName = materielService.get(
detail.getMaterielId()).getName();
if (map.containsKey(materielName)) {
// 已存在该物料,则将数量减去
map.put(materielName,
map.get(materielName) - detail.getAmount());
}
}
}
}
}
return map;
}
原文地址: https://www.cveoy.top/t/topic/lgoc 著作权归作者所有。请勿转载和采集!