添加接口

This commit is contained in:
yangjun 2025-11-14 14:00:53 +08:00
parent 9fc119c1a7
commit 35e334d0b4
12 changed files with 504 additions and 0 deletions

View File

@ -279,4 +279,39 @@ public class InvoicingApi {
return Result.OK(pageList);
}
@ApiOperation(value="请购单-随行单-添加", notes="请购单-随行单-添加")
@AutoLog(value = "请购单-随行单-添加")
@PostMapping(value = "/addSxd")
public Result<String> addSxd(@RequestBody CgdSxdEntity cgdSxdEntityDto) {
if(StringUtils.isEmpty(cgdSxdEntityDto.getCgdId())){
return Result.error("请选择采购单");
}
if(StringUtils.isEmpty(cgdSxdEntityDto.getSxdPic())){
return Result.error("请上传随行单图片");
}
invoicingApi.addSxd(cgdSxdEntityDto);
return Result.OK("添加成功!");
}
@ApiOperation(value = "查询随行单照片集合", notes = "查询随行单照片集合")
@GetMapping(value = "/querySxdList")
public Result<IPage<CgdSxdEntity>> querySxdList(CgdSxdEntity cgdSxdEntityDto,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
IPage<CgdSxdEntity> pageList = invoicingApi.querySxdList(pageNo, pageSize, cgdSxdEntityDto,req);
return Result.OK(pageList);
}
@ApiOperation(value="库存预警添加全部物料", notes="库存预警添加全部物料")
@AutoLog(value = "库存预警添加全部物料")
@PostMapping(value = "/addWaringAll")
public Result<String> addWaringAll() {
CgdInfoEntity cgdInfoEntityDto = new CgdInfoEntity();
String result = invoicingApi.addWaringAll(cgdInfoEntityDto);
return Result.OK("添加成功!");
}
}

View File

@ -0,0 +1,47 @@
package com.nu.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* @Description: 进销存-采购单-随行单
* @Author: jeecg-boot
* @Date: 2025-11-14
* @Version: V1.0
*/
@Data
public class CgdSxdEntity implements Serializable {
/**id*/
private String id;
/**创建人*/
private String createBy;
/**创建时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**修改人*/
private String updateBy;
/**修改时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**采购单*/
@Dict(dictTable = "nu_invoicing_cgd_main", dicText = "cgd_no", dicCode = "id")
private String cgdId;
/**随行单*/
private String sxdPic;
}

View File

