|
@ -45,6 +45,7 @@ import java.util.regex.Pattern; |
|
|
public class MdBaseMaterialServiceImpl extends ServiceImpl<MdBaseMaterialMapper, MdBaseMaterial> implements MdBaseMaterialService { |
|
|
public class MdBaseMaterialServiceImpl extends ServiceImpl<MdBaseMaterialMapper, MdBaseMaterial> implements MdBaseMaterialService { |
|
|
@Autowired |
|
|
@Autowired |
|
|
private MdBaseMaterialMapper mdBaseMaterialMapper; |
|
|
private MdBaseMaterialMapper mdBaseMaterialMapper; |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public IPage<MdBaseMaterial> queryAll(Map whereJson, PageQuery page) { |
|
|
public IPage<MdBaseMaterial> queryAll(Map whereJson, PageQuery page) { |
|
|
Boolean is_used = ObjectUtil.isNotEmpty(whereJson.get("is_used")) |
|
|
Boolean is_used = ObjectUtil.isNotEmpty(whereJson.get("is_used")) |
|
@ -57,10 +58,10 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl<MdBaseMaterialMapper, |
|
|
? whereJson.get("actual_batch").toString() : null; |
|
|
? whereJson.get("actual_batch").toString() : null; |
|
|
String large_model = ObjectUtil.isNotEmpty(whereJson.get("large_model")) |
|
|
String large_model = ObjectUtil.isNotEmpty(whereJson.get("large_model")) |
|
|
? whereJson.get("large_model").toString() : null; |
|
|
? whereJson.get("large_model").toString() : null; |
|
|
String small_model=ObjectUtil.isNotEmpty(whereJson.get("small_model")) |
|
|
String small_model = ObjectUtil.isNotEmpty(whereJson.get("small_model")) |
|
|
? whereJson.get("small_model").toString() :null; |
|
|
? whereJson.get("small_model").toString() : null; |
|
|
String batch_number=ObjectUtil.isNotEmpty(whereJson.get("batch_number")) |
|
|
String batch_number = ObjectUtil.isNotEmpty(whereJson.get("batch_number")) |
|
|
? whereJson.get("batch_number").toString() :null; |
|
|
? whereJson.get("batch_number").toString() : null; |
|
|
LambdaQueryWrapper<MdBaseMaterial> lam = new LambdaQueryWrapper<>(); |
|
|
LambdaQueryWrapper<MdBaseMaterial> lam = new LambdaQueryWrapper<>(); |
|
|
lam.like(ObjectUtil.isNotEmpty(customer), MdBaseMaterial::getCustomer, customer) |
|
|
lam.like(ObjectUtil.isNotEmpty(customer), MdBaseMaterial::getCustomer, customer) |
|
|
.eq(ObjectUtil.isNotEmpty(large_model), MdBaseMaterial::getLarge_model, large_model) |
|
|
.eq(ObjectUtil.isNotEmpty(large_model), MdBaseMaterial::getLarge_model, large_model) |
|
@ -73,6 +74,7 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl<MdBaseMaterialMapper, |
|
|
mdBaseMaterialMapper.selectPage(pages, lam); |
|
|
mdBaseMaterialMapper.selectPage(pages, lam); |
|
|
return pages; |
|
|
return pages; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public void create(MdBaseMaterial entity) { |
|
|
public void create(MdBaseMaterial entity) { |
|
|
String nickName = SecurityUtils.getCurrentNickName(); |
|
|
String nickName = SecurityUtils.getCurrentNickName(); |
|
@ -84,6 +86,7 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl<MdBaseMaterialMapper, |
|
|
entity.setUpdate_time(now); |
|
|
entity.setUpdate_time(now); |
|
|
mdBaseMaterialMapper.insert(entity); |
|
|
mdBaseMaterialMapper.insert(entity); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public void update(MdBaseMaterial entity) { |
|
|
public void update(MdBaseMaterial entity) { |
|
|
MdBaseMaterial dto = mdBaseMaterialMapper.selectById(entity.getMaterial_id()); |
|
|
MdBaseMaterial dto = mdBaseMaterialMapper.selectById(entity.getMaterial_id()); |
|
@ -96,11 +99,13 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl<MdBaseMaterialMapper, |
|
|
entity.setUpdate_time(now); |
|
|
entity.setUpdate_time(now); |
|
|
mdBaseMaterialMapper.updateById(entity); |
|
|
mdBaseMaterialMapper.updateById(entity); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public void deleteAll(Set<String> ids) { |
|
|
public void deleteAll(Set<String> ids) { |
|
|
// 真删除
|
|
|
// 真删除
|
|
|
mdBaseMaterialMapper.deleteBatchIds(ids); |
|
|
mdBaseMaterialMapper.deleteBatchIds(ids); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
public void excelImport(MultipartFile file, HttpServletRequest request) { |
|
|
public void excelImport(MultipartFile file, HttpServletRequest request) { |
|
@ -129,119 +134,207 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl<MdBaseMaterialMapper, |
|
|
List list = read.get(i); |
|
|
List list = read.get(i); |
|
|
JSONObject param = new JSONObject(); |
|
|
JSONObject param = new JSONObject(); |
|
|
String customer = list.get(1).toString(); |
|
|
String customer = list.get(1).toString(); |
|
|
if(StrUtil.isBlank(customer)){ |
|
|
String production_materials = null; |
|
|
|
|
|
String actual_batch = null; |
|
|
|
|
|
String inventory_qty = null; |
|
|
|
|
|
String large_model = null; |
|
|
|
|
|
String small_model = null; |
|
|
|
|
|
String product_qty = null; |
|
|
|
|
|
String batch_number = null; |
|
|
|
|
|
String weight = null; |
|
|
|
|
|
String remark = null; |
|
|
|
|
|
String material_code = null; |
|
|
|
|
|
String material_number = null; |
|
|
|
|
|
if (StrUtil.isBlank(customer)) { |
|
|
continue; |
|
|
continue; |
|
|
} |
|
|
} |
|
|
String production_materials = list.get(2).toString(); |
|
|
|
|
|
String actual_batch = list.get(3).toString(); |
|
|
|
|
|
String inventory_qty=list.get(4).toString(); |
|
|
|
|
|
String product_qty=list.get(5).toString(); |
|
|
|
|
|
String large_model = list.get(9).toString(); |
|
|
|
|
|
String small_model = list.get(10).toString(); |
|
|
|
|
|
String batch_number = list.get(11).toString(); |
|
|
|
|
|
String weight = list.get(12).toString(); |
|
|
|
|
|
String remark = list.get(14).toString(); |
|
|
|
|
|
String bottle_number=null; |
|
|
|
|
|
String carton_number=null; |
|
|
|
|
|
String shdnumber=list.get(17).toString();; |
|
|
|
|
|
try { |
|
|
try { |
|
|
bottle_number = list.get(18).toString(); |
|
|
production_materials = list.get(2).toString(); |
|
|
}catch (Exception var17){ |
|
|
} catch (Exception var17) { |
|
|
throw new BadRequestException("当前客户"+list.get(1).toString()+"所在行瓶盖号为空"); |
|
|
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行实发型号为空"); |
|
|
|
|
|
} |
|
|
|
|
|
try { |
|
|
|
|
|
actual_batch = list.get(3).toString(); |
|
|
|
|
|
} catch (Exception var17) { |
|
|
|
|
|
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行实发批次为空"); |
|
|
|
|
|
} |
|
|
|
|
|
try { |
|
|
|
|
|
inventory_qty = list.get(4).toString(); |
|
|
|
|
|
} catch (Exception var17) { |
|
|
|
|
|
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行库存数量为空"); |
|
|
|
|
|
} |
|
|
|
|
|
try { |
|
|
|
|
|
product_qty = list.get(5).toString(); |
|
|
|
|
|
} catch (Exception var17) { |
|
|
|
|
|
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行当天生产为空"); |
|
|
|
|
|
} |
|
|
|
|
|
try { |
|
|
|
|
|
large_model = list.get(9).toString(); |
|
|
|
|
|
} catch (Exception var17) { |
|
|
|
|
|
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行大型号为空"); |
|
|
|
|
|
} |
|
|
|
|
|
try { |
|
|
|
|
|
small_model = list.get(10).toString(); |
|
|
|
|
|
} catch (Exception var17) { |
|
|
|
|
|
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行小型号为空"); |
|
|
|
|
|
} |
|
|
|
|
|
try { |
|
|
|
|
|
batch_number = list.get(11).toString(); |
|
|
|
|
|
} catch (Exception var17) { |
|
|
|
|
|
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行标签批次号为空"); |
|
|
|
|
|
} |
|
|
|
|
|
try { |
|
|
|
|
|
weight = list.get(12).toString(); |
|
|
|
|
|
} catch (Exception var17) { |
|
|
|
|
|
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行重量/KG为空"); |
|
|
|
|
|
} |
|
|
|
|
|
try { |
|
|
|
|
|
remark = list.get(14).toString(); |
|
|
|
|
|
} catch (Exception var17) { |
|
|
|
|
|
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行备注为空"); |
|
|
|
|
|
} |
|
|
|
|
|
String bottle_number = null; |
|
|
|
|
|
String carton_number = null; |
|
|
|
|
|
try { |
|
|
|
|
|
material_code = list.get(15).toString(); |
|
|
|
|
|
} catch (Exception var17) { |
|
|
|
|
|
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行物料编码为空"); |
|
|
|
|
|
} |
|
|
|
|
|
try { |
|
|
|
|
|
material_number = list.get(16).toString(); |
|
|
|
|
|
} catch (Exception var17) { |
|
|
|
|
|
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行物料名称为空"); |
|
|
|
|
|
} |
|
|
|
|
|
String model = null; |
|
|
|
|
|
String batch = null; |
|
|
|
|
|
String shdnumber= null; |
|
|
|
|
|
String sum_qty= null; |
|
|
|
|
|
String carton_qty= null; |
|
|
|
|
|
try { |
|
|
|
|
|
shdnumber = list.get(17).toString(); |
|
|
|
|
|
} catch (Exception var17) { |
|
|
|
|
|
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行送货单单号为空"); |
|
|
|
|
|
} |
|
|
|
|
|
try { |
|
|
|
|
|
bottle_number = list.get(18).toString(); |
|
|
|
|
|
} catch (Exception var17) { |
|
|
|
|
|
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行瓶盖号为空"); |
|
|
|
|
|
} |
|
|
|
|
|
try { |
|
|
|
|
|
carton_number = list.get(19).toString(); |
|
|
|
|
|
} catch (Exception var17) { |
|
|
|
|
|
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行纸箱号为空"); |
|
|
|
|
|
} |
|
|
|
|
|
try { |
|
|
|
|
|
carton_qty = list.get(21).toString(); |
|
|
|
|
|
} catch (Exception var17) { |
|
|
|
|
|
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行总罐数为空"); |
|
|
} |
|
|
} |
|
|
try { |
|
|
try { |
|
|
carton_number = list.get(19).toString(); |
|
|
sum_qty = list.get(20).toString(); |
|
|
}catch (Exception var17){ |
|
|
} catch (Exception var17) { |
|
|
throw new BadRequestException("当前客户"+list.get(1).toString()+"所在行纸箱号为空"); |
|
|
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行箱内罐数为空"); |
|
|
} |
|
|
} |
|
|
String carton_qty=list.get(21).toString(); |
|
|
try { |
|
|
String sum_qty=list.get(20).toString(); |
|
|
model = list.get(22).toString(); |
|
|
MdBaseMaterial mdBaseMaterial=new MdBaseMaterial(); |
|
|
} catch (Exception var17) { |
|
|
|
|
|
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行型号为空"); |
|
|
|
|
|
} |
|
|
|
|
|
try { |
|
|
|
|
|
batch = list.get(23).toString(); |
|
|
|
|
|
} catch (Exception var17) { |
|
|
|
|
|
throw new BadRequestException("当前客户" + list.get(1).toString() + "所在行批号为空"); |
|
|
|
|
|
} |
|
|
|
|
|
MdBaseMaterial mdBaseMaterial = new MdBaseMaterial(); |
|
|
// mdBaseMaterial=mdBaseMaterialMapper.isbatch(batch_number,actual_batch);
|
|
|
// mdBaseMaterial=mdBaseMaterialMapper.isbatch(batch_number,actual_batch);
|
|
|
// if(mdBaseMaterial!=null){
|
|
|
// if(mdBaseMaterial!=null){
|
|
|
// continue;
|
|
|
// continue;
|
|
|
// }
|
|
|
// }
|
|
|
param.put("material_id", IdUtil.getSnowflake(1, 1).nextId()); |
|
|
param.put("material_id", IdUtil.getSnowflake(1, 1).nextId()); |
|
|
param.put("customer",customer); |
|
|
param.put("customer", customer); |
|
|
param.put("production_materials",production_materials); |
|
|
param.put("production_materials", production_materials); |
|
|
param.put("actual_batch",actual_batch); |
|
|
param.put("actual_batch", actual_batch); |
|
|
param.put("inventory_qty",inventory_qty); |
|
|
param.put("inventory_qty", inventory_qty); |
|
|
param.put("product_qty",product_qty); |
|
|
param.put("product_qty", product_qty); |
|
|
param.put("large_model",large_model); |
|
|
param.put("large_model", large_model); |
|
|
param.put("small_model",small_model); |
|
|
param.put("small_model", small_model); |
|
|
param.put("batch_number",batch_number); |
|
|
param.put("batch_number", batch_number); |
|
|
param.put("weight",weight); |
|
|
param.put("weight", weight); |
|
|
param.put("remark",remark); |
|
|
param.put("remark", remark); |
|
|
param.put("shdnumber",shdnumber); |
|
|
param.put("shdnumber", shdnumber); |
|
|
param.put("bottle_number",bottle_number); |
|
|
param.put("bottle_number", bottle_number); |
|
|
param.put("carton_number",carton_number); |
|
|
param.put("carton_number", carton_number); |
|
|
param.put("carton_qty",carton_qty); |
|
|
param.put("carton_qty", carton_qty); |
|
|
param.put("sum_qty",sum_qty); |
|
|
param.put("sum_qty", sum_qty); |
|
|
|
|
|
param.put("model", model); |
|
|
|
|
|
param.put("batch", batch); |
|
|
|
|
|
param.put("material_code", material_code); |
|
|
|
|
|
param.put("material_number", material_number); |
|
|
MdBaseMaterial entity = ConvertUtil.convert(param, MdBaseMaterial.class); |
|
|
MdBaseMaterial entity = ConvertUtil.convert(param, MdBaseMaterial.class); |
|
|
mdBaseMaterialMapper.insert(entity); |
|
|
mdBaseMaterialMapper.insert(entity); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public void doExport(HttpServletResponse response) throws IOException { |
|
|
public void doExport(HttpServletResponse response) throws IOException { |
|
|
List<MdBaseMaterial> mstwmaterials=mdBaseMaterialMapper.mstwmaterials(); |
|
|
List<MdBaseMaterial> mstwmaterials = mdBaseMaterialMapper.mstwmaterials(); |
|
|
LocalDate currentDate = LocalDate.now(); |
|
|
LocalDate currentDate = LocalDate.now(); |
|
|
List<Map<String, Object>> list = new ArrayList<>(); |
|
|
List<Map<String, Object>> list = new ArrayList<>(); |
|
|
for(MdBaseMaterial MdBaseMaterial:mstwmaterials){ |
|
|
for (MdBaseMaterial MdBaseMaterial : mstwmaterials) { |
|
|
//该批次数量
|
|
|
//该批次数量
|
|
|
Integer pznum=Integer.parseInt(MdBaseMaterial.getSum_qty()); |
|
|
Integer pznum = Integer.parseInt(MdBaseMaterial.getSum_qty()); |
|
|
if(pznum==0){ |
|
|
if (pznum == 0) { |
|
|
continue; |
|
|
continue; |
|
|
} |
|
|
} |
|
|
Integer carton_qty=Integer.parseInt(MdBaseMaterial.getCarton_qty()); |
|
|
Integer carton_qty = Integer.parseInt(MdBaseMaterial.getCarton_qty()); |
|
|
Integer real_carton_qty=0; |
|
|
Integer real_carton_qty = 0; |
|
|
Integer real_carton_number=0;//当前箱号
|
|
|
Integer real_carton_number = 0;//当前箱号
|
|
|
// Integer zxnumber=pznum/carton_qty;
|
|
|
// Integer zxnumber=pznum/carton_qty;
|
|
|
String bottle_number=MdBaseMaterial.getBottle_number(); |
|
|
String bottle_number = MdBaseMaterial.getBottle_number(); |
|
|
String carton_number=MdBaseMaterial.getCarton_number(); |
|
|
String carton_number = MdBaseMaterial.getCarton_number(); |
|
|
String large_model=MdBaseMaterial.getLarge_model(); |
|
|
String large_model = MdBaseMaterial.getLarge_model(); |
|
|
String small_model=MdBaseMaterial.getSmall_model(); |
|
|
String small_model = MdBaseMaterial.getSmall_model(); |
|
|
String batch_number=MdBaseMaterial.getBatch_number(); |
|
|
String batch_number = MdBaseMaterial.getBatch_number(); |
|
|
Integer weishu=MdBaseMaterial.getSum_qty().length(); |
|
|
Integer weishu = MdBaseMaterial.getSum_qty().length(); |
|
|
String psletters = bottle_number.substring(0,4); |
|
|
String psletters = bottle_number.substring(0, 4); |
|
|
String psdigits = bottle_number.substring(4,15); |
|
|
String psdigits = bottle_number.substring(4, 15); |
|
|
String year=bottle_number.substring(3,5); |
|
|
String year = bottle_number.substring(3, 5); |
|
|
String month=bottle_number.substring(5,7); |
|
|
String month = bottle_number.substring(5, 7); |
|
|
String day=bottle_number.substring(7,9); |
|
|
String day = bottle_number.substring(7, 9); |
|
|
String zxletters = carton_number.replaceAll("\\d+$", ""); // 匹配并去掉末尾的数字
|
|
|
String zxletters = carton_number.replaceAll("\\d+$", ""); // 匹配并去掉末尾的数字
|
|
|
String zxdigits = extractNumberAfterLastLetter(carton_number); // 匹配并取出末尾的数字部分
|
|
|
String zxdigits = extractNumberAfterLastLetter(carton_number); // 匹配并取出末尾的数字部分
|
|
|
//总纸箱数
|
|
|
//总纸箱数
|
|
|
Integer sum_carton1 = (pznum+carton_qty-1)/carton_qty; |
|
|
Integer sum_carton1 = (pznum + carton_qty - 1) / carton_qty; |
|
|
for(int i=0;i<pznum;i++){ |
|
|
for (int i = 0; i < pznum; i++) { |
|
|
Map<String, Object> map = new LinkedHashMap<>(); |
|
|
Map<String, Object> map = new LinkedHashMap<>(); |
|
|
if(real_carton_qty<carton_qty){ |
|
|
if (real_carton_qty < carton_qty) { |
|
|
real_carton_qty++; |
|
|
real_carton_qty++; |
|
|
}else{ |
|
|
} else { |
|
|
real_carton_qty=1; |
|
|
real_carton_qty = 1; |
|
|
real_carton_number++; |
|
|
real_carton_number++; |
|
|
} |
|
|
} |
|
|
Integer real_zxdigits2= Integer.parseInt(zxdigits)+real_carton_number; |
|
|
Integer real_zxdigits = Integer.parseInt(zxdigits) + real_carton_number - sum_carton1 + 1; |
|
|
Integer real_zxdigits= Integer.parseInt(zxdigits)+real_carton_number-sum_carton1+1; |
|
|
String real_zxdigits1 = null; |
|
|
String real_zxdigits1=null; |
|
|
if (real_zxdigits <= 9) { |
|
|
if(real_zxdigits<=9){ |
|
|
real_zxdigits1 = "0" + String.valueOf(real_zxdigits); |
|
|
real_zxdigits1="0"+String.valueOf(real_zxdigits); |
|
|
} else { |
|
|
}else{ |
|
|
real_zxdigits1 = String.valueOf(real_zxdigits); |
|
|
real_zxdigits1=String.valueOf(real_zxdigits); |
|
|
|
|
|
} |
|
|
} |
|
|
map.put("箱号",zxletters+real_zxdigits1); |
|
|
map.put("箱号", zxletters + real_zxdigits1); |
|
|
// Integer real_psdigits=Integer.parseInt(psdigits)+i-pznum+1;
|
|
|
// Integer real_psdigits=Integer.parseInt(psdigits)+i-pznum+1;
|
|
|
Long real_psdigits=Long.valueOf(psdigits)+i-pznum+1; |
|
|
Long real_psdigits = Long.valueOf(psdigits) + i - pznum + 1; |
|
|
map.put("单枚号/瓶号/包号",psletters+real_psdigits); |
|
|
map.put("单枚号/瓶号/包号", psletters + real_psdigits); |
|
|
map.put("规格型号",large_model+"-"+small_model); |
|
|
map.put("规格型号", large_model + "-" + small_model); |
|
|
map.put("批号",small_model+"-"+batch_number); |
|
|
map.put("批号", small_model + "-" + batch_number); |
|
|
map.put("数量","2"); |
|
|
map.put("数量", "2"); |
|
|
map.put("供应商","帝科"); |
|
|
map.put("供应商", "帝科"); |
|
|
map.put("生产日期(yyyy/MM/dd)","20"+year+"/"+month+"/"+day); |
|
|
map.put("生产日期(yyyy/MM/dd)", "20" + year + "/" + month + "/" + day); |
|
|
Integer month1=Integer.parseInt(month); |
|
|
Integer month1 = Integer.parseInt(month); |
|
|
month1=month1+6; |
|
|
month1 = month1 + 6; |
|
|
if(month1>12){ |
|
|
if (month1 > 12) { |
|
|
month1=month1-12; |
|
|
month1 = month1 - 12; |
|
|
} |
|
|
} |
|
|
map.put("有效日期(yyyy/MM/dd)","20"+year+"/"+month+"/"+day); |
|
|
map.put("有效日期(yyyy/MM/dd)", "20" + year + "/" + month + "/" + day); |
|
|
// 获取当前日期
|
|
|
// 获取当前日期
|
|
|
LocalDate currentDate1 = LocalDate.now(); |
|
|
LocalDate currentDate1 = LocalDate.now(); |
|
|
|
|
|
|
|
@ -250,101 +343,102 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl<MdBaseMaterialMapper, |
|
|
|
|
|
|
|
|
// 格式化当前日期
|
|
|
// 格式化当前日期
|
|
|
String formattedDate = currentDate1.format(formatter); |
|
|
String formattedDate = currentDate1.format(formatter); |
|
|
map.put("发货日期(yyyy/MM/dd)",formattedDate); |
|
|
map.put("发货日期(yyyy/MM/dd)", formattedDate); |
|
|
list.add(map); |
|
|
list.add(map); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
FileUtil.downloadExcel(list, response); |
|
|
FileUtil.downloadExcel(list, response); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public void doExport1(HttpServletResponse response) throws IOException { |
|
|
public void doExport1(HttpServletResponse response) throws IOException { |
|
|
List<MdBaseMaterial> jkmaterials=mdBaseMaterialMapper.jkmaterials(); |
|
|
List<MdBaseMaterial> jkmaterials = mdBaseMaterialMapper.jkmaterials(); |
|
|
LocalDate currentDate = LocalDate.now(); |
|
|
LocalDate currentDate = LocalDate.now(); |
|
|
List<Map<String, Object>> list = new ArrayList<>(); |
|
|
List<Map<String, Object>> list = new ArrayList<>(); |
|
|
for(MdBaseMaterial MdBaseMaterial:jkmaterials){ |
|
|
for (MdBaseMaterial MdBaseMaterial : jkmaterials) { |
|
|
Integer pzweight=Integer.parseInt(MdBaseMaterial.getWeight()); |
|
|
Integer pzweight = Integer.parseInt(MdBaseMaterial.getWeight()); |
|
|
Integer pznum=Integer.parseInt(MdBaseMaterial.getSum_qty()); |
|
|
Integer pznum = Integer.parseInt(MdBaseMaterial.getSum_qty()); |
|
|
if(pznum==0){ |
|
|
if (pznum == 0) { |
|
|
continue; |
|
|
continue; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Integer carton_qty=Integer.parseInt(MdBaseMaterial.getCarton_qty()); |
|
|
Integer carton_qty = Integer.parseInt(MdBaseMaterial.getCarton_qty()); |
|
|
Integer real_carton_qty=0; |
|
|
Integer real_carton_qty = 0; |
|
|
Integer real_carton_number=0;//当前箱号
|
|
|
Integer real_carton_number = 0;//当前箱号
|
|
|
//单重
|
|
|
//单重
|
|
|
Integer wt=0; |
|
|
Integer wt = 0; |
|
|
//整箱总重
|
|
|
//整箱总重
|
|
|
Integer wtsum=0; |
|
|
Integer wtsum = 0; |
|
|
if(pzweight.equals(pznum)){ |
|
|
if (pzweight.equals(pznum)) { |
|
|
wt=1; |
|
|
wt = 1; |
|
|
wtsum=wt*carton_qty; |
|
|
wtsum = wt * carton_qty; |
|
|
}else{ |
|
|
} else { |
|
|
wt=2; |
|
|
wt = 2; |
|
|
wtsum=wt*carton_qty; |
|
|
wtsum = wt * carton_qty; |
|
|
} |
|
|
} |
|
|
// Integer zxnumber=pznum/carton_qty;
|
|
|
// Integer zxnumber=pznum/carton_qty;
|
|
|
String bottle_number=MdBaseMaterial.getBottle_number(); |
|
|
String bottle_number = MdBaseMaterial.getBottle_number(); |
|
|
String carton_number=MdBaseMaterial.getCarton_number(); |
|
|
String carton_number = MdBaseMaterial.getCarton_number(); |
|
|
String large_model=MdBaseMaterial.getLarge_model(); |
|
|
String large_model = MdBaseMaterial.getLarge_model(); |
|
|
String small_model=MdBaseMaterial.getSmall_model(); |
|
|
String small_model = MdBaseMaterial.getSmall_model(); |
|
|
String batch_number=MdBaseMaterial.getBatch_number(); |
|
|
String batch_number = MdBaseMaterial.getBatch_number(); |
|
|
String customer=MdBaseMaterial.getCustomer(); |
|
|
String customer = MdBaseMaterial.getCustomer(); |
|
|
String psletters = bottle_number.substring(0,20); |
|
|
String psletters = bottle_number.substring(0, 20); |
|
|
String psdigits = bottle_number.substring(20,23); |
|
|
String psdigits = bottle_number.substring(20, 23); |
|
|
String zxletters = carton_number.substring(0,18); |
|
|
String zxletters = carton_number.substring(0, 18); |
|
|
String zx1 = carton_number.substring(18,20); |
|
|
String zx1 = carton_number.substring(18, 20); |
|
|
String zx2 = carton_number.substring(20,23); |
|
|
String zx2 = carton_number.substring(20, 23); |
|
|
String zxdigits = carton_number.substring(23,33); |
|
|
String zxdigits = carton_number.substring(23, 33); |
|
|
//总纸箱数
|
|
|
//总纸箱数
|
|
|
Integer sum_carton1 = (pznum+carton_qty-1)/carton_qty; |
|
|
Integer sum_carton1 = (pznum + carton_qty - 1) / carton_qty; |
|
|
for(int i=0;i<pznum;i++){ |
|
|
for (int i = 0; i < pznum; i++) { |
|
|
Map<String, Object> map = new LinkedHashMap<>(); |
|
|
Map<String, Object> map = new LinkedHashMap<>(); |
|
|
if(real_carton_qty<carton_qty){ |
|
|
if (real_carton_qty < carton_qty) { |
|
|
real_carton_qty++; |
|
|
real_carton_qty++; |
|
|
}else{ |
|
|
} else { |
|
|
real_carton_qty=1; |
|
|
real_carton_qty = 1; |
|
|
real_carton_number++; |
|
|
real_carton_number++; |
|
|
} |
|
|
} |
|
|
Long real_zxdigits= Long.valueOf(zxdigits)+real_carton_number-sum_carton1+1; |
|
|
Long real_zxdigits = Long.valueOf(zxdigits) + real_carton_number - sum_carton1 + 1; |
|
|
String real_zxdigits1=String.valueOf(real_zxdigits); |
|
|
String real_zxdigits1 = String.valueOf(real_zxdigits); |
|
|
if(i>(sum_carton1-1)*carton_qty-1) { |
|
|
if (i > (sum_carton1 - 1) * carton_qty - 1) { |
|
|
map.put("托号(必填)", zxletters + zx1+zx2+real_zxdigits1); |
|
|
map.put("托号(必填)", zxletters + zx1 + zx2 + real_zxdigits1); |
|
|
map.put("箱号(必填)", zxletters + zx1+zx2+real_zxdigits1); |
|
|
map.put("箱号(必填)", zxletters + zx1 + zx2 + real_zxdigits1); |
|
|
}else { |
|
|
} else { |
|
|
if(wtsum>9) { |
|
|
if (wtsum > 9) { |
|
|
map.put("托号(必填)", zxletters + wtsum + zx2 + real_zxdigits1); |
|
|
map.put("托号(必填)", zxletters + wtsum + zx2 + real_zxdigits1); |
|
|
map.put("箱号(必填)", zxletters + wtsum + zx2 + real_zxdigits1); |
|
|
map.put("箱号(必填)", zxletters + wtsum + zx2 + real_zxdigits1); |
|
|
}else{ |
|
|
} else { |
|
|
map.put("托号(必填)", zxletters + "0" + wtsum + zx2 + real_zxdigits1); |
|
|
map.put("托号(必填)", zxletters + "0" + wtsum + zx2 + real_zxdigits1); |
|
|
map.put("箱号(必填)", zxletters + "0" + wtsum + zx2 + real_zxdigits1); |
|
|
map.put("箱号(必填)", zxletters + "0" + wtsum + zx2 + real_zxdigits1); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
Integer real_psdigits=Integer.parseInt(psdigits)+i-pznum+1; |
|
|
Integer real_psdigits = Integer.parseInt(psdigits) + i - pznum + 1; |
|
|
if(real_psdigits>=100){ |
|
|
if (real_psdigits >= 100) { |
|
|
map.put("包号(选填)",psletters+real_psdigits); |
|
|
map.put("包号(选填)", psletters + real_psdigits); |
|
|
} else if(real_psdigits>=10){ |
|
|
} else if (real_psdigits >= 10) { |
|
|
map.put("包号(选填)",psletters+"0"+real_psdigits); |
|
|
map.put("包号(选填)", psletters + "0" + real_psdigits); |
|
|
}else if(real_psdigits>0){ |
|
|
} else if (real_psdigits > 0) { |
|
|
map.put("包号(选填)",psletters+"00"+real_psdigits); |
|
|
map.put("包号(选填)", psletters + "00" + real_psdigits); |
|
|
} |
|
|
} |
|
|
if(wt==1){ |
|
|
if (wt == 1) { |
|
|
map.put("包实装货物数","1"); |
|
|
map.put("包实装货物数", "1"); |
|
|
}else if(wt==2){ |
|
|
} else if (wt == 2) { |
|
|
if(i==pznum-1&&pzweight % 2 == 1 ){ |
|
|
if (i == pznum - 1 && pzweight % 2 == 1) { |
|
|
map.put("包实装货物数","1"); |
|
|
map.put("包实装货物数", "1"); |
|
|
} |
|
|
} else { |
|
|
else{ |
|
|
map.put("包实装货物数", "2"); |
|
|
map.put("包实装货物数","2"); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
map.put("批号",small_model+"-"+batch_number); |
|
|
map.put("批号", small_model + "-" + batch_number); |
|
|
map.put("发运数量",String.valueOf(pzweight)); |
|
|
map.put("发运数量", String.valueOf(pzweight)); |
|
|
map.put("客户",customer); |
|
|
map.put("客户", customer); |
|
|
list.add(map); |
|
|
list.add(map); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
FileUtil.downloadExcel(list, response); |
|
|
FileUtil.downloadExcel(list, response); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public static String extractNumberAfterLastLetter(String input) { |
|
|
public static String extractNumberAfterLastLetter(String input) { |
|
|
// 正则表达式:匹配最后一个字母后面的数字
|
|
|
// 正则表达式:匹配最后一个字母后面的数字
|
|
|
Pattern pattern = Pattern.compile("[a-zA-Z]([0-9]+)$"); |
|
|
Pattern pattern = Pattern.compile("[a-zA-Z]([0-9]+)$"); |
|
@ -356,4 +450,74 @@ public class MdBaseMaterialServiceImpl extends ServiceImpl<MdBaseMaterialMapper, |
|
|
|
|
|
|
|
|
return ""; // 如果没有匹配到数字,返回空字符串
|
|
|
return ""; // 如果没有匹配到数字,返回空字符串
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public void doExport2(HttpServletResponse response) throws IOException { |
|
|
|
|
|
List<MdBaseMaterial> dcmaterials = mdBaseMaterialMapper.dcmaterials(); |
|
|
|
|
|
LocalDate currentDate = LocalDate.now(); |
|
|
|
|
|
List<Map<String, Object>> list = new ArrayList<>(); |
|
|
|
|
|
for (MdBaseMaterial MdBaseMaterial : dcmaterials) { |
|
|
|
|
|
Integer pzweight = Integer.parseInt(MdBaseMaterial.getWeight()); |
|
|
|
|
|
Integer pznum = Integer.parseInt(MdBaseMaterial.getSum_qty()); |
|
|
|
|
|
//物料编码
|
|
|
|
|
|
String material_code = MdBaseMaterial.getMaterial_code(); |
|
|
|
|
|
//物料描述
|
|
|
|
|
|
String material_number = MdBaseMaterial.getMaterial_number(); |
|
|
|
|
|
//箱号
|
|
|
|
|
|
String carton_number = MdBaseMaterial.getCarton_number(); |
|
|
|
|
|
String zxletters = carton_number.replaceAll("\\d+$", ""); // 匹配并去掉末尾的数字
|
|
|
|
|
|
String zxdigits = extractNumberAfterLastLetter(carton_number); // 匹配并取出末尾的数字部分
|
|
|
|
|
|
if (pznum == 0) { |
|
|
|
|
|
continue; |
|
|
|
|
|
} |
|
|
|
|
|
Integer carton_qty = Integer.parseInt(MdBaseMaterial.getCarton_qty()); |
|
|
|
|
|
String bottle_number = MdBaseMaterial.getBottle_number(); |
|
|
|
|
|
Long bottle_number1 = Long.valueOf(bottle_number); |
|
|
|
|
|
//单重
|
|
|
|
|
|
Integer wt = 0; |
|
|
|
|
|
//整箱总重
|
|
|
|
|
|
Integer wtsum = 0; |
|
|
|
|
|
//总纸箱数
|
|
|
|
|
|
Integer sum_carton1 = (pznum + carton_qty - 1) / carton_qty; |
|
|
|
|
|
//最后一箱瓶数量
|
|
|
|
|
|
Integer last_carton_number = pznum - (sum_carton1 - 1) * carton_qty; |
|
|
|
|
|
Integer real_carton_qty = 0; |
|
|
|
|
|
//当前箱号
|
|
|
|
|
|
Integer real_carton_number = 0; |
|
|
|
|
|
if (pzweight.equals(pznum)) { |
|
|
|
|
|
wt = 1; |
|
|
|
|
|
wtsum = wt * carton_qty; |
|
|
|
|
|
} else { |
|
|
|
|
|
wt = 2; |
|
|
|
|
|
wtsum = wt * carton_qty; |
|
|
|
|
|
} |
|
|
|
|
|
for (int i = 0; i < pznum; i++) { |
|
|
|
|
|
Map<String, Object> map = new LinkedHashMap<>(); |
|
|
|
|
|
if (real_carton_qty < carton_qty) { |
|
|
|
|
|
real_carton_qty++; |
|
|
|
|
|
} else { |
|
|
|
|
|
real_carton_qty = 1; |
|
|
|
|
|
real_carton_number++; |
|
|
|
|
|
} |
|
|
|
|
|
Integer real_zxdigits = Integer.parseInt(zxdigits) + real_carton_number - sum_carton1 + 1; |
|
|
|
|
|
String real_zxdigits1 = null; |
|
|
|
|
|
if (real_zxdigits <= 9) { |
|
|
|
|
|
real_zxdigits1 = "0" + String.valueOf(real_zxdigits); |
|
|
|
|
|
} else { |
|
|
|
|
|
real_zxdigits1 = String.valueOf(real_zxdigits); |
|
|
|
|
|
} |
|
|
|
|
|
map.put("物料编码", material_code); |
|
|
|
|
|
map.put("物料描述", material_number); |
|
|
|
|
|
map.put("箱号", zxletters + real_zxdigits1); |
|
|
|
|
|
map.put("罐子编码", String.valueOf(bottle_number1 - pznum + i + 1)); |
|
|
|
|
|
if (real_carton_number + 1 == sum_carton1) { |
|
|
|
|
|
map.put("数量", last_carton_number * wt); |
|
|
|
|
|
} else { |
|
|
|
|
|
map.put("数量", carton_qty * wt); |
|
|
|
|
|
} |
|
|
|
|
|
list.add(map); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
FileUtil.downloadExcel(list, response); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|