修改请购业务流程

This commit is contained in:
yangjun 2025-10-17 13:17:12 +08:00
parent 2f3e41dd38
commit 03e13bb23f
9 changed files with 109 additions and 60 deletions

View File

@ -94,7 +94,7 @@ public class InvoicingApi {
@ApiOperation(value="修改库房启用停用", notes="修改库房启用停用")
@AutoLog(value = "修改库房启用停用")
@PostMapping(value = "/updateKfstatus")
public Result<String> updateKfstatus(NuBaseInfoEntity nuBaseInfoEntity) {
public Result<String> updateKfstatus(@RequestBody NuBaseInfoEntity nuBaseInfoEntity) {
invoicingApi.updateKfstatus(nuBaseInfoEntity);
return Result.OK("修改成功!");
}

View File

@ -106,5 +106,6 @@ public class MaterialInfoEntity implements Serializable {
private String nuId;//库房id
private java.lang.String wlParamInfo;
private java.lang.String isWaring;//是否预警 1 0
}

View File

@ -4,10 +4,8 @@ import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.*;
import org.jeecg.common.constant.ProvinceCityArea;
import org.jeecg.common.util.SpringContextUtils;
import lombok.Data;
@ -129,4 +127,13 @@ public class NuInvoicingCgdInfo implements Serializable {
@Excel(name = "到货单间", width = 15)
@ApiModelProperty(value = "到货单间")
private String arrivalPrice;
@TableField(exist = false)
private String kcsl;
@TableField(exist = false)
private String tagName;
@TableField(exist = false)
private String materialImg;
@TableField(exist = false)
private BigDecimal totalPrice;
}

View File

@ -129,7 +129,13 @@ public class NuInvoicingCgdMain implements Serializable {
@Excel(name = "审核备注", width = 15)
@ApiModelProperty(value = "审核备注")
private String content;
/**供应商名称*/
private String gysName;
@TableField(exist = false)
private BigDecimal totalPrice;
/**采购的物料信息*/
@TableField(exist = false)
private List<NuInvoicingCgdInfo> cgdInfoList;
}

View File

@ -172,6 +172,9 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
queryWrapper.eq(StringUtils.isNotBlank(warehouseMaterialInfo.getCategoryId()),"category_id",warehouseMaterialInfo.getCategoryId());
queryWrapper.eq(StringUtils.isNotBlank(warehouseMaterialInfo.getTypeId()),"type_id",warehouseMaterialInfo.getTypeId());
queryWrapper.eq(StringUtils.isNotBlank(warehouseMaterialInfo.getMedicationId()),"medication_id",warehouseMaterialInfo.getMedicationId());
if(StringUtils.isNotBlank(materialInfoEntityDto.getIsWaring()) && "1".equals(materialInfoEntityDto.getIsWaring())){
queryWrapper.apply("kcsl <= lower_limit");
}
Page<BlWarehouseMaterialInfo> page = new Page<>(pageNo, pageSize);
List<BlWarehouseMaterialInfo> list = warehouseMaterialInfoMapper.selectList(page,queryWrapper);
IPage<MaterialInfoEntity> entityPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal());

View File

@ -5,6 +5,7 @@ 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;
@ -171,8 +172,16 @@ public class QgdInfoController extends JeecgController<QgdInfo, IQgdInfoService>
@ApiOperation(value="生成采购单信息", notes="生成采购单信息")
@PostMapping(value = "/addCgdByUser")
public Result<String> addCgd(QgdInfo nuInvoicingQgdInfo, HttpServletRequest req) {
nuInvoicingQgdMainService.addCgdByUser(nuInvoicingQgdInfo);
return Result.OK("已提交采购信息");
public Result<List<NuInvoicingCgdMain>> addCgd(@RequestBody List<QgdInfo> qgdInfoList, HttpServletRequest req) {
List<NuInvoicingCgdMain> list = nuInvoicingQgdMainService.addCgdByUser(qgdInfoList);
return Result.OK(list);
}
@ApiOperation(value="生成采购单信息", notes="生成采购单信息")
@PostMapping(value = "/saveCgd")
public Result<List<NuInvoicingCgdMain>> saveCgd(@RequestBody List<NuInvoicingCgdMain> cgdMainList, HttpServletRequest req) {
List<NuInvoicingCgdMain> list = nuInvoicingQgdMainService.saveCgd(cgdMainList);
return Result.OK(list);
}
}

View File

@ -1,9 +1,12 @@
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
@ -12,5 +15,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IQgdMainService extends IService<QgdMain> {
String addCgdByUser(QgdInfo nuInvoicingQgdInfo);
List<NuInvoicingCgdMain> addCgdByUser(List<QgdInfo> qgdInfoList);
List<NuInvoicingCgdMain> saveCgd(List<NuInvoicingCgdMain> cgdMainList);
}

View File

@ -33,8 +33,6 @@ import java.util.List;
@Service
public class QgdInfoServiceImpl extends ServiceImpl<QgdInfoMapper, QgdInfo> implements IQgdInfoService {
@Autowired
private IQgdMainService nuInvoicingQgdMainService;
@Autowired
private IConfigMaterialInfoService configMaterialInfoService;
@Autowired
@ -43,38 +41,10 @@ public class QgdInfoServiceImpl extends ServiceImpl<QgdInfoMapper, QgdInfo> impl
@Override
public void addList(List<QgdInfo> infoList) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
QueryWrapper<QgdMain> queryWrapper = new QueryWrapper<>();
// queryWrapper.eq("create_by",sysUser.getUsername());
queryWrapper.eq("status",0);
QgdMain qgdMain = nuInvoicingQgdMainService.getOne(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 = nuInvoicingQgdMainService.list(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);
nuInvoicingQgdMainService.save(qgdMain);
}
for (QgdInfo info : infoList) {
if(info.getPurchaseQuantity()!=null && info.getPurchaseQuantity()>0){
//获取物料基础信息
ConfigMaterialInfo ConfigMaterialInfo = configMaterialInfoService.getById(info.getWlId());
//获取物料上限下限
BlWarehouseMaterialInfo warehouseMaterialInfo = blWarehouseMaterialInfoService.getOne(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());

View File

@ -1,6 +1,8 @@
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;
@ -14,16 +16,20 @@ 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.*;
@ -46,8 +52,14 @@ public class QgdMainServiceImpl extends ServiceImpl<QgdMainMapper, QgdMain> impl
@Autowired
private ConfigSuppliersInfoMapper gysMapper;
@Autowired
private BlWarehouseMaterialInfoMapper mterialInfoMapper;
@Autowired
private RedisUtil redisUtil;
@Override
public String addCgdByUser(QgdInfo nuInvoicingQgdInfo) {
public List<NuInvoicingCgdMain> addCgdByUser(List<QgdInfo> qgdInfoList) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//查询当前人是否有请购数据
@ -56,14 +68,14 @@ public class QgdMainServiceImpl extends ServiceImpl<QgdMainMapper, QgdMain> impl
mainQueryWrapper.eq("status",0);
QgdMain qgdMain = baseMapper.selectOne(mainQueryWrapper);
if(qgdMain == null){
return "0";
return null;
}
//查询请购详细信息
QueryWrapper<QgdInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("main_id",qgdMain.getId());
List<QgdInfo> qgdInfoList = qgdInfoMapper.selectList(queryWrapper);
// 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<>();
@ -75,14 +87,24 @@ public class QgdMainServiceImpl extends ServiceImpl<QgdMainMapper, QgdMain> impl
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();
@ -96,10 +118,20 @@ public class QgdMainServiceImpl extends ServiceImpl<QgdMainMapper, QgdMain> impl
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);
//生产采购单详细
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());
@ -115,22 +147,38 @@ public class QgdMainServiceImpl extends ServiceImpl<QgdMainMapper, QgdMain> impl
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.setCgdInfoList(cgdInfoList);
cgdMain.setTotalPrice(totalPrice);
mapList.add(cgdMain);
}
System.out.println(mapList);
//修改请购单状态-变成已经下单
QgdMain qgdMain1 = new QgdMain();
qgdMain1.setId(qgdMain.getId());
qgdMain1.setStatus(1);
baseMapper.updateById(qgdMain1);
return mapList;
}
return "1";
@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;
}
}