public IResult saveFactorDtl(IRequest request) {
AjaxFormResult result = new AjaxFormResult();
String type = request.get("type");
String divFtItmNo = request.get("factorNo");
String[] sary = request.getParamsAsStringArray("grid[]");
DivFtItm ftItm = factorMntService.findByDivFtItmNo(divFtItmNo);
if ("A".equals(type)) {
if (ftItm != null) {
// factorMnt.0001 代碼重覆!
throw new CapMessageException(
CapAppContext.getMessage("factorMntPage.0001"), getClass());
}
ftItm = new DivFtItm();
} else {
if (ftItm != null && !ftItm.getOid().equals(request.get("oid"))) {
// factorMnt.0001 代碼重覆!
throw new CapMessageException(
CapAppContext.getMessage("factorMntPage.0001"), getClass());
} else if (ftItm == null && !CapString.isEmpty(request.get("oid"))) {
ftItm = factorMntService.getById(request.get("oid"));
} else if (ftItm == null){
ftItm = new DivFtItm();
}
}
CapBeanUtil.map2Bean(request, ftItm);
if ("A".equals(type)) {
ftItm.setOid(null);
}
List<DivFtDtl> delFtDtl = new ArrayList<DivFtDtl>();
if(ftItm.getDivFtDtls()!=null&&!ftItm.getDivFtDtls().isEmpty()){
delFtDtl = ftItm.getDivFtDtls();
}
if(sary!=null){
List<DivFtDtl> ftDtls = new ArrayList<DivFtDtl>();
for(int i = 0 ; i<sary.length; i++){
JSONObject gridData = JSONObject.fromObject(sary[i]);
DivFtDtl ftDtl = new DivFtDtl();
CapBeanUtil.map2Bean(gridData, ftDtl);
ftDtl.setFactorNo(ftItm.getFactorNo());
if(!CapString.isEmpty(gridData.optString("rangeNo"))){
ftDtl.setRangeNo(gridData.optString("rangeNo"));
}else{
ftDtl.setRangeNo(CapString.fillString(String.valueOf(i), 5, true, '0'));
}
if(!CapString.isEmpty(gridData.optString("oid"))){
ftDtl.setOid(gridData.optString("oid"));
}
ftDtl.setRangeSor(new BigDecimal(i));
ftDtl.setDivFtItm(ftItm);
ftDtls.add(ftDtl);
}
ftItm.setDivFtDtls(ftDtls);
}
String userId = CapSecurityContext.getUserId();
if(userId.length()>6)userId = userId.substring(0,6);
ftItm.setUpdater(userId);
ftItm.setUpdateTime(CapDate.getCurrentTimestamp());
factorMntService.saveDivFtItm(ftItm);
if(!delFtDtl.isEmpty())
factorMntService.deleteFtDtlByList(delFtDtl);
result.set(Constants.AJAX_NOTIFY_MESSAGE, CapAppContext.getMessage("factorMntPage.0002"));
return result;