物料调整

main
HUOJIN\92525 2024-09-13 13:30:50 +08:00
parent b24d380b8e
commit 5a2a3fab11
10 changed files with 171 additions and 268 deletions

View File

@ -45,112 +45,111 @@ public class Item extends BaseEntity implements Serializable {
@Column(name = "`code`",nullable = false)
@NotBlank
@ApiModelProperty(value = "代码")
@ApiModelProperty(value = "料号")
private String code;
@Column(name = "`name`",nullable = false)
@NotBlank
@ApiModelProperty(value = "名称")
@ApiModelProperty(value = "物料描述")
private String name;
@Column(name = "`specs`")
@ApiModelProperty(value = "规格")
private String specs;
@Column(name = "`package_type`")
@ApiModelProperty(value = "包装类型")
private String packageType;
@Column(name = "`structure_id`")
@ApiModelProperty(value = "客户ID")
private Long structureId;
@Column(name = "`spec_quantity`")
@ApiModelProperty(value = "规格数量")
private Double specQuantity=0D;
@Column(name = "`description`")
@ApiModelProperty(value = "描述")
private String description;
@Column(name = "`spec_weight`")
@ApiModelProperty(value = "规格重量")
private Double specWeight=0D;
@Column(name = "`is_attribute1`")
@ApiModelProperty(value = "是否发动机")
private Boolean isAttribute1=true;
@Column(name = "`is_attribute2`")
@ApiModelProperty(value = "是否预备货")
private Boolean isAttribute2=true;
@Column(name = "`enabled`")
@ApiModelProperty(value = "是否失效")
private Boolean enabled=true;
@Column(name = "`bepc`")
@ApiModelProperty(value = "批次")
private Boolean bepc=false;
@Column(name = "`bexq`")
@ApiModelProperty(value = "效期")
private Boolean bexq=false;
@Column(name = "`beds`")
@ApiModelProperty(value = "多收")
private Boolean beds=false;
@Column(name = "`becf`")
@ApiModelProperty(value = "超发")
private Boolean becf=false;
@Column(name = "`valid_period`")
@ApiModelProperty(value = "保质期")
private Integer validPeriod;
@Column(name = "`alert_leading_days`")
@ApiModelProperty(value = "预警天数")
private Integer alertLeadingDays;
@Column(name = "`large_class`")
@ApiModelProperty(value = "大类,组合代码,自动叫料捆绑,数量一致")
private String largeClass;
@Column(name = "`center_class`")
@ApiModelProperty(value = "中类")
private String centerClass;
@Column(name = "`small_class`")
@ApiModelProperty(value = "小类")
private String smallClass;
@Column(name = "`good_type`")
@ApiModelProperty(value = "物料类型")
private String goodType;
@Column(name = "`gross_weight`")
@ApiModelProperty(value = "毛重")
private Double grossWeight=0D;
@Column(name = "`length`")
@ApiModelProperty(value = "长")
private Double length=0d;
private Double length=0D;
@Column(name = "`width`")
@ApiModelProperty(value = "宽")
private Double width=0d;
private Double width=0D;
@Column(name = "`height`")
@ApiModelProperty(value = "高")
private Double height=0d;
@Column(name = "`weight`")
@ApiModelProperty(value = "重量")
private Double weight=0d;
private Double height=0D;
@Column(name = "`volume`")
@ApiModelProperty(value = "体积")
private Double volume=0d;
private Double volume=0D;
@Column(name = "`unit`")
@ApiModelProperty(value = "单位")
private String unit;
@Column(name = "`master_unit`")
@ApiModelProperty(value = "大单位")
private String masterUnit;
@OneToOne
@JoinColumn(name = "`rec_storage_area_id`")
@ApiModelProperty(value = "推荐库区")
private Area recStorageArea;
@Column(name = "`pack_number`")
@ApiModelProperty(value = "包装系数")
private Integer packNumber=1;
@Column(name = "`type`")
@ApiModelProperty(value = "类型")
private String type;
@Column(name = "`bar_code`")
@ApiModelProperty(value = "条码")
private String barCode;
@Column(name = "`value_grade`")
@ApiModelProperty(value = "物料价值等级")
private String valueGrade;
@Column(name = "`valid_period`")
@ApiModelProperty(value = "保质期")
private Integer validPeriod=0;
@Column(name = "`alert_days`")
@ApiModelProperty(value = "预警天数")
private Integer alertDays=0;
@Column(name = "`is_batch`")
@ApiModelProperty(value = "是否批次")
private Boolean isBatch=false;
@Column(name = "`is_serial`")
@ApiModelProperty(value = "是否序列号")
private Boolean isSerial=false;
@Column(name = "`is_valid_period`")
@ApiModelProperty(value = "是否有效期")
private Boolean isValidPeriod=false;
@Column(name = "`is_hazardous`")
@ApiModelProperty(value = "是否危化品")
private Boolean isHazardous=false;
@Column(name = "`is_inv_available`")
@ApiModelProperty(value = "是否有库存")
private Boolean isInvAvailable=false;
@Column(name = "`is_sap_material`")
@ApiModelProperty(value = "是否SAP料号")
private Boolean isSapMaterial=false;
@Column(name = "`heat_value`")
@ApiModelProperty(value = "热度值")
private Integer heatValue=0;
@Column(name = "`description`")
@ApiModelProperty(value = "描述")
private String description;
@Column(name = "`enabled`")
@ApiModelProperty(value = "是否失效")
private Boolean enabled=true;
@OneToOne
@JoinColumn(name = "`point_id`")
@ApiModelProperty(value = "库位")
private Point point;
@OneToOne
@JoinColumn(name = "dept_id")
@ -165,23 +164,6 @@ public class Item extends BaseEntity implements Serializable {
@ApiModelProperty(value = "来源序号")
private Long sourceId;
@OneToOne
@JoinColumn(name = "stock_type")
@ApiModelProperty(value = "料箱类型")
private StockType stockType;
@Column(name = "`extend_d1`")
@ApiModelProperty(value = "默认容器装载数")
private Double extendD1=1d;
@Column(name = "`extend_d2`")
@ApiModelProperty(value = "冷却时长")
private Double extendD2=4d;
@Column(name = "`extend_d3`")
@ApiModelProperty(value = "收容数")
private Double extendD3=0d;
@Column(name = "`extend_d4`")
@ApiModelProperty(value = "扩展小数4")
private Double extendD4=0d;
@ -210,17 +192,11 @@ public class Item extends BaseEntity implements Serializable {
@ApiModelProperty(value = "扩展整型5")
private Long extendNum5;
@Column(name = "`extend_str1`")
@ApiModelProperty(value = "接口代码")
private String extendStr1;
@Column(name = "`extend_str2`")
@ApiModelProperty(value = "扩展字符2")
private String extendStr2;
@Column(name = "`extend_str3`")
@ApiModelProperty(value = "何姿")
private String extendStr3;
@Column(name = "`extend_str4`")
@ApiModelProperty(value = "扩展字符4")
@ -229,10 +205,7 @@ public class Item extends BaseEntity implements Serializable {
@Column(name = "`extend_str5`")
@ApiModelProperty(value = "扩展字符5")
private String extendStr5;
@OneToOne
@JoinColumn(name = "`point_id`")
@ApiModelProperty(value = "库位")
private Point point;

View File

@ -125,9 +125,7 @@ public class ItemController {
FileUtil.checkSize(properties.getMaxSize(), multipartFile.getSize());
String suffix = FileUtil.getExtensionName(multipartFile.getOriginalFilename());
String type = FileUtil.getFileType(suffix);
log.error("--" + properties.getPath().getPath() + type + File.separator);
File file = FileUtil.upload(multipartFile, properties.getPath().getPath() + type + File.separator);
log.error("--" + file.getPath());
Map<String, StockType> map_stock = stockTypeService.queryAll();
DictQueryCriteria dictQueryCriteria=new DictQueryCriteria();
@ -145,33 +143,8 @@ public class ItemController {
for ( i = 0; i < readAll.size(); i++) {
Item item = new Item();
String code=readAll.get(i).get("物料代码").toString().trim();
item.setCode(code);
item.setName("" + readAll.get(i).get("物料名称"));
//容器类型
String stocktype_Str = "" + readAll.get(i).get("容器类型");
item.setStockType(map_stock.get(stocktype_Str));
String unit=readAll.get(i).get("单位")+"";
item.setUnit(map_dic.get(unit).getValue());
String packNumber=readAll.get(i).get("默认容器装载数").toString().trim();
item.setPackNumber(Integer.parseInt(packNumber));
String itemType=readAll.get(i).get("物料类型")+"";
item.setGoodType(item_type_dic.get(itemType).getValue());
item.setLength(Double.parseDouble("" + readAll.get(i).get("长")));
item.setWidth(Double.parseDouble("" + readAll.get(i).get("宽")));
item.setHeight(Double.parseDouble("" + readAll.get(i).get("高")));
ItemQueryCriteria itemQueryCriteria=new ItemQueryCriteria();
itemQueryCriteria.setCode(code);
List<ItemDto> itemDto_list=itemService.queryAll(itemQueryCriteria);
if(itemDto_list.size()<=0){
new_len++;
log.error("不存在--" + readAll.get(i).get("编码")+"--");
itemService.create(item);
}else{
edit_len++;
log.error("存在--" + readAll.get(i).get("编码")+"--");
item.setId(itemDto_list.get(0).getId());
itemService.update(item);
}
}
}catch (Exception e){
ApiError apiError = ApiError.errorJosn(HttpStatus.BAD_REQUEST.value(), "导入异常---第"+(i+1)+"行:"+e.toString());
@ -199,4 +172,4 @@ public class ItemController {
itemService.deleteAll(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
}
}

View File

@ -15,9 +15,16 @@
*/
package com.youchain.basicdata.service.dto;
import com.youchain.basicdata.domain.Area;
import com.youchain.basicdata.domain.Point;
import com.youchain.basicdata.domain.StockType;
import com.youchain.modules.system.domain.Dept;
import com.youchain.modules.system.service.dto.DeptSmallDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.*;
import javax.validation.constraints.NotBlank;
import java.sql.Timestamp;
import java.io.Serializable;
@ -30,142 +37,94 @@ import java.io.Serializable;
@Data
public class ItemDto implements Serializable {
/** ID */
//id
private Long id;
/** 代码 */
//料号
private String code;
/** 名称 */
//物料描述
private String name;
/** 规格 */
private String specs;
//包装类型
private String packageType;
/** 客户ID */
private Long structureId;
//规格数量
private Double specQuantity=0D;
/** 描述 */
private String description;
//规格重量
private Double specWeight=0D;
/** 是否发动机 */
private Boolean isAttribute1;
/** 是否预备货 */
private Boolean isAttribute2;
/** 状态 */
private Boolean enabled;
//毛重
private Double grossWeight=0D;
/** 保质期 */
private Integer validPeriod;
//长
private Double length=0D;
/** 预警天数 */
private Integer alertLeadingDays;
//宽
private Double width=0D;
/** 大类 */
private String largeClass;
//高
private Double height=0D;
/** 中类 */
private String centerClass;
//体积
private Double volume=0D;
/** 小类 */
private String smallClass;
/** 物料类型 */
private String goodType;
/** 长 */
private Double length;
/** 宽 */
private Double width;
/** 高 */
private Double height;
/** 重量 */
private Double weight;
/** 体积 */
private Double volume;
/** 单位 */
//单位
private String unit;
/** 大单位 */
private String masterUnit;
//推荐库区
private Area recStorageArea;
/** 包装系数 */
private Integer packNumber;
//类型
private String type;
/** 条码 */
private String barCode;
//物料价值等级
private String valueGrade;
/** 仓库ID */
private DeptSmallDto dept;
//保质期
private Integer validPeriod=0;
/** 来源名称 */
//预警天数
private Integer alertDays=0;
//是否批次
private Boolean isBatch=false;
//是否序列号
private Boolean isSerial=false;
//是否有效期
private Boolean isValidPeriod=false;
//是否危化品
private Boolean isHazardous=false;
//库存是否可用
private Boolean isInvAvailable=false;
//是否SAP料号
private Boolean isSapMaterial=false;
//热度值
private Integer heatValue=0;
//描述
private String description;
//是否失效
private Boolean enabled=true;
//库位
private Point point;
//仓库
private Dept dept;
//来源名称
private String sourceName;
/** 来源序号 */
//来源序号
private Long sourceId;
/** 创建人 */
private String createBy;
/** 修改人 */
private String updateBy;
/** 创建时间 */
private Timestamp createTime;
/** 修改时间 */
private Timestamp updateTime;
/** 容器类型 */
private StockType stockType;
private Long extendNum1;
private Long extendNum2;
private Long extendNum3;
private Long extendNum4;
private Long extendNum5;
private Double extendD1;
private Double extendD2;
private Double extendD3;
private Double extendD4;
private Double extendD5;
private String extendStr1;
private String extendStr2;
private String extendStr3;
private String extendStr4;
private String extendStr5;
private PointDto point;
/** 批次 */
private Boolean bepc;
/** 效期 */
private Boolean bexq;
/** 多收 */
private Boolean beds;
/** 超发 */
private Boolean becf;
}
}

View File

@ -317,7 +317,7 @@ public class BoxServiceImpl implements BoxService {
asnDetail.setItem(item);
asnDetail.setLineNo(1l);
asnDetail.setStatus(BizStatus.OPEN);
asnDetail.setOrderQty(item.getExtendD1());
asnDetail.setOrderQty(item.getSpecQuantity());
asnDetail.setDept(item.getDept());
Date date = cn.hutool.core.date.DateUtil.date();
String propC1 = DateUtil.format(date, "yyyyMMdd");

View File

@ -200,13 +200,11 @@ public class ImportDataServiceImpl implements ImportDataService {
re = "b";
}
item.setName(name);
item.setExtendStr3(hz);
item.setExtendD3(Double.parseDouble(srs));
if (unit!=null&&!unit.equals("")) {
DictDetail dictDetail = dictDetailRepository.findByDictAndLabel("item_unit", unit);
item.setUnit(dictDetail.getValue());
}
item.setSpecs(specs);
if (re.equals("a")){
itemRepository.save(item);
}else if (re.equals("b")){
@ -326,4 +324,4 @@ public class ImportDataServiceImpl implements ImportDataService {
}
return re;
}
}
}

View File

@ -572,7 +572,7 @@ public class AsnDetailController {
throw new BadRequestException("请选择入库库位");
}
double unRecQty=d.getOrderQty() - d.getReceivedQty();
if ( recQty<=unRecQty||d.getItem().getBeds()) {
if ( recQty<=unRecQty ) {
String pc1=null;
//现品票确认将任务id回写到现品票表中
XppRecord xppRecord = xppRecordRepository.findByCode(ewm);
@ -630,4 +630,4 @@ public class AsnDetailController {
}
}
}

View File

@ -194,9 +194,9 @@ public class AsnDetailServiceImpl implements AsnDetailService {
public AsnDetail createAsnDetail(Item item, Stock stock, Point srcPoint,String propC1,String gdh){
AsnDetail asnDetail = new AsnDetail();
asnDetail.setItem(item);
asnDetail.setLineNo(1l);
asnDetail.setLineNo(1L);
asnDetail.setStatus(BizStatus.OPEN);
asnDetail.setOrderQty(item.getExtendD1());
asnDetail.setOrderQty(item.getSpecQuantity());
asnDetail.setDept(item.getDept());
asnDetail.setStock(stock);
asnDetail.setPoint(srcPoint);

View File

@ -185,7 +185,7 @@ public class PickDetailServiceImpl implements PickDetailService {
if (invs.size() > 0) {
double allocateQty = 0;
double unQty = quantity;//未分配数量
double srs=item.getExtendD3();
double srs=0;
for (Inventory inv : invs) {
Point startPoint = inv.getPoint();//原库位
String areaCode="S仓";

View File

@ -173,7 +173,7 @@ public class PickKitPlanServiceImpl implements PickKitPlanService {
ptd.setPropC4(0d);
}else{
//备货需求=(纯需求数/收容数向上取整)*收容数
ptd.setOrderQty(Math.ceil(ptd.getPropC4()/ba.getItem().getExtendD3())*ba.getItem().getExtendD3());
ptd.setOrderQty(Math.ceil(ptd.getPropC4()));
}
ba.setPcQty(ptd.getOrderQty()+ba.getPcQty());
bomAccountService.update(ba);
@ -190,7 +190,7 @@ public class PickKitPlanServiceImpl implements PickKitPlanService {
pickDetailService.create(ptd);
orderQty += ptd.getOrderQty();
//查询组合物料,数量是否一致,不一致改成一致
String largeClass=ba.getItem().getLargeClass();
String largeClass="";
if(largeClass!=null&&!largeClass.equals("")){
int maxQty=pickDetailService.getMaxBomQty(pickTicket.getId(),largeClass).intValue();
if(maxQty>0) {
@ -298,4 +298,4 @@ public class PickKitPlanServiceImpl implements PickKitPlanService {
// }
}
}
}

View File

@ -205,7 +205,7 @@ public class PlanPickDetailServiceImpl implements PlanPickDetailService {
ptd.setPropC4(0d);
}else{
//备货需求=(纯需求数/收容数向上取整)*收容数
ptd.setOrderQty(Math.ceil(ptd.getPropC4()/ba.getItem().getExtendD3())*ba.getItem().getExtendD3());
ptd.setOrderQty(Math.ceil(ptd.getPropC4()));
}
ba.setPcQty(ptd.getOrderQty()+ba.getPcQty());
bomAccountService.update(ba);
@ -222,7 +222,7 @@ public class PlanPickDetailServiceImpl implements PlanPickDetailService {
pickDetailService.create(ptd);
orderQty += ptd.getOrderQty();
//查询组合物料,数量是否一致,不一致改成一致
String largeClass=ba.getItem().getLargeClass();
String largeClass="";
if(largeClass!=null&&!largeClass.equals("")){
int maxQty=pickDetailService.getMaxBomQty(pickTicket.getId(),largeClass).intValue();
if(maxQty>0) {
@ -313,7 +313,7 @@ public class PlanPickDetailServiceImpl implements PlanPickDetailService {
ptd.setPropC4(0d);
}else{
//备货需求=(纯需求数/收容数向上取整)*收容数
ptd.setOrderQty(Math.ceil(ptd.getPropC4()/ba.getItem().getExtendD3())*ba.getItem().getExtendD3());
ptd.setOrderQty(Math.ceil(ptd.getPropC4()));
}
ba.setPcQty(ptd.getOrderQty()+ba.getPcQty());
bomAccountService.update(ba);
@ -330,7 +330,7 @@ public class PlanPickDetailServiceImpl implements PlanPickDetailService {
pickDetailService.create(ptd);
orderQty += ptd.getOrderQty();
//查询组合物料,数量是否一致,不一致改成一致
String largeClass=ba.getItem().getLargeClass();
String largeClass="";
if(largeClass!=null&&!largeClass.equals("")){
int maxQty=pickDetailService.getMaxBomQty(pickTicket.getId(),largeClass).intValue();
if(maxQty>0) {
@ -359,4 +359,4 @@ public class PlanPickDetailServiceImpl implements PlanPickDetailService {
}
}
}
}
}