@ -79,8 +79,11 @@ public class QgdInfoEntity implements Serializable {
private String kcsl;
private String wlParamInfo;
@Dict(dicCode = "id", dictTable = "nu_config_material_category", dicText = "category_name")
private String categoryId;
@Dict(dicCode = "id", dictTable = "nu_config_material_type", dicText = "type_name")
private String typeId;
@Dict(dictTable = "nu_config_material_medication", dicText = "medication_name", dicCode = "id")
private String medicationId;
private String materialImg;
private String tagType;

View File

@ -64,4 +64,10 @@ public interface IInvoicingApi {
List<Map<String,Object>> getCgrList(CgdMainEntity cgdMainEntityDto);
IPage<WarehouseMaterialCrkInfoEntity> queryJhzpList(Integer pageNo, Integer pageSize, WarehouseMaterialCrkInfoEntity warehouseMaterialCrkInfoEntityDto, HttpServletRequest req);
String addSxd(CgdSxdEntity cgdSxdEntityDto);
IPage<CgdSxdEntity> querySxdList(Integer pageNo, Integer pageSize, CgdSxdEntity cgdSxdEntityDto, HttpServletRequest req);
String addWaringAll(CgdInfoEntity cgdInfoEntityDto);
}

View File

@ -0,0 +1,180 @@
package com.nu.modules.cgd.controller;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
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 org.jeecg.common.system.query.QueryRuleEnum;
import org.jeecg.common.util.oConvertUtils;
import com.nu.modules.cgd.entity.NuInvoicingCgdSxd;
import com.nu.modules.cgd.service.INuInvoicingCgdSxdService;
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.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
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.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
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-11-14
* @Version: V1.0
*/
@Api(tags="进销存-采购单-随行单")
@RestController
@RequestMapping("/cgd/nuInvoicingCgdSxd")
@Slf4j
public class NuInvoicingCgdSxdController extends JeecgController<NuInvoicingCgdSxd, INuInvoicingCgdSxdService> {
@Autowired
private INuInvoicingCgdSxdService nuInvoicingCgdSxdService;
/**
* 分页列表查询
*
* @param nuInvoicingCgdSxd
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "进销存-采购单-随行单-分页列表查询")
@ApiOperation(value="进销存-采购单-随行单-分页列表查询", notes="进销存-采购单-随行单-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<NuInvoicingCgdSxd>> queryPageList(NuInvoicingCgdSxd nuInvoicingCgdSxd,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<NuInvoicingCgdSxd> queryWrapper = QueryGenerator.initQueryWrapper(nuInvoicingCgdSxd, req.getParameterMap());
Page<NuInvoicingCgdSxd> page = new Page<NuInvoicingCgdSxd>(pageNo, pageSize);
IPage<NuInvoicingCgdSxd> pageList = nuInvoicingCgdSxdService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 添加
*
* @param nuInvoicingCgdSxd
* @return
*/
@AutoLog(value = "进销存-采购单-随行单-添加")
@ApiOperation(value="进销存-采购单-随行单-添加", notes="进销存-采购单-随行单-添加")
@RequiresPermissions("cgd:nu_invoicing_cgd_sxd:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody NuInvoicingCgdSxd nuInvoicingCgdSxd) {
nuInvoicingCgdSxdService.save(nuInvoicingCgdSxd);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param nuInvoicingCgdSxd
* @return
*/
@AutoLog(value = "进销存-采购单-随行单-编辑")
@ApiOperation(value="进销存-采购单-随行单-编辑", notes="进销存-采购单-随行单-编辑")
@RequiresPermissions("cgd:nu_invoicing_cgd_sxd:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody NuInvoicingCgdSxd nuInvoicingCgdSxd) {
nuInvoicingCgdSxdService.updateById(nuInvoicingCgdSxd);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "进销存-采购单-随行单-通过id删除")
@ApiOperation(value="进销存-采购单-随行单-通过id删除", notes="进销存-采购单-随行单-通过id删除")
@RequiresPermissions("cgd:nu_invoicing_cgd_sxd:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
nuInvoicingCgdSxdService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "进销存-采购单-随行单-批量删除")
@ApiOperation(value="进销存-采购单-随行单-批量删除", notes="进销存-采购单-随行单-批量删除")
@RequiresPermissions("cgd:nu_invoicing_cgd_sxd:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.nuInvoicingCgdSxdService.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<NuInvoicingCgdSxd> queryById(@RequestParam(name="id",required=true) String id) {
NuInvoicingCgdSxd nuInvoicingCgdSxd = nuInvoicingCgdSxdService.getById(id);
if(nuInvoicingCgdSxd==null) {
return Result.error("未找到对应数据");
}
return Result.OK(nuInvoicingCgdSxd);
}
/**
* 导出excel
*
* @param request
* @param nuInvoicingCgdSxd
*/
@RequiresPermissions("cgd:nu_invoicing_cgd_sxd:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, NuInvoicingCgdSxd nuInvoicingCgdSxd) {
return super.exportXls(request, nuInvoicingCgdSxd, NuInvoicingCgdSxd.class, "进销存-采购单-随行单");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequiresPermissions("cgd:nu_invoicing_cgd_sxd:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, NuInvoicingCgdSxd.class);
}
}

View File

@ -0,0 +1,66 @@
package com.nu.modules.cgd.entity;
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 org.jeecg.common.constant.ProvinceCityArea;
import org.jeecg.common.util.SpringContextUtils;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: 进销存-采购单-随行单
* @Author: jeecg-boot
* @Date: 2025-11-14
* @Version: V1.0
*/
@Data
@TableName("nu_invoicing_cgd_sxd")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="nu_invoicing_cgd_sxd对象", description="进销存-采购单-随行单")
public class NuInvoicingCgdSxd implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private java.lang.String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建时间")
private java.util.Date createTime;
/**修改人*/
@ApiModelProperty(value = "修改人")
private java.lang.String updateBy;
/**修改时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "修改时间")
private java.util.Date updateTime;
/**采购单*/
@Excel(name = "采购单", width = 15, dictTable = "nu_invoicing_cgd_main", dicText = "cgd_no", dicCode = "id")
@Dict(dictTable = "nu_invoicing_cgd_main", dicText = "cgd_no", dicCode = "id")
@ApiModelProperty(value = "采购单")
private java.lang.String cgdId;
/**随行单*/
@Excel(name = "随行单", width = 15)
@ApiModelProperty(value = "随行单")
private java.lang.String sxdPic;
}

View File

@ -0,0 +1,17 @@
package com.nu.modules.cgd.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.nu.modules.cgd.entity.NuInvoicingCgdSxd;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 进销存-采购单-随行单
* @Author: jeecg-boot
* @Date: 2025-11-14
* @Version: V1.0
*/
public interface NuInvoicingCgdSxdMapper extends BaseMapper<NuInvoicingCgdSxd> {
}

View File

@ -0,0 +1,5 @@
<?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.cgd.mapper.NuInvoicingCgdSxdMapper">
</mapper>

View File

@ -0,0 +1,14 @@
package com.nu.modules.cgd.service;
import com.nu.modules.cgd.entity.NuInvoicingCgdSxd;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description: 进销存-采购单-随行单
* @Author: jeecg-boot
* @Date: 2025-11-14
* @Version: V1.0
*/
public interface INuInvoicingCgdSxdService extends IService<NuInvoicingCgdSxd> {
}

View File

@ -11,9 +11,11 @@ import com.nu.modules.ConfigMaterial.mapper.ConfigMaterialInfoMapper;
import com.nu.modules.ConfigMaterial.service.IConfigMaterialCategoryService;
import com.nu.modules.cgd.entity.NuInvoicingCgdInfo;
import com.nu.modules.cgd.entity.NuInvoicingCgdMain;
import com.nu.modules.cgd.entity.NuInvoicingCgdSxd;
import com.nu.modules.cgd.entity.NuWarehouseMaterialCrkInfo;
import com.nu.modules.cgd.mapper.NuInvoicingCgdInfoMapper;
import com.nu.modules.cgd.mapper.NuInvoicingCgdMainMapper;
import com.nu.modules.cgd.mapper.NuInvoicingCgdSxdMapper;
import com.nu.modules.cgd.mapper.NuWarehouseMaterialCrkInfoMapper;
import com.nu.modules.cgd.service.INuInvoicingCgdMainService;
import com.nu.modules.configSuppliersInfo.entity.ConfigSuppliersInfo;
@ -82,6 +84,9 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
@Autowired
private RedisUtil redisUtil;
@Autowired
private NuInvoicingCgdSxdMapper sxdMapper;
@Override
public void rukuInfo(NuInvoicingCgdMain nuInvoicingCgdMain) {
@ -706,4 +711,108 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
return entityPage;
}
@Override
public String addSxd(CgdSxdEntity cgdSxdEntityDto) {
String sxdPic = cgdSxdEntityDto.getSxdPic();
if (StringUtils.isNotBlank(sxdPic)){
String[] sxdPicArr = sxdPic.split(",");
for(String sxdPicParam : sxdPicArr){
NuInvoicingCgdSxd cgdSxd = new NuInvoicingCgdSxd();
cgdSxd.setCgdId(cgdSxdEntityDto.getCgdId());
cgdSxd.setSxdPic(sxdPicParam);
sxdMapper.insert(cgdSxd);
}
}
return "1";
}
@Override
public IPage<CgdSxdEntity> querySxdList(Integer pageNo, Integer pageSize, CgdSxdEntity cgdSxdEntityDto, HttpServletRequest req) {
NuInvoicingCgdSxd nuInvoicingCgdSxd = new NuInvoicingCgdSxd();
BeanUtils.copyProperties(cgdSxdEntityDto,nuInvoicingCgdSxd);
QueryWrapper<NuInvoicingCgdSxd> queryWrapper = new QueryWrapper<>();
Page<NuInvoicingCgdSxd> page = new Page<>(pageNo, pageSize);
queryWrapper.eq("cgd_id",cgdSxdEntityDto.getCgdId());
List<NuInvoicingCgdSxd> list = sxdMapper.selectList(page,queryWrapper);
IPage<CgdSxdEntity> entityPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
entityPage.setRecords(BeanUtil.copyToList(list, CgdSxdEntity.class));
return entityPage;
}
@Override
public String addWaringAll(CgdInfoEntity cgdInfoEntityDto) {
QueryWrapper<BlWarehouseMaterialInfo> queryWrapper = new QueryWrapper<>() ;
queryWrapper.apply("kcsl <= lower_limit");//库存小于下限的数据
queryWrapper.eq("del_flag","0");//查询未删除的数据
queryWrapper.eq("iz_enabled","0");//查询启用的数据
queryWrapper.eq("isAdd","0");//查询未在购物车里的数据
//库存预警数据
List<BlWarehouseMaterialInfo> list = mterialInfoMapper.selectList(queryWrapper);
//供应商集合
List<ConfigSuppliersInfo> gysList = gysMapper.selectList(new QueryWrapper<ConfigSuppliersInfo>().eq("del_flag","0"));
for(BlWarehouseMaterialInfo info : list){
String wlupperlimit = info.getUpperLimit()+"";
String kcsl = info.getKcsl();
QgdInfo qgdInfoIns = new QgdInfo();
qgdInfoIns.setWlId(info.getWlId());
qgdInfoIns.setWlMaterialNo(info.getMaterialNo());
qgdInfoIns.setWlName(info.getMaterialName());
qgdInfoIns.setWlSpecificationModel(info.getSpecificationModel());
qgdInfoIns.setWlUpperLimit(info.getUpperLimit());
qgdInfoIns.setWlLowerLimit(info.getLowerLimit());
String gysId = info.getSuppliers();
String gysName = "";
//如果供应商为空则跳出循环不添加物料了
if(StringUtils.isEmpty(gysId)){
break;
}else{
//如果是多个供应商获取第一个供应商
if(gysId.indexOf(",")>-1){
gysId = gysId.split(",")[0];
}
for(ConfigSuppliersInfo gys : gysList){
if(gys.getId().equals(gysId)){
gysName = gys.getSuppliersName();
break;
}
}
}
//如果没有匹配的供应商则跳出循环不添加物料了
if(StringUtils.isEmpty(gysName)){
break;
}
qgdInfoIns.setSuppliersId(info.getSuppliers().split(",")[0]);
qgdInfoIns.setSuppliersName(gysName);
qgdInfoIns.setPurchaseQuantity(0);
qgdInfoIns.setNuId(info.getNuId());
int qgzs = Integer.parseInt(wlupperlimit) - Integer.parseInt(kcsl);//请购总数
int qgsl = 0;
if(StringUtils.equals("1",info.getMultiUnitType())){
qgdInfoIns.setWlUnits(info.getOneUnit());
qgdInfoIns.setReferenceUnitPrice(info.getOneUnitPrice());
qgdInfoIns.setDhbl(info.getOneUnitProportion()+"");
qgsl = qgzs / info.getOneUnitProportion();
}else if(StringUtils.equals("2",info.getMultiUnitType())){
qgdInfoIns.setWlUnits(info.getTwoUnit());
qgdInfoIns.setReferenceUnitPrice(info.getTwoUnitPrice());
qgdInfoIns.setDhbl(info.getTwoUnitProportion()+"");
qgsl = qgzs / info.getTwoUnitProportion();
} else if(StringUtils.equals("3",info.getMultiUnitType())){
BigDecimal decimal = new BigDecimal(info.getReferenceUnitPrice());
qgdInfoIns.setWlUnits(info.getMaterialUnits());
qgdInfoIns.setReferenceUnitPrice(decimal);
qgdInfoIns.setDhbl("1");
qgsl = qgzs ;
}
//如果请购数量不足1个则跳出循环不添加物料了
if(qgsl == 0){
break;
}
qgdInfoIns.setPurchaseQuantity(qgsl);
qgdInfoMapper.insert(qgdInfoIns);
}
return "1";
}
}

