package com.gk.firework.Service.ServiceImpl;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.gk.firework.Domain.EntryDetailInfo;
|
import com.gk.firework.Domain.EntryOrderInfo;
|
import com.gk.firework.Domain.Exception.BusinessException;
|
import com.gk.firework.Domain.SoldNoStockInfo;
|
import com.gk.firework.Domain.UserInfo;
|
import com.gk.firework.Domain.Vo.EntryOrderInfoVo;
|
import com.gk.firework.Domain.Vo.EntryUtils;
|
import com.gk.firework.Domain.Vo.FireworkDeal;
|
import com.gk.firework.Domain.Vo.ProductVo;
|
import com.gk.firework.Mapper.EntryDetailInfoMapper;
|
import com.gk.firework.Domain.Utils.StringUtils;
|
import com.gk.firework.Mapper.EntryOrderInfoMapper;
|
import com.gk.firework.Service.*;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.math.BigDecimal;
|
import java.util.HashMap;
|
import java.util.Map;
|
import java.util.List;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
|
/**
|
* @author : jingjy
|
* @date : 2021/3/24 11:10
|
*/
|
@Service("EntryService")
|
public class EntryServiceImpl extends ServiceImpl<EntryOrderInfoMapper,EntryOrderInfo> implements EntryService{
|
@Autowired
|
private ProductService productService;
|
@Autowired
|
private EntryService entryService;
|
@Autowired
|
private EntryDetailService entryDetailService;
|
@Autowired
|
private SoldNoStockService soldNoStockService;
|
@Autowired
|
private SaleOrderService orderService;
|
|
@Override
|
public void entryPatch(List<SoldNoStockInfo> soldNoStockInfos, UserInfo user, String auth) {
|
EntryOrderInfo orderInfo = generateEntryOrderInfo(EntryUtils.RK_ENTRY,user,new Date(),"",auth);
|
List<EntryDetailInfo>detailInfos = new ArrayList<>();
|
int i = 0;
|
for (SoldNoStockInfo soldNoStockInfo : soldNoStockInfos){
|
String dire = soldNoStockInfo.getDirectioncode();
|
ProductVo productVo = productService.selectVoByDirection(dire);
|
EntryDetailInfo detailInfo = new EntryDetailInfo(orderInfo.getCode(),dire,productVo.getItemCode(),
|
productVo.getName(),productVo.getManufacturer(),new Date(),user.getCompanynumber());
|
//已销未入库信息只会存19位流向码信息
|
detailInfo.setNum(1);
|
detailInfos.add(detailInfo);
|
i++;
|
|
//更新soldNoStock信息
|
soldNoStockInfo.setHandler(user.getUsername());
|
soldNoStockInfo.setHandledat(new Date());
|
soldNoStockInfo.setEntryorder(orderInfo.getCode());
|
soldNoStockInfo.setFlag(SoldNoStockInfo.PROCESSED);
|
}
|
//插入入库单及入库明细单,更新已销未入库单,不更新库存
|
orderInfo.setNum(i);
|
entryService.save(orderInfo);
|
entryDetailService.saveBatch(detailInfos);
|
soldNoStockService.updateBatchById(soldNoStockInfos);
|
|
}
|
|
@Autowired
|
private EntryOrderInfoMapper entryOrderInfoMapper;
|
@Autowired
|
private UserService userService;
|
@Autowired
|
private EntryDetailInfoMapper entryDetailInfoMapper;
|
|
/**
|
* @Description: 入库查询
|
* @date 2021/4/15 10:28
|
*/
|
@Override
|
public IPage selectPage(Page<EntryOrderInfoVo> page, Map filter, UserInfo user) {
|
|
UserInfo userInfo = userService.getById(user.getId());
|
|
Map<String, Object> params = new HashMap<>();
|
//筛选条件
|
//可视权限
|
{
|
params.put("enterprisenumber", userInfo.getCompanynumber());
|
params.put("province", userInfo.getProvince());
|
params.put("city", userInfo.getCity());
|
params.put("district", userInfo.getArea());
|
params.put("street", userInfo.getTown());
|
params.put("committee", userInfo.getCommunity());
|
}
|
//基本查询条件
|
{
|
params.put("filterProvince", filter.get("province"));
|
params.put("filterCity", filter.get("city"));
|
params.put("filterDistrict", filter.get("district"));
|
params.put("filterStreet", filter.get("street"));
|
params.put("filterCommittee", filter.get("committee"));
|
|
params.put("transportcert", filter.get("transportcert"));
|
params.put("starttime", filter.get("starttime"));
|
params.put("endtime", filter.get("endtime"));
|
params.put("enterprisename", filter.get("enterprisename"));
|
params.put("safetysupervision", filter.get("safetysupervision"));
|
params.put("type", filter.get("type"));
|
params.put("code", filter.get("code"));
|
}
|
|
List<EntryOrderInfoVo> list = entryOrderInfoMapper.selectPages(page,params);
|
return page.setRecords(list);
|
}
|
|
/**
|
* @Description: 根据{入库单code}查询入库明细
|
* @date 2021/4/15 11:12
|
*/
|
@Override
|
public Page selectDetailPage(Page<Map> page, Map filter) {
|
String code = (String) filter.get("code");
|
if (StringUtils.isBlank(code)) {
|
throw new BusinessException("入库单号不能为空");
|
}
|
|
Map<String, Object> params = new HashMap<>();
|
params.put("code", code);
|
params.put("starttime", filter.get("starttime"));
|
params.put("endtime", filter.get("endtime"));
|
List<Map> list = entryDetailInfoMapper.selectDetailPage(page, params);
|
return page.setRecords(list);
|
}
|
|
@Override
|
public BigDecimal getEntryNumByCondition(Map<String, Object> condition) {
|
return entryDetailInfoMapper.getEntryNumByCondition(condition);
|
}
|
|
@Override
|
public BigDecimal getReturnNumByCondition(Map<String, Object> condition) {
|
return entryDetailInfoMapper.getReturnNumByCondition(condition);
|
}
|
|
@Override
|
public boolean isEntryExist(String datetime, UserInfo userInfo) {
|
EntryOrderInfo entryOrderInfo = entryOrderInfoMapper.selectEntryOrderByTimeAndUser(datetime,userInfo.getUsername());
|
return entryOrderInfo != null;
|
}
|
|
/**
|
* @Description: 入库导出
|
* @date 2021/4/19 17:13
|
*/
|
@Override
|
public List<EntryOrderInfo> selectExportInBound(Map filter, UserInfo user) {
|
|
UserInfo userInfo = userService.getById(user.getId());
|
|
Map<String, Object> params = new HashMap<>();
|
//筛选条件
|
//可视权限
|
{
|
params.put("enterprisenumber", userInfo.getCompanynumber());
|
params.put("province", userInfo.getProvince());
|
params.put("city", userInfo.getCity());
|
params.put("district", userInfo.getArea());
|
params.put("street", userInfo.getTown());
|
params.put("committee", userInfo.getCommunity());
|
}
|
//基本查询条件
|
{
|
params.put("filterProvince", filter.get("province"));
|
params.put("filterCity", filter.get("city"));
|
params.put("filterDistrict", filter.get("district"));
|
params.put("filterStreet", filter.get("street"));
|
params.put("filterCommittee", filter.get("committee"));
|
|
params.put("transportcert", filter.get("transportcert"));
|
params.put("starttime", filter.get("starttime"));
|
params.put("endtime", filter.get("endtime"));
|
params.put("enterprisename", filter.get("enterprisename"));
|
params.put("type", filter.get("type"));
|
}
|
|
return entryOrderInfoMapper.selectPages(params);
|
}
|
|
@Override
|
public BigDecimal selectEnterpriseEntryNumber(String enterprisenumber, Object starttime, Object endtime) {
|
return entryOrderInfoMapper.selectEnterpriseEntryNumber(enterprisenumber,starttime,endtime);
|
}
|
|
@Override
|
public BigDecimal selectCityEntryNumber(String name, Object starttime, Object endtime) {
|
return entryOrderInfoMapper.selectCityEntryNumber(name,starttime,endtime);
|
}
|
|
@Override
|
public Boolean isTransportCertEntry(String code) {
|
if (StringUtils.isBlank(code)){
|
return false;
|
}
|
List<EntryOrderInfo> entryOrderInfo = entryOrderInfoMapper.selectByCert(code);
|
return entryOrderInfo != null && entryOrderInfo.size() > 0;
|
}
|
|
@Override
|
public IPage selectStockPage(Page<EntryOrderInfoVo> page, Map<String, Object> filter, UserInfo user) {
|
Map<String, Object> params = new HashMap<>();
|
{
|
params.put("filterProvince", filter.get("province"));
|
params.put("filterCity", filter.get("city"));
|
params.put("filterDistrict", filter.get("district"));
|
params.put("filterStreet", filter.get("street"));
|
params.put("filterCommittee", filter.get("committee"));
|
|
params.put("transportcert", filter.get("transportcert"));
|
params.put("starttime", filter.get("starttime"));
|
params.put("endtime", filter.get("endtime"));
|
params.put("enterprisename", filter.get("enterprisename"));
|
params.put("type", filter.get("type"));
|
}
|
List<EntryOrderInfoVo> list = entryOrderInfoMapper.selectPages(page,params);
|
return page.setRecords(list);
|
}
|
|
@Override
|
public EntryOrderInfo generateEntryOrderInfo(String type, UserInfo userInfo, Date date, String transport, String auth){
|
EntryOrderInfo orderInfo = new EntryOrderInfo();
|
orderInfo.setCode(orderService.generateOrderCode(FireworkDeal.MODULE_ENTRY,type,new Date(),userInfo.getId()));
|
orderInfo.setType(Byte.parseByte(type));
|
orderInfo.setCreateddate(new Date());
|
orderInfo.setCreatedby(userInfo.getUsername());
|
orderInfo.setEntrydate(date);
|
orderInfo.setTransportcert(transport);
|
orderInfo.setUnit(userInfo.getCompany());
|
orderInfo.setCompanynumber(userInfo.getCompanynumber());
|
return orderInfo;
|
}
|
|
}
|