Merge remote-tracking branch 'origin/master'

This commit is contained in:
曹磊 2025-12-11 18:02:39 +08:00
commit b6bd61ae82
34 changed files with 1811 additions and 96 deletions

View File

@ -52,6 +52,10 @@ public class InvoicingApi {
@AutoLog(value = "采购单-采购信息-添加",clientType="app", operateType = 2)
@PostMapping(value = "/addShoppingCartList")
public Result<String> addShoppingCartList(@RequestBody List<QgdInfoEntity> infoList) {
Map<String, Object> pddMap = invoicingApi.queryPddStartInfo(null);
if(!toBoolean(pddMap.get("success"))){
return Result.error(pddMap.get("message").toString());
}
Integer maxCount = 100;//购物车最大数量
String result = invoicingApi.addShoppingCartList(infoList,maxCount);
if("1".equals( result)){
@ -72,6 +76,10 @@ public class InvoicingApi {
@AutoLog(value = "采购单-修改购物车采购信息",clientType="app", operateType = 3)
@PostMapping(value = "/eddShoppingCartList")
public Result<String> eddShoppingCartList(@RequestBody QgdInfoEntity qgdInfoEntity) {
Map<String, Object> pddMap = invoicingApi.queryPddStartInfo(null);
if(!toBoolean(pddMap.get("success"))){
return Result.error(pddMap.get("message").toString());
}
String result = invoicingApi.eddShoppingCartList(qgdInfoEntity);
if("1".equals( result)){
return Result.error("采购信息已存在,不可重复采购!");
@ -85,6 +93,10 @@ public class InvoicingApi {
@AutoLog(value = "采购单-生成采购单预览信息",clientType="app")
@PostMapping(value = "/generatedPurchaseViewOrder")
public Result<Object> generatedPurchaseViewOrder(@RequestBody List<QgdInfoEntity> infoList, HttpServletRequest req) {
Map<String, Object> pddMap = invoicingApi.queryPddStartInfo(null);
if(!toBoolean(pddMap.get("success"))){
return Result.error(pddMap.get("message").toString());
}
Map<String,Object> list = invoicingApi.generatedPurchaseViewOrder(infoList);
if(list.get("status").equals("2")){
return Result.error(list.get("errorMessage").toString());
@ -95,6 +107,11 @@ public class InvoicingApi {
@AutoLog(value = "采购单-生成采购单信息",clientType="app",operateType = 2)
@PostMapping(value = "/generatedPurchaseOrder")
public Result<List<CgdMainEntity>> generatedPurchaserder(@RequestBody List<CgdMainEntity> cgdMainList, HttpServletRequest req) {
Map<String, Object> pddMap = invoicingApi.queryPddStartInfo(null);
if(!toBoolean(pddMap.get("success"))){
return Result.error(pddMap.get("message").toString());
}
List<CgdMainEntity> list = invoicingApi.generatedPurchaserder(cgdMainList);
return Result.OK("操作成功");
}
@ -335,6 +352,10 @@ public class InvoicingApi {
@AutoLog(value = "采购单-库存预警添加全部物料",clientType="app", operateType = 2)
@PostMapping(value = "/addWaringAll")
public Result<String> addWaringAll(@RequestBody CgdInfoEntity cgdInfoEntityDto) {
Map<String, Object> pddMap = invoicingApi.queryPddStartInfo(null);
if(!toBoolean(pddMap.get("success"))){
return Result.error(pddMap.get("message").toString());
}
if(StringUtils.isEmpty(cgdInfoEntityDto.getNuId())){
return Result.error("请选择仓库");
}
@ -353,6 +374,10 @@ public class InvoicingApi {
@AutoLog(value = "采购单-拣货物料",clientType="app", operateType = 2)
@PostMapping(value = "/pickingInfo")
public Result<Map<String,Object>> pickingInfo(@RequestBody CgdInfoEntity cgdInfoEntityDto) {
Map<String, Object> pddMap = invoicingApi.queryPddStartInfo(null);
if(!toBoolean(pddMap.get("success"))){
return Result.error(pddMap.get("message").toString());
}
Map<String,Object> result = invoicingApi.pickingInfo(cgdInfoEntityDto);
if(StringUtils.equals("2",result.get("status").toString())){
return Result.error("入库数量错误,超过采购数量");
@ -367,6 +392,10 @@ public class InvoicingApi {
@AutoLog(value = "采购单-改价",clientType="app", operateType = 3)
@PostMapping(value = "/editPrice")
public Result<Map<String,String>> editPrice(@RequestBody CgdInfoEntity cgdInfoEntityDto) {
Map<String, Object> pddMap = invoicingApi.queryPddStartInfo(null);
if(!toBoolean(pddMap.get("success"))){
return Result.error(pddMap.get("message").toString());
}
Map<String,String> result = invoicingApi.editPrice(cgdInfoEntityDto);
// if(StringUtils.equals("2",result)){
// return Result.error("入库数量错误,超过采购数量");
@ -447,4 +476,12 @@ public class InvoicingApi {
Map<String, Object> pageList = invoicingApi.queryCrkInfoNumList(pageNo, pageSize, crkInfoEntity,req);
return Result.OK(pageList);
}
public static boolean toBoolean(Object obj) {
if (obj != null && !(Boolean) obj) {
return false;
}
return true;
}
}

View File

@ -0,0 +1,139 @@
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<IPage<InvoicingPddMainEntity>> queryPddList(InvoicingPddMainEntity invoicingPddMainEntity,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
IPage<InvoicingPddMainEntity> 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<Object> addPddMain(@RequestBody InvoicingPddMainEntity invoicingPddMainEntity) {
if(StringUtils.isBlank(invoicingPddMainEntity.getNuId())){
return Result.error("参数错误,请选择库房");
}
Map<String,Object> 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<IPage<InvoicingPddInfoEntity>> queryPddInfoList(InvoicingPddInfoEntity invoicingPddInfoEntity,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
IPage<InvoicingPddInfoEntity> 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<Object> 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<String,Object> result = pddApi.editPddInfo(invoicingPddInfoEntity);
if (StringUtils.equals("true",result.get("success").toString())){
// Map<String,Object> 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<Object> submitPddMain(@RequestBody InvoicingPddMainEntity invoicingPddMainEntity) {
if(StringUtils.isBlank(invoicingPddMainEntity.getId())){
return Result.error("参数错误,请选择盘点单");
}
Map<String,Object> 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());
}
}
@ApiOperation(value = "盘点单-查询盘点人列表", notes = "盘点单-查询盘点人列表")
@GetMapping(value = "/queryPddStartByList")
public Result<List<Map<String,String>>> queryPddStartByList(InvoicingPddInfoEntity invoicingPddInfoEntity) {
if(StringUtils.isBlank(invoicingPddInfoEntity.getNuId())){
return Result.error("参数错误,请选择库房");
}
List<Map<String,String>> pageList = pddApi.queryPddStartByList(invoicingPddInfoEntity);
return Result.OK(pageList);
}
@ApiOperation(value="盘点单-作废盘点单", notes="盘点单-作废盘点单")
@AutoLog(value = "盘点单-作废盘点单",clientType="app", operateType = 2)
@PostMapping(value = "/voidedPddMain")
public Result<Object> voidedPddMain(@RequestBody InvoicingPddMainEntity invoicingPddMainEntity) {
if(StringUtils.isBlank(invoicingPddMainEntity.getId())){
return Result.error("参数错误,请选择盘点单");
}
Map<String,Object> result = pddApi.voidedPddMain(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 = "/queryPddStartInfo")
public Result<Map<String, Object>> queryPddStartInfo(InvoicingPddInfoEntity invoicingPddInfoEntity) {
Map<String, Object> pageList = pddApi.queryPddStartInfo(invoicingPddInfoEntity);
return Result.OK(pageList);
}
}

View File

@ -3,6 +3,7 @@ package com.nu.modules.pad.invoicing.api;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.collect.Maps;
import com.nu.entity.*;
import com.nu.modules.invoicing.api.IPddApi;
import com.nu.modules.invoicing.api.IQinglingApi;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang.StringUtils;
@ -24,6 +25,9 @@ public class InvoicingQldApi {
@Autowired
private IQinglingApi qinglingApi;
//盘点单
@Autowired
private IPddApi pddApi;
/**
* 物料树查询库房中已有物料
@ -219,6 +223,12 @@ public class InvoicingQldApi {
@AutoLog(value = "请领单-提交请领单", clientType = "app")
@PostMapping(value = "/submitQld")
public Result<?> submitQld(@RequestBody InvoicingQldGwcEntity dto) {
//判断库房是否正在盘点中
Map<String, Object> izPd = pddApi.queryPddStartInfo(null);
if (izPd.get("success") != null && !(Boolean) izPd.get("success")) {
return Result.error((String) izPd.get("message"));
}
if (StringUtils.isBlank(dto.getNuId()) || StringUtils.isBlank(dto.getElderId())) {
return Result.error("缺少参数");
}
@ -311,6 +321,12 @@ public class InvoicingQldApi {
@AutoLog(value = "请领单-确认收货", clientType = "app")
@PostMapping(value = "/confirmReceipt")
public Result<?> confirmReceipt(@RequestBody InvoicingQldMainEntity dto) {
//库房是否正在盘点中
Map<String, Object> izPd = pddApi.queryPddStartInfo(null);
if (izPd.get("success") != null && !(Boolean) izPd.get("success")) {
return Result.error((String) izPd.get("message"));
}
if (StringUtils.isBlank(dto.getQldNo()) || StringUtils.isBlank(dto.getNuId()) || StringUtils.isBlank(dto.getElderId())) {
return Result.error("缺少参数");
}
@ -359,6 +375,12 @@ public class InvoicingQldApi {
@AutoLog(value = "请领单-出库(单个/批量)", clientType = "app")
@PostMapping(value = "/outbound")
public Result<Map<String, Object>> outbound(@RequestBody InvoicingQldMainEntity dto) {
//判断库房是否正在盘点中
Map<String, Object> izPd = pddApi.queryPddStartInfo(null);
if (izPd.get("success") != null && !(Boolean) izPd.get("success")) {
return Result.error((String) izPd.get("message"));
}
if (StringUtils.isBlank(dto.getQldNo())) {
return Result.error("缺少参数");
}

View File

@ -5,6 +5,7 @@ import com.google.common.collect.Maps;
import com.nu.entity.InvoicingThdGwcEntity;
import com.nu.entity.InvoicingThdMainEntity;
import com.nu.entity.NuKcslEntity;
import com.nu.modules.invoicing.api.IPddApi;
import com.nu.modules.invoicing.api.ITuiHuoApi;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang.StringUtils;
@ -25,6 +26,9 @@ public class InvoicingThdApi {
@Autowired
private ITuiHuoApi tuiHuoApi;
//盘点单
@Autowired
private IPddApi pddApi;
/**
* 查询退货单
@ -166,6 +170,12 @@ public class InvoicingThdApi {
@AutoLog(value = "退货单-入库退货单", clientType = "app")
@PostMapping(value = "/submitThd")
public Result<?> submitThd(@RequestBody InvoicingThdMainEntity dto) {
//库房是否正在盘点中
Map<String, Object> izPd = pddApi.queryPddStartInfo(null);
if (izPd.get("success") != null && !(Boolean) izPd.get("success")) {
return Result.error((String) izPd.get("message"));
}
if (StringUtils.isBlank(dto.getId())) {
return Result.error("缺少参数");
}

View File

@ -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"); //电表回调

View File

@ -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;
}

View File

@ -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;
}

View File

@ -40,8 +40,6 @@ public class InvoicingQldInfoEntity implements Serializable {
private String kfId;
/**物料id nu_config_material_info.id*/
private String wlId;
/**物料id nu_config_material_info.id*/
private String materialName;
/**请领数量*/
private Integer qlNum;
/**nuid nu_base_info.nu_id*/
@ -57,4 +55,23 @@ public class InvoicingQldInfoEntity implements Serializable {
private String categoryName;
/**服务类型名称*/
private String typeName;
/**物料类别名称*/
private java.lang.String materialCategoryName;
/**物料类型名称*/
private java.lang.String materialTypeName;
/**用药类型名称*/
private java.lang.String materialMedicationName;
/**物料名称*/
private java.lang.String materialName;
/**物料单位*/
private java.lang.String materialUnits;
/**物料编码*/
private java.lang.String materialNo;
/**规格型号*/
private java.lang.String specificationModel;
/**物料图片*/
private java.lang.String materialImg;
/**物料销售单价*/
private java.math.BigDecimal salesUnitPrice;
}

View File

@ -89,4 +89,6 @@ public interface IInvoicingApi {
IPage<WarehouseMaterialCrkInfoEntity> queryCrkInfoList(Integer pageNo, Integer pageSize, WarehouseMaterialCrkInfoEntity crkInfoEntity, HttpServletRequest req);
Map<String, Object> queryCrkInfoNumList(Integer pageNo, Integer pageSize, WarehouseMaterialCrkInfoEntity crkInfoEntity, HttpServletRequest req);
Map<String, Object> queryPddStartInfo(Object o);
}

View File

@ -0,0 +1,27 @@
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<InvoicingPddMainEntity> queryPddList(Integer pageNo, Integer pageSize, InvoicingPddMainEntity invoicingPddMainEntity, HttpServletRequest req);
Map<String,Object> addPddMain(InvoicingPddMainEntity invoicingPddMainEntity);
IPage<InvoicingPddInfoEntity> queryPddInfoList(Integer pageNo, Integer pageSize, InvoicingPddInfoEntity invoicingPddInfoEntity, HttpServletRequest req);
Map<String, Object> editPddInfo(InvoicingPddInfoEntity invoicingPddInfoEntity);
Map<String, Object> submitPddMain(InvoicingPddMainEntity invoicingPddMainEntity);
List<Map<String,String>> queryPddStartByList(InvoicingPddInfoEntity invoicingPddInfoEntity);
Map<String, Object> voidedPddMain(InvoicingPddMainEntity invoicingPddMainEntity);
Map<String, Object> queryPddStartInfo(InvoicingPddInfoEntity invoicingPddInfoEntity);
}

View File

@ -38,4 +38,6 @@ public interface ConfigMaterialInfoMapper extends BaseMapper<ConfigMaterialInfo>
ConfigMaterialInfo queryMaterialInfo(InvoicingQldQueryEntity queryDto);
void updateOneTwoPrice(@Param("params") ConfigMaterialInfo configMaterialInfo);
List<ConfigMaterialInfo> queryByWlids(@Param("ids") List<String> ids);
}

View File

@ -109,4 +109,18 @@
two_unit_price = #{params.twoUnitPrice}
where id = #{params.id}
</update>
<select id="queryByWlids" resultType="com.nu.modules.ConfigMaterial.entity.ConfigMaterialInfo">
select a.*,f.category_name,g.type_name,h.medication_name
from nu_config_material_info a
left join nu_config_material_category f on a.category_id = f.id
left join nu_config_material_type g on a.type_id = g.id
left join nu_config_material_medication h on a.medication_id = h.id
<where>
a.id in
<foreach collection="ids" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</where>
</select>
</mapper>

View File

@ -96,6 +96,43 @@ public class NuWarehouseMaterialCrkInfo implements Serializable {
private Integer ddwNum;//多单位时的数量
/**物料类别名称*/
@Excel(name = "物料类别名称", width = 15)
@ApiModelProperty(value = "物料类别名称")
private java.lang.String materialCategoryName;
/**物料类型名称*/
@Excel(name = "物料类型名称", width = 15)
@ApiModelProperty(value = "物料类型名称")
private java.lang.String materialTypeName;
/**用药类型名称*/
@Excel(name = "用药类型名称", width = 15)
@ApiModelProperty(value = "用药类型名称")
private java.lang.String materialMedicationName;
/**物料名称*/
@Excel(name = "物料名称", width = 15)
@ApiModelProperty(value = "物料名称")
private java.lang.String materialName;
/**物料单位*/
@Excel(name = "物料单位", width = 15)
@ApiModelProperty(value = "物料单位")
private java.lang.String materialUnits;
/**物料编码*/
@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.math.BigDecimal salesUnitPrice;
@TableField(exist = false)
private String paramDate;
}

View File

@ -22,6 +22,7 @@ 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.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.qgd.entity.QgdInfo;
@ -34,6 +35,7 @@ import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
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;
@ -105,6 +107,9 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
@Autowired
private DictUtils dictUtils;
@Autowired
private IPddApi pddApi;
@Override
public void rukuInfo(NuInvoicingCgdMain nuInvoicingCgdMain) {
}
@ -350,7 +355,6 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
}
@Override
@Transactional(rollbackFor = Exception.class)
public List<CgdMainEntity> generatedPurchaserder(List<CgdMainEntity> cgdMainList) {
@ -678,7 +682,6 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
@Override
public String addShoppingCartList(List<QgdInfoEntity> infoList,Integer maxCount) {
String nuId = infoList.get(0).getNuId();
if(StringUtils.isEmpty(nuId)){
return "3";//护理单元为空
@ -909,7 +912,6 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
@Override
public String addWaringAll(CgdInfoEntity cgdInfoEntityDto, Integer maxCount) {
List<QgdInfo> listqg = qgdInfoMapper.selectList(new QueryWrapper<QgdInfo>().eq("nu_id",cgdInfoEntityDto.getNuId()));
if(listqg.size()>=maxCount){
return "4";//购物车最大数量为100请购数量超出限制
@ -1019,9 +1021,13 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
@Override
@Transactional(rollbackFor = Exception.class)
public Map<String,Object> pickingInfo(CgdInfoEntity cgdInfoEntityDto) {
Map<String,Object> result = new HashMap<>();
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(loginUser == null || StringUtils.isBlank(loginUser.getRealname())){
loginUser = new LoginUser();
loginUser.setRealname("系统管理员");
loginUser.setOrgCode("101");
}
QueryWrapper<NuInvoicingCgdInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id",cgdInfoEntityDto.getJhId());
//请购信息
@ -1083,6 +1089,15 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
}
crkInfo.setDqkcl(dqkcl);//当前库存量(操作后的库存量)
crkInfo.setContent("采购单:"+cgdMain.getCgdNo());
crkInfo.setMaterialCategoryName(dictUtils.translateDictValue("id","category_name","nu_config_material_category",mterialInfo.getCategoryId()));//物料类别名称
crkInfo.setMaterialTypeName(dictUtils.translateDictValue("id","type_name","nu_config_material_type",mterialInfo.getTypeId()));//物料类型名称
crkInfo.setMaterialMedicationName(dictUtils.translateDictValue("id","medication_name","nu_config_material_medication",mterialInfo.getMedicationId()));//物料类型名称
crkInfo.setMaterialName(mterialInfo.getMaterialName());//物料名称
crkInfo.setMaterialUnits(mterialInfo.getMaterialUnits());//物料单位
crkInfo.setMaterialNo(mterialInfo.getMaterialNo());//物料编码
crkInfo.setSpecificationModel(mterialInfo.getSpecificationModel());//规格型号
crkInfo.setMaterialImg(mterialInfo.getMaterialImg());//物料图片
crkInfo.setSalesUnitPrice(new BigDecimal(mterialInfo.getSalesUnitPrice()));//销售单价
if(crkInfo.getCrkNum()>0){
crkInfoMapper.insert(crkInfo);
}
@ -1381,4 +1396,9 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
return map;
}
@Override
public Map<String, Object> queryPddStartInfo(Object o) {
return pddApi.queryPddStartInfo(null);
}
}

View File

@ -82,4 +82,41 @@ public class NuInvoicingNuCrkLog implements Serializable {
@Excel(name = "备注", width = 15)
@ApiModelProperty(value = "备注")
private java.lang.String content;
/**物料类别名称*/
@Excel(name = "物料类别名称", width = 15)
@ApiModelProperty(value = "物料类别名称")
private java.lang.String materialCategoryName;
/**物料类型名称*/
@Excel(name = "物料类型名称", width = 15)
@ApiModelProperty(value = "物料类型名称")
private java.lang.String materialTypeName;
/**用药类型名称*/
@Excel(name = "用药类型名称", width = 15)
@ApiModelProperty(value = "用药类型名称")
private java.lang.String materialMedicationName;
/**物料名称*/
@Excel(name = "物料名称", width = 15)
@ApiModelProperty(value = "物料名称")
private java.lang.String materialName;
/**物料单位*/
@Excel(name = "物料单位", width = 15)
@ApiModelProperty(value = "物料单位")
private java.lang.String materialUnits;
/**物料编码*/
@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.math.BigDecimal salesUnitPrice;
}

View File

@ -56,43 +56,16 @@
<select id="thdMaterialList" resultType="com.nu.entity.NuKcslEntity">
select
material.id AS "materialInfo.id",
material.category_id AS "materialInfo.categoryId",
material.type_id AS "materialInfo.typeId",
material.medication_id AS "materialInfo.medicationId",
material.material_name AS "materialInfo.materialName",
material.material_no AS "materialInfo.materialNo",
material.specification_model AS "materialInfo.specificationModel",
material.sales_unit_price AS "materialInfo.salesUnitPrice",
material.reference_unit_price AS "materialInfo.referenceUnitPrice",
material.material_units AS "materialInfo.materialUnits",
material.multi_unit_switch AS "materialInfo.multiUnitSwitch",
material.one_unit AS "materialInfo.oneUnit",
material.one_unit_proportion AS "materialInfo.oneUnitProportion",
material.one_unit_price AS "materialInfo.oneUnitPrice",
material.two_unit AS "materialInfo.twoUnit",
material.two_unit_proportion AS "materialInfo.twoUnitProportion",
material.two_unit_price AS "materialInfo.twoUnitPrice",
material.multi_unit_type AS "materialInfo.multiUnitType",
material.suppliers AS "materialInfo.suppliers",
material.material_img AS "materialInfo.materialImg",
material.material_ident AS "materialInfo.materialIdent",
material.iz_enabled AS "materialInfo.izEnabled",
material.del_flag AS "materialInfo.delFlag",
material.create_by AS "materialInfo.createBy",
material.create_time AS "materialInfo.createTime",
material.update_by AS "materialInfo.updateBy",
material.update_time AS "materialInfo.updateTime",
material.sys_org_code AS "materialInfo.sysOrgCode",
material.pinyin AS "materialInfo.pinyin",
material.upper_limit AS "materialInfo.upperLimit",
material.lower_limit AS "materialInfo.lowerLimit",
material.tag_type AS "materialInfo.tagType",
material.iz_ybbx AS "materialInfo.izYbbx",
material.iz_jgyh AS "materialInfo.izJgyh",
info.th_num AS thNum
info.th_num AS thNum,
info.material_name AS "materialInfo.materialName",
info.material_no AS "materialInfo.materialNo",
info.specification_model AS "materialInfo.specificationModel",
info.sales_unit_price AS "materialInfo.salesUnitPrice",
info.material_units AS "materialInfo.materialUnits",
info.material_img AS "materialInfo.materialImg",
info.material_category_name as "materialInfo.categoryName",
info.material_type_name as "materialInfo.typeName"
from nu_invoicing_thd_info info
LEFT JOIN nu_config_material_info material ON info.wl_id = material.id
<where>
<if test="thdNo != null and thdNo != ''">
and info.thd_no = #{thdNo}

View File

@ -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<NuInvoicingPddInfo, INuInvoicingPddInfoService> {
@Autowired
private INuInvoicingPddInfoService nuInvoicingPddInfoService;
/**
* 分页列表查询
*
* @param nuInvoicingPddInfo
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "进销存-盘点单物料详细信息-分页列表查询")
@ApiOperation(value="进销存-盘点单物料详细信息-分页列表查询", notes="进销存-盘点单物料详细信息-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<NuInvoicingPddInfo>> queryPageList(NuInvoicingPddInfo nuInvoicingPddInfo,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<NuInvoicingPddInfo> queryWrapper = QueryGenerator.initQueryWrapper(nuInvoicingPddInfo, req.getParameterMap());
Page<NuInvoicingPddInfo> page = new Page<NuInvoicingPddInfo>(pageNo, pageSize);
IPage<NuInvoicingPddInfo> 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<String> 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<String> 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<String> 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<String> 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<NuInvoicingPddInfo> 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);
}
}

View File

@ -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<NuInvoicingPddMain, INuInvoicingPddMainService> {
@Autowired
private INuInvoicingPddMainService nuInvoicingPddMainService;
/**
* 分页列表查询
*
* @param nuInvoicingPddMain
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "进销存-盘点单主表-分页列表查询")
@ApiOperation(value="进销存-盘点单主表-分页列表查询", notes="进销存-盘点单主表-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<NuInvoicingPddMain>> queryPageList(NuInvoicingPddMain nuInvoicingPddMain,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<NuInvoicingPddMain> queryWrapper = QueryGenerator.initQueryWrapper(nuInvoicingPddMain, req.getParameterMap());
Page<NuInvoicingPddMain> page = new Page<NuInvoicingPddMain>(pageNo, pageSize);
IPage<NuInvoicingPddMain> 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<String> 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<String> 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<String> 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<String> 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<NuInvoicingPddMain> 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);
}
}

View File

@ -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盘亏单 3作废*/
@Excel(name = "盘点类型 1盘盈单 2盘亏单 3作废", width = 15)
@ApiModelProperty(value = "盘点类型 1盘盈单 2盘亏单 3作废")
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;
}

View File

@ -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盘点结束 3作废*/
@Excel(name = "盘点单状态 1盘点中 2盘点结束 3作废", width = 15, dicCode = "pdd_status")
@Dict(dicCode = "pdd_status")
@ApiModelProperty(value = "盘点单状态 1盘点中 2盘点结束 3作废")
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;
}

View File

@ -0,0 +1,23 @@
package com.nu.modules.pdd.mapper;
import java.util.List;
import com.nu.entity.InvoicingPddInfoEntity;
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<NuInvoicingPddInfo> {
void addPddInfo(@Param("nuId") String nuId,@Param("createBy") String createBy,@Param("pddId") String pddId);
List<NuInvoicingPddInfo> selectPydPkdList(@Param("pddId")String pddId);
List<NuInvoicingPddInfo> queryPddStartByList(@Param("params") InvoicingPddInfoEntity invoicingPddInfoEntity);
}

View File

@ -0,0 +1,18 @@
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<NuInvoicingPddMain> {
List<NuInvoicingPddMain> selectPddWlsfzyList(@Param("wlId") String wlId);
}

View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nu.modules.pdd.mapper.NuInvoicingPddInfoMapper">
<insert id="addPddInfo">
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'
</insert>
<select id="selectPydPkdList" resultType="com.nu.modules.pdd.entity.NuInvoicingPddInfo">
select pd_type,count(*) as num from nu_invoicing_pdd_info where pdd_id = #{pddId} GROUP BY pd_type
</select>
<select id="queryPddStartByList" resultType="com.nu.modules.pdd.entity.NuInvoicingPddInfo">
select pdd_start_by as create_by from nu_invoicing_pdd_main where nu_id = #{params.nuId} GROUP BY pdd_start_by
</select>
</mapper>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nu.modules.pdd.mapper.NuInvoicingPddMainMapper">
<select id="selectPddWlsfzyList" resultType="com.nu.modules.pdd.entity.NuInvoicingPddMain">
select a.* from nu_invoicing_pdd_main a
INNER JOIN nu_invoicing_pdd_info b on a.id = b.pdd_id
where a.pdd_type = '1' and b.wl_id = #{wlId}
</select>
</mapper>

View File

@ -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<NuInvoicingPddInfo> {
}

View File

@ -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<NuInvoicingPddMain> {
}

View File

@ -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<NuInvoicingPddInfoMapper, NuInvoicingPddInfo> implements INuInvoicingPddInfoService {
}

View File

@ -0,0 +1,351 @@
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.cgd.entity.NuWarehouseMaterialCrkInfo;
import com.nu.modules.cgd.mapper.NuWarehouseMaterialCrkInfoMapper;
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 com.nu.modules.warehouseMaterialInfo.mapper.BlWarehouseMaterialInfoMapper;
import com.nu.utils.DictUtils;
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.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @Description: 进销存-盘点单主表
* @Author: jeecg-boot
* @Date: 2025-12-10
* @Version: V1.0
*/
@Service
public class NuInvoicingPddMainServiceImpl extends ServiceImpl<NuInvoicingPddMainMapper, NuInvoicingPddMain> implements INuInvoicingPddMainService, IPddApi {
@Autowired
private RedisUtil redisUtil;
@Autowired
private NuBaseInfoMapper nuBaseInfoMapper;
@Autowired
private NuInvoicingPddInfoMapper pddInfoMapper;
@Autowired
private NuWarehouseMaterialCrkInfoMapper crkInfoMapper;
@Autowired
private BlWarehouseMaterialInfoMapper mterialInfoMapper;
@Autowired
private DictUtils dictUtils;
@Override
public IPage<InvoicingPddMainEntity> queryPddList(Integer pageNo, Integer pageSize, InvoicingPddMainEntity invoicingPddMainEntity, HttpServletRequest req) {
NuInvoicingPddMain nuInvoicingPddMain = new NuInvoicingPddMain();
BeanUtils.copyProperties(invoicingPddMainEntity,nuInvoicingPddMain);
Map<String, QueryRuleEnum> customeRuleMap = new HashMap<>();
QueryWrapper<NuInvoicingPddMain> 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.isNotBlank(invoicingPddMainEntity.getPddInfo())){
queryWrapper.apply("(pdd_no like ","%"+invoicingPddMainEntity.getPddInfo()+"%"," or pdd_start_by like %"+invoicingPddMainEntity.getPddInfo()+"%)" );
}
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<NuInvoicingPddMain> page = new Page<>(pageNo, pageSize);
List<NuInvoicingPddMain> list = baseMapper.selectList(page,queryWrapper);
IPage<InvoicingPddMainEntity> 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<String,Object> addPddMain(InvoicingPddMainEntity invoicingPddMainEntity) {
Map<String,Object> map = new HashMap<>();
List<NuInvoicingPddMain> list = baseMapper.selectList(new QueryWrapper<NuInvoicingPddMain>().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<NuBaseInfo>().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<InvoicingPddInfoEntity> queryPddInfoList(Integer pageNo, Integer pageSize, InvoicingPddInfoEntity invoicingPddInfoEntity, HttpServletRequest req) {
NuInvoicingPddInfo nuInvoicingPddInfo = new NuInvoicingPddInfo();
BeanUtils.copyProperties(invoicingPddInfoEntity,nuInvoicingPddInfo);
Map<String, QueryRuleEnum> customeRuleMap = new HashMap<>();
QueryWrapper<NuInvoicingPddInfo> 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<NuInvoicingPddInfo> page = new Page<>(pageNo, pageSize);
List<NuInvoicingPddInfo> list = pddInfoMapper.selectList(page,queryWrapper);
IPage<InvoicingPddInfoEntity> 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<String, Object> editPddInfo(InvoicingPddInfoEntity invoicingPddInfoEntity) {
Map<String,Object> 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<NuInvoicingPddInfo> 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
@Transactional(rollbackFor = Exception.class)
public Map<String, Object> submitPddMain(InvoicingPddMainEntity invoicingPddMainEntity) {
Map<String,Object> map = new HashMap<>();
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(user == null || StringUtils.isBlank(user.getRealname())){
user = new LoginUser();
user.setRealname("系统");
}
NuInvoicingPddMain nuInvoicingPddMainInfo =baseMapper.selectById(invoicingPddMainEntity.getId());
if(!StringUtils.equals("1",nuInvoicingPddMainInfo.getPddType())){
map.put("success","false");
map.put("message","盘点单状态不是盘点中,不能提交盘点单");
return map;
}
List<NuInvoicingPddInfo> list = pddInfoMapper.selectList(new QueryWrapper<NuInvoicingPddInfo>().eq("pdd_id",invoicingPddMainEntity.getId()).isNull("pdsl"));
int sfwc = 0;//是否完成
for(NuInvoicingPddInfo param : list){
if (StringUtils.isBlank(param.getPdType())){
sfwc = 1;
break;
}
}
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);
List<NuInvoicingPddInfo> listCrk = pddInfoMapper.selectList(new QueryWrapper<NuInvoicingPddInfo>().eq("pdd_id",invoicingPddMainEntity.getId()).gt("cesl",0));
for(NuInvoicingPddInfo param : listCrk){
//库存信息
List<BlWarehouseMaterialInfo> mterialInfoList = mterialInfoMapper.selectList(new QueryWrapper<BlWarehouseMaterialInfo>().eq("wl_id",param.getWlId()).eq("nu_id",param.getNuId()));
if(mterialInfoList == null || mterialInfoList.size() == 0){
continue;
}
BlWarehouseMaterialInfo mterialInfo = mterialInfoList.get(0);
String kcsl = mterialInfo.getKcsl();
String dqkcl = mterialInfo.getKcsl();
NuWarehouseMaterialCrkInfo crkInfo = new NuWarehouseMaterialCrkInfo();
crkInfo.setCreateBy(user.getRealname());
crkInfo.setCgdId(param.getPddId());
crkInfo.setNuId(param.getNuId());
crkInfo.setWlId(param.getWlId());
crkInfo.setCrkNum(param.getCesl());//出入库数量
if(StringUtils.equals("1",param.getPdType())){//盘盈单
crkInfo.setCrkStatus("1");//入库
dqkcl = BigDecimal.valueOf(Double.valueOf(dqkcl)).add(BigDecimal.valueOf(Double.valueOf(param.getCesl()))).toString();
}else if(StringUtils.equals("2",param.getPdType())){//盘亏单
crkInfo.setCrkStatus("3");//出库
dqkcl = BigDecimal.valueOf(Double.valueOf(dqkcl)).subtract(BigDecimal.valueOf(Double.valueOf(param.getCesl()))).toString();
}else{//其他的不进行操作
continue;
}
dqkcl = String.format("%.0f",Double.valueOf(dqkcl));
crkInfo.setCrkType("4");//固定是盘点单
// crkInfo.setOldPrice(mterialInfo.getSalesUnitPrice());//原来的价格最开始的采购价格
// crkInfo.setNewPrice(price);//新的价格
crkInfo.setCzqkcl(kcsl);//操作前库存量
crkInfo.setDqkcl(dqkcl);//当前库存量
// crkInfo.setDdwNum(1);//多单位时的数量
crkInfo.setContent("盘点单:"+nuInvoicingPddMainInfo.getPddNo());
crkInfo.setMaterialCategoryName(dictUtils.translateDictValue("id","category_name","nu_config_material_category",mterialInfo.getCategoryId()));//物料类别名称
crkInfo.setMaterialTypeName(dictUtils.translateDictValue("id","type_name","nu_config_material_type",mterialInfo.getTypeId()));//物料类型名称
crkInfo.setMaterialMedicationName(dictUtils.translateDictValue("id","medication_name","nu_config_material_medication",mterialInfo.getMedicationId()));//物料类型名称
crkInfo.setMaterialName(mterialInfo.getMaterialName());//物料名称
crkInfo.setMaterialUnits(mterialInfo.getMaterialUnits());//物料单位
crkInfo.setMaterialNo(mterialInfo.getMaterialNo());//物料编码
crkInfo.setSpecificationModel(mterialInfo.getSpecificationModel());//规格型号
crkInfo.setMaterialImg(mterialInfo.getMaterialImg());//物料图片
crkInfo.setSalesUnitPrice(new BigDecimal(mterialInfo.getSalesUnitPrice()));//销售单价
if(crkInfo.getCrkNum()>0){
crkInfoMapper.insert(crkInfo);
mterialInfo.setKcsl(dqkcl);
mterialInfoMapper.updateById(mterialInfo);
}
}
map.put("success","true");
map.put("message","操作成功");
return map;
}
@Override
public List<Map<String,String>> queryPddStartByList(InvoicingPddInfoEntity invoicingPddInfoEntity) {
List<NuInvoicingPddInfo> list = pddInfoMapper.queryPddStartByList(invoicingPddInfoEntity);
List<Map<String,String>> list1 = new ArrayList<>();
for(NuInvoicingPddInfo param : list){
Map<String,String> map = new HashMap<>();
map.put("name",param.getCreateBy());
list1.add(map);
}
return list1;
}
@Override
public Map<String, Object> voidedPddMain(InvoicingPddMainEntity invoicingPddMainEntity) {
Map<String,Object> map = new HashMap<>();
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(user == null || StringUtils.isBlank(user.getRealname())){
user = new LoginUser();
user.setRealname("系统");
}
NuInvoicingPddMain nuInvoicingPddMainInfo =baseMapper.selectById(invoicingPddMainEntity.getId());
if(!StringUtils.equals("1",nuInvoicingPddMainInfo.getPddType())){
map.put("success","false");
map.put("message","盘点单状态不是盘点中,不能作废盘点单");
return map;
}
List<NuInvoicingPddInfo> listCrk = pddInfoMapper.selectList(new QueryWrapper<NuInvoicingPddInfo>().eq("pdd_id",invoicingPddMainEntity.getId()));
for(NuInvoicingPddInfo param : listCrk){
param.setPdType("3");//作废
pddInfoMapper.updateById(param);
}
nuInvoicingPddMainInfo.setUpdateBy(user.getRealname());
nuInvoicingPddMainInfo.setUpdateTime(new Date());
nuInvoicingPddMainInfo.setPddStatus("3");
nuInvoicingPddMainInfo.setPddType("3");
baseMapper.updateById(nuInvoicingPddMainInfo);
map.put("success","true");
map.put("message","操作成功");
return map;
}
@Override
public Map<String, Object> queryPddStartInfo(InvoicingPddInfoEntity invoicingPddInfoEntity) {
List<NuInvoicingPddMain> list = baseMapper.selectList(new QueryWrapper<NuInvoicingPddMain>().eq("pdd_type","1"));
Map<String, Object> map = new HashMap<>();
if(list.size()>0){
map.put("success",false);
map.put("message","有盘点单正在盘点中,请稍后尝试操作!");
return map;
}
map.put("success",true);
map.put("message","操作成功");
return map;
}
}

View File

@ -79,6 +79,43 @@ public class NuInvoicingQldInfo implements Serializable {
@ApiModelProperty(value = "长者id nu_biz_elder_info.id")
private java.lang.String elderId;
/**物料类别名称*/
@Excel(name = "物料类别名称", width = 15)
@ApiModelProperty(value = "物料类别名称")
private java.lang.String materialCategoryName;
/**物料类型名称*/
@Excel(name = "物料类型名称", width = 15)
@ApiModelProperty(value = "物料类型名称")
private java.lang.String materialTypeName;
/**用药类型名称*/
@Excel(name = "用药类型名称", width = 15)
@ApiModelProperty(value = "用药类型名称")
private java.lang.String materialMedicationName;
/**物料名称*/
@Excel(name = "物料名称", width = 15)
@ApiModelProperty(value = "物料名称")
private java.lang.String materialName;
/**物料单位*/
@Excel(name = "物料单位", width = 15)
@ApiModelProperty(value = "物料单位")
private java.lang.String materialUnits;
/**物料编码*/
@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.math.BigDecimal salesUnitPrice;
//物料信息
@TableField(exist = false)
private BlWarehouseMaterialInfo meterialInfo;

View File

@ -7,60 +7,22 @@
info.wl_id,
MAX(info.create_time) AS create_time,
SUM(info.ql_num) AS ql_num,
material.id AS "materialInfo.id",
material.category_id AS "materialInfo.categoryId",
material.type_id AS "materialInfo.typeId",
material.medication_id AS "materialInfo.medicationId",
material.material_name AS "materialInfo.materialName",
material.material_no AS "materialInfo.materialNo",
material.specification_model AS "materialInfo.specificationModel",
material.sales_unit_price AS "materialInfo.salesUnitPrice",
material.reference_unit_price AS "materialInfo.referenceUnitPrice",
material.material_units AS "materialInfo.materialUnits",
material.multi_unit_switch AS "materialInfo.multiUnitSwitch",
material.one_unit AS "materialInfo.oneUnit",
material.one_unit_proportion AS "materialInfo.oneUnitProportion",
material.one_unit_price AS "materialInfo.oneUnitPrice",
material.two_unit AS "materialInfo.twoUnit",
material.two_unit_proportion AS "materialInfo.twoUnitProportion",
material.two_unit_price AS "materialInfo.twoUnitPrice",
material.multi_unit_type AS "materialInfo.multiUnitType",
material.suppliers AS "materialInfo.suppliers",
material.material_img AS "materialInfo.materialImg",
material.material_ident AS "materialInfo.materialIdent",
material.iz_enabled AS "materialInfo.izEnabled",
material.del_flag AS "materialInfo.delFlag",
material.create_by AS "materialInfo.createBy",
material.create_time AS "materialInfo.createTime",
material.update_by AS "materialInfo.updateBy",
material.update_time AS "materialInfo.updateTime",
material.sys_org_code AS "materialInfo.sysOrgCode",
material.pinyin AS "materialInfo.pinyin",
material.upper_limit AS "materialInfo.upperLimit",
material.lower_limit AS "materialInfo.lowerLimit",
material.tag_type AS "materialInfo.tagType",
material.iz_ybbx AS "materialInfo.izYbbx",
material.iz_jgyh AS "materialInfo.izJgyh",
maca.category_name as "materialInfo.categoryName",
maty.type_name as "materialInfo.typeName"
FROM
nu_invoicing_qld_info info
LEFT JOIN
nu_config_material_info material ON info.wl_id = material.id
LEFT JOIN nu_config_material_category maca ON material.category_id = maca.id
LEFT JOIN nu_config_material_type maty ON material.type_id = maty.id
ANY_VALUE(info.material_name) AS "materialInfo.materialName",
ANY_VALUE(info.material_no) AS "materialInfo.materialNo",
ANY_VALUE(info.specification_model) AS "materialInfo.specificationModel",
ANY_VALUE(info.sales_unit_price) AS "materialInfo.salesUnitPrice",
ANY_VALUE(info.material_units) AS "materialInfo.materialUnits",
ANY_VALUE(info.material_img) AS "materialInfo.materialImg",
ANY_VALUE(info.material_category_name) as "materialInfo.categoryName",
ANY_VALUE(info.material_type_name) as "materialInfo.typeName"
FROM nu_invoicing_qld_info info
WHERE
info.qld_no IN
<foreach collection="qldNo.split(',')" item="no" open="(" close=")" separator=",">
#{no}
</foreach>
GROUP BY
info.wl_id,
material.id,
maca.id,
maty.id
ORDER BY
MAX(info.create_time) DESC
GROUP BY info.wl_id
ORDER BY MAX(info.create_time) DESC
</select>
<select id="pages" resultType="com.nu.modules.qld.entity.NuInvoicingQldInfo">
@ -101,10 +63,16 @@
</select>
<delete id="deleteQldWl">
delete from nu_invoicing_qld_info where qld_no = #{qldNo} and wl_id = #{wlId}
delete
from nu_invoicing_qld_info
where qld_no = #{qldNo}
and wl_id = #{wlId}
</delete>
<update id="updateQldWlSl">
update nu_invoicing_qld_info set ql_num = #{qlNum} where qld_no = #{qldNo} and wl_id = #{wlId}
update nu_invoicing_qld_info
set ql_num = #{qlNum}
where qld_no = #{qldNo}
and wl_id = #{wlId}
</update>
</mapper>

View File

@ -271,6 +271,16 @@ public class QingLingServiceImpl implements IQinglingApi {
return result;
}
//检测是否有物料
QueryWrapper<NuInvoicingQldInfo> infoQW = new QueryWrapper<>();
infoQW.eq("qld_no",dto.getQldNo());
List<NuInvoicingQldInfo> infoList = invoicingQldInfoMapper.selectList(infoQW);
if(CollectionUtils.isEmpty(infoList)){
result.put("status", "faild");
result.put("message", "不存在物料,无法提交");
return result;
}
//回退单-提交
QueryWrapper<NuInvoicingQldMain> qw = new QueryWrapper<>();
qw.eq("qld_no", dto.getQldNo());
@ -351,6 +361,11 @@ public class QingLingServiceImpl implements IQinglingApi {
//可以正常提交
String status = "1";//待出库已提交
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//查出对应物料信息存储到info表和日志表中
List<String> gwcWlStrs = gwcList.stream().map(NuInvoicingQldGwc::getWlId).collect(Collectors.toList());
List<ConfigMaterialInfo> maList = configMaterialInfoMapper.queryByWlids(gwcWlStrs);
Map<String, ConfigMaterialInfo> maMap = maList.stream().collect(Collectors.toMap(ConfigMaterialInfo::getId, item -> item));
//存储主表数据
NuInvoicingQldMain saveData = new NuInvoicingQldMain();
@ -411,6 +426,15 @@ public class QingLingServiceImpl implements IQinglingApi {
item.setCreateTime(null);
item.setUpdateBy(null);
item.setUpdateTime(null);
item.setMaterialCategoryName(maMap.get(item.getWlId()).getCategoryName());//物料类别名称
item.setMaterialTypeName(maMap.get(item.getWlId()).getTypeName());//物料类型名称
item.setMaterialMedicationName(maMap.get(item.getWlId()).getMedicationName());//物料类型名称
item.setMaterialName(maMap.get(item.getWlId()).getMaterialName());//物料名称
item.setMaterialUnits(maMap.get(item.getWlId()).getMaterialUnits());//物料单位
item.setMaterialNo(maMap.get(item.getWlId()).getMaterialNo());//物料编码
item.setSpecificationModel(maMap.get(item.getWlId()).getSpecificationModel());//规格型号
item.setMaterialImg(maMap.get(item.getWlId()).getMaterialImg());//物料图片
item.setSalesUnitPrice(maMap.get(item.getWlId()).getSalesUnitPrice());//物料销售单价
});
invoicingQldInfoService.saveBatch(infoList);
@ -622,6 +646,16 @@ public class QingLingServiceImpl implements IQinglingApi {
nuInvoicingNuCrkLog.setOrderNumber(item.getQldNo());//单号
nuInvoicingNuCrkLog.setOrderType("qld");//单子类型 qld请领单
nuInvoicingNuCrkLog.setContent("请领单:" + item.getQldNo());//备注
nuInvoicingNuCrkLog.setMaterialCategoryName(item.getMaterialCategoryName());//物料类别名称
nuInvoicingNuCrkLog.setMaterialTypeName(item.getMaterialTypeName());//物料类型名称
nuInvoicingNuCrkLog.setMaterialMedicationName(item.getMaterialMedicationName());//物料类型名称
nuInvoicingNuCrkLog.setMaterialName(item.getMaterialName());//物料名称
nuInvoicingNuCrkLog.setMaterialUnits(item.getMaterialUnits());//物料单位
nuInvoicingNuCrkLog.setMaterialNo(item.getMaterialNo());//物料编码
nuInvoicingNuCrkLog.setSpecificationModel(item.getSpecificationModel());//规格型号
nuInvoicingNuCrkLog.setMaterialImg(item.getMaterialImg());//物料图片
nuInvoicingNuCrkLog.setSalesUnitPrice(item.getSalesUnitPrice());//物料销售单价
nuCrkLogList.add(nuInvoicingNuCrkLog);
});
invoicingNuCrkLogService.saveBatch(nuCrkLogList);
@ -662,6 +696,7 @@ public class QingLingServiceImpl implements IQinglingApi {
nuInvoicingNuKcsl.setNuId(item.getNuId());
nuInvoicingNuKcsl.setElderId(item.getElderId());
nuInvoicingNuKcsl.setWlId(item.getWlId());
nuInvoicingNuKcsl.setKfId((item.getKfId()));
nuInvoicingNuKcsl.setWlNum(item.getQlNum());
needAddList.add(nuInvoicingNuKcsl);
});
@ -708,6 +743,16 @@ public class QingLingServiceImpl implements IQinglingApi {
kfCrkLog.setDqkcl((Integer.parseInt(kfWlSlMap.get(item.getKfId()).get(item.getWlId())) - item.getQlNum()) + "");//当前库存量
kfCrkLog.setCrkStatus("3");//出入库状态 3出库
kfCrkLog.setContent("请领单:" + dto.getQldNo());//备注
kfCrkLog.setMaterialCategoryName(item.getMaterialCategoryName());//物料类别名称
kfCrkLog.setMaterialTypeName(item.getMaterialTypeName());//物料类型名称
kfCrkLog.setMaterialMedicationName(item.getMaterialMedicationName());//物料类型名称
kfCrkLog.setMaterialName(item.getMaterialName());//物料名称
kfCrkLog.setMaterialUnits(item.getMaterialUnits());//物料单位
kfCrkLog.setMaterialNo(item.getMaterialNo());//物料编码
kfCrkLog.setSpecificationModel(item.getSpecificationModel());//规格型号
kfCrkLog.setMaterialImg(item.getMaterialImg());//物料图片
kfCrkLog.setSalesUnitPrice(item.getSalesUnitPrice());//物料销售单价
kfCrkLogList.add(kfCrkLog);
});
warehouseMaterialCrkInfoService.saveBatch(kfCrkLogList);

View File

@ -78,4 +78,41 @@ public class NuInvoicingThdInfo implements Serializable {
@Excel(name = "长者id nu_biz_elder_info.id", width = 15)
@ApiModelProperty(value = "长者id nu_biz_elder_info.id")
private java.lang.String elderId;
/**物料类别名称*/
@Excel(name = "物料类别名称", width = 15)
@ApiModelProperty(value = "物料类别名称")
private java.lang.String materialCategoryName;
/**物料类型名称*/
@Excel(name = "物料类型名称", width = 15)
@ApiModelProperty(value = "物料类型名称")
private java.lang.String materialTypeName;
/**用药类型名称*/
@Excel(name = "用药类型名称", width = 15)
@ApiModelProperty(value = "用药类型名称")
private java.lang.String materialMedicationName;
/**物料名称*/
@Excel(name = "物料名称", width = 15)
@ApiModelProperty(value = "物料名称")
private java.lang.String materialName;
/**物料单位*/
@Excel(name = "物料单位", width = 15)
@ApiModelProperty(value = "物料单位")
private java.lang.String materialUnits;
/**物料编码*/
@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.math.BigDecimal salesUnitPrice;
}

View File

@ -10,6 +10,8 @@ import com.nu.entity.InvoicingThdGwcEntity;
import com.nu.entity.InvoicingThdLogEntity;
import com.nu.entity.InvoicingThdMainEntity;
import com.nu.entity.NuKcslEntity;
import com.nu.modules.ConfigMaterial.entity.ConfigMaterialInfo;
import com.nu.modules.ConfigMaterial.mapper.ConfigMaterialInfoMapper;
import com.nu.modules.cgd.entity.NuWarehouseMaterialCrkInfo;
import com.nu.modules.cgd.service.INuWarehouseMaterialCrkInfoService;
import com.nu.modules.invoicing.api.ITuiHuoApi;
@ -18,6 +20,7 @@ import com.nu.modules.nu.entity.NuInvoicingNuKcsl;
import com.nu.modules.nu.mapper.NuInvoicingNuKcslMapper;
import com.nu.modules.nu.service.INuInvoicingNuCrkLogService;
import com.nu.modules.nu.service.INuInvoicingNuKcslService;
import com.nu.modules.qld.entity.NuInvoicingQldGwc;
import com.nu.modules.thd.entity.NuInvoicingThdGwc;
import com.nu.modules.thd.entity.NuInvoicingThdInfo;
import com.nu.modules.thd.entity.NuInvoicingThdLog;
@ -72,6 +75,8 @@ public class ThdServiceImpl implements ITuiHuoApi {
private IBlWarehouseMaterialInfoService warehouseMaterialInfoService;
@Autowired
private INuWarehouseMaterialCrkInfoService warehouseMaterialCrkInfoService;
@Autowired
private ConfigMaterialInfoMapper configMaterialInfoMapper;
@Override
public IPage<InvoicingThdMainEntity> thdList(Integer pageNo, Integer pageSize, InvoicingThdMainEntity dto) {
@ -321,6 +326,11 @@ public class ThdServiceImpl implements ITuiHuoApi {
List<NuInvoicingThdGwc> gwcList = thdGwcMapper.selectList(gwcQW);
wlList = gwcList.stream().map(NuInvoicingThdGwc::getWlId).collect(Collectors.toList());
//查出对应物料信息存储到info表和日志表中
List<String> gwcWlStrs = gwcList.stream().map(NuInvoicingThdGwc::getWlId).collect(Collectors.toList());
List<ConfigMaterialInfo> maList = configMaterialInfoMapper.queryByWlids(gwcWlStrs);
Map<String, ConfigMaterialInfo> maMap = maList.stream().collect(Collectors.toMap(ConfigMaterialInfo::getId, item -> item));
//移除购物车数据
InvoicingThdGwcEntity t_ = new InvoicingThdGwcEntity();
t_.setPkId(dto.getId());
@ -337,6 +347,16 @@ public class ThdServiceImpl implements ITuiHuoApi {
info.setThNum(gwc.getThNum());//退货数量
info.setNuId(gwc.getNuId());//护理单元id
info.setElderId(gwc.getElderId());//长者id
info.setMaterialCategoryName(maMap.get(gwc.getWlId()).getCategoryName());//物料类别名称
info.setMaterialTypeName(maMap.get(gwc.getWlId()).getTypeName());//物料类型名称
info.setMaterialMedicationName(maMap.get(gwc.getWlId()).getMedicationName());//物料类型名称
info.setMaterialName(maMap.get(gwc.getWlId()).getMaterialName());//物料名称
info.setMaterialUnits(maMap.get(gwc.getWlId()).getMaterialUnits());//物料单位
info.setMaterialNo(maMap.get(gwc.getWlId()).getMaterialNo());//物料编码
info.setSpecificationModel(maMap.get(gwc.getWlId()).getSpecificationModel());//规格型号
info.setMaterialImg(maMap.get(gwc.getWlId()).getMaterialImg());//物料图片
info.setSalesUnitPrice(maMap.get(gwc.getWlId()).getSalesUnitPrice());//物料销售单价
infoList.add(info);
}
thdInfoService.saveBatch(infoList);
@ -378,6 +398,16 @@ public class ThdServiceImpl implements ITuiHuoApi {
kfCrkLog.setDqkcl((Integer.parseInt(kfWlSlMap.get(item.getKfId()).get(item.getWlId())) + item.getThNum()) + "");//当前库存量
kfCrkLog.setCrkStatus("1");//出入库状态 1入库
kfCrkLog.setContent("退货单:" + thdNo);//备注
kfCrkLog.setMaterialCategoryName(item.getMaterialCategoryName());//物料类别名称
kfCrkLog.setMaterialTypeName(item.getMaterialTypeName());//物料类型名称
kfCrkLog.setMaterialMedicationName(item.getMaterialMedicationName());//物料类型名称
kfCrkLog.setMaterialName(item.getMaterialName());//物料名称
kfCrkLog.setMaterialUnits(item.getMaterialUnits());//物料单位
kfCrkLog.setMaterialNo(item.getMaterialNo());//物料编码
kfCrkLog.setSpecificationModel(item.getSpecificationModel());//规格型号
kfCrkLog.setMaterialImg(item.getMaterialImg());//物料图片
kfCrkLog.setSalesUnitPrice(item.getSalesUnitPrice());//物料销售单价
kfCrkLogList.add(kfCrkLog);
}
warehouseMaterialCrkInfoService.saveBatch(kfCrkLogList);
@ -408,6 +438,16 @@ public class ThdServiceImpl implements ITuiHuoApi {
nuInvoicingNuCrkLog.setOrderNumber(item.getThdNo());//单号
nuInvoicingNuCrkLog.setOrderType("thd");//单子类型 thd退货单
nuInvoicingNuCrkLog.setContent("退货单:" + item.getThdNo());//备注
nuInvoicingNuCrkLog.setMaterialCategoryName(item.getMaterialCategoryName());//物料类别名称
nuInvoicingNuCrkLog.setMaterialTypeName(item.getMaterialTypeName());//物料类型名称
nuInvoicingNuCrkLog.setMaterialMedicationName(item.getMaterialMedicationName());//物料类型名称
nuInvoicingNuCrkLog.setMaterialName(item.getMaterialName());//物料名称
nuInvoicingNuCrkLog.setMaterialUnits(item.getMaterialUnits());//物料单位
nuInvoicingNuCrkLog.setMaterialNo(item.getMaterialNo());//物料编码
nuInvoicingNuCrkLog.setSpecificationModel(item.getSpecificationModel());//规格型号
nuInvoicingNuCrkLog.setMaterialImg(item.getMaterialImg());//物料图片
nuInvoicingNuCrkLog.setSalesUnitPrice(item.getSalesUnitPrice());//物料销售单价
nuCrkLogList.add(nuInvoicingNuCrkLog);
});
invoicingNuCrkLogService.saveBatch(nuCrkLogList);

View File

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.nu.entity.QgdInfoEntity;
import com.nu.modules.cgd.entity.NuInvoicingCgdMain;
import com.nu.modules.cgd.mapper.NuInvoicingCgdMainMapper;
import com.nu.modules.pdd.entity.NuInvoicingPddMain;
import com.nu.modules.pdd.mapper.NuInvoicingPddMainMapper;
import com.nu.modules.qgd.entity.QgdInfo;
import com.nu.modules.qgd.mapper.QgdInfoMapper;
import com.nu.modules.qld.entity.NuInvoicingQldGwc;
@ -47,6 +49,9 @@ public class BlWarehouseMaterialInfoServiceImpl extends ServiceImpl<BlWarehouseM
@Autowired
private NuInvoicingQldMainMapper qldMainMapper;
@Autowired
private NuInvoicingPddMainMapper pddMainMapper;
@Override
public String addAllWuliao(BlWarehouseMaterialInfo blWarehouseMaterialInfo) {
@ -122,7 +127,13 @@ public class BlWarehouseMaterialInfoServiceImpl extends ServiceImpl<BlWarehouseM
map.put("success",false);
return map;
}
//TODO 查询盘点单是否有占用的数据
//查询盘点单是否有占用的数据
List<NuInvoicingPddMain> pddMainList = pddMainMapper.selectPddWlsfzyList(wlId);
if(pddMainList.size()>0){
map.put("message","有仓库正在盘点单中,等盘点结束后再进行操作");
map.put("success",false);
return map;
}
map.put("message","无占用");
map.put("success",true);