修改app物料bug

This commit is contained in:
yangjun 2026-04-28 16:43:40 +08:00
parent 9ec72317b7
commit e94e0c12a5
11 changed files with 110 additions and 33 deletions

View File

@ -78,10 +78,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());
}
// 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)){
@ -415,10 +415,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> 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("入库数量错误,超过采购数量");

View File

@ -69,5 +69,8 @@ public class WarehouseMaterialCrkInfoEntity implements Serializable {
private Double gzsl;//挂账数量
private String ddNo;//订单号
private String cgBy;//采购人
@Dict(dicCode = "pdType")
private String pdType;//盘点类型 1盘盈 2盘亏
private java.lang.String materialUnits;//单位
}

View File

@ -1151,6 +1151,8 @@ public class EmployeesMQListener {
//修改sysUser表的员工id
employeesInfoService.UpUserEmployeesId(dto.getId());
sysUserAPI.upUserInfo(dto.getId());
}
/**

View File

@ -238,7 +238,7 @@
c.procurement_price,
c.arrival_price,
c.suppliers_id,
c.suppliers_name,
c.suppliers_name as gysName,
c.wl_units,
c.brand_type,
c.manufacturer,

View File

@ -1116,7 +1116,16 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
mterialInfo.setCgdInfoId(cgdInfo.getId());
mterialInfo.setCgdType("1");
mterialInfo.setDdNo(cgdMain.getCgdNo());
mterialInfo.setXsjg(null);
//查询销售价格
String suppliersId = cgdInfo.getSuppliersId();
String wlId = cgdInfo.getWlId();
List<BlWarehouseMaterialInfo> xsjgList = mterialInfoMapper.getXsjg(suppliersId,wlId);
if(xsjgList != null && xsjgList.size() > 0){
mterialInfo.setXsjg(xsjgList.get(0).getXsjg());
}else{
mterialInfo.setXsjg(null);
}
mterialInfo.setXsdw(cgdInfo.getWlUnits());
mterialInfoMapper.insert(mterialInfo);
}else{
@ -1140,18 +1149,17 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
crkInfo.setSalesUnitPrice(cgdInfo.getProcurementPrice());//销售单价
//更新采购单物料信息
//未入库数量 = 采购数量 - 入库数量 - 销账数量
wrksl = cgsl - rksl - xzsl;
cgdInfo.setWrksl(wrksl);
if(StringUtils.equals("0",jhType)){//入库操作
//入库不记录销账日志
}else if(StringUtils.equals("1",jhType)){//销账操作
crkInfo.setXzsl(xzsl);
}
cgdInfo.setXzsl(xzsl);
crkInfo.setGzsl(cgdInfo.getWrksl());
crkInfo.setXzsl(cgdInfo.getXzsl());
crkInfo.setDdNo(cgdMain.getCgdNo());
crkInfo.setCgBy(cgdMain.getQgBy());
// if(crkInfo.getCrkNum()>0){
@ -1434,18 +1442,14 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
QueryWrapper<NuWarehouseMaterialCrkInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("wl_id",nuWarehouseMaterialCrkInfo.getWlId());
queryWrapper.eq("nu_id",nuWarehouseMaterialCrkInfo.getNuId());
// queryWrapper.eq("cgd_id",nuWarehouseMaterialCrkInfo.getCgdId());
queryWrapper.eq("cgd_id",nuWarehouseMaterialCrkInfo.getCgdId());
if(StringUtils.isNotBlank(crkInfoEntity.getCrkStatus())){
queryWrapper.in("crk_status",crkInfoEntity.getCrkStatus());
// }else{
// queryWrapper.in("crk_status",1,3);
}
if(StringUtils.equals("asc",colomnDesc)){
queryWrapper.orderByAsc("create_time");
}else{
queryWrapper.orderByDesc("create_time");
}
queryWrapper.orderByAsc("create_time");
Page<NuWarehouseMaterialCrkInfo> page = new Page<>(pageNo, pageSize);
List<NuWarehouseMaterialCrkInfo> list = crkInfoMapper.selectList(page,queryWrapper);
IPage<WarehouseMaterialCrkInfoEntity> entityPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
@ -1606,8 +1610,7 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
List<QgdInfo> infoList = entry.getValue();//请购的物料列表
ConfigSuppliersInfo ConfigSuppliersInfo = gysMapper.selectById(suppliersId);
String cgdNo = new SimpleDateFormat("yyyyMMdd").format(new Date()) + String.format("%03d", qgdXlhInt);
cgdNo = "C"+sysUser.getOrgCode() + cgdNo;
String cgdNo = "C"+sysUser.getOrgCode() + new SimpleDateFormat("yyyyMMdd").format(new Date()) + String.format("%03d", qgdXlhInt);
//生产采购单主表
NuInvoicingCgdMain cgdMain = new NuInvoicingCgdMain();
@ -1675,6 +1678,7 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
cgdMain.setTotalPrice(totalPrice);
mapList.add(cgdMain);
}
redisUtil.set("qgd"+qgdDate,qgdXlhInt);
System.out.println(mapList);
List<CgdMainEntity> cgdMainList = BeanUtil.copyToList(mapList,CgdMainEntity.class);
@ -1685,9 +1689,6 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
List<NuInvoicingCgdMain> mapList2 = BeanUtil.copyToList(cgdMainList,NuInvoicingCgdMain.class);
for (NuInvoicingCgdMain cgdMain : mapList2){
qgdXlhInt++;
String cgdNo = "C"+sysUser.getOrgCode() + new SimpleDateFormat("yyyyMMdd").format(new Date()) + String.format("%03d", qgdXlhInt);
cgdMain.setCgdNo(cgdNo);
cgdMain.setIzNew("Y");
List<NuInvoicingCgdInfo> cgdInfoList = cgdMain.getCgdInfoList();
cgdMainMapper.insert(cgdMain);
@ -1712,13 +1713,12 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
for(String id : qgdId.split(",")){
qgdInfoMapper.deleteById(id);
}
redisUtil.set("qgd"+qgdDate,qgdXlhInt);
DirectiveOrderBizLogEntity qgdInfoEntityDto = new DirectiveOrderBizLogEntity();
qgdInfoEntityDto.setBizTypeCode("CGD");
qgdInfoEntityDto.setBizType("采购单");
qgdInfoEntityDto.setBizNo(cgdNo);
qgdInfoEntityDto.setBizNo(cgdMain.getCgdNo());
qgdInfoEntityDto.setOptType("生成采购单信息");
directiveOrderApi.addBizLog(qgdInfoEntityDto);
@ -1752,6 +1752,8 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
@Override
public IPage<MaterialInfoEntity> getCkWlList(Page<MaterialInfoEntity> page, QueryWrapper<MaterialInfoEntity> queryWrapper) {
queryWrapper.orderByAsc("pd_type");
queryWrapper.orderByDesc("d.create_time");
return configMaterialInfoMapper.getCkWlList(page,queryWrapper);
}
@ -1840,7 +1842,7 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl<NuInvoicingCgdMai
crkInfo.setSpecificationModel(configMaterialInfo.getSpecificationModel());//规格型号
crkInfo.setMaterialImg(configMaterialInfo.getMaterialImg());//物料图片
// crkInfo.setOldPrice();
crkInfo.setOldPrice(cgdInfo.getProcurementPrice());
if(StringUtils.isNotBlank(ckInfo.getXsjg())){
crkInfo.setNewPrice(new BigDecimal(ckInfo.getXsjg()));
crkInfo.setSalesUnitPrice(new BigDecimal(ckInfo.getXsjg()));//销售单价

View File

@ -37,4 +37,6 @@ public interface BlWarehouseMaterialInfoMapper extends BaseMapper<BlWarehouseMat
List<BlWarehouseMaterialInfo> selectWaringList(@Param(Constants.WRAPPER) QueryWrapper<BlWarehouseMaterialInfo> queryWrapper);
List<BlWarehouseMaterialInfo> queryCgdWaringList(Page<BlWarehouseMaterialInfo> page, @Param(Constants.WRAPPER) QueryWrapper<BlWarehouseMaterialInfo> queryWrapper);
List<BlWarehouseMaterialInfo> getXsjg(@Param("suppliersId") String suppliersId,@Param("wlId") String wlId);
}

View File

@ -255,4 +255,53 @@
a.zhiDingTime DESC,
a.pinyin asc
</select>
<select id="getXsjg" resultType="com.nu.modules.warehouseMaterialInfo.entity.BlWarehouseMaterialInfo">
-- 使用窗口函数获取每个供应商和物料组合下的最新记录
WITH RankedData AS (
SELECT
main.gys_id,
main.gys_name,
wmi.wl_id,
info.wl_material_no,
info.wl_name,
wmi.xsjg,
wmi.xsdw,
wmi.kcsl,
wmi.create_time,
-- 核心为每个供应商、物料ID组合内的记录按create_time降序生成序号
ROW_NUMBER() OVER (
PARTITION BY main.gys_id, wmi.wl_id
ORDER BY wmi.create_time DESC
) AS rn
FROM
nu_warehouse_material_info wmi
INNER JOIN
nu_invoicing_cgd_info info ON wmi.wl_id = info.wl_id
INNER JOIN
nu_invoicing_cgd_main main ON info.cgd_id = main.id
WHERE
wmi.xsjg IS NOT NULL
AND main.status = '2'
)
-- 只取序号为1的记录即每个分组中最新的那条
SELECT
gys_id,
gys_name,
wl_id,
wl_material_no,
wl_name,
xsjg,
xsdw,
kcsl,
create_time
FROM
RankedData
WHERE
rn = 1
and wl_id = #{wlId} and gys_id = #{suppliersId}
ORDER BY
gys_id, wl_id
</select>
</mapper>

View File

@ -81,7 +81,7 @@ public class DynamicQueueNameProvider {
}
}
public String getCgdQuerenKdy() {
public String getCgdQuerenKey() {
return getCgdQueren();
}
}

View File

@ -215,9 +215,9 @@ public class SuppliersMQListener {
@AutoLog(value = "供应商-供应商申请合作")
@RabbitListener(
bindings = @QueueBinding(
value = @Queue(name = "#{suppliersDQNP.getCgdQuerenKdy()}"),
value = @Queue(name = "#{suppliersDQNP.getCgdQueren()}"),
exchange = @Exchange(name = "nu.suppliers.cgdQueren", type = ExchangeTypes.DIRECT),
key = "#{suppliersDQNP.getCgdQuerenKdy()}"
key = "#{suppliersDQNP.getCgdQuerenKey()}"
),
errorHandler = "suppliersMQExceptionHandler"
)

View File

@ -24,4 +24,6 @@ public interface ISysUserAPI{
Result<Map<String,String>> initialization(@RequestBody JSONObject jsonObject);
List<SysUserEntity> queryByEmployees(String employeeIds);
void upUserInfo(String id);
}

View File

@ -105,6 +105,7 @@ public class SysUserApiImpl implements ISysUserAPI {
@Autowired
private IEmployeesOrgApi employeesOrgApi;
@Override
public SysUserEntity getOne(String employeeId) {
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
@ -211,5 +212,21 @@ public class SysUserApiImpl implements ISysUserAPI {
List<SysUser> list = sysUserService.list(qw);
return BeanUtil.copyToList(list,SysUserEntity.class);
}
@Override
public void upUserInfo(String id) {
SysUser user = service.getById( id);
user.setUpdateTime(new Date());
user.setPassword(null);
String roles = "1940240123742437378";
String departs = "";
//用户表字段org_code不能在这里设置他的值
user.setOrgCode(null);
// 修改用户走一个service 保证事务
//获取租户ids
String relTenantIds = "";
String updateFromPage = "";
service.editUser(user, roles, departs, relTenantIds, updateFromPage);
}
}