|
 
- 帖子
- 238
- 主题
- 0
- 精华
- 0
- 积分
- 580
- 疯狂金币
- 384
- 疯狂水晶
- 0
- 在线时间
- 77 小时
|
5#
发表于 2009-1-13 16:38
| 只看该作者
执行的代码如下
-
- public class StockMenologyDAOImpl implements IBaseTask
- {
- private final String UNLOADDISREPAIR = "0003";
- private final String UNLOADFREEZE = "0018";
- private final String DISREPAIR = "0019";
- private final String LOADFREEZE = "0003";
- private final String UNLOADSTOCKUP = "0020";
- private final String LOADSTOCKUP = "0018";
-
- private IBaseDao dao = null;
- public IBaseDao getBaseDao(){
- return dao;
- }
- public void setBaseDao(IBaseDao dao){
- this.dao = dao;
- }
- private ISmJdbcDao jdbc = null;
- public ISmJdbcDao getJdbcDao(){
- return jdbc;
- }
- public void setJdbcDao(ISmJdbcDao jdbc){
- this.jdbc = jdbc;
- }
-
- private HibernateTemplate hibernateTemplate = null;
- public HibernateTemplate getHibernateTemplate() {
- return hibernateTemplate;
- }
- public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
- this.hibernateTemplate = hibernateTemplate;
- }
- public void executeTask(Date today) throws Exception{
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(today);
- int thisyear = calendar.get(Calendar.YEAR);
- int thismonth = calendar.get(Calendar.MONTH)+1;
- int thisday = calendar.get(Calendar.DAY_OF_MONTH);
-
- statisticStockMenology(new Integer(thisyear), new Integer(thismonth), new Integer(thisday));
- }
-
- public void statisticStockMenology(Integer year, Integer mongth, Integer menologyCircle) throws Exception
- {
- Calendar menologyDate = Calendar.getInstance();
- menologyDate.set(Calendar.YEAR, year.intValue());
- menologyDate.set(Calendar.MONTH, mongth.intValue() - 1);
- menologyDate.set(Calendar.DATE, menologyCircle.intValue());
- Calendar lastMenologyDate = Calendar.getInstance();
- lastMenologyDate.setTime(menologyDate.getTime());
- lastMenologyDate.set(Calendar.MONTH, menologyDate.get(Calendar.MONTH) - 2);
- String strMenologyDate = String.valueOf(menologyDate.get(Calendar.YEAR)) + "-"
- + String.valueOf(menologyDate.get(Calendar.MONTH) + 1) + "-"
- + String.valueOf(menologyCircle);
- String strCalculateDate = String.valueOf(year) + "-"
- + String.valueOf(mongth) + "-"
- + String.valueOf(menologyCircle.intValue() + 1);
- String strLastMenologyDate = String.valueOf(lastMenologyDate.get(Calendar.YEAR)) + "-"
- + String.valueOf(lastMenologyDate.get(Calendar.MONTH) + 1) + "-"
- + String.valueOf(menologyCircle);
-
- lockLoad(strCalculateDate);
-
- //Search the stock detail info
- List stockDetails = findVStockDetail();
- //Set flag(0) for recordes that should be kept
- int[] flags = new int[stockDetails.size()];
- for (int i = 0; i < stockDetails.size() - 1; i++)
- {
- flags[i] = 0;
- }
- //Search warehouse operation from the menology date to today
- List stockOperates = findStockOperate(strCalculateDate);
- //Recover the stock detail info to the menology date by the operation info
- if (stockOperates.size() > 0)
- {
- for (int i = 0; i < stockOperates.size(); i++)
- {
- StockOperate stockOperate = (StockOperate)stockOperates.get(i);
- for (int j = 0; j < stockDetails.size(); j++)
- {
- VStstockdetail stockDetail = (VStstockdetail)stockDetails.get(j);
- if (stockOperate.getProductDirectoryID().intValue() ==
- stockDetail.getProductDirectoryID().intValue() &&
- stockOperate.getGradeCode().equals(stockDetail.getGradeCode()) &&
- stockOperate.getColorCode().equals(stockDetail.getColorCode()) &&
- stockOperate.getPackID().intValue() == stockDetail.getPackID().intValue() &&
- stockOperate.getWarehouseID().intValue() == stockDetail.getWarehouseID().intValue())
- {
- flags[j] = 1;
- if (stockOperate.getOperateType().intValue() == 0)
- {
- if (stockOperate.getStockType().equals(UNLOADDISREPAIR))
- {
- stockDetail.setDisrepair(new Integer(stockDetail.getDisrepair().intValue() +
- stockOperate.getQuantity().intValue()));
- }
- else if (stockOperate.getStockType().equals(UNLOADFREEZE))
- {
- stockDetail.setFreeze(new Integer(stockDetail.getFreeze().intValue() -
- stockOperate.getQuantity().intValue()));
- stockDetail.setQuantity(new Integer(stockDetail.getQuantity().intValue() +
- stockOperate.getQuantity().intValue()));
- }
- else if (stockOperate.getStockType().equals(DISREPAIR))
- {
- stockDetail.setDisrepair(new Integer(stockDetail.getDisrepair().intValue() -
- stockOperate.getQuantity().intValue()));
- stockDetail.setQuantity(new Integer(stockDetail.getQuantity().intValue() +
- stockOperate.getQuantity().intValue()));
- }
- else if (stockOperate.getStockType().equals(UNLOADSTOCKUP))
- {
- stockDetail.setStockUp(new Integer(stockDetail.getStockUp().intValue() -
- stockOperate.getQuantity().intValue()));
- stockDetail.setQuantity(new Integer(stockDetail.getQuantity().intValue() +
- stockOperate.getQuantity().intValue()));
- }
- else
- {
- stockDetail.setQuantity(new Integer(stockDetail.getQuantity().intValue() +
- stockOperate.getQuantity().intValue()));
- }
- }
- else if (stockOperate.getOperateType().intValue() == 1)
- {
- if (stockOperate.getStockType().equals(LOADFREEZE))
- {
- stockDetail.setFreeze(new Integer(stockDetail.getFreeze().intValue() +
- stockOperate.getQuantity().intValue()));
- stockDetail.setQuantity(new Integer(stockDetail.getQuantity().intValue() -
- stockOperate.getQuantity().intValue()));
- }
- else if (stockOperate.getStockType().equals(LOADSTOCKUP))
- {
- stockDetail.setStockUp(new Integer(stockDetail.getStockUp().intValue() +
- stockOperate.getQuantity().intValue()));
- stockDetail.setQuantity(new Integer(stockDetail.getQuantity().intValue() -
- stockOperate.getQuantity().intValue()));
- }
- else
- {
- stockDetail.setQuantity(new Integer(stockDetail.getQuantity().intValue() -
- stockOperate.getQuantity().intValue()));
- }
- }
- }
- }
- }
- }
- //Save these available data to the temporary database table
- for (int i = 0; i < stockDetails.size(); i++)
- {
- VStstockdetail stockDetail = (VStstockdetail)stockDetails.get(i);
- if (stockDetail.getQuantity().intValue() == 0 &&
- stockDetail.getReserve().intValue() == 0 &&
- stockDetail.getStockUp().intValue() == 0 &&
- stockDetail.getFreeze().intValue() == 0 &&
- stockDetail.getDisrepair().intValue() == 0)
- {
- if (flags[i] == 0)
- {
- dao.removeByPrimaryKey(StockDetail.class, stockDetail.getStockDetailID());
- saveTempMenogoly(stockDetail, menologyDate);
- }
- }
- else
- {
- saveTempMenogoly(stockDetail, menologyDate);
- }
- }
- //Sum the temporary menology info
- List menologyList = findTempMenologyList();
- deleteTempMenogoly();
- Integer startID = getSerialNumbers("2017", new Integer(menologyList.size()));
- for (int i = 0; i < menologyList.size(); i++)
- {
- StockMenology tempObject = (StockMenology)menologyList.get(i);
- tempObject.setMenologyID(new Integer(startID.intValue() + i));
- tempObject.setMenologyDate(com.power.utils.DateUtils.strToDate(strMenologyDate));
- tempObject.setTotalIn(searchTotalOperate("1", tempObject.getProductDirectoryID(),
- tempObject.getGradeCode(), tempObject.getColorCode(), tempObject.getPackID(),
- tempObject.getWarehouseID(), strMenologyDate, strLastMenologyDate));
- tempObject.setTotalOut(searchTotalOperate("0", tempObject.getProductDirectoryID(),
- tempObject.getGradeCode(), tempObject.getColorCode(), tempObject.getPackID(),
- tempObject.getWarehouseID(), strMenologyDate, strLastMenologyDate));
- dao.createObject(tempObject);
- }
- }
-
- private void lockLoad(String strCalculateDate)
- {
- String hsql = "update Load set Lock = 1 where LoadDate < '" + strCalculateDate + "'";
- try
- {
- dao.execute(hsql);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
-
- private List findVStockDetail()
- {
- List list = new ArrayList();
- String hsql = "from VStstockdetail";
-
- list = getHibernateTemplate().find(hsql);
-
- if (list == null)
- {
- list = new ArrayList();
- }
-
- return list;
- }
-
- private List findStockOperate(String from)
- {
- List list = new ArrayList();
-
- String hsql = "from StockOperate where OperateDate >= '" + from + "'";
- list = getHibernateTemplate().find(hsql);
-
- return list;
- }
-
- public void saveTempMenogoly(VStstockdetail stockDetail, Calendar menologyDate)
- {
- StockMenology stockMenology = new StockMenology();
-
- stockMenology.setMenologyID(new Integer(- 1 * stockDetail.getStockDetailID().intValue()));
- stockMenology.setColorCode(stockDetail.getColorCode());
- stockMenology.setDisrepair(stockDetail.getDisrepair());
- stockMenology.setFreeze(stockDetail.getFreeze());
- stockMenology.setFreightID(stockDetail.getFreightID());
- stockMenology.setGradeCode(stockDetail.getGradeCode());
- String today = String.valueOf(menologyDate.get(Calendar.YEAR)) + "-";
- today = today + String.valueOf(menologyDate.get(Calendar.MONTH) + 1) + "-";
- today = today + String.valueOf(menologyDate.get(Calendar.DATE));
- stockMenology.setMenologyYear(new Integer(menologyDate.get(Calendar.YEAR)));
- stockMenology.setMenologyMonth(new Integer(menologyDate.get(Calendar.MONTH) + 1));
- stockMenology.setMenologyDate(com.power.utils.DateUtils.strToDate(today));
- stockMenology.setPackID(stockDetail.getPackID());
- stockMenology.setPackQuantity(stockDetail.getPackQuantity());
- stockMenology.setProductDirectoryID(stockDetail.getProductDirectoryID());
- stockMenology.setQuantity(stockDetail.getQuantity());
- stockMenology.setRemark(stockDetail.getRemark());
- stockMenology.setReserve(stockDetail.getReserve());
- stockMenology.setStatus(new Short("0"));
- stockMenology.setStockUp(stockDetail.getStockUp());
- stockMenology.setTotalIn(new Integer(0));
- stockMenology.setTotalOut(new Integer(0));
- stockMenology.setWarehouseID(stockDetail.getWarehouseID());
- stockMenology.setWarehouseTypeCode(stockDetail.getWarehouseTypeCode());
- try
- {
- dao.createObject(stockMenology);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
-
- public List findTempMenologyList()
- {
- List list = new ArrayList();
- List tempList = new ArrayList();
-
- String hsql = "select menologyYear, menologyMonth, menologyDate, productDirectoryID, ";
- hsql = hsql + "gradeCode, colorCode, packID, packQuantity, sum(quantity) as SQuntity, ";
- hsql = hsql + "sum(reserve) as SReserve, sum(stockUp) as SStockUp, ";
- hsql = hsql + "sum(freeze) as SFreeze, sum(disrepair) as SDisrepair, ";
- hsql = hsql + "sum(totalIn) as STotalIn, sum(totalOut) as STotalOut, ";
- hsql = hsql + "freightID, warehouseID, warehouseTypeCode from StockMenology where MenologyID < 0 ";
- hsql = hsql + "group by menologyYear, menologyMonth, MenologyDate, ProductDirectoryID, GradeCode, ";
- hsql = hsql + "ColorCode, PackID, PackQuantity, FreightID, WarehouseID, WarehouseTypeCode";
- try
- {
- tempList = getHibernateTemplate().find(hsql);
- if (tempList == null)
- {
- tempList = new ArrayList();
- }
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- for (int i = 0; i < tempList.size(); i++)
- {
- Object[] attrs = (Object[])tempList.get(i);
- StockMenology stockMenology = new StockMenology();
- int j = 0;
- stockMenology.setMenologyYear((Integer)attrs[j]);
- j = j + 1;
- stockMenology.setMenologyMonth((Integer)attrs[j]);
- j = j + 1;
- stockMenology.setMenologyDate((Date)attrs[j]);
- j = j + 1;
- stockMenology.setProductDirectoryID((Integer)attrs[j]);
- j = j + 1;
- stockMenology.setGradeCode((String)attrs[j]);
- j = j + 1;
- stockMenology.setColorCode((String)attrs[j]);
- j = j + 1;
- stockMenology.setPackID((Integer)attrs[j]);
- j = j + 1;
- stockMenology.setPackQuantity((Integer)attrs[j]);
- j = j + 1;
- stockMenology.setQuantity((Integer)attrs[j]);
- j = j + 1;
- stockMenology.setReserve((Integer)attrs[j]);
- j = j + 1;
- stockMenology.setStockUp((Integer)attrs[j]);
- j = j + 1;
- stockMenology.setFreeze((Integer)attrs[j]);
- j = j + 1;
- stockMenology.setDisrepair((Integer)attrs[j]);
- j = j + 1;
- stockMenology.setTotalIn((Integer)attrs[j]);
- j = j + 1;
- stockMenology.setTotalOut((Integer)attrs[j]);
- j = j + 1;
- stockMenology.setFreightID((Integer)attrs[j]);
- j = j + 1;
- stockMenology.setWarehouseID((Integer)attrs[j]);
- j = j + 1;
- stockMenology.setWarehouseTypeCode((String)attrs[j]);
- list.add(stockMenology);
- }
-
- return list;
- }
-
- public void deleteTempMenogoly()
- {
- String hsql = "delete from StockMenology where MenologyID < 0";
- try
- {
- dao.delete(hsql);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
-
- public Integer searchTotalOperate(String operateType, Integer productDirectoryID,
- String gradeCode, String colorCode, Integer packID, Integer warehouseID,
- String strMenologyDate, String strLastMenologyDate)
- {
- Integer result = new Integer(0);
-
- String hsql = "select sum(quantity) from StockOperate where ";
- hsql = hsql + "OperateType = " + operateType + " and ";
- if (operateType.equals("1"))
- {
- hsql = hsql + "(StockType <> '0016' or StockType <> '0018' or StockType <> '0016') and ";
- }
- else
- {
- hsql = hsql + "(StockType <> '0018' or StockType <> '0019' or StockType <> '0020') and ";
- }
- hsql = hsql + "ProductDirectoryID = " + String.valueOf(productDirectoryID) + " and ";
- hsql = hsql + "GradeCode = '" + gradeCode + "' and ";
- hsql = hsql + "ColorCode = '" + colorCode + "' and ";
- hsql = hsql + "PackID = " + String.valueOf(packID) + " and ";
- hsql = hsql + "WarehouseID = " + String.valueOf(warehouseID) + " and ";
- hsql = hsql + "OperateDate <= '" + strMenologyDate + "' and ";
- hsql = hsql + "OperateDate > '" + strLastMenologyDate + "'";
- result = (Integer)dao.findObject(hsql);
-
- if (result == null)
- {
- result = new Integer(0);
- }
-
- return result;
- }
-
- public Integer getSerialNumbers(String code, Integer batchQuantity)
- {
- Integer serialNumber = new Integer(0);
- String hsql = "select sn from SmIdentity sn where sn.code='" + code + "'";
- Object obj = dao.findObject(hsql);
- try
- {
- if (obj != null)
- {
- SmIdentity smIdentity = (SmIdentity) obj;
- serialNumber = new Integer(smIdentity.getCurValue() + smIdentity.getInc());
- smIdentity.setCurValue(smIdentity.getCurValue()
- + smIdentity.getInc() * batchQuantity.intValue());
- dao.updateObject(smIdentity);
- }
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
-
- return serialNumber;
- }
-
- public IBaseDao getDao()
- {
- return dao;
- }
- public void setDao(IBaseDao dao)
- {
- this.dao = dao;
- }
- public String getDISREPAIR()
- {
- return DISREPAIR;
- }
- public String getLOADFREEZE()
- {
- return LOADFREEZE;
- }
- public String getUNLOADDISREPAIR()
- {
- return UNLOADDISREPAIR;
- }
- public String getUNLOADFREEZE()
- {
- return UNLOADFREEZE;
- }
- }
复制代码
[ 本帖最后由 vincent_liao 于 2009-1-13 17:01 编辑 ] |
|