diff --git a/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingApi.java b/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingApi.java index 6e9a0a4..c1ecc17 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingApi.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingApi.java @@ -53,12 +53,19 @@ public class InvoicingApi { return Result.OK("添加成功!"); } + @ApiOperation(value="生成采购单预览信息", notes="生成采购单预览信息") + @AutoLog(value = "生成采购单预览信息") + @PostMapping(value = "/generatedPurchaseViewOrder") + public Result> generatedPurchaseViewOrder(@RequestBody List infoList, HttpServletRequest req) { + List list = invoicingApi.generatedPurchaseViewOrder(infoList); + return Result.OK(list); + } @ApiOperation(value="生成采购单信息", notes="生成采购单信息") @AutoLog(value = "生成采购单信息") @PostMapping(value = "/generatedPurchaseOrder") - public Result generatedPurchaseOrder(QgdInfoEntity qgdInfoEntity, HttpServletRequest req) { - invoicingApi.generatedPurchaseOrder(qgdInfoEntity); - return Result.OK("已提交采购信息"); + public Result> generatedPurchaserder(@RequestBody List cgdMainList, HttpServletRequest req) { + List list = invoicingApi.generatedPurchaserder(cgdMainList); + return Result.OK(list); } @ApiOperation(value = "查询采购单详细信息", notes = "查询采购单详细信息") diff --git a/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/IInvoicingApi.java b/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/IInvoicingApi.java index 56fd805..6bdaa50 100644 --- a/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/IInvoicingApi.java +++ b/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/IInvoicingApi.java @@ -15,7 +15,7 @@ public interface IInvoicingApi { void addShoppingCartList(List infoList); - String generatedPurchaseOrder(QgdInfoEntity qgdInfoEntity); + List generatedPurchaseViewOrder(List infoList); IPage 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 generatedPurchaserder(List cgdMainList); } diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/entity/NuInvoicingCgdInfo.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/entity/NuInvoicingCgdInfo.java index a457cda..fd56bca 100644 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/entity/NuInvoicingCgdInfo.java +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/entity/NuInvoicingCgdInfo.java @@ -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") diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/entity/NuInvoicingCgdMain.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/entity/NuInvoicingCgdMain.java index 294594a..fa94cf1 100644 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/entity/NuInvoicingCgdMain.java +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/entity/NuInvoicingCgdMain.java @@ -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) diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/service/impl/NuInvoicingCgdMainServiceImpl.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/service/impl/NuInvoicingCgdMainServiceImpl.java index 6467754..c6aff06 100644 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/service/impl/NuInvoicingCgdMainServiceImpl.java +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/service/impl/NuInvoicingCgdMainServiceImpl.java @@ -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 cgdInfoList = nuInvoicingCgdMain.getCgdInfoList(); List 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 queryShoppingCartList(Integer pageNo, Integer pageSize, QgdInfoEntity qgdInfoEntityDto, HttpServletRequest req) { // LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - //查询当前人是否有请购数据 - QueryWrapper 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 queryWrapper = QueryGenerator.initQueryWrapper(nuInvoicingQgdInfo, req.getParameterMap()); - queryWrapper.eq("main_id",qgdMain.getId()); Page page = new Page(pageNo, pageSize); List list = qgdInfoMapper.selectList(page, queryWrapper); //封装返回结果 @@ -211,38 +201,12 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl infoList) { LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - - QueryWrapper 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 queryWrapper2 = new QueryWrapper<>(); -// queryWrapper2.eq("create_by",sysUser.getUsername()); -// queryWrapper2.like("create_time",nowDate); - //查询当天是否有请购单 - List 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().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 generatedPurchaseViewOrder(List infoEntityList) { LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - //查询当前人是否有请购数据 - QueryWrapper 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 queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("main_id",qgdMain.getId()); - List qgdInfoList = qgdInfoMapper.selectList(queryWrapper); - List> mapList = new ArrayList<>(); + List mapList = new ArrayList<>(); // 创建一个临时Map来按suppliersId分组 Map> 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> entry : tempMap.entrySet()) { - Map map = new HashMap<>(); + qgdXlhInt++; String suppliersId = entry.getKey();//供应商id List 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 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 queryWrapper = new QueryWrapper<>(); + List 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 mapList2 = BeanUtil.copyToList(mapList,CgdMainEntity.class); + return mapList2; - return "1"; + } + + @Override + public List generatedPurchaserder(List 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 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 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 diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/controller/QgdInfoController.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/controller/QgdInfoController.java index efd750d..08d2056 100644 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/controller/QgdInfoController.java +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/controller/QgdInfoController.java @@ -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 @Autowired private IQgdInfoService nuInvoicingQgdInfoService; - @Autowired - private IQgdMainService nuInvoicingQgdMainService; @Autowired private INuInvoicingCgdMainService nuInvoicingCgdMainService; @Autowired @@ -152,17 +141,8 @@ public class QgdInfoController extends JeecgController @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { // LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - //查询当前人是否有请购数据 - QueryWrapper 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 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 page = new Page(pageNo, pageSize); IPage pageList = nuInvoicingQgdInfoService.queryListByUser(page, queryWrapper); @@ -173,7 +153,7 @@ public class QgdInfoController extends JeecgController @ApiOperation(value="生成采购单信息", notes="生成采购单信息") @PostMapping(value = "/addCgdByUser") public Result> addCgd(@RequestBody List qgdInfoList, HttpServletRequest req) { - List list = nuInvoicingQgdMainService.addCgdByUser(qgdInfoList); + List list = nuInvoicingQgdInfoService.addCgdByUser(qgdInfoList); return Result.OK(list); } @@ -181,7 +161,7 @@ public class QgdInfoController extends JeecgController @ApiOperation(value="生成采购单信息", notes="生成采购单信息") @PostMapping(value = "/saveCgd") public Result> saveCgd(@RequestBody List cgdMainList, HttpServletRequest req) { - List list = nuInvoicingQgdMainService.saveCgd(cgdMainList); + List list = nuInvoicingQgdInfoService.saveCgd(cgdMainList); return Result.OK(list); } } diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/controller/QgdMainController.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/controller/QgdMainController.java deleted file mode 100644 index 78a8936..0000000 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/controller/QgdMainController.java +++ /dev/null @@ -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 { - @Autowired - private IQgdMainService nuInvoicingQgdMainService; - - /** - * 分页列表查询 - * - * @param nuInvoicingQgdMain - * @param pageNo - * @param pageSize - * @param req - * @return - */ - //@AutoLog(value = "请购单-分页列表查询") - @ApiOperation(value="请购单-分页列表查询", notes="请购单-分页列表查询") - @GetMapping(value = "/list") - public Result> queryPageList(QgdMain nuInvoicingQgdMain, - @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, - @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, - HttpServletRequest req) { - QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(nuInvoicingQgdMain, req.getParameterMap()); - Page page = new Page(pageNo, pageSize); - IPage 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 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 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 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 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 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); - } - -} diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/entity/QgdInfo.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/entity/QgdInfo.java index e92a597..001fe7a 100644 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/entity/QgdInfo.java +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/entity/QgdInfo.java @@ -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") diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/entity/QgdMain.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/entity/QgdMain.java deleted file mode 100644 index 19db8cc..0000000 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/entity/QgdMain.java +++ /dev/null @@ -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; -} diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/mapper/QgdMainMapper.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/mapper/QgdMainMapper.java deleted file mode 100644 index 959340b..0000000 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/mapper/QgdMainMapper.java +++ /dev/null @@ -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 { - -} diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/mapper/xml/QgdMainMapper.xml b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/mapper/xml/QgdMainMapper.xml deleted file mode 100644 index 50af4b3..0000000 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/mapper/xml/QgdMainMapper.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/service/IQgdInfoService.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/service/IQgdInfoService.java index 3d1af34..0f7929a 100644 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/service/IQgdInfoService.java +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/service/IQgdInfoService.java @@ -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 { void addList(List infoList); IPage queryListByUser(Page page, QueryWrapper queryWrapper); + + List saveCgd(List cgdMainList); + + List addCgdByUser(List qgdInfoList); } diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/service/IQgdMainService.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/service/IQgdMainService.java deleted file mode 100644 index f5ecbaa..0000000 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/service/IQgdMainService.java +++ /dev/null @@ -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 { - - List addCgdByUser(List qgdInfoList); - - List saveCgd(List cgdMainList); -} diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/service/impl/QgdInfoServiceImpl.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/service/impl/QgdInfoServiceImpl.java index 5aef8b6..2e00b40 100644 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/service/impl/QgdInfoServiceImpl.java +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/service/impl/QgdInfoServiceImpl.java @@ -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 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 infoList) { LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); @@ -68,4 +85,134 @@ public class QgdInfoServiceImpl extends ServiceImpl impl public IPage queryListByUser(Page page, QueryWrapper queryWrapper) { return baseMapper.queryListByUser(page, queryWrapper); } + + @Override + public List addCgdByUser(List qgdInfoList) { + + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + List mapList = new ArrayList<>(); + // 创建一个临时Map来按suppliersId分组 + Map> 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> entry : tempMap.entrySet()) { + qgdXlhInt++; + String suppliersId = entry.getKey();//供应商id + List 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 cgdInfoList = new ArrayList<>(); + BigDecimal totalPrice = new BigDecimal(0); + String qgdId = ""; + //生产采购单详细 + for(QgdInfo params:infoList){ + qgdId = qgdId + params.getId() + ","; + NuInvoicingCgdInfo cgdInfo = new NuInvoicingCgdInfo(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + List 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 saveCgd(List 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 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; + } } diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/service/impl/QgdMainServiceImpl.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/service/impl/QgdMainServiceImpl.java deleted file mode 100644 index a718dc3..0000000 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qgd/service/impl/QgdMainServiceImpl.java +++ /dev/null @@ -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 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 addCgdByUser(List qgdInfoList) { - - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - //查询当前人是否有请购数据 - QueryWrapper mainQueryWrapper = new QueryWrapper<>(); -// mainQueryWrapper.eq("create_by",sysUser.getUsername()); - mainQueryWrapper.eq("status",0); - QgdMain qgdMain = baseMapper.selectOne(mainQueryWrapper); - if(qgdMain == null){ - return null; - } - //查询请购详细信息 -// QueryWrapper queryWrapper = new QueryWrapper<>(); -// queryWrapper.eq("main_id",qgdMain.getId()); -// List qgdInfoList = qgdInfoMapper.selectList(queryWrapper); - - List mapList = new ArrayList<>(); - // 创建一个临时Map来按suppliersId分组 - Map> 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> entry : tempMap.entrySet()) { - qgdXlhInt++; - String suppliersId = entry.getKey();//供应商id - List 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 cgdInfoList = new ArrayList<>(); - BigDecimal totalPrice = new BigDecimal(0); - //生产采购单详细 - for(QgdInfo params:infoList){ - NuInvoicingCgdInfo cgdInfo = new NuInvoicingCgdInfo(); - QueryWrapper queryWrapper = new QueryWrapper<>(); - List 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 saveCgd(List cgdMainList) { - - for (NuInvoicingCgdMain cgdMain : cgdMainList){ - cgdMainMapper.insert(cgdMain); - List cgdInfoList = cgdMain.getCgdInfoList(); - for (NuInvoicingCgdInfo cgdInfo : cgdInfoList){ - cgdInfo.setCgdId(cgdMain.getId()); - cgdInfoMapper.insert(cgdInfo); - } - } - - return cgdMainList; - } -}