package com.northglass.service.orderglassinfo;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import com.northglass.entity.Glass;
|
import com.northglass.entity.LoadMachine;
|
import com.northglass.entity.OrderGlassInfo;
|
import com.northglass.entity.ShelfRank;
|
import com.northglass.entity.ShelfStatu;
|
import com.northglass.repository.LoadMachineDao;
|
import com.northglass.repository.OrderGlassInfoDao;
|
import com.northglass.repository.ShelfRankDao;
|
import com.northglass.repository.ShelfStatuDao;
|
|
@Component
|
@Transactional
|
public class OrderGlassInfoService {
|
|
private static final Logger LOGGER = LoggerFactory.getLogger(OrderGlassInfoService.class);
|
|
@Autowired
|
private OrderGlassInfoDao orderGlassInfoDao;
|
|
@Autowired
|
private ShelfRankDao shelfRankDao;
|
|
@Autowired
|
private ShelfStatuDao shelfStatuDao;
|
|
@Autowired
|
private LoadMachineDao loadMachineDao;
|
|
public OrderGlassInfo save(OrderGlassInfo glass) {
|
return orderGlassInfoDao.save(glass);
|
}
|
|
public OrderGlassInfo getById(Long id) {
|
return orderGlassInfoDao.findOne(id);
|
}
|
|
public List<OrderGlassInfo> findAll() {
|
return orderGlassInfoDao.findAll();
|
}
|
public List<OrderGlassInfo> FindOrderGlassDesc() {
|
return orderGlassInfoDao.FindOrderGlassDesc();
|
}
|
public void FenRank(){//问题 添加表
|
//分架逻辑
|
List<OrderGlassInfo> glasses =FindOrderGlassDesc();
|
List<OrderGlassInfo> glasses2 = new ArrayList<OrderGlassInfo>();
|
double ThicknessSum=0;
|
for(int i=0;i<glasses.size();i++){
|
//1.玻璃总厚度《200
|
//2.玻璃宽 差不超过300,宽不超过150
|
int Pieces=glasses.get(i).getNumber();
|
for(int j=0;j<Pieces;j++){
|
//System.out.println(glasses.get(i).getId());
|
OrderGlassInfo orderGlassInfo=new OrderGlassInfo();
|
orderGlassInfo.setBarcode(glasses.get(i).getBarcode());
|
orderGlassInfo.setOrderNumber(glasses.get(i).getOrderNumber());
|
orderGlassInfo.setCode(glasses.get(i).getCode());
|
orderGlassInfo.setWeight(glasses.get(i).getWeight());
|
orderGlassInfo.setHeight(glasses.get(i).getHeight());
|
orderGlassInfo.setNumber(1);//片数量
|
orderGlassInfo.setContractId(glasses.get(i).getContractId());
|
orderGlassInfo.setProcessingDrawingNo(glasses.get(i).getProcessingDrawingNo());
|
orderGlassInfo.setCustomerName(glasses.get(i).getCustomerName());
|
orderGlassInfo.setThickness(glasses.get(i).getThickness());
|
orderGlassInfo.setColorMembraneSystem(glasses.get(i).getColorMembraneSystem());
|
orderGlassInfo.setAreaMeasure(glasses.get(i).getAreaMeasure());
|
orderGlassInfo.setFinishedProductName(glasses.get(i).getFinishedProductName());
|
orderGlassInfo.setOrderSequenceNumber(glasses.get(i).getOrderSequenceNumber());
|
orderGlassInfo.setProjectName(glasses.get(i).getProjectName());
|
orderGlassInfo.setEdgeGrinding(glasses.get(i).getEdgeGrinding());
|
orderGlassInfo.setChamfer(glasses.get(i).getChamfer());
|
orderGlassInfo.setFinishing(glasses.get(i).getFinishing());
|
orderGlassInfo.setRemark(glasses.get(i).getRemark());
|
orderGlassInfo.setProcess(glasses.get(i).getProcess());
|
orderGlassInfo.setThicknesses(glasses.get(i).getThicknesses());
|
orderGlassInfo.setGlassId(glasses.get(i).getGlassId());
|
orderGlassInfo.setProcessCardId(glasses.get(i).getProcessCardId());
|
//orderGlassInfo.setMaterialRackId(glasses.get(i).getMaterialRackId());
|
orderGlassInfo.setGlassNo(glasses.get(i).getGlassNo());
|
orderGlassInfo.setProcessRequiement(glasses.get(i).getProcessRequiement());
|
orderGlassInfo.setHoleNumber(glasses.get(i).getHoleNumber());
|
orderGlassInfo.setFloorNumber(glasses.get(i).getFloorNumber());
|
orderGlassInfo.setDeliveryDate(glasses.get(i).getDeliveryDate());
|
if(i==0&&j==0){
|
//把玻璃放入架子中
|
orderGlassInfo.setMaterialRackId("LG-1");//架号
|
glasses2.add(orderGlassInfo); //料架
|
orderGlassInfoDao.save(orderGlassInfo);
|
ThicknessSum+=orderGlassInfo.getThickness();//当前料架的料架深度
|
}else{
|
double WegihtPoor=0;//宽度差
|
double HeightPoor=0;//高度差
|
if(j==0){//每当与上一片规格不同时
|
WegihtPoor=glasses.get(i-1).getWeight()-glasses.get(i).getWeight();
|
HeightPoor=glasses.get(i-1).getHeight()-glasses.get(i).getHeight();
|
}
|
double Thickness=ThicknessSum+glasses.get(i).getThickness(); //当前料架中玻璃厚度和+当前玻璃厚度
|
boolean Wegihtconform=(WegihtPoor<=300&&WegihtPoor>=-300)?true:false;//宽度差是否符合
|
boolean Heightconform=(HeightPoor<=150&&HeightPoor>=-150)?true:false;//高度差是否符合
|
System.out.println(WegihtPoor+","+HeightPoor+","+Wegihtconform+","+Heightconform+","+Thickness);
|
//当前玻璃是否满足料架深度,以及与料架中上一片的规格差
|
if(Thickness<=60&&Wegihtconform&&Heightconform){
|
//放同一个架子
|
ThicknessSum=Thickness;
|
String MaterialRackId=glasses2.get(glasses2.size()-1).getMaterialRackId();//拿到最后的架号
|
orderGlassInfo.setMaterialRackId(MaterialRackId);//架号为上一片数号
|
}else{
|
//另起一架
|
ThicknessSum=orderGlassInfo.getThickness();
|
String MaterialRackId=glasses2.get(glasses2.size()-1).getMaterialRackId();
|
int ID=Integer.parseInt(MaterialRackId.substring(MaterialRackId.indexOf("-")+1));
|
//System.out.println(MaterialRackId.substring(MaterialRackId.indexOf("-")+1));
|
orderGlassInfo.setMaterialRackId("LG-"+(ID+1)); //新架号为上一片架号+1
|
}
|
glasses2.add(orderGlassInfo);
|
orderGlassInfoDao.save(orderGlassInfo);
|
}
|
|
}
|
}
|
}
|
|
|
public String getAllGlassHtml() {
|
StringBuffer html = new StringBuffer();
|
List<OrderGlassInfo> glasses = findAll();
|
|
if (glasses.size() > 0) {
|
for (OrderGlassInfo glass : glasses) {
|
html.append("<td>").append(glass.getId()).append("</td>");
|
html.append("<td>").append(glass.getContractId()).append("</td>");
|
html.append("<td>").append(glass.getCode()).append("</td>");
|
html.append("<td>").append(glass.getProcessingDrawingNo()).append("</td>");
|
html.append("<td>").append(glass.getCustomerName()).append("</td>");
|
html.append("<td>").append(glass.getWeight()).append("</td>");
|
html.append("<td>").append(glass.getHeight()).append("</td>");
|
html.append("<td>").append(glass.getThickness()).append("</td>");
|
html.append("<td>").append(glass.getNumber()).append("</td>");
|
html.append("<td>").append(glass.getColorMembraneSystem()).append("</td>");//颜色磨细
|
html.append("<td>").append(glass.getFinishedProductName()).append("</td>");//成品名称
|
html.append("<td>").append(glass.getProjectName()).append("</td>");//项目名称
|
html.append("<td>").append(glass.getEdgeGrinding()).append("</td>");//磨边量
|
if (glass.getProcessCardId() == null) {
|
html.append("<td>").append("无").append("</td>");//流程卡号
|
}else {
|
html.append("<td>").append(glass.getProcessCardId()).append("</td>");//流程卡号
|
}
|
if (glass.getMaterialRackId() == null) {
|
html.append("<td>").append("无").append("</td>");//架号
|
}else{
|
html.append("<td>").append(glass.getMaterialRackId()).append("</td>");//架号
|
}
|
if (glass.getGlassNo() == null) {
|
html.append("<td>").append("无").append("</td>");//玻璃编号
|
}else {
|
html.append("<td>").append(glass.getGlassNo()).append("</td>");//玻璃编号
|
}
|
|
|
|
html.append("</tr>");
|
}
|
}
|
return html.toString();
|
}
|
|
public String getAllGlassHtmls() {
|
List<String[]> glasses=getAllGlassHtmls12();
|
StringBuffer html = new StringBuffer();
|
if(glasses==null||glasses.size()<=0){
|
return "";
|
}else{
|
int i=1;
|
for (String[] glass : glasses) {
|
if(i==1){
|
html.append("<tr><td><input checked type='radio' name='xz'></td>");
|
i=2;
|
}
|
else{
|
html.append("<tr><td><input type='radio' name='xz'></td>");
|
}
|
html.append("<td>").append(glass[0]).append("</td>");
|
html.append("<td><input type='text' class='form-control' readonly style='border:none;BACKGROUND-COLOR: transparent;' name='Orderswidth' value='").append(glass[5]).append("'></td>");
|
html.append("<td><input type='text' class='form-control' readonly style='border:none;BACKGROUND-COLOR: transparent;' name='Ordersheight' value='").append(glass[1]).append("'></td>");
|
html.append("<td><input type='text' class='form-control' readonly style='border:none;BACKGROUND-COLOR: transparent;' name='Ordersthiness' value='").append(glass[2]).append("'></td>");
|
html.append("<td><input type='text' class='form-control' readonly style='border:none;BACKGROUND-COLOR: transparent;' name='color' value='").append(glass[3]).append("'></td>");
|
html.append("<td style=\"width:50px;\">").append(glass[4]).append("</td>");
|
html.append("<td><input type='text' class='form-control' readonly style='border:none;BACKGROUND-COLOR: transparent;' name='manufacture' value='").append(glass[6]).append("'></td>");
|
html.append("</tr>");
|
}
|
}
|
return html.toString();
|
}
|
public String groupshtmls() {
|
List<LoadMachine> loadMachineList = loadMachineDao.findAll();
|
String resulthtml="";
|
for(LoadMachine loadMachine:loadMachineList){
|
resulthtml+="<option value=\""+loadMachine.getId()+"\">"+loadMachine.getId()+"#线</option>";
|
}
|
return resulthtml;
|
}
|
public List<String[]> getAllGlassHtmls12() {
|
List<ShelfRank> glasses1 = shelfRankDao.findInWorkRanks();
|
List<String[]> glasses2 =new ArrayList<String[]>();
|
int i=0;
|
if (glasses1.size() > 0) {
|
for (ShelfRank glass1 : glasses1) {
|
if(glasses2==null||glasses2.size()==0){
|
String []hh=new String[7];
|
hh[0]=glass1.getRawPackage().getId().toString();//
|
hh[1]=glass1.getLength().toString();//
|
hh[2]=glass1.getThickness().toString();//
|
hh[3]=glass1.getColor().toString();
|
hh[4]=glass1.getRawPackage().getLeftPieces()+"".toString();
|
hh[5]=glass1.getWidth().toString();
|
hh[6]=glass1.getPrecent()==null?"":glass1.getPrecent();
|
glasses2.add(hh);
|
}else{
|
int ispp=0;
|
for(String[] glass2 : glasses2){
|
boolean is0=(glass1.getPrecent()==null?"":glass1.getPrecent()).equals((glass2[6]));
|
boolean is1= glass1.getLength().toString().equals(glass2[1])&&glass1.getWidth().toString().equals(glass2[5])&&glass1.getThickness().toString().equals(glass2[2])&&glass1.getColor().toString().equals(glass2[3])?true:false;
|
boolean is2= glass1.getLength().toString().equals(glass2[5])&&glass1.getWidth().toString().equals(glass2[1])&&glass1.getThickness().toString().equals(glass2[2])&&glass1.getColor().toString().equals(glass2[3])?true:false;
|
if((is1||is2)&&is0){
|
ispp=1;
|
glass2[4]=(Integer.valueOf(glass2[4])+glass1.getRawPackage().getLeftPieces()+"");
|
break;
|
}
|
}
|
if(ispp!=1){
|
String []hh=new String[7];
|
hh[0]=glass1.getRawPackage().getId().toString();//
|
hh[1]=glass1.getLength().toString();//
|
hh[2]=glass1.getThickness().toString();//
|
hh[3]=glass1.getColor().toString();
|
hh[4]=glass1.getRawPackage().getLeftPieces()+"".toString();
|
hh[5]=glass1.getWidth().toString();
|
hh[6]=glass1.getPrecent()==null?"":glass1.getPrecent();
|
glasses2.add(hh);
|
}
|
}
|
i=i+1;
|
|
}
|
}
|
return glasses2;
|
}
|
|
|
/*public List<ShelfRank> getAllGlassHtmls1() {
|
List<ShelfRank> glasses1 = shelfRankDao.findInWorkRanks();
|
List<ShelfRank> glasses2 =new ArrayList<ShelfRank>();
|
//遍历计数 count
|
List<String[]> a =new ArrayList<String[]>();
|
String []hh=new String[5];
|
|
int i=0;
|
if (glasses1.size() > 0) {
|
for (ShelfRank glass1 : glasses1) {
|
if(glasses2==null||glasses2.size()==0){
|
ShelfRank sss=glass1;
|
|
glasses2.add(sss);
|
}else{
|
//System.out.println(glasses2.size());
|
//System.out.println(glasses2.get(0)==null?true:false);
|
int ispp=0;
|
for (String[] strings : a) {
|
boolean is1= glass1.getLength().equals(glass2.getLength())&&glass1.getWidth().equals(glass2.getWidth())&&glass1.getThickness().equals(glass2.getThickness())&&glass1.getColor().equals(glass2.getColor())?true:false;
|
strings[2]=(Integer.valueOf(strings[2])+glass1.getRawPackage().getLeftPieces())+"";
|
}
|
for(ShelfRank glass2 : glasses2){
|
boolean is1= glass1.getLength().equals(glass2.getLength())&&glass1.getWidth().equals(glass2.getWidth())&&glass1.getThickness().equals(glass2.getThickness())&&glass1.getColor().equals(glass2.getColor())?true:false;
|
boolean is2= glass1.getLength().equals(glass2.getWidth())&&glass1.getWidth().equals(glass2.getLength())&&glass1.getThickness().equals(glass2.getThickness())&&glass1.getColor().equals(glass2.getColor())?true:false;
|
System.out.println(glass1.getLength()==glass2.getWidth()&&glass1.getWidth()==glass2.getLength()&&glass1.getThickness()==glass2.getThickness()?true:false);
|
System.out.println(glass1.getInfoid()+","+glass2.getInfoid());
|
System.out.println(glass1.getLength());
|
System.out.println(glass1.getWidth());
|
System.out.println(glass1.getThickness());
|
System.out.println(glass2.getLength());
|
System.out.println(glass2.getWidth());
|
System.out.println(glass2.getThickness());
|
System.out.println(1);
|
if(is1||is2){
|
//System.out.println(2);
|
ispp=1;
|
glass2.getRawPackage().setLeftPieces(glass2.getRawPackage().getLeftPieces()+glass1.getRawPackage().getLeftPieces());
|
break;
|
strings[2]=(glass2.getRawPackage().getLeftPieces()+glass1.getRawPackage().getLeftPieces());
|
|
}
|
|
}
|
if(ispp!=1){
|
ShelfRank sss=glass1;
|
glasses2.add(sss);
|
}
|
|
|
//System.out.println(3);
|
}
|
i=i+1;
|
|
}
|
}
|
return glasses2;
|
}*/
|
|
|
public String shelfhtmls() {
|
List<ShelfStatu> glasses=shelfStatuDao.findAll();
|
StringBuffer html = new StringBuffer();
|
//System.out.println("11111111");
|
|
for (ShelfStatu glass : glasses) {
|
|
|
html.append("<td>").append(glass.getId()).append("</td>");
|
html.append("<td>").append(glass.getMachine()).append("</td>");
|
if("1".equals(glass.getPoint())){
|
html.append("<td>已下发</td>");
|
}
|
else if("2".equals(glass.getPoint())){
|
html.append("<td>停止任务</td>");
|
}
|
else if("3".equals(glass.getPoint())){
|
html.append("<td>已发送</td>");
|
}
|
html.append("<td><a class='btn btn-info' href='/gmms2/cutmanage/updateshelfguanli/").append(glass.getMachine()).append("'>开始任务</a> <a class='btn btn-info' href='/gmms2/cutmanage/updateshelfguanli1/").append(glass.getMachine()).append("'>结束任务</a></td>");
|
html.append("</tr>");
|
}
|
|
|
|
return html.toString();
|
}
|
|
public void updateshelf(String findByMachine){
|
ShelfStatu statu=shelfStatuDao.findByMachine(findByMachine);
|
statu.setPoint("1");
|
shelfStatuDao.save(statu);
|
}
|
|
public void updateshelf1(String findByMachine){
|
ShelfStatu statu=shelfStatuDao.findByMachine(findByMachine);
|
statu.setPoint("2");
|
shelfStatuDao.save(statu);
|
}
|
}
|