View File

@ -0,0 +1,19 @@
package com.nu.modules.cgd.service.impl;
import com.nu.modules.cgd.entity.NuInvoicingCgdSxd;
import com.nu.modules.cgd.mapper.NuInvoicingCgdSxdMapper;
import com.nu.modules.cgd.service.INuInvoicingCgdSxdService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 进销存-采购单-随行单
* @Author: jeecg-boot
* @Date: 2025-11-14
* @Version: V1.0
*/
@Service
public class NuInvoicingCgdSxdServiceImpl extends ServiceImpl<NuInvoicingCgdSxdMapper, NuInvoicingCgdSxd> implements INuInvoicingCgdSxdService {
}

View File

@ -113,10 +113,13 @@ public class QgdInfo implements Serializable {
@TableField(exist = false)
private String wlParamInfo;
@TableField(exist = false)
@Dict(dicCode = "id", dictTable = "nu_config_material_category", dicText = "category_name")
private String categoryId;
@TableField(exist = false)
@Dict(dicCode = "id", dictTable = "nu_config_material_type", dicText = "type_name")
private String typeId;
@TableField(exist = false)
@Dict(dictTable = "nu_config_material_medication", dicText = "medication_name", dicCode = "id")
private String medicationId;
@TableField(exist = false)
private String materialImg;