/** * 批量变动 * * @return */ public void operateChanageBatch( String changeway, String changereason, String changeValue, String bodyIds, String headId, String isProportion) { if (bodyIds != null && bodyIds.length() > 0) { if (bodyIds.startsWith(",")) { bodyIds = bodyIds.substring(1); } String ids[] = bodyIds.split(","); this.deleteRecord(ids); for (int i = 0; i < ids.length; i++) { LcCardtemp body = this.findLcCardtempById(ids[i]); String cardId = body.getCardinfoid(); Cardinfo card = this.findCardinfoByCardId(cardId); Individualtree tree = this.getIndividualtreeById(changeway); String nodevalue = ""; if (tree != null) { nodevalue = tree.getNodevalue(); } Recordhistory record = new Recordhistory(); if ("1".equals(nodevalue.trim())) { // 原币原值增加 if ("true".equals(isProportion)) { double d = card.getYbyz() * Double.valueOf(changeValue) / 100.0 + card.getYbyz(); body.setYbyz(d); } else { body.setYbyz(card.getYbyz() + Double.parseDouble(changeValue)); } body.setJvalue(body.getYbyz() - card.getLjzj()); body.setJevalue(body.getYbyz() - card.getLjzj()); record.setName("ybyz"); record.setBefore(String.valueOf(card.getYbyz())); } else if ("2".equals(nodevalue.trim())) { // 原币原值减少 if ("true".equals(isProportion)) { double d = card.getYbyz() - card.getYbyz() * Double.valueOf(changeValue) / 100.0; body.setYbyz(d); } else { body.setYbyz(card.getYbyz() - Double.parseDouble(changeValue)); } body.setJvalue(body.getYbyz() - card.getLjzj()); body.setJevalue(body.getYbyz() - card.getLjzj()); record.setName("ybyz"); record.setBefore(String.valueOf(card.getYbyz())); } else if ("3".equals(nodevalue.trim())) { // 管理部门 body.setGlbm(changeValue); record.setName("glbm"); record.setBefore(String.valueOf(card.getGlbm())); } else if ("4".equals(nodevalue.trim())) { // 使用部门 body.setUsepartment(changeValue); record.setName("usepartment"); record.setBefore(String.valueOf(card.getUsepartment())); } else if ("5".equals(nodevalue.trim())) { // 使用状况 body.setUsestatus(changeValue); record.setName("usestatus"); record.setBefore(String.valueOf(card.getUsestatus())); } else if ("6".equals(nodevalue.trim())) { // 折旧类型 body.setZjtype(changeValue); record.setName("zjtype"); record.setBefore(String.valueOf(card.getZjtype())); } else if ("7".equals(nodevalue.trim())) { // 使用月限 Long yueTotal = Long.parseLong(changeValue); Long nian = yueTotal / 12l; Long yue = yueTotal % 12l; body.setSynx(nian); body.setSyyx(yue); record.setName("syyx"); record.setBefore(String.valueOf(card.getSyyx() + card.getSynx() * 12)); } else if ("9".equals(nodevalue.trim())) { // 净残值 double bianhua = Double.parseDouble(changeValue); body.setJcz(bianhua); body.setJczl(bianhua / card.getYbyz() * 100); // 净残值率 record.setName("jcz"); record.setBefore(String.valueOf(card.getJcz())); } else if ("10".equals(nodevalue.trim())) { // 累计折旧 body.setLjzj(Double.parseDouble(changeValue)); body.setJvalue(card.getYbyz() - Double.parseDouble(changeValue)); body.setJevalue(card.getYbyz() - Double.parseDouble(changeValue)); record.setName("ljzj"); record.setBefore(String.valueOf(card.getLjzj())); } else if ("11".equals(nodevalue.trim())) { // 卡片类别, body.setTypecode(changeValue); body.setChildid(changeValue); record.setName("typecode"); record.setBefore(String.valueOf(card.getTypecode())); } else if ("12".equals(nodevalue.trim())) { // 增加方式 body.setAddtype(changeValue); record.setName("addtype"); record.setBefore(String.valueOf(card.getAddtype())); } else if ("13".equals(nodevalue.trim())) { // 折旧承担部门 body.setZjcdbm(changeValue); record.setName("zjcdbm"); record.setBefore(String.valueOf(card.getZjcdbm())); } else if ("14".equals(nodevalue.trim())) { // 使用人 body.setUsername(changeValue); record.setName("username"); record.setBefore(String.valueOf(card.getUsername())); } body.setChangeway(nodevalue); body.setChangereason(changereason); this.update(body); record.setPkId(headId.toString()); record.setChangetype("卡片变动"); record.setZcType("card"); record.setChangeinfoid(cardId); record.setAfter(changeValue); record.setZcId(String.valueOf(body.getId())); record.setChangedate(new Date()); IUser user = UserThreadLocal.get(); record.setChangeperson(user.getUsername()); record.setChangepersonId(user.getUserTidChar()); record.setChangeinfoid(String.valueOf(card.getId())); // 流程 CaShead head = this.findCaSheadById(headId); record.setWfCode(head.getWfconfigCode()); // 设置审批状态为0:未审批 record.setZhuangTai("0"); record.setBiaoming("lccardtemp"); this.saveRecord(record); } } }
/** * /根据所选的卡片合并,ids为合并的卡片id数组,baseCardId为基础卡片,headId为表单id,ybyz,ljzj,jvalue,jevalue * * <p>拆分后新卡片 拆分前表体 CARDCODE 空 为cardinfo表的cardCode CARDINFOID 空 表体里为cardinfo的id BOXID 表体里为该表体的id * 表体里为新卡片表体的id ID YBYZ(原币原值) LJZJ(累计折旧)JVALUE (净值) JEVALUE(净额)CARDINFOID BOXID LRRQ 10056642 * 57816974.41 15287963.29 42529011.12 42529011.12 10056642 2010/11/21 这个是合并后的卡片 10056641 * 57269974.41 15108477.09 42161497.32 42161497.32 125362 10056642 下面3个合并前卡片 10056640 400000 * 113335.09 286664.91 286664.91 125337 10056642 10056639 147000 66151.11 80848.89 80848.89 124335 * 10056642 2010/3/24 * * @param ids 这个未用到 * @param baseCardId * @param headId */ public boolean mergeBody(String[] ids, String baseCardId, String headId) { // 先查出已合并的卡片,然后删除 List list1 = this.findLcCardtempsBySheadId(headId, "false"); if (list1 != null && list1.size() > 0) { for (int i = 0; i < list1.size(); i++) { LcCardtemp temp = new LcCardtemp(); temp = (LcCardtemp) list1.get(i); this.delete(temp); } } // 根据ids在Cardinfo表中查询出要合并的卡片 List<LcCardtemp> list = this.findLcCardtempsBySheadId(headId); boolean tongyileixingkapian = this.compareZcTypeByHeadId(list); if (tongyileixingkapian) { // 合并后的卡片 LcCardtemp newLcCardtemp = new LcCardtemp(); Double ybyz = new Double(0); Double jvalue = new Double(0); Double jevalue = new Double(0); Double ljzj = new Double(0); Double jzzb = new Double(0); String oldCode = null; // 把Cardinfo对象转化为LcCardtemp对象 for (int i = 0; i < list.size(); i++) { LcCardtemp body = list.get(i); if (String.valueOf(body.getId()).equals(baseCardId)) { try { BeanUtils.copyProperties(newLcCardtemp, body); } catch (IllegalAccessException e1) { e1.printStackTrace(); } catch (InvocationTargetException e1) { e1.printStackTrace(); } newLcCardtemp.setCardcode(null); newLcCardtemp.setOldcode(body.getCardcode()); // 设置录入日期为当前日期 Date date = new Date(); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); String dateStr = sf.format(date); Date formatDate = null; try { formatDate = sf.parse(dateStr); } catch (ParseException e) { e.printStackTrace(); } newLcCardtemp.setLrrq(formatDate); // 设置卡片的增加方式为合并增加0113 newLcCardtemp.setAddtype("0113"); } else { // 设置卡片状态为退役 body.setState("03"); // 设置卡片的减少方式为0212合并减少 body.setChangeway("0212"); if (body.getCardcode() != null) { this.update(body); } } // 原币原值,累计折旧,净值,净额,信息合并前卡片进行累加 ybyz += body.getYbyz(); ljzj += body.getLjzj(); jvalue += body.getJvalue(); jevalue += body.getJevalue(); jzzb += body.getJzzb(); } newLcCardtemp.setYbyz(ybyz); newLcCardtemp.setLjzj(ljzj); newLcCardtemp.setJvalue(jvalue); newLcCardtemp.setJevalue(jevalue); newLcCardtemp.setJzzb(jzzb); newLcCardtemp.setState("02"); String newBodyId = this.saveBody(newLcCardtemp); // LcCardtemp newBody = this.findLcCardtempById(newBodyId); newLcCardtemp.setBoxid(newBodyId); newLcCardtemp.setCardinfoid(newBodyId); this.update(newLcCardtemp); // for(int i = 0;i<list.size();i++){ // LcCardtemp body = list.get(i); // body.setBoxid(newBodyId); // this.update(body); // } } return tongyileixingkapian; }