|
@@ -47,76 +47,77 @@ import net.sf.json.JSONArray;
|
|
|
import net.sf.json.JSONObject;
|
|
|
|
|
|
public class ModifyMaintianImpl extends BaseServlet implements IHttpServletAdaptor{
|
|
|
- //璇锋眰鍞�竴鏍囪瘑
|
|
|
+ //请求唯一标识
|
|
|
private String vbillcode = "";
|
|
|
|
|
|
@SuppressWarnings("restriction")
|
|
|
@Override
|
|
|
public void doAction(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
|
|
+ InvocationInfoProxy.getInstance().setUserDataSource("sypnctest");
|
|
|
try {
|
|
|
String createStr = buildJson(req, resp, this.getClass().getName());
|
|
|
JSONObject json = JSONObject.fromObject(createStr);
|
|
|
- NcLog.info("閿€鍞�悎鍚屽彉鏇碕SON:"+json);
|
|
|
+ NcLog.info("销售合同变更JSON:"+json);
|
|
|
vbillcode = json.getString("vbillcode");
|
|
|
collect(json);
|
|
|
resp.getWriter().write(formatRSJsonData("0",vbillcode,"").toString());
|
|
|
} catch (Exception e) {
|
|
|
- //鍓嶇�鎺у埗鍙版墦鍗皒ml鏁版嵁
|
|
|
+ //前端控制台打印xml数据
|
|
|
resp.getWriter().write(formatRSJsonData("1",vbillcode,e.getMessage()==null?e.toString():e.getMessage()).toString());
|
|
|
StringWriter stringWriter = new StringWriter();
|
|
|
e.printStackTrace(new PrintWriter(stringWriter));
|
|
|
- //鑾峰彇璇︾粏淇℃伅
|
|
|
+ //获取详细信息
|
|
|
String msg=stringWriter.getBuffer().toString();
|
|
|
- NcLog.info("閿€鍞�悎鍚屽彉鏇�:"+msg);
|
|
|
+ NcLog.info("销售合同变更:"+msg);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
public void collect(JSONObject json) throws Exception {
|
|
|
|
|
|
- //鐗堟湰鍙�
|
|
|
+ //版本号
|
|
|
int version;
|
|
|
|
|
|
- //鍚堝悓鏉℃�
|
|
|
+ //合同条款
|
|
|
CtSaleTermVO ctSaleTermVO = new CtSaleTermVO();
|
|
|
List<CtSaleTermVO> ctSaleTermListVO = new ArrayList<CtSaleTermVO>();
|
|
|
- //鍚堝悓璐圭敤
|
|
|
+ //合同费用
|
|
|
CtSaleExpVO ctSaleExpVO = new CtSaleExpVO();
|
|
|
List<CtSaleExpVO> ctSaleExpListVO = new ArrayList<CtSaleExpVO>();
|
|
|
- //鍚堝悓澶т簨璁�
|
|
|
+ //合同大事记
|
|
|
CtSaleMemoraVO ctSaleMemoraVO = new CtSaleMemoraVO();
|
|
|
List<CtSaleMemoraVO> ctSaleMemoraListVO = new ArrayList<CtSaleMemoraVO>();
|
|
|
- //闆嗗洟
|
|
|
+ //集团
|
|
|
GroupVO groupVo = GetBaseDAOUtil.getGroup(json.getString("groupCode"));
|
|
|
NCLocator.getInstance().lookup(ISecurityTokenCallback.class).token("NCSystem".getBytes(),"pfxx".getBytes());
|
|
|
|
|
|
- //绾跨▼璁剧疆闆嗗洟涓婚敭
|
|
|
+ //线程设置集团主键
|
|
|
InvocationInfoProxy.getInstance().setGroupId(groupVo.getPk_group());
|
|
|
- //缁勭粐
|
|
|
+ //组织
|
|
|
SalesOrgVO salesOrgVO = GetBaseDAOUtil.getSalesOrg(json.getString("pk_org"));
|
|
|
String sm_userpk = GetBaseDAOUtil.getUser(json.getString("billmaker")).getCuserid();
|
|
|
- //鐢ㄦ埛涓婚敭
|
|
|
+ //用户主键
|
|
|
InvocationInfoProxy.getInstance().setUserId(sm_userpk);
|
|
|
|
|
|
IMDPersistenceQueryService service=NCLocator.getInstance().lookup(IMDPersistenceQueryService.class);
|
|
|
AggCtSaleVO aggCtSaleVO = (AggCtSaleVO) service.queryBillOfNCObjectByPKWithDR(AggCtSaleVO.class,GetBaseDAOUtil.GetVOID("ct_sale",json.getString("vbillcode")),true).getContainmentObject();
|
|
|
- //涓昏〃
|
|
|
+ //主表
|
|
|
CtSaleVO ctSaleVO = aggCtSaleVO.getParentVO();
|
|
|
- //璁″垝鐢熸晥鏃ユ湡
|
|
|
+ //计划生效日期
|
|
|
ctSaleVO.setValdate(new UFDate(json.getString("valdate")));
|
|
|
- //璁″垝缁堟�鏃ユ湡
|
|
|
+ //计划终止日期
|
|
|
ctSaleVO.setInvallidate(new UFDate(json.getString("invallidate")));
|
|
|
if(!"".equals(json.getString("depid"))) {
|
|
|
DeptVO deptVO = GetBaseDAOUtil.getDept(json.getString("depid"),salesOrgVO.getPk_salesorg());
|
|
|
- //閮ㄩ棬鏈€鏂扮増鏈�
|
|
|
+ //部门最新版本
|
|
|
ctSaleVO.setDepid(deptVO.getPk_dept());
|
|
|
- //閮ㄩ棬
|
|
|
+ //部门
|
|
|
ctSaleVO.setDepid_v(deptVO.getPk_vid());
|
|
|
}
|
|
|
|
|
|
- //閿€鍞�憳
|
|
|
+ //销售员
|
|
|
ctSaleVO.setPersonnelid("".equals(json.getString("personnelid")) ? null : GetBaseDAOUtil.getPsndoc(json.getString("personnelid"),salesOrgVO.getPk_salesorg()).getPk_psndoc());
|
|
|
- //涓昏〃vo鐘舵€�
|
|
|
+ //主表vo状态
|
|
|
aggCtSaleVO.getParent().setStatus(VOStatus.UPDATED);
|
|
|
|
|
|
if (aggCtSaleVO.getChildren(CtSaleChangeVO.class)==null) {
|
|
@@ -125,25 +126,25 @@ public class ModifyMaintianImpl extends BaseServlet implements IHttpServletAdapt
|
|
|
version = aggCtSaleVO.getChildren(CtSaleChangeVO.class).length;
|
|
|
}
|
|
|
|
|
|
- //鍙樻洿鍘嗗彶
|
|
|
+ //变更历史
|
|
|
CtSaleChangeVO ctSaleChangeVO = new CtSaleChangeVO();
|
|
|
- //涓昏〃涓婚敭
|
|
|
+ //主表主键
|
|
|
ctSaleChangeVO.setPk_ct_sale(aggCtSaleVO.getParent().getAttributeValue("pk_ct_sale").toString());
|
|
|
- //闆嗗洟涓婚敭
|
|
|
+ //集团主键
|
|
|
ctSaleChangeVO.setPk_group(groupVo.getPk_group());
|
|
|
- //缁勭粐鏈€鏂扮増鏈�
|
|
|
+ //组织最新版本
|
|
|
ctSaleChangeVO.setPk_org(salesOrgVO.getPk_org());
|
|
|
- //缁勭粐
|
|
|
+ //组织
|
|
|
ctSaleChangeVO.setPk_org_v(salesOrgVO.getPk_vid());
|
|
|
- //鐗堟湰鍙锋暟缁�+1
|
|
|
+ //版本号数组+1
|
|
|
ctSaleChangeVO.setVchangecode(new UFDouble(version+1));
|
|
|
- //鍙樻洿鏃ユ湡
|
|
|
+ //变更日期
|
|
|
ctSaleChangeVO.setVchgdate(new UFDate(json.getString("vchgdate")));
|
|
|
- //鍙樻洿浜�
|
|
|
+ //变更人
|
|
|
ctSaleChangeVO.setVchgpsn(sm_userpk);
|
|
|
- //鍙樻洿鍘熷洜
|
|
|
+ //变更原因
|
|
|
ctSaleChangeVO.setVchgreason(json.getString("vchgreason"));
|
|
|
- //vo鐘舵€�
|
|
|
+ //vo状态
|
|
|
ctSaleChangeVO.setStatus(VOStatus.NEW);
|
|
|
|
|
|
|
|
@@ -159,74 +160,74 @@ public class ModifyMaintianImpl extends BaseServlet implements IHttpServletAdapt
|
|
|
|
|
|
for (int i = 0; i < datas.size(); i++) {
|
|
|
JSONObject JSONBody = (JSONObject) datas.get(i);
|
|
|
- //鍚堝悓鍩烘湰瀛愯〃
|
|
|
+ //合同基本子表
|
|
|
CtSaleBVO ctSaleBVO = new CtSaleBVO();
|
|
|
- //涓昏〃涓婚敭
|
|
|
+ //主表主键
|
|
|
ctSaleBVO.setPk_ct_sale(aggCtSaleVO.getParent().getAttributeValue("pk_ct_sale").toString());
|
|
|
- //璐㈠姟缁勭粐
|
|
|
+ //财务组织
|
|
|
ctSaleBVO.setPk_financeorg(GetBaseDAOUtil.GetFinanceorg("SYP"));
|
|
|
- //璐㈠姟缁勭粐鏈€鏂�
|
|
|
+ //财务组织最新
|
|
|
ctSaleBVO.setPk_financeorg_v(GetBaseDAOUtil.GetFinanceorg_v("SYP"));
|
|
|
- //闆嗗洟
|
|
|
+ //集团
|
|
|
ctSaleBVO.setPk_group(groupVo.getPk_group());
|
|
|
- //缁勭粐鏈€鏂扮増鏈�
|
|
|
+ //组织最新版本
|
|
|
ctSaleBVO.setPk_org(salesOrgVO.getPk_org());
|
|
|
- //缁勭粐
|
|
|
+ //组织
|
|
|
ctSaleBVO.setPk_org_v(salesOrgVO.getPk_vid());
|
|
|
- //琛屽彿
|
|
|
+ //行号
|
|
|
ctSaleBVO.setCrowno(JSONBody.getString("crowno"));
|
|
|
MaterialVO materialVO = GetBaseDAOUtil.getMaterial(JSONBody.getString("pk_material"));
|
|
|
- //鐗╂枡
|
|
|
+ //物料
|
|
|
ctSaleBVO.setPk_material(materialVO.getPk_material());
|
|
|
- //鐗╂枡鏈€鏂扮増鏈�
|
|
|
+ //物料最新版本
|
|
|
ctSaleBVO.setPk_srcmaterial(materialVO.getPk_source());
|
|
|
- //鍗曚綅
|
|
|
+ //单位
|
|
|
ctSaleBVO.setCastunitid("".equals(JSONBody.getString("castunitid")) ? null : GetBaseDAOUtil.getMeasdo(JSONBody.getString("castunitid")).getPk_measdoc());
|
|
|
- //涓诲崟浣�
|
|
|
+ //主单位
|
|
|
ctSaleBVO.setCunitid("".equals(JSONBody.getString("cunitid")) ? null : GetBaseDAOUtil.getMeasdo(JSONBody.getString("cunitid")).getPk_measdoc());
|
|
|
- //鎹㈢畻鐜�
|
|
|
+ //换算率
|
|
|
ctSaleBVO.setVchangerate("1");
|
|
|
- //鏁伴噺
|
|
|
+ //数量
|
|
|
ctSaleBVO.setNastnum(new UFDouble(JSONBody.getString("nnum")));
|
|
|
- //涓绘暟閲�
|
|
|
+ //主数量
|
|
|
ctSaleBVO.setNnum(new UFDouble(JSONBody.getString("nnum")));
|
|
|
- //绋庣巼
|
|
|
+ //税率
|
|
|
ctSaleBVO.setNtaxrate(new UFDouble(JSONBody.getString("ntaxrate")));
|
|
|
- //鏈�綅甯佸惈绋庡崟浠�
|
|
|
+ //本位币含税单价
|
|
|
ctSaleBVO.setNgtaxprice(new UFDouble(JSONBody.getString("norigtaxprice")));
|
|
|
- //涓诲惈绋庡崟浠�
|
|
|
+ //主含税单价
|
|
|
ctSaleBVO.setNorigtaxprice(new UFDouble(JSONBody.getString("norigtaxprice")));
|
|
|
-// //涓绘棤绋庡崟浠�
|
|
|
+// //主无税单价
|
|
|
ctSaleBVO.setNorigprice((new UFDouble(JSONBody.getString("norigtaxprice"))));//
|
|
|
-// //鎶ヤ环鏃犵◣鍗曚环
|
|
|
+// //报价无税单价
|
|
|
ctSaleBVO.setNqtorigprice((new UFDouble(JSONBody.getString("norigtaxprice"))));//
|
|
|
- //鎶ヤ环鍚�◣鍗曚环
|
|
|
+ //报价含税单价
|
|
|
ctSaleBVO.setNqtorigtaxprice((new UFDouble(JSONBody.getString("norigtaxprice"))));
|
|
|
- //鎶ヤ环鏈�竵鍚�◣鍗曚环
|
|
|
+ //报价本币含税单价
|
|
|
ctSaleBVO.setNqttaxprice((new UFDouble(JSONBody.getString("norigtaxprice"))));
|
|
|
- //鏈�竵鏃犵◣閲戦�
|
|
|
+ //本币无税金额
|
|
|
ctSaleBVO.setNmny((new UFDouble(JSONBody.getString("norigmny"))));
|
|
|
- //鏃犵◣閲戦�
|
|
|
+ //无税金额
|
|
|
ctSaleBVO.setNorigmny((new UFDouble(JSONBody.getString("norigmny"))));
|
|
|
- //绋庨�
|
|
|
+ //税额
|
|
|
ctSaleBVO.setNtax((new UFDouble(JSONBody.getString("ntax"))));
|
|
|
- //鎵g◣绫诲埆
|
|
|
+ //扣税类别
|
|
|
ctSaleBVO.setFtaxtypeflag(1);//
|
|
|
- //绋庣爜
|
|
|
+ //税码
|
|
|
ctSaleBVO.setCtaxcodeid(GetBaseDAOUtil.GetTaxcode(JSONBody.getString("ctaxcode")));//
|
|
|
- //鍙戣揣鍦板尯/鍥藉�
|
|
|
+ //发货地区/国家
|
|
|
ctSaleBVO.setCrececountryid(GetBaseDAOUtil.GetCountry(JSONBody.getString("crececountryid")));//
|
|
|
- //鏀惰揣鍦板尯/鍥藉�
|
|
|
+ //收货地区/国家
|
|
|
ctSaleBVO.setCsendcountryid(GetBaseDAOUtil.GetCountry(JSONBody.getString("csendcountryid")));//
|
|
|
- //鎶ョ◣璐у湴鍖�/鍥藉�
|
|
|
+ //报税货地区/国家
|
|
|
ctSaleBVO.setCtaxcountryid(GetBaseDAOUtil.GetCountry(JSONBody.getString("ctaxcountryid")));//
|
|
|
- //璐�攢绫诲瀷
|
|
|
+ //购销类型
|
|
|
ctSaleBVO.setFbuysellflag(3);//
|
|
|
- //浠风◣鍚堣�
|
|
|
+ //价税合计
|
|
|
ctSaleBVO.setNorigtaxmny((new UFDouble(JSONBody.getString("norigmny"))));//
|
|
|
- //澶囨敞
|
|
|
+ //备注
|
|
|
ctSaleBVO.setVmemo(JSONBody.getString("vmemo"));
|
|
|
- //VO鐘舵€�
|
|
|
+ //VO状态
|
|
|
ctSaleBVO.setStatus(VOStatus.NEW);
|
|
|
|
|
|
newAssetList.add(ctSaleBVO);
|
|
@@ -238,26 +239,26 @@ public class ModifyMaintianImpl extends BaseServlet implements IHttpServletAdapt
|
|
|
|
|
|
// List<CtSaleBVO> ctSaleBListVOList = new ArrayList<CtSaleBVO>();
|
|
|
// for (int i = 0; i < aggCtSaleVO.getChildren(CtSaleBVO.class).length; i++) {
|
|
|
-// //鍚堝悓鍩烘湰瀛愯〃
|
|
|
+// //合同基本子表
|
|
|
// CtSaleBVO ctSaleBVO = (CtSaleBVO) aggCtSaleVO.getChildren(CtSaleBVO.class)[i];
|
|
|
-// //闆嗗洟
|
|
|
+// //集团
|
|
|
// ctSaleBVO.setPk_group(groupVo.getPk_group());
|
|
|
-// //缁勭粐鏈€鏂扮増鏈�
|
|
|
+// //组织最新版本
|
|
|
// ctSaleBVO.setPk_org(salesOrgVO.getPk_org());
|
|
|
-// //缁勭粐
|
|
|
+// //组织
|
|
|
// ctSaleBVO.setPk_org_v(salesOrgVO.getPk_vid());
|
|
|
-// //琛屽彿
|
|
|
+// //行号
|
|
|
// ctSaleBVO.setCrowno(crowno);
|
|
|
-// //涓绘暟閲�
|
|
|
+// //主数量
|
|
|
// ctSaleBVO.setNnum(new UFDouble(2));
|
|
|
-// //vo鐘舵€�
|
|
|
+// //vo状态
|
|
|
// ctSaleBVO.setStatus(1);
|
|
|
//
|
|
|
// aggCtSaleVO.getChildren(CtSaleBVO.class)[i] = ctSaleBVO;
|
|
|
// }
|
|
|
|
|
|
|
|
|
- //鍒涘缓鏁扮粍闀垮害+1鍔犲叆鍙樻洿璁板綍
|
|
|
+ //创建数组长度+1加入变更记录
|
|
|
CtSaleChangeVO[] CtSaleChangearrVO = new CtSaleChangeVO[version+1];
|
|
|
for (int i = 0; i < version; i++) {
|
|
|
CtSaleChangearrVO[i] = (CtSaleChangeVO) aggCtSaleVO.getChildren(CtSaleChangeVO.class)[i];
|
|
@@ -272,7 +273,7 @@ public class ModifyMaintianImpl extends BaseServlet implements IHttpServletAdapt
|
|
|
public void processAction(AggCtSaleVO aggCtSaleVO) throws Exception{
|
|
|
// WorkflownoteVO Workflownote = new WorkflownoteVO();
|
|
|
// IPFBusiAction ipf = NCLocator.getInstance().lookup(IPFBusiAction.class);
|
|
|
-// //璋冪敤鍙樻洿鍗曟嵁鍔ㄤ綔
|
|
|
+// //调用变更单据动作
|
|
|
// ipf.processAction("SAVEBASE", "Z3", Workflownote, aggCtSaleVO, null, null);
|
|
|
NCLocator.getInstance().lookup(IplatFormEntry.class).processAction("SAVEBASE",aggCtSaleVO.getParentVO().getVtrantypecode(),null,aggCtSaleVO,null,null);
|
|
|
}
|