diff --git a/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingPddApi.java b/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingPddApi.java new file mode 100644 index 00000000..0d12f8ce --- /dev/null +++ b/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingPddApi.java @@ -0,0 +1,105 @@ +package com.nu.modules.pad.invoicing.api; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.nu.entity.*; +import com.nu.modules.invoicing.api.IInvoicingApi; +import com.nu.modules.invoicing.api.IPddApi; +import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang.StringUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 采购单pad接口 + */ +@RestController +@RequestMapping("/api/pad/invoicing/pdd") +public class InvoicingPddApi { + + + @Autowired + private IPddApi pddApi; + + @ApiOperation(value = "盘点单-查询单据信息", notes = "盘点单-查询单据信息") + @GetMapping(value = "/queryPddList") + public Result> queryPddList(InvoicingPddMainEntity invoicingPddMainEntity, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + IPage pageList = pddApi.queryPddList(pageNo, pageSize, invoicingPddMainEntity,req); + return Result.OK(pageList); + } + + + + @ApiOperation(value="盘点单-盘点信息-添加", notes="盘点单-盘点信息-添加") + @AutoLog(value = "盘点单-盘点信息-添加",clientType="app", operateType = 2) + @PostMapping(value = "/addPddMain") + public Result addPddMain(@RequestBody InvoicingPddMainEntity invoicingPddMainEntity) { + if(StringUtils.isBlank(invoicingPddMainEntity.getNuId())){ + return Result.error("参数错误,请选择库房"); + } + Map result = pddApi.addPddMain(invoicingPddMainEntity); + if (StringUtils.equals("true",result.get("success").toString())){ + return Result.OK(result.get("message")); + }else{ + return Result.error(result.get("message").toString()); + } + } + + @ApiOperation(value = "盘点单-查询盘点单详细信息", notes = "盘点单-查询盘点单详细信息") + @GetMapping(value = "/queryPddInfoList") + public Result> queryPddInfoList(InvoicingPddInfoEntity invoicingPddInfoEntity, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + IPage pageList = pddApi.queryPddInfoList(pageNo, pageSize, invoicingPddInfoEntity,req); + return Result.OK(pageList); + } + + @ApiOperation(value="盘点单-修改盘点单物料的盘点信息", notes="盘点单-修改盘点单物料的盘点信息") + @AutoLog(value = "盘点单-修改盘点单物料的盘点信息",clientType="app", operateType = 2) + @PostMapping(value = "/editPddInfo") + public Result editPddInfo(@RequestBody InvoicingPddInfoEntity invoicingPddInfoEntity) { + if(StringUtils.isBlank(invoicingPddInfoEntity.getId())){ + return Result.error("参数错误,请选择盘点单"); + } + if(StringUtils.isBlank(invoicingPddInfoEntity.getDqkcsl()+"")){ + return Result.error("参数错误,请填写库存数量"); + } + if(invoicingPddInfoEntity.getPdsl() ==null){ + return Result.error("参数错误,请填写盘点数量"); + } + Map result = pddApi.editPddInfo(invoicingPddInfoEntity); + if (StringUtils.equals("true",result.get("success").toString())){ +// Map map = new HashMap<>(); +// map.put("message","操作成功"); +// map.put("data",result.get("message")); + return Result.OK(result.get("message")); + }else{ + return Result.error(result.get("message").toString()); + } + } + + @ApiOperation(value="盘点单-提交盘点信息", notes="盘点单-提交盘点信息") + @AutoLog(value = "盘点单-提交盘点信息",clientType="app", operateType = 2) + @PostMapping(value = "/submitPddMain") + public Result submitPddMain(@RequestBody InvoicingPddMainEntity invoicingPddMainEntity) { + if(StringUtils.isBlank(invoicingPddMainEntity.getId())){ + return Result.error("参数错误,请选择盘点单"); + } + Map result = pddApi.submitPddMain(invoicingPddMainEntity); + if (StringUtils.equals("true",result.get("success").toString())){ + return Result.OK(result.get("message")); + }else{ + return Result.error(result.get("message").toString()); + } + } +} diff --git a/nursing-unit-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java b/nursing-unit-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java index e3875d6f..9fcd3fdc 100644 --- a/nursing-unit-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java +++ b/nursing-unit-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java @@ -92,6 +92,7 @@ public class ShiroConfig { filterChainDefinitionMap.put("/api/tplink/videoStorage/**", "anon"); //视频缓存存储接口 filterChainDefinitionMap.put("/api/pad/invoicing/getShareInfoByCgdId", "anon"); //查询采购单信息(分享接口使用) +// filterChainDefinitionMap.put("/api/pad/invoicing/pdd/**", "anon"); //查询采购单信息(分享接口使用) // filterChainDefinitionMap.put("/api/pad/invoicing/**", "anon"); //测试进销存对应的接口 // filterChainDefinitionMap.put("/api/pad/qingling/**", "anon"); //测试请领对应的接口 filterChainDefinitionMap.put("/iot/tq/api/electricityMeter/**", "anon"); //电表回调 diff --git a/nursing-unit-common/src/main/java/com/nu/entity/InvoicingPddInfoEntity.java b/nursing-unit-common/src/main/java/com/nu/entity/InvoicingPddInfoEntity.java new file mode 100644 index 00000000..51cd294e --- /dev/null +++ b/nursing-unit-common/src/main/java/com/nu/entity/InvoicingPddInfoEntity.java @@ -0,0 +1,80 @@ +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-12-10 + * @Version: V1.0 + */ +@Data +public class InvoicingPddInfoEntity implements Serializable { + + /**id*/ + private String id; + /**createBy*/ + private String createBy; + /**createTime*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date createTime; + /**updateBy*/ + private String updateBy; + /**updateTime*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date updateTime; + /**盘点单id*/ + @Dict(dictTable = "nu_invoicing_pdd_main", dicText = "pdd_no", dicCode = "id") + private String pddId; + /**库房id*/ + private String nuId; + /**物料id*/ + private String wlId; + /**当前库存数量*/ + private Integer dqkcsl; + /**盘点数量*/ + private Integer pdsl; + /**差额数量*/ + private Integer cesl; + /**盘点类型 1盘盈单 2盘亏单*/ + private String pdType; + /**备注信息*/ + private String content; + /**拍照图片*/ + private String picPath; + /**物料类别*/ + private String categoryName; + /**物料类型*/ + private String typeName; + /**用药类型*/ + private String medicationName; + /**货品名称*/ + private String materialName; + /**货品编码*/ + private String materialNo; + /**规格型号*/ + private String specificationModel; + /**物料图片*/ + private String materialImg; + /**货品单位*/ + private String materialUnits; + + /**查询条件 1盘盈单 2盘亏单 3已盘点 4未盘点 */ + private String paramType; +} diff --git a/nursing-unit-common/src/main/java/com/nu/entity/InvoicingPddMainEntity.java b/nursing-unit-common/src/main/java/com/nu/entity/InvoicingPddMainEntity.java new file mode 100644 index 00000000..b2ce8cab --- /dev/null +++ b/nursing-unit-common/src/main/java/com/nu/entity/InvoicingPddMainEntity.java @@ -0,0 +1,77 @@ +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-12-10 + * @Version: V1.0 + */ +@Data +public class InvoicingPddMainEntity implements Serializable { + private static final long serialVersionUID = 1L; + + /**id*/ + private String id; + /**createBy*/ + private String createBy; + /**createTime*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date createTime; + /**updateBy*/ + private String updateBy; + /**updateTime*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date updateTime; + /**盘点单单号*/ + private String pddNo; + /**盘点单类型 1盘点中 2已完成 3作废*/ + @Dict(dicCode = "pdd_type") + private String pddType; + /**盘点单状态 1盘点中 2盘点结束*/ + @Dict(dicCode = "pdd_status") + private String pddStatus; + /**盘点单发起人*/ + private String pddStartBy; + /**盘点单发起时间*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date pddStartTime; + /**盘点单完成人*/ + private String pddEndBy; + /**盘点单完成时间*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date pddEndTime; + /**对应仓库*/ + private String nuId; + /**盘盈单数量 0是没有 其他是具体数字*/ + private Integer pydNum; + /**盘亏单数量 0是没有 其他是具体数字*/ + private Integer pkdNum; + /**服务指令id (预留字段)*/ + private String serverId; + + private String startTime; + private String endTime; + private String pddInfo; + private String pydOrPkd; + private String nuName; +} diff --git a/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/IPddApi.java b/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/IPddApi.java new file mode 100644 index 00000000..cd108f34 --- /dev/null +++ b/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/IPddApi.java @@ -0,0 +1,21 @@ +package com.nu.modules.invoicing.api; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.nu.entity.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; +import java.util.Map; + +public interface IPddApi { + + IPage queryPddList(Integer pageNo, Integer pageSize, InvoicingPddMainEntity invoicingPddMainEntity, HttpServletRequest req); + + Map addPddMain(InvoicingPddMainEntity invoicingPddMainEntity); + + IPage queryPddInfoList(Integer pageNo, Integer pageSize, InvoicingPddInfoEntity invoicingPddInfoEntity, HttpServletRequest req); + + Map editPddInfo(InvoicingPddInfoEntity invoicingPddInfoEntity); + + Map submitPddMain(InvoicingPddMainEntity invoicingPddMainEntity); +} diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/controller/NuInvoicingPddInfoController.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/controller/NuInvoicingPddInfoController.java new file mode 100644 index 00000000..5dfb911f --- /dev/null +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/controller/NuInvoicingPddInfoController.java @@ -0,0 +1,180 @@ +package com.nu.modules.pdd.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.pdd.entity.NuInvoicingPddInfo; +import com.nu.modules.pdd.service.INuInvoicingPddInfoService; + +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-12-10 + * @Version: V1.0 + */ +@Api(tags="进销存-盘点单物料详细信息") +@RestController +@RequestMapping("/pdd/nuInvoicingPddInfo") +@Slf4j +public class NuInvoicingPddInfoController extends JeecgController { + @Autowired + private INuInvoicingPddInfoService nuInvoicingPddInfoService; + + /** + * 分页列表查询 + * + * @param nuInvoicingPddInfo + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "进销存-盘点单物料详细信息-分页列表查询") + @ApiOperation(value="进销存-盘点单物料详细信息-分页列表查询", notes="进销存-盘点单物料详细信息-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(NuInvoicingPddInfo nuInvoicingPddInfo, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(nuInvoicingPddInfo, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = nuInvoicingPddInfoService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param nuInvoicingPddInfo + * @return + */ + @AutoLog(value = "进销存-盘点单物料详细信息-添加") + @ApiOperation(value="进销存-盘点单物料详细信息-添加", notes="进销存-盘点单物料详细信息-添加") + @RequiresPermissions("pdd:nu_invoicing_pdd_info:add") + @PostMapping(value = "/add") + public Result add(@RequestBody NuInvoicingPddInfo nuInvoicingPddInfo) { + nuInvoicingPddInfoService.save(nuInvoicingPddInfo); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param nuInvoicingPddInfo + * @return + */ + @AutoLog(value = "进销存-盘点单物料详细信息-编辑") + @ApiOperation(value="进销存-盘点单物料详细信息-编辑", notes="进销存-盘点单物料详细信息-编辑") + @RequiresPermissions("pdd:nu_invoicing_pdd_info:edit") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody NuInvoicingPddInfo nuInvoicingPddInfo) { + nuInvoicingPddInfoService.updateById(nuInvoicingPddInfo); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "进销存-盘点单物料详细信息-通过id删除") + @ApiOperation(value="进销存-盘点单物料详细信息-通过id删除", notes="进销存-盘点单物料详细信息-通过id删除") + @RequiresPermissions("pdd:nu_invoicing_pdd_info:delete") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + nuInvoicingPddInfoService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "进销存-盘点单物料详细信息-批量删除") + @ApiOperation(value="进销存-盘点单物料详细信息-批量删除", notes="进销存-盘点单物料详细信息-批量删除") + @RequiresPermissions("pdd:nu_invoicing_pdd_info:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.nuInvoicingPddInfoService.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) { + NuInvoicingPddInfo nuInvoicingPddInfo = nuInvoicingPddInfoService.getById(id); + if(nuInvoicingPddInfo==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(nuInvoicingPddInfo); + } + + /** + * 导出excel + * + * @param request + * @param nuInvoicingPddInfo + */ + @RequiresPermissions("pdd:nu_invoicing_pdd_info:exportXls") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, NuInvoicingPddInfo nuInvoicingPddInfo) { + return super.exportXls(request, nuInvoicingPddInfo, NuInvoicingPddInfo.class, "进销存-盘点单物料详细信息"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequiresPermissions("pdd:nu_invoicing_pdd_info:importExcel") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, NuInvoicingPddInfo.class); + } + +} diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/controller/NuInvoicingPddMainController.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/controller/NuInvoicingPddMainController.java new file mode 100644 index 00000000..c8f1cd59 --- /dev/null +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/controller/NuInvoicingPddMainController.java @@ -0,0 +1,180 @@ +package com.nu.modules.pdd.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.pdd.entity.NuInvoicingPddMain; +import com.nu.modules.pdd.service.INuInvoicingPddMainService; + +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-12-10 + * @Version: V1.0 + */ +@Api(tags="进销存-盘点单主表") +@RestController +@RequestMapping("/pdd/nuInvoicingPddMain") +@Slf4j +public class NuInvoicingPddMainController extends JeecgController { + @Autowired + private INuInvoicingPddMainService nuInvoicingPddMainService; + + /** + * 分页列表查询 + * + * @param nuInvoicingPddMain + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "进销存-盘点单主表-分页列表查询") + @ApiOperation(value="进销存-盘点单主表-分页列表查询", notes="进销存-盘点单主表-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(NuInvoicingPddMain nuInvoicingPddMain, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(nuInvoicingPddMain, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = nuInvoicingPddMainService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param nuInvoicingPddMain + * @return + */ + @AutoLog(value = "进销存-盘点单主表-添加") + @ApiOperation(value="进销存-盘点单主表-添加", notes="进销存-盘点单主表-添加") + @RequiresPermissions("pdd:nu_invoicing_pdd_main:add") + @PostMapping(value = "/add") + public Result add(@RequestBody NuInvoicingPddMain nuInvoicingPddMain) { + nuInvoicingPddMainService.save(nuInvoicingPddMain); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param nuInvoicingPddMain + * @return + */ + @AutoLog(value = "进销存-盘点单主表-编辑") + @ApiOperation(value="进销存-盘点单主表-编辑", notes="进销存-盘点单主表-编辑") + @RequiresPermissions("pdd:nu_invoicing_pdd_main:edit") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody NuInvoicingPddMain nuInvoicingPddMain) { + nuInvoicingPddMainService.updateById(nuInvoicingPddMain); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "进销存-盘点单主表-通过id删除") + @ApiOperation(value="进销存-盘点单主表-通过id删除", notes="进销存-盘点单主表-通过id删除") + @RequiresPermissions("pdd:nu_invoicing_pdd_main:delete") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + nuInvoicingPddMainService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "进销存-盘点单主表-批量删除") + @ApiOperation(value="进销存-盘点单主表-批量删除", notes="进销存-盘点单主表-批量删除") + @RequiresPermissions("pdd:nu_invoicing_pdd_main:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.nuInvoicingPddMainService.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) { + NuInvoicingPddMain nuInvoicingPddMain = nuInvoicingPddMainService.getById(id); + if(nuInvoicingPddMain==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(nuInvoicingPddMain); + } + + /** + * 导出excel + * + * @param request + * @param nuInvoicingPddMain + */ + @RequiresPermissions("pdd:nu_invoicing_pdd_main:exportXls") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, NuInvoicingPddMain nuInvoicingPddMain) { + return super.exportXls(request, nuInvoicingPddMain, NuInvoicingPddMain.class, "进销存-盘点单主表"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequiresPermissions("pdd:nu_invoicing_pdd_main:importExcel") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, NuInvoicingPddMain.class); + } + +} diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/entity/NuInvoicingPddInfo.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/entity/NuInvoicingPddInfo.java new file mode 100644 index 00000000..3c1192ab --- /dev/null +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/entity/NuInvoicingPddInfo.java @@ -0,0 +1,127 @@ +package com.nu.modules.pdd.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.*; +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-12-10 + * @Version: V1.0 + */ +@Data +@TableName("nu_invoicing_pdd_info") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="nu_invoicing_pdd_info对象", description="进销存-盘点单物料详细信息") +public class NuInvoicingPddInfo 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; + /**盘点单id*/ + @Excel(name = "盘点单id", width = 15, dictTable = "nu_invoicing_pdd_main", dicText = "pdd_no", dicCode = "id") + @Dict(dictTable = "nu_invoicing_pdd_main", dicText = "pdd_no", dicCode = "id") + @ApiModelProperty(value = "盘点单id") + private java.lang.String pddId; + /**库房id*/ + @Excel(name = "库房id", width = 15) + @ApiModelProperty(value = "库房id") + private java.lang.String nuId; + /**物料id*/ + @Excel(name = "物料id", width = 15) + @ApiModelProperty(value = "物料id") + private java.lang.String wlId; + /**当前库存数量*/ + @Excel(name = "当前库存数量", width = 15) + @ApiModelProperty(value = "当前库存数量") + private java.lang.Integer dqkcsl; + /**盘点数量*/ + @Excel(name = "盘点数量", width = 15) + @ApiModelProperty(value = "盘点数量") + private java.lang.Integer pdsl; + /**差额数量*/ + @Excel(name = "差额数量", width = 15) + @ApiModelProperty(value = "差额数量") + private java.lang.Integer cesl; + /**盘点类型 1盘盈单 2盘亏单*/ + @Excel(name = "盘点类型 1盘盈单 2盘亏单", width = 15) + @ApiModelProperty(value = "盘点类型 1盘盈单 2盘亏单") + private java.lang.String pdType; + /**备注信息*/ + @Excel(name = "备注信息", width = 15) + @ApiModelProperty(value = "备注信息") + private java.lang.String content; + /**拍照图片*/ + @Excel(name = "拍照图片", width = 15) + @ApiModelProperty(value = "拍照图片") + private java.lang.String picPath; + /**物料类别*/ + @Excel(name = "物料类别", width = 15) + @ApiModelProperty(value = "物料类别") + private java.lang.String categoryName; + /**物料类型*/ + @Excel(name = "物料类型", width = 15) + @ApiModelProperty(value = "物料类型") + private java.lang.String typeName; + /**用药类型*/ + @Excel(name = "用药类型", width = 15) + @ApiModelProperty(value = "用药类型") + private java.lang.String medicationName; + /**货品名称*/ + @Excel(name = "货品名称", width = 15) + @ApiModelProperty(value = "货品名称") + private java.lang.String materialName; + /**货品编码*/ + @Excel(name = "货品编码", width = 15) + @ApiModelProperty(value = "货品编码") + private java.lang.String materialNo; + /**规格型号*/ + @Excel(name = "规格型号", width = 15) + @ApiModelProperty(value = "规格型号") + private java.lang.String specificationModel; + /**物料图片*/ + @Excel(name = "物料图片", width = 15) + @ApiModelProperty(value = "物料图片") + private java.lang.String materialImg; + /**货品单位*/ + @Excel(name = "货品单位", width = 15) + @ApiModelProperty(value = "货品单位") + private java.lang.String materialUnits; + + @TableField(exist = false) + private java.lang.Integer num; +} diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/entity/NuInvoicingPddMain.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/entity/NuInvoicingPddMain.java new file mode 100644 index 00000000..5c49b0c6 --- /dev/null +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/entity/NuInvoicingPddMain.java @@ -0,0 +1,111 @@ +package com.nu.modules.pdd.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-12-10 + * @Version: V1.0 + */ +@Data +@TableName("nu_invoicing_pdd_main") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="nu_invoicing_pdd_main对象", description="进销存-盘点单主表") +public class NuInvoicingPddMain 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; + /**盘点单单号*/ + @Excel(name = "盘点单单号", width = 15) + @ApiModelProperty(value = "盘点单单号") + private java.lang.String pddNo; + /**盘点单类型 1盘点中 2已完成 3作废*/ + @Excel(name = "盘点单类型 1盘点中 2已完成 3作废", width = 15, dicCode = "pdd_type") + @Dict(dicCode = "pdd_type") + @ApiModelProperty(value = "盘点单类型 1盘点中 2已完成 3作废") + private java.lang.String pddType; + /**盘点单状态 1盘点中 2盘点结束*/ + @Excel(name = "盘点单状态 1盘点中 2盘点结束", width = 15, dicCode = "pdd_status") + @Dict(dicCode = "pdd_status") + @ApiModelProperty(value = "盘点单状态 1盘点中 2盘点结束") + private java.lang.String pddStatus; + /**盘点单发起人*/ + @Excel(name = "盘点单发起人", width = 15) + @ApiModelProperty(value = "盘点单发起人") + private java.lang.String pddStartBy; + /**盘点单发起时间*/ + @Excel(name = "盘点单发起时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @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 pddStartTime; + /**盘点单完成人*/ + @Excel(name = "盘点单完成人", width = 15) + @ApiModelProperty(value = "盘点单完成人") + private java.lang.String pddEndBy; + /**盘点单完成时间*/ + @Excel(name = "盘点单完成时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @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 pddEndTime; + /**对应仓库*/ + @Excel(name = "对应仓库", width = 15) + @ApiModelProperty(value = "对应仓库") + private java.lang.String nuId; + /**仓库名称*/ + @Excel(name = "仓库名称", width = 15) + @ApiModelProperty(value = "仓库名称") + private java.lang.String nuName; + /**盘盈单数量 0是没有 其他是具体数字*/ + @Excel(name = "盘盈单数量 0是没有 其他是具体数字", width = 15) + @ApiModelProperty(value = "盘盈单数量 0是没有 其他是具体数字") + private java.lang.Integer pydNum; + /**盘亏单数量 0是没有 其他是具体数字*/ + @Excel(name = "盘亏单数量 0是没有 其他是具体数字", width = 15) + @ApiModelProperty(value = "盘亏单数量 0是没有 其他是具体数字") + private java.lang.Integer pkdNum; + /**服务指令id (预留字段)*/ + @Excel(name = "服务指令id (预留字段)", width = 15) + @ApiModelProperty(value = "服务指令id (预留字段)") + private java.lang.String serverId; +} diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/mapper/NuInvoicingPddInfoMapper.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/mapper/NuInvoicingPddInfoMapper.java new file mode 100644 index 00000000..db40c78e --- /dev/null +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/mapper/NuInvoicingPddInfoMapper.java @@ -0,0 +1,20 @@ +package com.nu.modules.pdd.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import com.nu.modules.pdd.entity.NuInvoicingPddInfo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 进销存-盘点单物料详细信息 + * @Author: jeecg-boot + * @Date: 2025-12-10 + * @Version: V1.0 + */ +public interface NuInvoicingPddInfoMapper extends BaseMapper { + + void addPddInfo(@Param("nuId") String nuId,@Param("createBy") String createBy,@Param("pddId") String pddId); + + List selectPydPkdList(@Param("pddId")String pddId); +} diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/mapper/NuInvoicingPddMainMapper.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/mapper/NuInvoicingPddMainMapper.java new file mode 100644 index 00000000..89538b97 --- /dev/null +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/mapper/NuInvoicingPddMainMapper.java @@ -0,0 +1,17 @@ +package com.nu.modules.pdd.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import com.nu.modules.pdd.entity.NuInvoicingPddMain; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 进销存-盘点单主表 + * @Author: jeecg-boot + * @Date: 2025-12-10 + * @Version: V1.0 + */ +public interface NuInvoicingPddMainMapper extends BaseMapper { + +} diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/mapper/xml/NuInvoicingPddInfoMapper.xml b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/mapper/xml/NuInvoicingPddInfoMapper.xml new file mode 100644 index 00000000..0f7d1324 --- /dev/null +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/mapper/xml/NuInvoicingPddInfoMapper.xml @@ -0,0 +1,32 @@ + + + + + + INSERT INTO nu_invoicing_pdd_info ( + id, create_by, create_time, pdd_id, nu_id, wl_id, + dqkcsl, pdsl, cesl, pd_type, content, pic_path, + category_name, type_name, medication_name, material_name, + material_no, specification_model, material_img, material_units + ) + SELECT + CONCAT(UUID_SHORT(), LPAD(FLOOR(RAND() * 1000000), 6, '0')) as id, + #{createBy} as create_by, + NOW() as create_time, + #{pddId} as pdd_id, + a.nu_id,b.id as wl_id,a.kcsl as dqkcsl, + null as pdsl,null as cesl,null as pd_type,null as content,null as pic_path, + c.category_name as category_name,d.type_name as type_name,e.medication_name as medication_name, + b.material_name,b.material_no,b.specification_model,b.material_img,b.material_units + FROM nu_warehouse_material_info a + LEFT JOIN nu_config_material_info b ON a.wl_id = b.id + left join nu_config_material_category c on b.category_id = c.id + left join nu_config_material_type d on b.type_id = d.id + left join nu_config_material_medication e on b.medication_id = e.id + WHERE a.nu_id = #{nuId} AND a.iz_enabled = 'Y' + + + + \ No newline at end of file diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/mapper/xml/NuInvoicingPddMainMapper.xml b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/mapper/xml/NuInvoicingPddMainMapper.xml new file mode 100644 index 00000000..ef24e3ff --- /dev/null +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/mapper/xml/NuInvoicingPddMainMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/service/INuInvoicingPddInfoService.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/service/INuInvoicingPddInfoService.java new file mode 100644 index 00000000..6d0b76ad --- /dev/null +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/service/INuInvoicingPddInfoService.java @@ -0,0 +1,14 @@ +package com.nu.modules.pdd.service; + +import com.nu.modules.pdd.entity.NuInvoicingPddInfo; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 进销存-盘点单物料详细信息 + * @Author: jeecg-boot + * @Date: 2025-12-10 + * @Version: V1.0 + */ +public interface INuInvoicingPddInfoService extends IService { + +} diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/service/INuInvoicingPddMainService.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/service/INuInvoicingPddMainService.java new file mode 100644 index 00000000..79c6775e --- /dev/null +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/service/INuInvoicingPddMainService.java @@ -0,0 +1,14 @@ +package com.nu.modules.pdd.service; + +import com.nu.modules.pdd.entity.NuInvoicingPddMain; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 进销存-盘点单主表 + * @Author: jeecg-boot + * @Date: 2025-12-10 + * @Version: V1.0 + */ +public interface INuInvoicingPddMainService extends IService { + +} diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/service/impl/NuInvoicingPddInfoServiceImpl.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/service/impl/NuInvoicingPddInfoServiceImpl.java new file mode 100644 index 00000000..13823389 --- /dev/null +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/service/impl/NuInvoicingPddInfoServiceImpl.java @@ -0,0 +1,19 @@ +package com.nu.modules.pdd.service.impl; + +import com.nu.modules.pdd.entity.NuInvoicingPddInfo; +import com.nu.modules.pdd.mapper.NuInvoicingPddInfoMapper; +import com.nu.modules.pdd.service.INuInvoicingPddInfoService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 进销存-盘点单物料详细信息 + * @Author: jeecg-boot + * @Date: 2025-12-10 + * @Version: V1.0 + */ +@Service +public class NuInvoicingPddInfoServiceImpl extends ServiceImpl implements INuInvoicingPddInfoService { + +} diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/service/impl/NuInvoicingPddMainServiceImpl.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/service/impl/NuInvoicingPddMainServiceImpl.java new file mode 100644 index 00000000..f6d83bee --- /dev/null +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/pdd/service/impl/NuInvoicingPddMainServiceImpl.java @@ -0,0 +1,223 @@ +package com.nu.modules.pdd.service.impl; + +import cn.hutool.core.bean.BeanUtil; +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.entity.InvoicingPddInfoEntity; +import com.nu.entity.InvoicingPddMainEntity; +import com.nu.entity.MaterialInfoEntity; +import com.nu.modules.invoicing.api.IInvoicingApi; +import com.nu.modules.invoicing.api.IPddApi; +import com.nu.modules.nubaseinfo.entity.NuBaseInfo; +import com.nu.modules.nubaseinfo.mapper.NuBaseInfoMapper; +import com.nu.modules.pdd.entity.NuInvoicingPddInfo; +import com.nu.modules.pdd.entity.NuInvoicingPddMain; +import com.nu.modules.pdd.mapper.NuInvoicingPddInfoMapper; +import com.nu.modules.pdd.mapper.NuInvoicingPddMainMapper; +import com.nu.modules.pdd.service.INuInvoicingPddMainService; +import com.nu.modules.warehouseMaterialInfo.entity.BlWarehouseMaterialInfo; +import org.apache.commons.lang.StringUtils; +import org.apache.shiro.SecurityUtils; +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.RedisUtil; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.transaction.annotation.Transactional; + +import javax.servlet.http.HttpServletRequest; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Description: 进销存-盘点单主表 + * @Author: jeecg-boot + * @Date: 2025-12-10 + * @Version: V1.0 + */ +@Service +public class NuInvoicingPddMainServiceImpl extends ServiceImpl implements INuInvoicingPddMainService, IPddApi { + + + @Autowired + private RedisUtil redisUtil; + + @Autowired + private NuBaseInfoMapper nuBaseInfoMapper; + + @Autowired + private NuInvoicingPddInfoMapper pddInfoMapper; + + @Override + public IPage queryPddList(Integer pageNo, Integer pageSize, InvoicingPddMainEntity invoicingPddMainEntity, HttpServletRequest req) { + NuInvoicingPddMain nuInvoicingPddMain = new NuInvoicingPddMain(); + BeanUtils.copyProperties(invoicingPddMainEntity,nuInvoicingPddMain); + Map customeRuleMap = new HashMap<>(); + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(nuInvoicingPddMain, req.getParameterMap(), customeRuleMap); + queryWrapper.ge(StringUtils.isNotEmpty(invoicingPddMainEntity.getStartTime()),"create_time",invoicingPddMainEntity.getStartTime()); + queryWrapper.le(StringUtils.isNotEmpty(invoicingPddMainEntity.getEndTime()),"create_time",invoicingPddMainEntity.getEndTime()); + if(StringUtils.equals("1",invoicingPddMainEntity.getPydOrPkd())){ + queryWrapper.gt("pyd_num",0); + }else if (StringUtils.equals("2",invoicingPddMainEntity.getPydOrPkd())){ + queryWrapper.gt("pkd_num",0); + }else if (StringUtils.equals("1,2",invoicingPddMainEntity.getPydOrPkd())){ + queryWrapper.gt("pyd_num",0); + queryWrapper.gt("pkd_num",0); + } + Page page = new Page<>(pageNo, pageSize); + List list = baseMapper.selectList(page,queryWrapper); + IPage entityPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal()); + entityPage.setRecords(BeanUtil.copyToList(list, InvoicingPddMainEntity.class)); + return entityPage; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Map addPddMain(InvoicingPddMainEntity invoicingPddMainEntity) { + + Map map = new HashMap<>(); + List list = baseMapper.selectList(new QueryWrapper().eq("nu_id",invoicingPddMainEntity.getNuId()).eq("pdd_type","1")); + if(list.size() > 0){ + map.put("success","false"); + map.put("message","盘点单已存在,不可重复创建"); + return map; + } + String qgdDate = new SimpleDateFormat("yyyyMMdd").format(new Date()); + String qgdXlh = ""; + if(redisUtil.get("pdd"+qgdDate) != null){ + qgdXlh = redisUtil.get("pdd"+qgdDate).toString(); + } + int qgdXlhInt = 0; + if(StringUtils.isNotBlank(qgdXlh)){ + qgdXlhInt = Integer.parseInt(qgdXlh); + } + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if(user == null || StringUtils.isBlank(user.getRealname())){ + user = new LoginUser(); + user.setRealname("系统"); + user.setOrgCode("101"); + } + NuInvoicingPddMain newNuInvoicingPddMain = new NuInvoicingPddMain(); + BeanUtils.copyProperties(invoicingPddMainEntity,newNuInvoicingPddMain); + String pddNo = "Q"+user.getOrgCode()+qgdDate+String.format("%03d", ++qgdXlhInt); + newNuInvoicingPddMain.setPddNo(pddNo); + newNuInvoicingPddMain.setPddStartBy(user.getRealname()); + newNuInvoicingPddMain.setPddStartTime(new Date()); + newNuInvoicingPddMain.setPddType("1"); + newNuInvoicingPddMain.setPddStatus("1"); + NuBaseInfo nuBaseInfo = nuBaseInfoMapper.selectOne(new QueryWrapper().eq("nu_id",newNuInvoicingPddMain.getNuId())); + newNuInvoicingPddMain.setNuName(nuBaseInfo.getNuName()); + baseMapper.insert(newNuInvoicingPddMain); + BeanUtils.copyProperties(newNuInvoicingPddMain,invoicingPddMainEntity); + //添加盘点信息-根据库房id自动添加 + pddInfoMapper.addPddInfo(newNuInvoicingPddMain.getNuId(),user.getRealname(),newNuInvoicingPddMain.getId()); + + redisUtil.set("pdd"+qgdDate,qgdXlhInt); + + map.put("success","true"); + map.put("message",invoicingPddMainEntity); + return map; + } + + @Override + public IPage queryPddInfoList(Integer pageNo, Integer pageSize, InvoicingPddInfoEntity invoicingPddInfoEntity, HttpServletRequest req) { + NuInvoicingPddInfo nuInvoicingPddInfo = new NuInvoicingPddInfo(); + BeanUtils.copyProperties(invoicingPddInfoEntity,nuInvoicingPddInfo); + Map customeRuleMap = new HashMap<>(); + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(nuInvoicingPddInfo, req.getParameterMap(), customeRuleMap); + if(StringUtils.equals("1",invoicingPddInfoEntity.getParamType())){ + queryWrapper.eq("pd_type","1"); + }else if (StringUtils.equals("2",invoicingPddInfoEntity.getParamType())){ + queryWrapper.eq("pd_type","2"); + }else if (StringUtils.equals("3",invoicingPddInfoEntity.getParamType())){ + queryWrapper.gt("pdsl",0); + }else if (StringUtils.equals("4",invoicingPddInfoEntity.getParamType())){ + queryWrapper.eq("pdsl",null); + } + Page page = new Page<>(pageNo, pageSize); + List list = pddInfoMapper.selectList(page,queryWrapper); + IPage entityPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal()); + entityPage.setRecords(BeanUtil.copyToList(list, InvoicingPddInfoEntity.class)); + return entityPage; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Map editPddInfo(InvoicingPddInfoEntity invoicingPddInfoEntity) { + Map map = new HashMap<>(); + NuInvoicingPddInfo nuInvoicingPddInfo = new NuInvoicingPddInfo(); + BeanUtils.copyProperties(invoicingPddInfoEntity,nuInvoicingPddInfo); + int kcsl = nuInvoicingPddInfo.getDqkcsl(); + int pdsl = nuInvoicingPddInfo.getPdsl(); + if(pdsl > kcsl){ + nuInvoicingPddInfo.setPdType("2"); + }else{ + nuInvoicingPddInfo.setPdType("1"); + } + nuInvoicingPddInfo.setCesl(Math.abs(pdsl-kcsl)); + pddInfoMapper.updateById(nuInvoicingPddInfo); + + nuInvoicingPddInfo = pddInfoMapper.selectById(nuInvoicingPddInfo); + //修改盘盈单盘亏单数量 + List list = pddInfoMapper.selectPydPkdList(nuInvoicingPddInfo.getPddId()); + Integer pydNum = 0; + Integer pkdNum = 0; + for(NuInvoicingPddInfo param : list){ + if (StringUtils.equals("1",param.getPdType())){ + pydNum += param.getNum(); + }else if (StringUtils.equals("2",param.getPdType())){ + pkdNum += param.getNum(); + } + } + NuInvoicingPddMain nuInvoicingPddMain = new NuInvoicingPddMain(); + nuInvoicingPddMain.setId(nuInvoicingPddInfo.getPddId()); + nuInvoicingPddMain.setPydNum(pydNum); + nuInvoicingPddMain.setPkdNum(pkdNum); + baseMapper.updateById(nuInvoicingPddMain); + map.put("success","true"); + map.put("message",nuInvoicingPddInfo); + return map; + } + + @Override + public Map submitPddMain(InvoicingPddMainEntity invoicingPddMainEntity) { + Map map = new HashMap<>(); + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if(user == null || StringUtils.isBlank(user.getRealname())){ + user = new LoginUser(); + user.setRealname("系统"); + } + + List list = pddInfoMapper.selectList(new QueryWrapper().eq("pdd_id",invoicingPddMainEntity.getId()).isNull("pdsl")); + int sfwc = 0;//是否完成 + for(NuInvoicingPddInfo param : list){ + if (StringUtils.isBlank(param.getPdType())){ + sfwc = 1; + } + } + if(sfwc == 1){ + map.put("success","false"); + map.put("message","有未完成的盘点信息,不能提交盘点单"); + return map; + } + + NuInvoicingPddMain nuInvoicingPddMain = new NuInvoicingPddMain(); + BeanUtils.copyProperties(invoicingPddMainEntity,nuInvoicingPddMain); + nuInvoicingPddMain.setPddEndBy(user.getRealname()); + nuInvoicingPddMain.setPddEndTime(new Date()); + nuInvoicingPddMain.setPddType("2"); + nuInvoicingPddMain.setPddStatus("2"); + baseMapper.updateById(nuInvoicingPddMain); + map.put("success","true"); + map.put("message","操作成功"); + return map; + } +}