rev:出库
This commit is contained in:
@@ -82,7 +82,6 @@ public class PdaIOService {
|
||||
//创建单据分配货位
|
||||
StIvtIostorinv ivtIostorinv = ioService.createPadIvtAndoutDispense(pdaFormOutMst);
|
||||
StIvtIostorinv byId = iStIvtIostorinvService.getById(ivtIostorinv.getId());
|
||||
|
||||
this.pdaTaskOpen(byId);
|
||||
}
|
||||
|
||||
@@ -167,14 +166,31 @@ public class PdaIOService {
|
||||
String now = DateUtil.now();
|
||||
String nickName = SecurityUtils.getCurrentNickName();
|
||||
for (PdaFormOutDtl child : pdaFormOutMst.getChildren()) {
|
||||
BigDecimal planQty = child.getPlan_qty();
|
||||
BigDecimal assignQty = child.getAssign_qty();
|
||||
BigDecimal now_assign_qty = child.getNow_assign_qty();
|
||||
BigDecimal qty = child.getQty();
|
||||
iPmFormDataService.update(new UpdateWrapper<PmFormData>()
|
||||
.set("qty",qty.subtract(now_assign_qty))
|
||||
.set("assign_qty",planQty.subtract(now_assign_qty))
|
||||
.set("assign_qty",assignQty.add(now_assign_qty))
|
||||
.set("update_time",now)
|
||||
.set("update_name",nickName));
|
||||
.set("update_name",nickName)
|
||||
.eq("id",child.getId()));
|
||||
}
|
||||
String sourceFormid = pdaFormOutMst.getId();
|
||||
List<PmFormData> byParentId = iPmFormDataService.getByParentId(sourceFormid);
|
||||
long count = byParentId.stream().filter(pmFormData -> pmFormData.getQty().intValue() > 0).count();
|
||||
if (count == 0){
|
||||
iPmFormDataService.update(new UpdateWrapper<PmFormData>()
|
||||
.set("status",StatusEnum.FORM_STATUS.code("完成"))
|
||||
.set("update_time",now)
|
||||
.set("update_name",nickName)
|
||||
.eq("id",sourceFormid));
|
||||
}else {
|
||||
iPmFormDataService.update(new UpdateWrapper<PmFormData>()
|
||||
.set("status",StatusEnum.FORM_STATUS.code("执行中"))
|
||||
.set("update_time",now)
|
||||
.set("update_name",nickName)
|
||||
.eq("id",sourceFormid));
|
||||
}
|
||||
return mst;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
package org.nl.wms.pm_manage.form_data.service.dao;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class FormDataIdCode {
|
||||
private String id;
|
||||
private String code;
|
||||
}
|
||||
@@ -38,5 +38,6 @@ public interface PmFormDataMapper extends BaseMapper<PmFormData> {
|
||||
ReceiveBillData queryReceiveBill(@Param("bar_code") String bar_code);
|
||||
|
||||
Set<String> existFormDataList();
|
||||
Set<String> existFormCodeDataList();
|
||||
|
||||
}
|
||||
|
||||
@@ -198,7 +198,12 @@
|
||||
WHERE d.bar_code= #{bar_code}
|
||||
</select>
|
||||
<select id="existFormDataList" resultType="java.lang.String">
|
||||
SELECT ID
|
||||
SELECT id
|
||||
FROM pm_form_data
|
||||
WHERE DATE(create_time) = CURDATE()
|
||||
</select>
|
||||
<select id="existFormCodeDataList" resultType="java.lang.String">
|
||||
SELECT code
|
||||
FROM pm_form_data
|
||||
WHERE DATE(create_time) = CURDATE()
|
||||
</select>
|
||||
|
||||
@@ -23,6 +23,8 @@ import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
|
||||
import org.nl.wms.pm_manage.form_data.service.dao.mapper.PmFormDataMapper;
|
||||
import org.nl.wms.pm_manage.form_data.service.dto.FormDataQuery;
|
||||
import org.nl.wms.pm_manage.form_data.service.dto.PmFormDataDto;
|
||||
import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
||||
import org.nl.wms.stor_manage.struct.service.dao.StructAssignQty;
|
||||
import org.nl.wms.sync_manage.service.form_mapping.ISyncFormMappingService;
|
||||
import org.nl.wms.sync_manage.service.form_mapping.dao.SyncFormMapping;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
@@ -31,7 +33,9 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -60,6 +64,8 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
|
||||
private IBmFormStrucService formStrucService;
|
||||
@Autowired
|
||||
private ISyncFormMappingService iSyncFormMappingService;
|
||||
@Autowired
|
||||
private IStIvtStructattrService iStIvtStructattrService;
|
||||
|
||||
|
||||
@Override
|
||||
@@ -208,20 +214,32 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
|
||||
if (CollectionUtils.isEmpty(pmFormDataDtos)){
|
||||
throw new BadRequestException(code+"单据编码不存在或已经完成入库");
|
||||
}
|
||||
List<String> parents = pmFormDataDtos.stream().map(PmFormDataDto::getId).collect(Collectors.toList());
|
||||
List<PmFormDataDto> childs = this.baseMapper.selectChilds(parents);
|
||||
if (!CollectionUtils.isEmpty(childs)){
|
||||
Map<String, List<PmFormDataDto>> childMap = childs.stream().collect(Collectors.groupingBy(PmFormDataDto::getParent_id));
|
||||
for (PmFormDataDto dataDto : pmFormDataDtos) {
|
||||
List<PmFormDataDto> children = childMap.get(dataDto.getId());
|
||||
for (PmFormDataDto child : children) {
|
||||
String productArea = child.getForm_data().getString("product_area");
|
||||
child.setProduct_area(productArea);
|
||||
}
|
||||
dataDto.setChildren(children);
|
||||
PmFormDataDto pmFormDataDto = pmFormDataDtos.get(0);
|
||||
List<PmFormDataDto> childs = this.baseMapper.selectChilds(ListOf.of(pmFormDataDto.getId()));
|
||||
if (CollectionUtils.isEmpty(childs)){
|
||||
throw new BadRequestException(code+"单据明细数据为空");
|
||||
}
|
||||
List<String> collect = childs.stream().map(PmFormDataDto::getMaterial_id).collect(Collectors.toList());
|
||||
//TODO:指定仓库
|
||||
List<StructAssignQty> structMaterials = iStIvtStructattrService.getStructIvtAssign(collect, "FStockId");
|
||||
Map<String, List<StructAssignQty>> materialMap = structMaterials.stream().collect(Collectors.groupingBy(StructAssignQty::getMaterial_id));
|
||||
|
||||
for (PmFormDataDto child : childs) {
|
||||
String productArea = child.getForm_data().getString("product_area");
|
||||
child.setProduct_area(productArea);
|
||||
List<StructAssignQty> maps = materialMap.get(child.getMaterial_id());
|
||||
if (CollectionUtils.isEmpty(maps)){
|
||||
child.setSto_qty(new BigDecimal(0));
|
||||
child.setPcsn("");
|
||||
}else {
|
||||
maps.sort(Comparator.comparing(StructAssignQty::getSto_qty));
|
||||
StructAssignQty max = maps.get(0);
|
||||
child.setSto_qty(max.getSto_qty());
|
||||
child.setPcsn(max.getPcsn());
|
||||
}
|
||||
}
|
||||
return pmFormDataDtos.get(0);
|
||||
pmFormDataDto.setChildren(childs);
|
||||
return pmFormDataDto;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.nl.wms.stor_manage.io.service.iostor.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
@@ -33,6 +34,7 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -66,39 +68,78 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
|
||||
if (form == null) {
|
||||
return;
|
||||
}
|
||||
String now = DateUtil.now();
|
||||
String nickName = SecurityUtils.getCurrentNickName();
|
||||
String sourceFormCode = form.getString("source_form_code");
|
||||
String mstString = null;
|
||||
StIvtIostorinv mst = form.toJavaObject(StIvtIostorinv.class);
|
||||
String sourceFormid = null;
|
||||
if (StringUtils.isNotEmpty(sourceFormCode)){
|
||||
PmFormData mst = iPmFormDataService.getOne(new QueryWrapper<PmFormData>().eq("code", sourceFormCode));
|
||||
JSONObject mstJ = (JSONObject) JSONObject.toJSON(mst);
|
||||
PmFormData pmst = iPmFormDataService.getOne(new QueryWrapper<PmFormData>().eq("code", sourceFormCode));
|
||||
sourceFormid = pmst.getId();
|
||||
JSONObject mstJ = (JSONObject) JSONObject.toJSON(pmst);
|
||||
mstJ.putAll((Map)mstJ.remove("form_data"));
|
||||
mstJ.putAll(mst.getForm_data());
|
||||
mstString = mstJ.toJSONString();
|
||||
}
|
||||
List<Map> dtls = (List<Map>) form.remove("item");
|
||||
StIvtIostorinv mst = form.toJavaObject(StIvtIostorinv.class);
|
||||
mst.setId(IdUtil.getStringId());
|
||||
mst.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
mst.setCreate_time(DateUtil.now());
|
||||
mst.setCreate_name(nickName);
|
||||
mst.setCreate_time(now);
|
||||
mst.setCode(CodeUtil.getNewCode("IO_CODE"));
|
||||
mst.setStatus(StatusEnum.FORM_STATUS.code("生成"));
|
||||
if (dtls != null && dtls.size() > 0) {
|
||||
for (int i = 0; i < dtls.size(); i++) {
|
||||
JSONObject jsonDtl = new JSONObject(dtls.get(i));
|
||||
String sourceDtlFormCode = jsonDtl.getString("source_form_code");
|
||||
StIvtIostorinvdtl dtl = jsonDtl.toJavaObject(StIvtIostorinvdtl.class);
|
||||
if (StringUtils.isNotEmpty(sourceDtlFormCode) && mstString!=null){
|
||||
JSONObject sourceFormData = JSONObject.parseObject(mstString);
|
||||
PmFormData sourDtl = iPmFormDataService.getOne(new QueryWrapper<PmFormData>()
|
||||
.eq("code", sourceFormCode));
|
||||
JSONObject dtlJ = (JSONObject) JSONObject.toJSON(sourDtl);
|
||||
dtlJ.putAll((Map) dtlJ.remove("form_data"));
|
||||
sourceFormData.putAll(dtlJ);
|
||||
dtl.setSource_form_data(sourceFormData);
|
||||
}
|
||||
dtl.setId(IdUtil.getStringId());
|
||||
dtl.setInv_id(mst.getId());
|
||||
dtl.setStatus(StatusEnum.FORM_STATUS.code("生成"));
|
||||
iStIvtIostorinvDtlService.save(dtl);
|
||||
if (dtls == null || dtls.size() == 0) {
|
||||
throw new BadRequestException("出库明细不能为空");
|
||||
}
|
||||
List<Map<String,String>> list = new ArrayList<>();
|
||||
for (int i = 0; i < dtls.size(); i++) {
|
||||
JSONObject jsonDtl = new JSONObject(dtls.get(i));
|
||||
String sourceDtlFormId = jsonDtl.getString("source_form_id");
|
||||
StIvtIostorinvdtl dtl = jsonDtl.toJavaObject(StIvtIostorinvdtl.class);
|
||||
if (StringUtils.isNotEmpty(sourceDtlFormId) && mstString!=null){
|
||||
JSONObject sourceFormData = JSONObject.parseObject(mstString);
|
||||
PmFormData sourDtl = iPmFormDataService.getById(sourceDtlFormId);
|
||||
String dtlStr = JSON.toJSONString(sourDtl);
|
||||
JSONObject dtlJ = JSONObject.parseObject(dtlStr);
|
||||
dtlJ.putAll((Map) dtlJ.remove("form_data"));
|
||||
sourceFormData.putAll(dtlJ);
|
||||
sourceFormData.put("pcsn",dtl.getPcsn());
|
||||
sourceFormData.put("now_assign_qty",dtl.getQty());
|
||||
dtl.setSource_form_data(sourceFormData);
|
||||
list.add(MapOf.of("qty",sourDtl.getQty().subtract(dtl.getQty())
|
||||
,"assign_qty",sourDtl.getAssign_qty().add(dtl.getQty())
|
||||
,"id",sourceDtlFormId));
|
||||
}
|
||||
dtl.setId(IdUtil.getStringId());
|
||||
dtl.setInv_id(mst.getId());
|
||||
dtl.setUpdate_time(now);
|
||||
dtl.setUpdate_time(nickName);
|
||||
dtl.setStatus(StatusEnum.FORM_STATUS.code("生成"));
|
||||
iStIvtIostorinvDtlService.save(dtl);
|
||||
}
|
||||
for (Map<String,String> map : list) {
|
||||
iPmFormDataService.update(new UpdateWrapper<PmFormData>()
|
||||
.set("qty",map.get("qty"))
|
||||
.set("assign_qty",map.get("assign_qty"))
|
||||
.set("update_time",now)
|
||||
.set("update_name",nickName)
|
||||
.eq("id",map.get("id")));
|
||||
}
|
||||
if (StringUtils.isNotEmpty(sourceFormid)){
|
||||
List<PmFormData> byParentId = iPmFormDataService.getByParentId(sourceFormid);
|
||||
long count = byParentId.stream().filter(pmFormData -> pmFormData.getQty().intValue() > 0).count();
|
||||
if (count == 0){
|
||||
iPmFormDataService.update(new UpdateWrapper<PmFormData>()
|
||||
.set("status",StatusEnum.FORM_STATUS.code("完成"))
|
||||
.set("update_time",now)
|
||||
.set("update_name",nickName)
|
||||
.eq("id",sourceFormid));
|
||||
}else {
|
||||
iPmFormDataService.update(new UpdateWrapper<PmFormData>()
|
||||
.set("status",StatusEnum.FORM_STATUS.code("执行中"))
|
||||
.set("update_time",now)
|
||||
.set("update_name",nickName)
|
||||
.eq("id",sourceFormid));
|
||||
}
|
||||
}
|
||||
this.save(mst);
|
||||
@@ -311,6 +352,8 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
|
||||
|
||||
@Override
|
||||
public String cancelMst(String id) {
|
||||
String now = DateUtil.now();
|
||||
String nickName = SecurityUtils.getCurrentNickName();
|
||||
StIvtIostorinv mst = this.getById(id);
|
||||
List<StIvtIostorinvdtl> iostorinvdtls = iStIvtIostorinvDtlService.list(new QueryWrapper<StIvtIostorinvdtl>().eq("inv_id", id));
|
||||
String collect = iostorinvdtls.stream().map(StIvtIostorinvdtl::getVehicle_id).collect(Collectors.joining(","));
|
||||
@@ -319,6 +362,8 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
|
||||
//更新点位锁,删除分配
|
||||
iMdPbVehicleMaterService.update(new UpdateWrapper<MdPbVehicleMater>()
|
||||
.set("frozen_qty", 0)
|
||||
.set("update_time",now)
|
||||
.set("update_name",nickName)
|
||||
.in("id", Arrays.asList(split)));
|
||||
//更新点位锁定
|
||||
String vehicleCodes = iostorinvdtls.stream().map(StIvtIostorinvdtl::getVehicle_code).collect(Collectors.joining(","));
|
||||
@@ -326,13 +371,39 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl<StIvtIostorinvOutMapp
|
||||
iStIvtStructattrService
|
||||
.update(new UpdateWrapper<StIvtStructattr>()
|
||||
.set("lock_type",StatusEnum.LOCK.code("无锁"))
|
||||
.set("update_time",now)
|
||||
.set("update_name",nickName)
|
||||
.in("vehicle_code", Arrays.asList(vehicleCodeSplit))
|
||||
);
|
||||
}
|
||||
|
||||
this.update(new UpdateWrapper<StIvtIostorinv>()
|
||||
.set("status", StatusEnum.FORM_STATUS.code("取消"))
|
||||
.set("update_time",now)
|
||||
.set("update_name",nickName)
|
||||
.eq("id", id));
|
||||
/**
|
||||
* 更新原单
|
||||
*/
|
||||
String parentId = null;
|
||||
for (StIvtIostorinvdtl dtl : iostorinvdtls) {
|
||||
String formid = dtl.getSource_form_id();
|
||||
PmFormData pmFormData = iPmFormDataService.getById(formid);
|
||||
parentId = pmFormData.getParent_id();
|
||||
iPmFormDataService.update(new UpdateWrapper<PmFormData>()
|
||||
.set("qty",pmFormData.getQty().add(dtl.getQty()))
|
||||
.set("assign_qty",pmFormData.getAssign_qty().subtract(dtl.getQty()))
|
||||
.set("update_time",now)
|
||||
.set("update_name",nickName)
|
||||
.set("remark","出库单取消")
|
||||
.eq("id",formid));
|
||||
}
|
||||
if (StringUtils.isNotEmpty(parentId)){
|
||||
iPmFormDataService.update(new UpdateWrapper<PmFormData>()
|
||||
.set("status",StatusEnum.FORM_STATUS.code("执行中"))
|
||||
.set("update_time",now)
|
||||
.set("update_name",nickName)
|
||||
.eq("id",parentId));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.wms.stor_manage.struct.service.dao.StructAssignQty;
|
||||
import org.nl.wms.stor_manage.struct.service.dto.StructattrQuery;
|
||||
import org.nl.wms.stor_manage.struct.service.dto.StructattrVechielDto;
|
||||
|
||||
@@ -52,4 +53,6 @@ public interface IStIvtStructattrService extends IService<StIvtStructattr> {
|
||||
List<StructattrVechielDto> structVehicle(Map query);
|
||||
|
||||
Object getStructIvt(StructattrQuery query, PageQuery page);
|
||||
|
||||
List<StructAssignQty> getStructIvtAssign(List<String> materials, String stor_code);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
package org.nl.wms.stor_manage.struct.service.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 仓位属性表
|
||||
* </p>
|
||||
*
|
||||
* @author generator
|
||||
* @since 2024-04-08
|
||||
*/
|
||||
@Data
|
||||
public class StructAssignQty {
|
||||
private String struct_code;
|
||||
private String stor_code;
|
||||
private String material_id;
|
||||
private String struct_codes;
|
||||
private String vehicle_codes;
|
||||
private String pcsn;
|
||||
private BigDecimal sto_qty;
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.nl.wms.stor_manage.struct.service.dao.StructAssignQty;
|
||||
import org.nl.wms.stor_manage.struct.service.dto.StructattrQuery;
|
||||
import org.nl.wms.stor_manage.struct.service.dto.StructattrVechielDto;
|
||||
|
||||
@@ -27,4 +28,6 @@ public interface StIvtStructattrMapper extends BaseMapper<StIvtStructattr> {
|
||||
List<StructattrVechielDto> structVehicle(Map query);
|
||||
|
||||
List<Map> getStructIvt(@Param("query")StructattrQuery query, PageQuery pageQuery);
|
||||
|
||||
List<StructAssignQty> getStructIvtAssign(@Param("materials")List<String> materials, @Param("stor_code")String stor_code);
|
||||
}
|
||||
|
||||
@@ -138,4 +138,29 @@
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
<select id="getStructIvtAssign" resultType="org.nl.wms.stor_manage.struct.service.dao.StructAssignQty">
|
||||
SELECT
|
||||
struct.struct_code,
|
||||
struct.stor_code,
|
||||
vm.material_id,
|
||||
GROUP_CONCAT(struct.struct_code) as struct_codes,
|
||||
GROUP_CONCAT(struct.vehicle_code) as vehicle_codes,
|
||||
vm.pcsn,
|
||||
SUM(vm.qty) as sto_qty
|
||||
FROM
|
||||
st_ivt_structattr struct
|
||||
left join md_pb_vehicleMater vm on struct.vehicle_code = vm.vehicle_code
|
||||
left join md_me_materialbase material on vm.material_id = material.material_id
|
||||
where struct.vehicle_code is not null
|
||||
and vm.is_delete = false
|
||||
and struct.lock_type = '00'
|
||||
and struct.is_used = '1'
|
||||
and struct.is_used = '1'
|
||||
and vm.frozen_qty = '0'
|
||||
and vm.material_id in
|
||||
<foreach collection="materials" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
GROUP BY pcsn,stor_code ORDER BY sto_qty desc
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -22,6 +22,7 @@ public class StructattrQuery extends BaseQuery<StIvtStructattr> {
|
||||
private Boolean has_vehicle = Boolean.FALSE;
|
||||
private String material;
|
||||
private Boolean has;
|
||||
private Boolean assign;
|
||||
@Override
|
||||
public void paramMapping() {
|
||||
super.doP.put("search", QParam.builder().k(new String[]{"struct_code"}).type(QueryTEnum.LK).build());
|
||||
|
||||
@@ -20,6 +20,7 @@ import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater;
|
||||
import org.nl.wms.stor_manage.record.service.IStIvtStructivtflowService;
|
||||
import org.nl.wms.stor_manage.record.service.dao.StIvtStructivtflow;
|
||||
import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
||||
import org.nl.wms.stor_manage.struct.service.dao.StructAssignQty;
|
||||
import org.nl.wms.stor_manage.struct.service.dao.mapper.StIvtStructattrMapper;
|
||||
import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@@ -53,6 +54,7 @@ public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMappe
|
||||
private IMdPbVehicleMaterService vehicleMaterService;
|
||||
@Autowired
|
||||
private IStIvtStructivtflowService structivtflowService;
|
||||
|
||||
@Autowired
|
||||
private ISysParamService iSysParamService;
|
||||
@Autowired
|
||||
@@ -179,4 +181,13 @@ public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMappe
|
||||
build.setTotalElements(page.getTotal());
|
||||
return build;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<StructAssignQty> getStructIvtAssign(List<String> materials, String stor_code) {
|
||||
if (StringUtils.isEmpty(stor_code) || materials == null || materials.size() == 0){
|
||||
throw new BadRequestException("查询可用库存失败:物料或仓库未指定");
|
||||
}
|
||||
List<StructAssignQty> mst_detail = this.baseMapper.getStructIvtAssign(materials, stor_code);
|
||||
return mst_detail;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.kingdee.bos.webapi.entity.*;
|
||||
import com.kingdee.bos.webapi.sdk.K3CloudApi;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -13,6 +14,8 @@ import org.nl.common.utils.BaseCode;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.config.lucene.LuceneAppender;
|
||||
import org.nl.wms.base_manage.material.service.IMdMeMaterialbaseService;
|
||||
import org.nl.wms.base_manage.material.service.dao.MdMeMaterialbase;
|
||||
import org.nl.wms.external_system.erp.dto.ErpQuery;
|
||||
import org.nl.wms.external_system.erp.dto.ErpSec;
|
||||
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
|
||||
@@ -45,6 +48,8 @@ public class SyncErpBillsScheduleService {
|
||||
|
||||
@Autowired
|
||||
private SyncFormMappingServiceImpl syncFormMappingServiceImpl;
|
||||
@Autowired
|
||||
private IMdMeMaterialbaseService iMdMeMaterialbaseService;
|
||||
|
||||
@Autowired
|
||||
private IPmFormDataService formDataService;
|
||||
@@ -206,20 +211,24 @@ public class SyncErpBillsScheduleService {
|
||||
log.error("ERP单据同步失败:{}", error);
|
||||
}
|
||||
Set<String> exitFormDataList = pmFormDataMapper.existFormDataList();
|
||||
外部:
|
||||
for (Object r : result) {
|
||||
try {
|
||||
JSONArray mappingJsonArray = JSONArray.parseArray(mappingJson);
|
||||
List<PmFormData> formDataList = formDataService.syncAnalyse(mappingJsonArray, formType, dtlSplit, JSON.toJSONString(r));
|
||||
for (PmFormData formData : formDataList) {
|
||||
try {
|
||||
//log.error(JSON.toJSONString(r));
|
||||
if (!exitFormDataList.contains(formData.getId())) {
|
||||
formDataService.save(formData);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("保存数据 [{}] 时出现异常: {}", JSON.toJSONString(formData), e.getMessage());
|
||||
Set<String> materials = formDataList.stream().map(PmFormData::getMaterial_id).collect(Collectors.toSet());
|
||||
int materialCount = iMdMeMaterialbaseService.count(new QueryWrapper<MdMeMaterialbase>().in("material_id", materials));
|
||||
if (materialCount!=materials.size()){
|
||||
log.error("保存数据 [{}] 时出现异常: {}", JSON.toJSONString(formDataList), "物料信息不存在"+materials.toString());
|
||||
}
|
||||
for (String id : formDataList.stream().map(PmFormData::getId).collect(Collectors.toList())) {
|
||||
if (exitFormDataList.contains(id)) {
|
||||
continue 外部;
|
||||
}
|
||||
}
|
||||
for (PmFormData formData : formDataList) {
|
||||
formDataService.save(formData);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("解析数据 [{}] 时出现异常: {}", JSON.toJSONString(r), e.getMessage());
|
||||
}
|
||||
@@ -233,6 +242,4 @@ public class SyncErpBillsScheduleService {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user