rev:出库逻辑别更
This commit is contained in:
@@ -269,6 +269,18 @@
|
||||
<artifactId>commons-configuration</artifactId>
|
||||
<version>${configuration.version}</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/jcifs/jcifs -->
|
||||
<dependency>
|
||||
<groupId>jcifs</groupId>
|
||||
<artifactId>jcifs</artifactId>
|
||||
<version>1.3.17</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.jcraft</groupId>
|
||||
<artifactId>jsch</artifactId>
|
||||
<version>0.1.55</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.google.guava</groupId>
|
||||
<artifactId>guava</artifactId>
|
||||
|
||||
@@ -97,9 +97,8 @@ public class HeartClientServer extends AbstraceServer {
|
||||
System.out.println("pingpong被调用次数"+i++);
|
||||
executor.submit(()->{
|
||||
while (channel!=null && channel.isActive()){
|
||||
System.out.println(channel.id().toString()+"----ppp-----");
|
||||
try {
|
||||
Thread.sleep(2000);
|
||||
Thread.sleep(3000);
|
||||
ByteBuf log = Unpooled.copiedBuffer("ping--222-", CharsetUtil.UTF_8);
|
||||
if (channel==null){
|
||||
return;
|
||||
|
||||
@@ -77,11 +77,14 @@ public class MdGruopDickServiceImpl extends ServiceImpl<MdGruopDickMapper, MdGru
|
||||
public void groupDick(JSONObject forms) {
|
||||
List<Map> tableData = (List)forms.remove("item");
|
||||
if (CollectionUtils.isEmpty(forms)){
|
||||
throw new BadRequestException("入库失败:入库明细数据不能为空");
|
||||
throw new BadRequestException("组盘失败:入库明细数据不能为空");
|
||||
}
|
||||
JSONObject item0 = new JSONObject(tableData.get(0));
|
||||
String vehicle0 = item0.getString("vehicle_code");
|
||||
BmVehicleInfo vehicleInfo = iBmVehicleInfoService.vehileInfo(vehicle0);
|
||||
if(vehicleInfo==null){
|
||||
throw new BadRequestException("组盘失败:载具"+vehicle0+"信息不存在请在载具信息中维护");
|
||||
}
|
||||
Integer h = vehicleInfo.getH();
|
||||
RedissonUtils.lock(()->{
|
||||
QueryWrapper<StIvtStructattr> query = new QueryWrapper<StIvtStructattr>()
|
||||
|
||||
@@ -3,10 +3,13 @@ package org.nl.wms.pda_manage.iostorage;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.anno.Log;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.utils.ListOf;
|
||||
import org.nl.common.utils.MapOf;
|
||||
import org.nl.common.utils.RedissonUtils;
|
||||
import org.nl.wms.config_manage.form_struc.service.IBmFormStrucService;
|
||||
@@ -72,6 +75,17 @@ public class PdaOutController {
|
||||
return new ResponseEntity<>(TableDataInfo.build(iPmFormDataService.queryTree(query,page)), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("orderConfirm")
|
||||
@Log("查询单据数据")
|
||||
@SaIgnore
|
||||
public ResponseEntity<TableDataInfo<PmFormDataDto>> orderConfirm(String form_code) {
|
||||
if (StringUtils.isEmpty(form_code)){
|
||||
throw new BadRequestException("请求参数不能为空");
|
||||
}
|
||||
PmFormDataDto pmFormDataDto = iPmFormDataService.queryErpCode(form_code);
|
||||
return new ResponseEntity<>(TableDataInfo.build(ListOf.of(pmFormDataDto)), HttpStatus.OK);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -86,15 +86,23 @@ public class PdaFormOutDtl {
|
||||
private String single_weight;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
* 申请数量
|
||||
*/
|
||||
private BigDecimal qty;
|
||||
/**
|
||||
* 申请数量
|
||||
*/
|
||||
private BigDecimal sto_qty;
|
||||
/**
|
||||
* 计划数量
|
||||
*/
|
||||
private BigDecimal plan_qty;
|
||||
/**
|
||||
* 已经分配数量
|
||||
*/
|
||||
private BigDecimal assign_qty;
|
||||
/**
|
||||
* 分配数量
|
||||
* 出库数量
|
||||
*/
|
||||
private BigDecimal now_assign_qty = assign_qty;
|
||||
|
||||
|
||||
@@ -6,8 +6,10 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.alibaba.fastjson.serializer.SerializeConfig;
|
||||
import com.alibaba.fastjson.serializer.SerializerFeature;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.kingdee.bos.webapi.entity.IdentifyInfo;
|
||||
import com.kingdee.bos.webapi.sdk.K3CloudApi;
|
||||
import jcifs.smb.SmbFile;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
@@ -26,6 +28,7 @@ import org.nl.wms.external_system.erp.dto.ErpSec;
|
||||
import org.nl.wms.pda_manage.iostorage.server.dto.PdaFormOutDtl;
|
||||
import org.nl.wms.pda_manage.iostorage.server.dto.PdaFormOutMst;
|
||||
import org.nl.wms.pda_manage.iostorage.server.dto.ReceiveBillData;
|
||||
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
|
||||
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.stor_manage.io.service.iostor.IStIvtIostorinvService;
|
||||
@@ -38,7 +41,17 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.net.URI;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.nio.file.FileSystem;
|
||||
import java.nio.file.FileSystems;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -48,28 +61,23 @@ import java.util.Map;
|
||||
public class PdaIOService {
|
||||
|
||||
@Autowired
|
||||
ErpSec erpSec;
|
||||
private ErpSec erpSec;
|
||||
@Autowired
|
||||
IBmFormStrucService iBmFormStrucService;
|
||||
private IBmFormStrucService iBmFormStrucService;
|
||||
@Autowired
|
||||
IStIvtIostorinvService iStIvtIostorinvService;
|
||||
private IStIvtIostorinvService iStIvtIostorinvService;
|
||||
@Autowired
|
||||
IStIvtIostorinvdtlService iStIvtIostorinvdtlService;
|
||||
|
||||
private IStIvtIostorinvdtlService iStIvtIostorinvdtlService;
|
||||
@Autowired
|
||||
BmMeasureUnitServiceImpl bmMeasureUnitServiceImpl;
|
||||
|
||||
|
||||
private BmMeasureUnitServiceImpl bmMeasureUnitServiceImpl;
|
||||
@Autowired
|
||||
StIvtBsrealstorattrServiceImpl stIvtBsrealstorattrServiceImpl;
|
||||
|
||||
|
||||
|
||||
private StIvtBsrealstorattrServiceImpl stIvtBsrealstorattrServiceImpl;
|
||||
@Autowired
|
||||
MdMeMaterialbaseServiceImpl mdMeMaterialbaseServiceImpl;
|
||||
|
||||
@Autowired
|
||||
PmFormDataMapper pmFormDataMapper;
|
||||
private MdMeMaterialbaseServiceImpl mdMeMaterialbaseServiceImpl;
|
||||
@Resource
|
||||
private PmFormDataMapper pmFormDataMapper;
|
||||
@Resource
|
||||
private IPmFormDataService iPmFormDataService;
|
||||
|
||||
|
||||
public void PpdaOrderOutStorage(PdaFormOutMst pdaFormOutMst) {
|
||||
@@ -77,7 +85,7 @@ public class PdaIOService {
|
||||
//创建单据分配货位
|
||||
StIvtIostorinv ivtIostorinv = ioService.createPadIvtAndoutDispense(pdaFormOutMst);
|
||||
StIvtIostorinv byId = iStIvtIostorinvService.getById(ivtIostorinv.getId());
|
||||
//生成流程
|
||||
|
||||
this.pdaTaskOpen(byId);
|
||||
}
|
||||
|
||||
@@ -133,7 +141,7 @@ public class PdaIOService {
|
||||
HashMap map = MapOf.of("end_struct_code", "", "start_struct_code", "", "order", "", "product_area", productArea);
|
||||
ivtDtl.setForm_data(new JSONObject(map));
|
||||
ivtDtl.setQty(now_assign_qty);
|
||||
ivtDtl.setPcsn(dtl.getPcsn());
|
||||
ivtDtl.setPcsn(pdaFormOutMst.getPcsn());
|
||||
ivtDtl.setStor_code(storCode);//pdaFormOutMst.getStor_code()
|
||||
ivtDtl.setId(IdUtil.getStringId());
|
||||
ivtDtl.setInv_id(mst.getId());
|
||||
@@ -158,6 +166,19 @@ public class PdaIOService {
|
||||
for (StIvtIostorinvdtl stIvtIostorinvdtl : list) {
|
||||
iStIvtIostorinvService.outDispense((JSONObject) JSON.toJSON(stIvtIostorinvdtl));
|
||||
}
|
||||
//生成流程
|
||||
String now = DateUtil.now();
|
||||
String nickName = SecurityUtils.getCurrentNickName();
|
||||
for (PdaFormOutDtl child : pdaFormOutMst.getChildren()) {
|
||||
BigDecimal planQty = child.getPlan_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("update_time",now)
|
||||
.set("update_name",nickName));
|
||||
}
|
||||
return mst;
|
||||
}
|
||||
|
||||
|
||||
@@ -37,6 +37,13 @@ public interface IPmFormDataService extends IService<PmFormData> {
|
||||
|
||||
Page<PmFormDataDto> queryTree(FormDataQuery query, PageQuery page);
|
||||
|
||||
/**
|
||||
* 查询ERP同步数据及库存
|
||||
* @param code
|
||||
* @return
|
||||
*/
|
||||
PmFormDataDto queryErpCode(String code);
|
||||
|
||||
/**
|
||||
* 一对多同步改成一对一同步
|
||||
* @param mappingJson
|
||||
|
||||
@@ -116,6 +116,9 @@
|
||||
<if test="query.form_type != null and query.form_type != ''">
|
||||
and form_type = #{query.form_type}
|
||||
</if>
|
||||
<if test="query.code != null and query.code != ''">
|
||||
and code = #{query.code}
|
||||
</if>
|
||||
<if test="query.status != null and query.status != ''">
|
||||
and pm_form_data.status IN
|
||||
<foreach collection="query.status" item="status" separator="," open="(" close=")">
|
||||
|
||||
@@ -14,6 +14,7 @@ import java.util.Map;
|
||||
public class FormDataQuery extends BaseQuery<PmFormData> {
|
||||
|
||||
private String form_type;
|
||||
private String code;
|
||||
private String parent_id;
|
||||
private String[] status;
|
||||
private Map<String,String> form_query;
|
||||
|
||||
@@ -103,6 +103,10 @@ public class PmFormDataDto implements Serializable {
|
||||
* 数量
|
||||
*/
|
||||
private BigDecimal qty;
|
||||
/**
|
||||
* 库存数量
|
||||
*/
|
||||
private BigDecimal sto_qty;
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
@@ -113,9 +117,13 @@ public class PmFormDataDto implements Serializable {
|
||||
private BigDecimal assign_qty;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
* 单位
|
||||
*/
|
||||
private String unit_id;
|
||||
/**
|
||||
* 单位名称
|
||||
*/
|
||||
private String unit_name;
|
||||
|
||||
/**
|
||||
* 批次号
|
||||
|
||||
@@ -14,6 +14,7 @@ import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.domain.constant.DictConstantPool;
|
||||
import org.nl.common.domain.entity.PageQuery;
|
||||
import org.nl.common.domain.exception.BadRequestException;
|
||||
import org.nl.common.enums.StatusEnum;
|
||||
import org.nl.common.utils.*;
|
||||
import org.nl.wms.config_manage.form_struc.service.IBmFormStrucService;
|
||||
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
||||
@@ -197,6 +198,30 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
|
||||
return dtoPage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PmFormDataDto queryErpCode(String code) {
|
||||
FormDataQuery query = new FormDataQuery();
|
||||
query.setCode(code);
|
||||
query.setStatus(new String[]{StatusEnum.FORM_STATUS.code("生成"),StatusEnum.FORM_STATUS.code("执行中")});
|
||||
List<PmFormDataDto> pmFormDataDtos = this.baseMapper.queryTree2(query);
|
||||
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);
|
||||
}
|
||||
}
|
||||
return pmFormDataDtos.get(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getSonDtlFormData(String id) {
|
||||
|
||||
@@ -42,6 +42,10 @@ public class StIvtIostorinvdtlVo {
|
||||
* 源单单据类型
|
||||
*/
|
||||
private String source_form_type;
|
||||
/**
|
||||
* 源单数据
|
||||
*/
|
||||
private JSONObject source_form_data;
|
||||
/**
|
||||
* 单据明细状态
|
||||
*/
|
||||
|
||||
@@ -6,7 +6,7 @@ spring:
|
||||
freemarker:
|
||||
check-template-location: false
|
||||
profiles:
|
||||
active: dev
|
||||
active: prod
|
||||
jackson:
|
||||
time-zone: GMT+8
|
||||
data:
|
||||
|
||||
Reference in New Issue
Block a user