物料档案基本页签启用项目辅助属性+库存组织启用项目(包含主数据导入),计划、生产、财务成本页签对应业务单元自动启用项目辅助属性;
This commit is contained in:
parent
cfb4c8d2fd
commit
de285fb90e
|
@ -0,0 +1,205 @@
|
|||
package nc.impl.bd.material.baseinfo;
|
||||
|
||||
import nc.bs.businessevent.IBusinessEvent;
|
||||
import nc.bs.businessevent.IBusinessListener;
|
||||
import nc.bs.businessevent.bd.BDCommonEvent;
|
||||
import nc.bs.dao.BaseDAO;
|
||||
import nc.bs.dao.DAOException;
|
||||
import nc.jdbc.framework.SQLParameter;
|
||||
import nc.jdbc.framework.processor.ColumnListProcessor;
|
||||
import nc.vo.bd.material.MaterialVO;
|
||||
import nc.vo.bd.material.stock.MaterialStockVO;
|
||||
import nc.vo.pub.BusinessException;
|
||||
import nc.vo.pub.lang.UFBoolean;
|
||||
import nc.vo.util.BDPKLockUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class MaterialStockAsstsChangedListener implements IBusinessListener {
|
||||
private BaseDAO baseDAO = new BaseDAO();
|
||||
public void doAction(IBusinessEvent iBusinessEvent) throws BusinessException {
|
||||
if (iBusinessEvent instanceof BDCommonEvent event) {
|
||||
//1、库存信息修改生产厂商和项目后 更新计划信息,生产信息和成本信息
|
||||
this.dealMaterialStockAssts1(event, false);
|
||||
}
|
||||
}
|
||||
private void dealMaterialStockAssts1(BDCommonEvent event, boolean isBatchUp) throws BusinessException {
|
||||
for(int i = 0; i < event.getNewObjs().length; ++i) {
|
||||
MaterialStockVO newVO = (MaterialStockVO)event.getNewObjs()[i];
|
||||
String pk_material = newVO.getPk_material();
|
||||
String pk_marasstframe = this.getmarasstframe(pk_material).get(0);
|
||||
if (!isBatchUp) {
|
||||
BDPKLockUtil.lockString(new String[]{pk_material});
|
||||
}
|
||||
if(pk_marasstframe == null){
|
||||
return;
|
||||
}
|
||||
//如果库存信息生产厂商和项目被选中则 更新计划信息,生产信息和成本信息
|
||||
UFBoolean fixasst2 = newVO.getFixasst2();
|
||||
UFBoolean fixasst4 = newVO.getFixasst4();
|
||||
|
||||
List<String> fixlist=new ArrayList();
|
||||
|
||||
|
||||
|
||||
if(fixasst2.booleanValue()){
|
||||
fixlist.add("2");
|
||||
}
|
||||
if(fixasst4.booleanValue()){
|
||||
fixlist.add("4");
|
||||
}
|
||||
if(fixlist.isEmpty()){
|
||||
return;
|
||||
}else{
|
||||
//成本
|
||||
this.updateMaterialCostUpdateAssts(fixlist,newVO.getPk_org(), pk_material);
|
||||
//生产信息
|
||||
this.updateMaterialProdAssts(fixlist,newVO.getPk_org(), pk_material);
|
||||
//更新计划信息
|
||||
this.updateMaterialPlanAssts(fixlist,newVO.getPk_org(), pk_material);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private List<String> getmarasstframe(String materialVID) throws BusinessException {
|
||||
String sql = "select pk_marasstframe from " + MaterialVO.getDefaultTableName() + " where pk_material = ? ";
|
||||
SQLParameter param = new SQLParameter();
|
||||
param.addParam(materialVID);
|
||||
return (List)this.getBaseDAO().executeQuery(sql, param, new ColumnListProcessor());
|
||||
}
|
||||
|
||||
private BaseDAO getBaseDAO() {
|
||||
if (this.baseDAO == null) {
|
||||
this.baseDAO = new BaseDAO();
|
||||
}
|
||||
|
||||
return this.baseDAO;
|
||||
}
|
||||
private void updateMaterialCostUpdateAssts(List<String> fixlist,String pk_org, String pk_material) throws BusinessException {
|
||||
//查询成本信息
|
||||
String sql = "SELECT " +
|
||||
" pk_materialcost " +
|
||||
"FROM " +
|
||||
" bd_materialcost " +
|
||||
"WHERE " +
|
||||
" pk_org = (SELECT PK_COSTREGION FROM org_cr_stockorg WHERE pk_stockorg= ?) " +
|
||||
" AND " +
|
||||
" pk_material = ? ";
|
||||
SQLParameter param = new SQLParameter();
|
||||
param.addParam(pk_org);
|
||||
param.addParam(pk_material);
|
||||
List list =( (List) this.getBaseDAO().executeQuery(sql, param, new ColumnListProcessor()));
|
||||
String pk_materialcost = list.get(0).toString();
|
||||
if(pk_materialcost == null){
|
||||
return;
|
||||
}
|
||||
//更新计价方式
|
||||
String update2 = "update bd_materialcostmod set marasst2 = ? where pk_materialcost = ? ";
|
||||
String update4 = "update bd_materialcostmod set marasst4 = ? where pk_materialcost = ? ";
|
||||
String update24 = "update bd_materialcostmod set marasst2 = ?,marasst4 = ? where pk_materialcost = ? ";
|
||||
if(fixlist.contains("2") && fixlist.contains("4")){
|
||||
SQLParameter param1 = new SQLParameter();
|
||||
param1.addParam("Y");
|
||||
param1.addParam("Y");
|
||||
param1.addParam(pk_materialcost);
|
||||
this.getBaseDAO().executeUpdate(update24, param1);
|
||||
}else if(fixlist.contains("2")){
|
||||
SQLParameter param1 = new SQLParameter();
|
||||
param1.addParam("Y");
|
||||
param1.addParam(pk_materialcost);
|
||||
this.getBaseDAO().executeUpdate(update2, param1);
|
||||
}else if(fixlist.contains("4")){
|
||||
SQLParameter param1 = new SQLParameter();
|
||||
param1.addParam("Y");
|
||||
param1.addParam(pk_materialcost);
|
||||
this.getBaseDAO().executeUpdate(update4, param1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void updateMaterialProdAssts(List<String> fixlist,String pk_org, String pk_material) throws DAOException {
|
||||
//查询成本信息
|
||||
String sql = "SELECT " +
|
||||
" pk_materialprod " +
|
||||
"FROM " +
|
||||
" bd_materialprod " +
|
||||
"WHERE " +
|
||||
" pk_org = ? and " +
|
||||
" pk_material = ? ";
|
||||
SQLParameter param = new SQLParameter();
|
||||
param.addParam(pk_org);
|
||||
param.addParam(pk_material);
|
||||
List list =( (List) this.getBaseDAO().executeQuery(sql, param, new ColumnListProcessor()));
|
||||
String pk_materialcost = list.get(0).toString();
|
||||
if(pk_materialcost == null){
|
||||
return;
|
||||
}
|
||||
//更新计价方式
|
||||
String update2 = "update bd_materialprod set costvalutasst2 = ? where pk_materialprod = ? ";
|
||||
String update4 = "update bd_materialprod set costvalutasst4 = ? where pk_materialprod = ? ";
|
||||
String update24 = "update bd_materialprod set costvalutasst2 = ?,costvalutasst4 = ? where pk_materialprod = ? ";
|
||||
if(fixlist.contains("2") && fixlist.contains("4")){
|
||||
SQLParameter param1 = new SQLParameter();
|
||||
param1.addParam("Y");
|
||||
param1.addParam("Y");
|
||||
param1.addParam(pk_materialcost);
|
||||
this.getBaseDAO().executeUpdate(update24, param1);
|
||||
}else if(fixlist.contains("2")){
|
||||
SQLParameter param1 = new SQLParameter();
|
||||
param1.addParam("Y");
|
||||
param1.addParam(pk_materialcost);
|
||||
this.getBaseDAO().executeUpdate(update2, param1);
|
||||
}else if(fixlist.contains("4")){
|
||||
SQLParameter param1 = new SQLParameter();
|
||||
param1.addParam("Y");
|
||||
param1.addParam(pk_materialcost);
|
||||
this.getBaseDAO().executeUpdate(update4, param1);
|
||||
}
|
||||
|
||||
}
|
||||
private void updateMaterialPlanAssts(List<String> fixlist,String pk_org, String pk_material) throws DAOException {
|
||||
//查询成本信息
|
||||
String sql = "SELECT " +
|
||||
" pk_materialplan " +
|
||||
"FROM " +
|
||||
" bd_materialplan " +
|
||||
"WHERE " +
|
||||
" pk_org = ? and " +
|
||||
" pk_material = ? ";
|
||||
SQLParameter param = new SQLParameter();
|
||||
param.addParam(pk_org);
|
||||
param.addParam(pk_material);
|
||||
List list =( (List) this.getBaseDAO().executeQuery(sql, param, new ColumnListProcessor()));
|
||||
String pk_materialcost = list.get(0).toString();
|
||||
if(pk_materialcost == null){
|
||||
return;
|
||||
}
|
||||
//更新计价方式
|
||||
String update2 = "update bd_materialplan set marasst2 = ? where pk_materialplan = ? ";
|
||||
String update4 = "update bd_materialplan set marasst4 = ? where pk_materialplan = ? ";
|
||||
String update24 = "update bd_materialplan set marasst2 = ?,marasst4 = ? where pk_materialplan = ? ";
|
||||
if(fixlist.contains("2") && fixlist.contains("4")){
|
||||
SQLParameter param1 = new SQLParameter();
|
||||
param1.addParam("Y");
|
||||
param1.addParam("Y");
|
||||
param1.addParam(pk_materialcost);
|
||||
this.getBaseDAO().executeUpdate(update24, param1);
|
||||
}else if(fixlist.contains("2")){
|
||||
SQLParameter param1 = new SQLParameter();
|
||||
param1.addParam("Y");
|
||||
param1.addParam(pk_materialcost);
|
||||
this.getBaseDAO().executeUpdate(update2, param1);
|
||||
}else if(fixlist.contains("4")){
|
||||
SQLParameter param1 = new SQLParameter();
|
||||
param1.addParam("Y");
|
||||
param1.addParam(pk_materialcost);
|
||||
this.getBaseDAO().executeUpdate(update4, param1);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue