package com.zy.asrs.service.impl;
|
|
import com.baomidou.mybatisplus.plugins.Page;
|
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
|
import com.core.common.Cools;
|
import com.core.common.R;
|
import com.zy.asrs.entity.InventoryFlowDto;
|
import com.zy.asrs.entity.LocMast;
|
import com.zy.asrs.entity.WrkMastLog;
|
import com.zy.asrs.mapper.WrkMastLogMapper;
|
import com.zy.asrs.service.LocMastService;
|
import com.zy.asrs.service.WrkMastLogService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.Date;
|
import java.util.Map;
|
|
@Service("wrkMastLogService")
|
public class WrkMastLogServiceImpl extends ServiceImpl<WrkMastLogMapper, WrkMastLog> implements WrkMastLogService {
|
|
@Autowired
|
private LocMastService locMastService;
|
|
@Override
|
public boolean insert(WrkMastLog entity) {
|
fillAreaId(entity);
|
return super.insert(entity);
|
}
|
|
@Override
|
public boolean save(Integer workNo) {
|
return this.baseMapper.save(workNo) > 0;
|
}
|
|
@Override
|
public Long sumCostTimeByWrkSts(Date startTime, Date endTime, Integer wrkSts) {
|
Long total = this.baseMapper.sumCostTimeByWrkSts(startTime, endTime, wrkSts);
|
return total == null ? 0L : total;
|
}
|
|
@Override
|
public Long countInboundHistoryBySourceStaNo(Date startTime, Date endTime, Integer sourceStaNo) {
|
if (sourceStaNo == null) {
|
return 0L;
|
}
|
Long count = this.baseMapper.countInboundHistoryBySourceStaNo(startTime, endTime, sourceStaNo);
|
return count == null ? 0L : count;
|
}
|
|
@Override
|
public R inventoryFlowList(Integer curr, Integer limit, Map<String, Object> param) {
|
Page<InventoryFlowDto> page = new Page<>();
|
page.setCurrent(curr);
|
page.setSize(limit);
|
page.setTotal(this.baseMapper.inventoryFlowListCount(param));
|
page.setRecords(this.baseMapper.inventoryFlowList(curr, limit, param));
|
return R.ok(page);
|
}
|
|
private void fillAreaId(WrkMastLog wrkMastLog) {
|
if (wrkMastLog == null) {
|
return;
|
}
|
LocMast locMast = resolveAreaLocMast(wrkMastLog);
|
if (locMast != null) {
|
wrkMastLog.setAreaId(locMast.getAreaId());
|
}
|
}
|
|
private LocMast resolveAreaLocMast(WrkMastLog wrkMastLog) {
|
boolean outbound = wrkMastLog.getIoType() != null && wrkMastLog.getIoType() >= 100;
|
LocMast primary = outbound
|
? selectLocMast(wrkMastLog.getSourceLocNo())
|
: selectLocMast(wrkMastLog.getLocNo());
|
if (primary != null) {
|
return primary;
|
}
|
return outbound
|
? selectLocMast(wrkMastLog.getLocNo())
|
: selectLocMast(wrkMastLog.getSourceLocNo());
|
}
|
|
private LocMast selectLocMast(String locNo) {
|
if (Cools.isEmpty(locNo)) {
|
return null;
|
}
|
return locMastService.selectById(locNo);
|
}
|
}
|