修改进销存接口逻辑

This commit is contained in:
yangjun 2025-10-17 15:35:24 +08:00
parent 03e13bb23f
commit 68cc381b0a
15 changed files with 280 additions and 592 deletions

View File

@ -53,12 +53,19 @@ public class InvoicingApi {
return Result.OK("添加成功!");
}
@ApiOperation(value="生成采购单预览信息", notes="生成采购单预览信息")
@AutoLog(value = "生成采购单预览信息")
@PostMapping(value = "/generatedPurchaseViewOrder")
public Result<List<CgdMainEntity>> generatedPurchaseViewOrder(@RequestBody List<QgdInfoEntity> infoList, HttpServletRequest req) {
List<CgdMainEntity> list = invoicingApi.generatedPurchaseViewOrder(infoList);
return Result.OK(list);
}
@ApiOperation(value="生成采购单信息", notes="生成采购单信息")
@AutoLog(value = "生成采购单信息")
@PostMapping(value = "/generatedPurchaseOrder")
public Result<String> generatedPurchaseOrder(QgdInfoEntity qgdInfoEntity, HttpServletRequest req) {
invoicingApi.generatedPurchaseOrder(qgdInfoEntity);
return Result.OK("已提交采购信息");
public Result<List<CgdMainEntity>> generatedPurchaserder(@RequestBody List<CgdMainEntity> cgdMainList, HttpServletRequest req) {
List<CgdMainEntity> list = invoicingApi.generatedPurchaserder(cgdMainList);
return Result.OK(list);
}
@ApiOperation(value = "查询采购单详细信息", notes = "查询采购单详细信息")

View File

@ -15,7 +15,7 @@ public interface IInvoicingApi {
void addShoppingCartList(List<QgdInfoEntity> infoList);
String generatedPurchaseOrder(QgdInfoEntity qgdInfoEntity);
List<CgdMainEntity> generatedPurchaseViewOrder(List<QgdInfoEntity> infoList);
IPage<CgdInfoEntity> queryCgdInfoList(Integer pageNo, Integer pageSize, CgdInfoEntity cgdInfoEntityDto, HttpServletRequest req);
@ -26,4 +26,6 @@ public interface IInvoicingApi {
void updateKfstatus(NuBaseInfoEntity nuBaseInfoEntity);
NuBaseInfoEntity queryNuInfoByNuId(NuBaseInfoEntity nuBaseInfoEntityDto);
List<CgdMainEntity> generatedPurchaserder(List<CgdMainEntity> cgdMainList);
}

View File

@ -55,10 +55,6 @@ public class NuInvoicingCgdInfo implements Serializable {
/**sysOrgCode*/
@ApiModelProperty(value = "sysOrgCode")
private String sysOrgCode;
/**请购单id*/
@Excel(name = "请购单id", width = 15)
@ApiModelProperty(value = "请购单id")
private String mainId;
/**采购单id*/
@Excel(name = "采购单id", width = 15)
@ApiModelProperty(value = "采购单id")

View File

@ -53,10 +53,6 @@ public class NuInvoicingCgdMain implements Serializable {
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "updateTime")
private Date updateTime;
/**请购单id*/
@Excel(name = "请购单id", width = 15)
@ApiModelProperty(value = "请购单id")
private String qgdId;
/**采购单单号*/
@Excel(name = "采购单单号", width = 15)
@ApiModelProperty(value = "采购单单号")
@ -131,9 +127,11 @@ public class NuInvoicingCgdMain implements Serializable {
private String content;
/**供应商名称*/
private String gysName;
// 总价
@TableField(exist = false)
private BigDecimal totalPrice;
@TableField(exist = false)
private String qgdId;//临时变量用于清空购物车id
/**采购的物料信息*/
@TableField(exist = false)

View File

@ -22,18 +22,16 @@ import com.nu.modules.invoicing.api.IInvoicingApi;
import com.nu.modules.nubaseinfo.entity.NuBaseInfo;
import com.nu.modules.nubaseinfo.mapper.NuBaseInfoMapper;
import com.nu.modules.qgd.entity.QgdInfo;
import com.nu.modules.qgd.entity.QgdMain;
import com.nu.modules.qgd.mapper.QgdInfoMapper;
import com.nu.modules.qgd.mapper.QgdMainMapper;
import com.nu.modules.warehouseMaterialInfo.entity.BlWarehouseMaterialInfo;
import com.nu.modules.warehouseMaterialInfo.mapper.BlWarehouseMaterialInfoMapper;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.query.QueryRuleEnum;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.DateUtils;
import org.jeecg.common.util.RedisUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -41,6 +39,7 @@ import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
@ -65,8 +64,6 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
@Autowired
private ConfigMaterialInfoMapper configMaterialInfoMapper;
@Autowired
private QgdMainMapper qgdMainMapper;
@Autowired
private QgdInfoMapper qgdInfoMapper;
@ -83,13 +80,17 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
@Autowired
private NuBaseInfoMapper nuBaseInfoMapper;
@Autowired
private BlWarehouseMaterialInfoMapper mterialInfoMapper;
@Autowired
private RedisUtil redisUtil;
@Override
public void rukuInfo(NuInvoicingCgdMain nuInvoicingCgdMain) {
List<NuInvoicingCgdInfo> cgdInfoList = nuInvoicingCgdMain.getCgdInfoList();
List<NuInvoicingCgdInfo> cgdGzdInfoList = new ArrayList<>();
for (NuInvoicingCgdInfo nuInvoicingCgdInfo : cgdInfoList) {
nuInvoicingCgdInfo.setMainId(nuInvoicingCgdMain.getId());
cgdInfoMapper.updateById(nuInvoicingCgdInfo);
//入库数量不为空并且大于0
if(StringUtils.isNotBlank(nuInvoicingCgdInfo.getRksl()) && Integer.parseInt(nuInvoicingCgdInfo.getRksl()) > 0){
@ -185,21 +186,10 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
@Override
public IPage<QgdInfoEntity> queryShoppingCartList(Integer pageNo, Integer pageSize, QgdInfoEntity qgdInfoEntityDto, HttpServletRequest req) {
// LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//查询当前人是否有请购数据
QueryWrapper<QgdMain> mainQueryWrapper = new QueryWrapper<>();
// mainQueryWrapper.eq("create_by",sysUser.getUsername());
mainQueryWrapper.eq("status",0);
QgdMain qgdMain = qgdMainMapper.selectOne(mainQueryWrapper);
//如果请购单为空给一个默认的值使最后的结果为空
if(qgdMain == null){
qgdMain = new QgdMain();
qgdMain.setId("-1");//默认没有请购单
}
//查询请购详细信息
QgdInfo nuInvoicingQgdInfo = new QgdInfo();
BeanUtils.copyProperties(qgdInfoEntityDto,nuInvoicingQgdInfo);
QueryWrapper<QgdInfo> queryWrapper = QueryGenerator.initQueryWrapper(nuInvoicingQgdInfo, req.getParameterMap());
queryWrapper.eq("main_id",qgdMain.getId());
Page<QgdInfo> page = new Page<QgdInfo>(pageNo, pageSize);
List<QgdInfo> list = qgdInfoMapper.selectList(page, queryWrapper);
//封装返回结果
@ -211,38 +201,12 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
@Override
public void addShoppingCartList(List<QgdInfoEntity> infoList) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
QueryWrapper<QgdMain> queryWrapper = new QueryWrapper<>();
// queryWrapper.eq("create_by",sysUser.getUsername());
queryWrapper.eq("status",0);
QgdMain qgdMain = qgdMainMapper.selectOne(queryWrapper);
if(qgdMain == null){
// 生成请购单号
Date date = new Date();
// String nowDate = DateUtils.formatDate(date,"yyyy-MM-dd");
QueryWrapper<QgdMain> queryWrapper2 = new QueryWrapper<>();
// queryWrapper2.eq("create_by",sysUser.getUsername());
// queryWrapper2.like("create_time",nowDate);
//查询当天是否有请购单
List<QgdMain> listSize = qgdMainMapper.selectList(queryWrapper2);
int size = listSize.size()+1;
String ddwh = String.format("%03d", size);
String qgdNo = sysUser.getOrgCode() + DateUtils.formatDate(date,"yyyyMMdd")+ddwh;
qgdMain = new QgdMain();
qgdMain.setCreateBy(sysUser.getUsername());
qgdMain.setCreateTime(new Date());
qgdMain.setStatus(0);
qgdMain.setQgdNo(qgdNo);
qgdMainMapper.insert(qgdMain);
}
for (QgdInfoEntity info : infoList) {
if(info.getPurchaseQuantity()!=null && info.getPurchaseQuantity()>0){
//获取物料基础信息
ConfigMaterialInfo ConfigMaterialInfo = configMaterialInfoMapper.selectById(info.getWlId());
//获取物料上限下限
BlWarehouseMaterialInfo warehouseMaterialInfo = warehouseMaterialInfoMapper.selectOne(new QueryWrapper<BlWarehouseMaterialInfo>().eq("wl_id",info.getWlId()).eq("nu_id",info.getNuId()));
info.setMainId(qgdMain.getId());
info.setMainNo(qgdMain.getQgdNo());
info.setWlName(ConfigMaterialInfo.getMaterialName());
info.setWlMaterialNo(ConfigMaterialInfo.getMaterialNo());
info.setWlSpecificationModel(ConfigMaterialInfo.getSpecificationModel());
@ -264,47 +228,45 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
}
@Override
public String generatedPurchaseOrder(QgdInfoEntity qgdInfoEntity) {
public List<CgdMainEntity> generatedPurchaseViewOrder(List<QgdInfoEntity> infoEntityList) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//查询当前人是否有请购数据
QueryWrapper<QgdMain> mainQueryWrapper = new QueryWrapper<>();
// mainQueryWrapper.eq("create_by",sysUser.getUsername());
mainQueryWrapper.eq("status",0);
QgdMain qgdMain = qgdMainMapper.selectOne(mainQueryWrapper);
if(qgdMain == null){
qgdMain = new QgdMain();
qgdMain.setId("-1");
}
//查询请购详细信息
QueryWrapper<QgdInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("main_id",qgdMain.getId());
List<QgdInfo> qgdInfoList = qgdInfoMapper.selectList(queryWrapper);
List<Map<String,Object>> mapList = new ArrayList<>();
List<NuInvoicingCgdMain> mapList = new ArrayList<>();
// 创建一个临时Map来按suppliersId分组
Map<String, List<QgdInfo>> tempMap = new HashMap<>();
for (QgdInfo qgdInfo : qgdInfoList) {
String suppliersId = qgdInfo.getSuppliersId();
for (QgdInfoEntity qgdInfoEntity : infoEntityList) {
String suppliersId = qgdInfoEntity.getSuppliersId();
if (!tempMap.containsKey(suppliersId)) {
tempMap.put(suppliersId, new ArrayList<>());
}
QgdInfo qgdInfo = new QgdInfo();
BeanUtils.copyProperties(qgdInfoEntity,qgdInfo);
tempMap.get(suppliersId).add(qgdInfo);
}
String qgdDate = new SimpleDateFormat("yyyyMMdd").format(new Date());
String qgdXlh = "";
if(redisUtil.get("qgd"+qgdDate) != null){
qgdXlh = redisUtil.get("qgd"+qgdDate).toString();
}
int qgdXlhInt = 0;
if(StringUtils.isNotBlank(qgdXlh)){
qgdXlhInt = Integer.parseInt(qgdXlh);
}
// 将临时Map转换为需要的mapList结构
for (Map.Entry<String, List<QgdInfo>> entry : tempMap.entrySet()) {
Map<String, Object> map = new HashMap<>();
qgdXlhInt++;
String suppliersId = entry.getKey();//供应商id
List<QgdInfo> infoList = entry.getValue();//请购的物料列表
ConfigSuppliersInfo ConfigSuppliersInfo = gysMapper.selectById(suppliersId);
String cgdNo = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + String.format("%06d", new Random().nextInt(1000000));
String cgdNo = sysUser.getOrgCode() + new SimpleDateFormat("yyyyMMdd").format(new Date()) + String.format("%03d", qgdXlhInt);
//生产采购单主表
NuInvoicingCgdMain cgdMain = new NuInvoicingCgdMain();
cgdMain.setQgdId(qgdMain.getId());
cgdMain.setCgdNo(cgdNo);
cgdMain.setGysId(suppliersId);
cgdMain.setQgDate(new Date());
@ -314,11 +276,21 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
cgdMain.setGysOpenId(ConfigSuppliersInfo.getWechartId());
cgdMain.setStatus("0");
cgdMain.setCgdType("0");
cgdMainMapper.insert(cgdMain);
cgdMain.setGysName(ConfigSuppliersInfo.getSuppliersName());
// cgdMainMapper.insert(cgdMain);
List<NuInvoicingCgdInfo> cgdInfoList = new ArrayList<>();
BigDecimal totalPrice = new BigDecimal(0);
String qgdId = "";
//生产采购单详细
for(QgdInfo params:infoList){
qgdId = qgdId + params.getId() + ",";
NuInvoicingCgdInfo cgdInfo = new NuInvoicingCgdInfo();
cgdInfo.setMainId(qgdMain.getId());
QueryWrapper<BlWarehouseMaterialInfo> queryWrapper = new QueryWrapper<>();
List<BlWarehouseMaterialInfo> wlList = mterialInfoMapper.selectList(queryWrapper);
BlWarehouseMaterialInfo wlInfo = new BlWarehouseMaterialInfo();
if(wlList.size()>0){
wlInfo = wlList.get(0);
}
cgdInfo.setCgdId(cgdMain.getId());
cgdInfo.setWlId(params.getWlId());
cgdInfo.setWlMaterialNo(params.getWlMaterialNo());
@ -333,23 +305,62 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
cgdInfo.setBrand(params.getBrand());
cgdInfo.setNuId(params.getNuId());
cgdInfo.setProcurementPrice(params.getReferenceUnitPrice());
cgdInfoMapper.insert(cgdInfo);
cgdInfo.setKcsl(wlInfo.getKcsl());
cgdInfo.setTagName(wlInfo.getTagName());
cgdInfo.setMaterialImg(wlInfo.getMaterialImg());
BigDecimal sl = new BigDecimal(params.getPurchaseQuantity());
BigDecimal dj = new BigDecimal(params.getReferenceUnitPrice());
BigDecimal wlzj = sl.multiply(dj);
cgdInfo.setTotalPrice(wlzj);
totalPrice = totalPrice.add(wlzj);
// cgdInfoMapper.insert(cgdInfo);
cgdInfoList.add(cgdInfo);
}
map.put("suppliersId", entry.getKey());
map.put("qgdInfoList", entry.getValue());
mapList.add(map);
cgdMain.setQgdId(qgdId);
cgdMain.setCgdInfoList(cgdInfoList);
cgdMain.setTotalPrice(totalPrice);
mapList.add(cgdMain);
}
System.out.println(mapList);
//修改请购单状态-变成已经下单
QgdMain qgdMain1 = new QgdMain();
qgdMain1.setId(qgdMain.getId());
qgdMain1.setStatus(1);
qgdMainMapper.updateById(qgdMain1);
List<CgdMainEntity> mapList2 = BeanUtil.copyToList(mapList,CgdMainEntity.class);
return mapList2;
return "1";
}
@Override
public List<CgdMainEntity> generatedPurchaserder(List<CgdMainEntity> cgdMainList) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String qgdDate = new SimpleDateFormat("yyyyMMdd").format(new Date());
String qgdXlh = "";
if(redisUtil.get("qgd"+qgdDate) != null){
qgdXlh = redisUtil.get("qgd"+qgdDate).toString();
}
int qgdXlhInt = 0;
if(StringUtils.isNotBlank(qgdXlh)){
qgdXlhInt = Integer.parseInt(qgdXlh);
}
List<NuInvoicingCgdMain> mapList2 = BeanUtil.copyToList(cgdMainList,NuInvoicingCgdMain.class);
for (NuInvoicingCgdMain cgdMain : mapList2){
qgdXlhInt++;
String cgdNo = sysUser.getOrgCode() + new SimpleDateFormat("yyyyMMdd").format(new Date()) + String.format("%03d", qgdXlhInt);
cgdMain.setCgdNo(cgdNo);
cgdMainMapper.insert(cgdMain);
List<NuInvoicingCgdInfo> cgdInfoList = cgdMain.getCgdInfoList();
for (NuInvoicingCgdInfo cgdInfo : cgdInfoList){
cgdInfo.setCgdId(cgdMain.getId());
cgdInfoMapper.insert(cgdInfo);
}
String qgdId = cgdMain.getQgdId();
for(String id : qgdId.split(",")){
baseMapper.deleteById(id);
}
redisUtil.set("qgd"+qgdDate,qgdXlhInt);
}
cgdMainList = BeanUtil.copyToList(mapList2,CgdMainEntity.class);
return cgdMainList;
}
@Override

View File

@ -1,38 +1,29 @@
package com.nu.modules.qgd.controller;
import java.util.Arrays;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.nu.modules.cgd.entity.NuInvoicingCgdMain;
import com.nu.modules.cgd.service.INuInvoicingCgdInfoService;
import com.nu.modules.cgd.service.INuInvoicingCgdMainService;
import com.nu.modules.qgd.entity.QgdMain;
import com.nu.modules.qgd.service.IQgdMainService;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import com.nu.modules.qgd.entity.QgdInfo;
import com.nu.modules.qgd.service.IQgdInfoService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.vo.LoginUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import com.nu.modules.cgd.entity.NuInvoicingCgdMain;
import com.nu.modules.cgd.service.INuInvoicingCgdInfoService;
import com.nu.modules.cgd.service.INuInvoicingCgdMainService;
import com.nu.modules.qgd.entity.QgdInfo;
import com.nu.modules.qgd.service.IQgdInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.List;
/**
* @Description: 请购单-请购信息
* @Author: jeecg-boot
* @Date: 2025-06-26
@ -47,8 +38,6 @@ public class QgdInfoController extends JeecgController<QgdInfo, IQgdInfoService>
@Autowired
private IQgdInfoService nuInvoicingQgdInfoService;
@Autowired
private IQgdMainService nuInvoicingQgdMainService;
@Autowired
private INuInvoicingCgdMainService nuInvoicingCgdMainService;
@Autowired
@ -152,17 +141,8 @@ public class QgdInfoController extends JeecgController<QgdInfo, IQgdInfoService>
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
// LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//查询当前人是否有请购数据
QueryWrapper<QgdMain> mainQueryWrapper = new QueryWrapper<>();
// mainQueryWrapper.eq("create_by",sysUser.getUsername());//目前请购是一次性全部将请购车的请购信息全部提交给采购如果只查询本人的请购信息则解除注释
mainQueryWrapper.eq("status",0);
QgdMain qgdMain = nuInvoicingQgdMainService.getOne(mainQueryWrapper);
if(qgdMain == null){
return Result.OK(null);
}
//查询请购详细信息
QueryWrapper<QgdInfo> queryWrapper = QueryGenerator.initQueryWrapper(nuInvoicingQgdInfo, req.getParameterMap());
queryWrapper.eq("main_id",qgdMain.getId());
queryWrapper.apply(StringUtils.isNotBlank(nuInvoicingQgdInfo.getWlParamInfo()),"( wl_name like '%"+nuInvoicingQgdInfo.getWlParamInfo()+"%' or wl_material_no like '%"+nuInvoicingQgdInfo.getWlParamInfo()+"%' or wl_units like '%"+nuInvoicingQgdInfo.getWlParamInfo()+"%' or wl_specification_model like '%"+nuInvoicingQgdInfo.getWlParamInfo()+"%' ) ");
Page<QgdInfo> page = new Page<QgdInfo>(pageNo, pageSize);
IPage<QgdInfo> pageList = nuInvoicingQgdInfoService.queryListByUser(page, queryWrapper);
@ -173,7 +153,7 @@ public class QgdInfoController extends JeecgController<QgdInfo, IQgdInfoService>
@ApiOperation(value="生成采购单信息", notes="生成采购单信息")
@PostMapping(value = "/addCgdByUser")
public Result<List<NuInvoicingCgdMain>> addCgd(@RequestBody List<QgdInfo> qgdInfoList, HttpServletRequest req) {
List<NuInvoicingCgdMain> list = nuInvoicingQgdMainService.addCgdByUser(qgdInfoList);
List<NuInvoicingCgdMain> list = nuInvoicingQgdInfoService.addCgdByUser(qgdInfoList);
return Result.OK(list);
}
@ -181,7 +161,7 @@ public class QgdInfoController extends JeecgController<QgdInfo, IQgdInfoService>
@ApiOperation(value="生成采购单信息", notes="生成采购单信息")
@PostMapping(value = "/saveCgd")
public Result<List<NuInvoicingCgdMain>> saveCgd(@RequestBody List<NuInvoicingCgdMain> cgdMainList, HttpServletRequest req) {
List<NuInvoicingCgdMain> list = nuInvoicingQgdMainService.saveCgd(cgdMainList);
List<NuInvoicingCgdMain> list = nuInvoicingQgdInfoService.saveCgd(cgdMainList);
return Result.OK(list);
}
}

View File

@ -1,164 +0,0 @@
package com.nu.modules.qgd.controller;
import java.util.Arrays;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import com.nu.modules.qgd.entity.QgdMain;
import com.nu.modules.qgd.service.IQgdMainService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.apache.shiro.authz.annotation.RequiresPermissions;
/**
* @Description: 请购单
* @Author: jeecg-boot
* @Date: 2025-06-26
* @Version: V1.0
*/
@Api(tags="请购单")
@RestController
//@RequestMapping("/nuInvoicingQgdMain/nuInvoicingQgdMain")
@RequestMapping("/invoicing/qgdMain")
@Slf4j
public class QgdMainController extends JeecgController<QgdMain, IQgdMainService> {
@Autowired
private IQgdMainService nuInvoicingQgdMainService;
/**
* 分页列表查询
*
* @param nuInvoicingQgdMain
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "请购单-分页列表查询")
@ApiOperation(value="请购单-分页列表查询", notes="请购单-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<QgdMain>> queryPageList(QgdMain nuInvoicingQgdMain,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<QgdMain> queryWrapper = QueryGenerator.initQueryWrapper(nuInvoicingQgdMain, req.getParameterMap());
Page<QgdMain> page = new Page<QgdMain>(pageNo, pageSize);
IPage<QgdMain> pageList = nuInvoicingQgdMainService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 添加
*
* @param nuInvoicingQgdMain
* @return
*/
@AutoLog(value = "请购单-添加")
@ApiOperation(value="请购单-添加", notes="请购单-添加")
@RequiresPermissions("nuInvoicingQgdMain:nu_invoicing_qgd_main:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody QgdMain nuInvoicingQgdMain) {
nuInvoicingQgdMainService.save(nuInvoicingQgdMain);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param nuInvoicingQgdMain
* @return
*/
@AutoLog(value = "请购单-编辑")
@ApiOperation(value="请购单-编辑", notes="请购单-编辑")
@RequiresPermissions("nuInvoicingQgdMain:nu_invoicing_qgd_main:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody QgdMain nuInvoicingQgdMain) {
nuInvoicingQgdMainService.updateById(nuInvoicingQgdMain);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "请购单-通过id删除")
@ApiOperation(value="请购单-通过id删除", notes="请购单-通过id删除")
@RequiresPermissions("nuInvoicingQgdMain:nu_invoicing_qgd_main:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
nuInvoicingQgdMainService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "请购单-批量删除")
@ApiOperation(value="请购单-批量删除", notes="请购单-批量删除")
@RequiresPermissions("nuInvoicingQgdMain:nu_invoicing_qgd_main:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.nuInvoicingQgdMainService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
//@AutoLog(value = "请购单-通过id查询")
@ApiOperation(value="请购单-通过id查询", notes="请购单-通过id查询")
@GetMapping(value = "/queryById")
public Result<QgdMain> queryById(@RequestParam(name="id",required=true) String id) {
QgdMain nuInvoicingQgdMain = nuInvoicingQgdMainService.getById(id);
if(nuInvoicingQgdMain==null) {
return Result.error("未找到对应数据");
}
return Result.OK(nuInvoicingQgdMain);
}
/**
* 导出excel
*
* @param request
* @param nuInvoicingQgdMain
*/
@RequiresPermissions("nuInvoicingQgdMain:nu_invoicing_qgd_main:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, QgdMain nuInvoicingQgdMain) {
return super.exportXls(request, nuInvoicingQgdMain, QgdMain.class, "请购单");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequiresPermissions("nuInvoicingQgdMain:nu_invoicing_qgd_main:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, QgdMain.class);
}
}

View File

@ -53,14 +53,6 @@ public class QgdInfo implements Serializable {
/**sysOrgCode*/
@ApiModelProperty(value = "sysOrgCode")
private java.lang.String sysOrgCode;
/**请购单id*/
@Excel(name = "请购单id", width = 15)
@ApiModelProperty(value = "请购单id")
private java.lang.String mainId;
/**请购单编号*/
@Excel(name = "请购单编号", width = 15)
@ApiModelProperty(value = "请购单编号")
private java.lang.String mainNo;
/**物料id*/
@Excel(name = "物料id", width = 15)
@ApiModelProperty(value = "物料id")

View File

@ -1,62 +0,0 @@
package com.nu.modules.qgd.entity;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: 请购单
* @Author: jeecg-boot
* @Date: 2025-06-26
* @Version: V1.0
*/
@Data
@TableName("nu_invoicing_qgd_main")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="nu_invoicing_qgd_main对象", description="请购单")
public class QgdMain implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private java.lang.String id;
/**createBy*/
@ApiModelProperty(value = "createBy")
private java.lang.String createBy;
/**createTime*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "createTime")
private java.util.Date createTime;
/**updateBy*/
@ApiModelProperty(value = "updateBy")
private java.lang.String updateBy;
/**updateTime*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "updateTime")
private java.util.Date updateTime;
/**sysOrgCode*/
@ApiModelProperty(value = "sysOrgCode")
private java.lang.String sysOrgCode;
/**请购单号*/
@Excel(name = "请购单号", width = 15)
@ApiModelProperty(value = "请购单号")
private java.lang.String qgdNo;
/**请购状态 0未下单 1已下单*/
@Excel(name = "请购状态 0未下单 1已下单", width = 15)
@ApiModelProperty(value = "请购状态 0未下单 1已下单")
private java.lang.Integer status;
}

View File

@ -1,14 +0,0 @@
package com.nu.modules.qgd.mapper;
import com.nu.modules.qgd.entity.QgdMain;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 请购单
* @Author: jeecg-boot
* @Date: 2025-06-26
* @Version: V1.0
*/
public interface QgdMainMapper extends BaseMapper<QgdMain> {
}

View File

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nu.modules.qgd.mapper.QgdMainMapper">
</mapper>

View File

@ -3,6 +3,7 @@ package com.nu.modules.qgd.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nu.modules.cgd.entity.NuInvoicingCgdMain;
import com.nu.modules.qgd.entity.QgdInfo;
import com.baomidou.mybatisplus.extension.service.IService;
@ -19,4 +20,8 @@ public interface IQgdInfoService extends IService<QgdInfo> {
void addList(List<QgdInfo> infoList);
IPage<QgdInfo> queryListByUser(Page<QgdInfo> page, QueryWrapper<QgdInfo> queryWrapper);
List<NuInvoicingCgdMain> saveCgd(List<NuInvoicingCgdMain> cgdMainList);
List<NuInvoicingCgdMain> addCgdByUser(List<QgdInfo> qgdInfoList);
}

View File

@ -1,21 +0,0 @@
package com.nu.modules.qgd.service;
import com.nu.modules.cgd.entity.NuInvoicingCgdMain;
import com.nu.modules.qgd.entity.QgdInfo;
import com.nu.modules.qgd.entity.QgdMain;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: 请购单
* @Author: jeecg-boot
* @Date: 2025-06-26
* @Version: V1.0
*/
public interface IQgdMainService extends IService<QgdMain> {
List<NuInvoicingCgdMain> addCgdByUser(List<QgdInfo> qgdInfoList);
List<NuInvoicingCgdMain> saveCgd(List<NuInvoicingCgdMain> cgdMainList);
}

View File

@ -4,25 +4,31 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nu.modules.ConfigMaterial.entity.ConfigMaterialInfo;
import com.nu.modules.cgd.entity.NuInvoicingCgdInfo;
import com.nu.modules.cgd.entity.NuInvoicingCgdMain;
import com.nu.modules.cgd.mapper.NuInvoicingCgdInfoMapper;
import com.nu.modules.cgd.mapper.NuInvoicingCgdMainMapper;
import com.nu.modules.configSuppliersInfo.entity.ConfigSuppliersInfo;
import com.nu.modules.configSuppliersInfo.mapper.ConfigSuppliersInfoMapper;
import com.nu.modules.qgd.entity.QgdInfo;
import com.nu.modules.qgd.entity.QgdMain;
import com.nu.modules.qgd.mapper.QgdInfoMapper;
import com.nu.modules.qgd.service.IQgdInfoService;
import com.nu.modules.qgd.service.IQgdMainService;
import com.nu.modules.ConfigMaterial.service.IConfigMaterialInfoService;
import com.nu.modules.warehouseMaterialInfo.entity.BlWarehouseMaterialInfo;
import com.nu.modules.warehouseMaterialInfo.mapper.BlWarehouseMaterialInfoMapper;
import com.nu.modules.warehouseMaterialInfo.service.IBlWarehouseMaterialInfoService;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.DateUtils;
import org.jeecg.common.util.RedisUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.Date;
import java.util.List;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @Description: 请购单-请购信息
@ -38,6 +44,17 @@ public class QgdInfoServiceImpl extends ServiceImpl<QgdInfoMapper, QgdInfo> impl
@Autowired
private IBlWarehouseMaterialInfoService blWarehouseMaterialInfoService;
@Autowired
private NuInvoicingCgdMainMapper cgdMainMapper;
@Autowired
private NuInvoicingCgdInfoMapper cgdInfoMapper;
@Autowired
private ConfigSuppliersInfoMapper gysMapper;
@Autowired
private BlWarehouseMaterialInfoMapper mterialInfoMapper;
@Autowired
private RedisUtil redisUtil;
@Override
public void addList(List<QgdInfo> infoList) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@ -68,4 +85,134 @@ public class QgdInfoServiceImpl extends ServiceImpl<QgdInfoMapper, QgdInfo> impl
public IPage<QgdInfo> queryListByUser(Page<QgdInfo> page, QueryWrapper<QgdInfo> queryWrapper) {
return baseMapper.queryListByUser(page, queryWrapper);
}
@Override
public List<NuInvoicingCgdMain> addCgdByUser(List<QgdInfo> qgdInfoList) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
List<NuInvoicingCgdMain> mapList = new ArrayList<>();
// 创建一个临时Map来按suppliersId分组
Map<String, List<QgdInfo>> tempMap = new HashMap<>();
for (QgdInfo qgdInfo : qgdInfoList) {
String suppliersId = qgdInfo.getSuppliersId();
if (!tempMap.containsKey(suppliersId)) {
tempMap.put(suppliersId, new ArrayList<>());
}
tempMap.get(suppliersId).add(qgdInfo);
}
String qgdDate = new SimpleDateFormat("yyyyMMdd").format(new Date());
String qgdXlh = "";
if(redisUtil.get("qgd"+qgdDate) != null){
qgdXlh = redisUtil.get("qgd"+qgdDate).toString();
}
int qgdXlhInt = 0;
if(StringUtils.isNotBlank(qgdXlh)){
qgdXlhInt = Integer.parseInt(qgdXlh);
}
// 将临时Map转换为需要的mapList结构
for (Map.Entry<String, List<QgdInfo>> entry : tempMap.entrySet()) {
qgdXlhInt++;
String suppliersId = entry.getKey();//供应商id
List<QgdInfo> infoList = entry.getValue();//请购的物料列表
ConfigSuppliersInfo ConfigSuppliersInfo = gysMapper.selectById(suppliersId);
String cgdNo = sysUser.getOrgCode() + new SimpleDateFormat("yyyyMMdd").format(new Date()) + String.format("%03d", qgdXlhInt);
//生产采购单主表
NuInvoicingCgdMain cgdMain = new NuInvoicingCgdMain();
cgdMain.setCgdNo(cgdNo);
cgdMain.setGysId(suppliersId);
cgdMain.setQgDate(new Date());
cgdMain.setQgBy(sysUser.getUsername());
cgdMain.setGysLxr(ConfigSuppliersInfo.getPersonInCharge());
cgdMain.setGysLxrdh(ConfigSuppliersInfo.getContactNumber());
cgdMain.setGysOpenId(ConfigSuppliersInfo.getWechartId());
cgdMain.setStatus("0");
cgdMain.setCgdType("0");
cgdMain.setGysName(ConfigSuppliersInfo.getSuppliersName());
// cgdMainMapper.insert(cgdMain);
List<NuInvoicingCgdInfo> cgdInfoList = new ArrayList<>();
BigDecimal totalPrice = new BigDecimal(0);
String qgdId = "";
//生产采购单详细
for(QgdInfo params:infoList){
qgdId = qgdId + params.getId() + ",";
NuInvoicingCgdInfo cgdInfo = new NuInvoicingCgdInfo();
QueryWrapper<BlWarehouseMaterialInfo> queryWrapper = new QueryWrapper<>();
List<BlWarehouseMaterialInfo> wlList = mterialInfoMapper.selectList(queryWrapper);
BlWarehouseMaterialInfo wlInfo = new BlWarehouseMaterialInfo();
if(wlList.size()>0){
wlInfo = wlList.get(0);
}
cgdInfo.setCgdId(cgdMain.getId());
cgdInfo.setWlId(params.getWlId());
cgdInfo.setWlMaterialNo(params.getWlMaterialNo());
cgdInfo.setWlName(params.getWlName());
cgdInfo.setWlUnits(params.getWlUnits());
cgdInfo.setWlSpecificationModel(params.getWlSpecificationModel());
cgdInfo.setWlUpperLimit(params.getWlUpperLimit());
cgdInfo.setWlLowerLimit(params.getWlLowerLimit());
cgdInfo.setSuppliersId(params.getSuppliersId());
cgdInfo.setSuppliersName(params.getSuppliersName());
cgdInfo.setPurchaseQuantity(params.getPurchaseQuantity());
cgdInfo.setBrand(params.getBrand());
cgdInfo.setNuId(params.getNuId());
cgdInfo.setProcurementPrice(params.getReferenceUnitPrice());
cgdInfo.setKcsl(wlInfo.getKcsl());
cgdInfo.setTagName(wlInfo.getTagName());
cgdInfo.setMaterialImg(wlInfo.getMaterialImg());
BigDecimal sl = new BigDecimal(params.getPurchaseQuantity());
BigDecimal dj = new BigDecimal(params.getReferenceUnitPrice());
BigDecimal wlzj = sl.multiply(dj);
cgdInfo.setTotalPrice(wlzj);
totalPrice = totalPrice.add(wlzj);
// cgdInfoMapper.insert(cgdInfo);
cgdInfoList.add(cgdInfo);
}
cgdMain.setQgdId(qgdId);
cgdMain.setCgdInfoList(cgdInfoList);
cgdMain.setTotalPrice(totalPrice);
mapList.add(cgdMain);
}
System.out.println(mapList);
return mapList;
}
@Override
public List<NuInvoicingCgdMain> saveCgd(List<NuInvoicingCgdMain> cgdMainList) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String qgdDate = new SimpleDateFormat("yyyyMMdd").format(new Date());
String qgdXlh = "";
if(redisUtil.get("qgd"+qgdDate) != null){
qgdXlh = redisUtil.get("qgd"+qgdDate).toString();
}
int qgdXlhInt = 0;
if(StringUtils.isNotBlank(qgdXlh)){
qgdXlhInt = Integer.parseInt(qgdXlh);
}
for (NuInvoicingCgdMain cgdMain : cgdMainList){
qgdXlhInt++;
String cgdNo = sysUser.getOrgCode() + new SimpleDateFormat("yyyyMMdd").format(new Date()) + String.format("%03d", qgdXlhInt);
cgdMain.setCgdNo(cgdNo);
cgdMainMapper.insert(cgdMain);
List<NuInvoicingCgdInfo> cgdInfoList = cgdMain.getCgdInfoList();
for (NuInvoicingCgdInfo cgdInfo : cgdInfoList){
cgdInfo.setCgdId(cgdMain.getId());
cgdInfoMapper.insert(cgdInfo);
}
String qgdId = cgdMain.getQgdId();
for(String id : qgdId.split(",")){
baseMapper.deleteById(id);
}
redisUtil.set("qgd"+qgdDate,qgdXlhInt);
}
return cgdMainList;
}
}

View File

@ -1,184 +0,0 @@
package com.nu.modules.qgd.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.nu.modules.ConfigMaterial.entity.ConfigMaterialInfo;
import com.nu.modules.ConfigMaterial.mapper.ConfigMaterialInfoMapper;
import com.nu.modules.cgd.entity.NuInvoicingCgdInfo;
import com.nu.modules.cgd.entity.NuInvoicingCgdMain;
import com.nu.modules.cgd.mapper.NuInvoicingCgdInfoMapper;
import com.nu.modules.cgd.mapper.NuInvoicingCgdMainMapper;
import com.nu.modules.cgd.service.INuInvoicingCgdMainService;
import com.nu.modules.configSuppliersInfo.entity.ConfigSuppliersInfo;
import com.nu.modules.configSuppliersInfo.mapper.ConfigSuppliersInfoMapper;
import com.nu.modules.configSuppliersInfo.service.IConfigSuppliersInfoService;
import com.nu.modules.qgd.entity.QgdInfo;
import com.nu.modules.qgd.entity.QgdMain;
import com.nu.modules.qgd.mapper.QgdInfoMapper;
import com.nu.modules.qgd.mapper.QgdMainMapper;
import com.nu.modules.qgd.service.IQgdMainService;
import com.nu.modules.warehouseMaterialInfo.entity.BlWarehouseMaterialInfo;
import com.nu.modules.warehouseMaterialInfo.mapper.BlWarehouseMaterialInfoMapper;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.RedisUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @Description: 请购单
* @Author: jeecg-boot
* @Date: 2025-06-26
* @Version: V1.0
*/
@Service
public class QgdMainServiceImpl extends ServiceImpl<QgdMainMapper, QgdMain> implements IQgdMainService {
@Autowired
private QgdInfoMapper qgdInfoMapper;
@Autowired
private NuInvoicingCgdMainMapper cgdMainMapper;
@Autowired
private NuInvoicingCgdInfoMapper cgdInfoMapper;
@Autowired
private ConfigSuppliersInfoMapper gysMapper;
@Autowired
private BlWarehouseMaterialInfoMapper mterialInfoMapper;
@Autowired
private RedisUtil redisUtil;
@Override
public List<NuInvoicingCgdMain> addCgdByUser(List<QgdInfo> qgdInfoList) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//查询当前人是否有请购数据
QueryWrapper<QgdMain> mainQueryWrapper = new QueryWrapper<>();
// mainQueryWrapper.eq("create_by",sysUser.getUsername());
mainQueryWrapper.eq("status",0);
QgdMain qgdMain = baseMapper.selectOne(mainQueryWrapper);
if(qgdMain == null){
return null;
}
//查询请购详细信息
// QueryWrapper<QgdInfo> queryWrapper = new QueryWrapper<>();
// queryWrapper.eq("main_id",qgdMain.getId());
// List<QgdInfo> qgdInfoList = qgdInfoMapper.selectList(queryWrapper);
List<NuInvoicingCgdMain> mapList = new ArrayList<>();
// 创建一个临时Map来按suppliersId分组
Map<String, List<QgdInfo>> tempMap = new HashMap<>();
for (QgdInfo qgdInfo : qgdInfoList) {
String suppliersId = qgdInfo.getSuppliersId();
if (!tempMap.containsKey(suppliersId)) {
tempMap.put(suppliersId, new ArrayList<>());
}
tempMap.get(suppliersId).add(qgdInfo);
}
String qgdDate = new SimpleDateFormat("yyyyMMdd").format(new Date());
String qgdXlh = "";
if(redisUtil.get("qgd"+qgdDate) != null){
qgdXlh = redisUtil.get("qgd"+qgdDate).toString();
}
int qgdXlhInt = 0;
if(StringUtils.isNotBlank(qgdXlh)){
qgdXlhInt = Integer.parseInt(qgdXlh);
}
// 将临时Map转换为需要的mapList结构
for (Map.Entry<String, List<QgdInfo>> entry : tempMap.entrySet()) {
qgdXlhInt++;
String suppliersId = entry.getKey();//供应商id
List<QgdInfo> infoList = entry.getValue();//请购的物料列表
ConfigSuppliersInfo ConfigSuppliersInfo = gysMapper.selectById(suppliersId);
String cgdNo = sysUser.getOrgCode() + new SimpleDateFormat("yyyyMMdd").format(new Date()) + String.format("%03d", qgdXlhInt);
//生产采购单主表
NuInvoicingCgdMain cgdMain = new NuInvoicingCgdMain();
cgdMain.setQgdId(qgdMain.getId());
cgdMain.setCgdNo(cgdNo);
cgdMain.setGysId(suppliersId);
cgdMain.setQgDate(new Date());
cgdMain.setQgBy(sysUser.getUsername());
cgdMain.setGysLxr(ConfigSuppliersInfo.getPersonInCharge());
cgdMain.setGysLxrdh(ConfigSuppliersInfo.getContactNumber());
cgdMain.setGysOpenId(ConfigSuppliersInfo.getWechartId());
cgdMain.setStatus("0");
cgdMain.setCgdType("0");
cgdMain.setGysName(ConfigSuppliersInfo.getSuppliersName());
// cgdMainMapper.insert(cgdMain);
List<NuInvoicingCgdInfo> cgdInfoList = new ArrayList<>();
BigDecimal totalPrice = new BigDecimal(0);
//生产采购单详细
for(QgdInfo params:infoList){
NuInvoicingCgdInfo cgdInfo = new NuInvoicingCgdInfo();
QueryWrapper<BlWarehouseMaterialInfo> queryWrapper = new QueryWrapper<>();
List<BlWarehouseMaterialInfo> wlList = mterialInfoMapper.selectList(queryWrapper);
BlWarehouseMaterialInfo wlInfo = new BlWarehouseMaterialInfo();
if(wlList.size()>0){
wlInfo = wlList.get(0);
}
// ConfigMaterialInfo configMaterialInfo = mterialInfoMapper.selectById(params.getWlId());
cgdInfo.setMainId(qgdMain.getId());
cgdInfo.setCgdId(cgdMain.getId());
cgdInfo.setWlId(params.getWlId());
cgdInfo.setWlMaterialNo(params.getWlMaterialNo());
cgdInfo.setWlName(params.getWlName());
cgdInfo.setWlUnits(params.getWlUnits());
cgdInfo.setWlSpecificationModel(params.getWlSpecificationModel());
cgdInfo.setWlUpperLimit(params.getWlUpperLimit());
cgdInfo.setWlLowerLimit(params.getWlLowerLimit());
cgdInfo.setSuppliersId(params.getSuppliersId());
cgdInfo.setSuppliersName(params.getSuppliersName());
cgdInfo.setPurchaseQuantity(params.getPurchaseQuantity());
cgdInfo.setBrand(params.getBrand());
cgdInfo.setNuId(params.getNuId());
cgdInfo.setProcurementPrice(params.getReferenceUnitPrice());
cgdInfo.setKcsl(wlInfo.getKcsl());
cgdInfo.setTagName(wlInfo.getTagName());
cgdInfo.setMaterialImg(wlInfo.getMaterialImg());
BigDecimal sl = new BigDecimal(params.getPurchaseQuantity());
BigDecimal dj = new BigDecimal(params.getReferenceUnitPrice());
BigDecimal wlzj = sl.multiply(dj);
cgdInfo.setTotalPrice(wlzj);
totalPrice = totalPrice.add(wlzj);
// cgdInfoMapper.insert(cgdInfo);
cgdInfoList.add(cgdInfo);
}
cgdMain.setCgdInfoList(cgdInfoList);
cgdMain.setTotalPrice(totalPrice);
mapList.add(cgdMain);
}
System.out.println(mapList);
return mapList;
}
@Override
public List<NuInvoicingCgdMain> saveCgd(List<NuInvoicingCgdMain> cgdMainList) {
for (NuInvoicingCgdMain cgdMain : cgdMainList){
cgdMainMapper.insert(cgdMain);
List<NuInvoicingCgdInfo> cgdInfoList = cgdMain.getCgdInfoList();
for (NuInvoicingCgdInfo cgdInfo : cgdInfoList){
cgdInfo.setCgdId(cgdMain.getId());
cgdInfoMapper.insert(cgdInfo);
}
}
return cgdMainList;
}
}