供应商价目表增加制单人和修改人
This commit is contained in:
parent
934312e370
commit
c8cf732414
|
@ -0,0 +1,126 @@
|
||||||
|
package nccloud.web.pp.supplierprice.action;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
|
||||||
|
import nc.bs.framework.common.InvocationInfoProxy;
|
||||||
|
import nc.itf.pp.supplierprice.ISupplierPriceService;
|
||||||
|
import nc.vo.bd.meta.BatchOperateVO;
|
||||||
|
import nc.vo.pp.supplierprice.entity.SupplierPriceVO;
|
||||||
|
import nc.vo.pub.BusinessException;
|
||||||
|
import nc.vo.pub.VOStatus;
|
||||||
|
import nc.vo.pub.lang.UFDateTime;
|
||||||
|
import nc.vo.pubapp.AppContext;
|
||||||
|
import nc.vo.scmpub.util.StringUtil;
|
||||||
|
import nccloud.framework.core.exception.ExceptionUtils;
|
||||||
|
import nccloud.framework.service.ServiceLocator;
|
||||||
|
import nccloud.framework.web.action.itf.ICommonAction;
|
||||||
|
import nccloud.framework.web.container.IRequest;
|
||||||
|
import nccloud.framework.web.ui.pattern.grid.Grid;
|
||||||
|
import nccloud.framework.web.ui.pattern.grid.GridOperator;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应商价目表新增修改
|
||||||
|
*
|
||||||
|
* @author ligangt
|
||||||
|
* @date 2018-4-17
|
||||||
|
* @version v1.0
|
||||||
|
*/
|
||||||
|
public class SaveAction implements ICommonAction {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object doAction(IRequest request) {
|
||||||
|
try {
|
||||||
|
// 转换前台json
|
||||||
|
GridOperator operator = new GridOperator();
|
||||||
|
SupplierPriceVO[] vos = operator.toVos(request);
|
||||||
|
|
||||||
|
// 处理前台传过来的修改字段数组,用于保存时校验
|
||||||
|
String updateKeysjson = operator.getOriginGrid().getUserjson();
|
||||||
|
// 获取修改时有来源的供应商价目表除失效日期外的字段,理应为0,如果有值说明有错误操作
|
||||||
|
int updateKeysNum = StringUtil.isSEmptyOrNull(updateKeysjson) ? 0
|
||||||
|
: ((JSONArray) JSONObject.parse(updateKeysjson)).size();
|
||||||
|
|
||||||
|
List<SupplierPriceVO> addList = new ArrayList<SupplierPriceVO>();
|
||||||
|
List<SupplierPriceVO> updateList = new ArrayList<SupplierPriceVO>();
|
||||||
|
List<SupplierPriceVO> deleteList = new ArrayList<SupplierPriceVO>();
|
||||||
|
List<SupplierPriceVO> unchangedList = new ArrayList<SupplierPriceVO>();
|
||||||
|
// 区分新增和修改
|
||||||
|
//zhangxinah增加制单人制单日期修改人修改日期
|
||||||
|
String cuserid = InvocationInfoProxy.getInstance().getUserId();
|
||||||
|
List<String> orderKey = new ArrayList<>();
|
||||||
|
if (vos != null) {
|
||||||
|
for (SupplierPriceVO vo : vos) {
|
||||||
|
if (VOStatus.NEW == vo.getStatus()) {
|
||||||
|
//制单人
|
||||||
|
vo.setAttributeValue("vbdef17", cuserid);
|
||||||
|
//制单日期
|
||||||
|
vo.setAttributeValue("vbdef18", new UFDateTime());
|
||||||
|
addList.add(vo);
|
||||||
|
} else if (VOStatus.UPDATED == vo.getStatus()) {
|
||||||
|
//修改人
|
||||||
|
vo.setAttributeValue("vbdef19", cuserid);
|
||||||
|
//修改日期
|
||||||
|
vo.setAttributeValue("vbdef20", new UFDateTime());
|
||||||
|
orderKey.add(vo.getPk_supplierprice());
|
||||||
|
updateList.add(vo);
|
||||||
|
} else if (VOStatus.DELETED == vo.getStatus()) {
|
||||||
|
deleteList.add(vo);
|
||||||
|
} else {
|
||||||
|
unchangedList.add(vo);
|
||||||
|
orderKey.add(vo.getPk_supplierprice());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 调用接口保存
|
||||||
|
ISupplierPriceService service = ServiceLocator.find(ISupplierPriceService.class);
|
||||||
|
BatchOperateVO batchVO = new BatchOperateVO();
|
||||||
|
batchVO.setAddObjs(addList.toArray());
|
||||||
|
batchVO.setUpdObjs(updateList.toArray());
|
||||||
|
batchVO.setDelObjs(deleteList.toArray());
|
||||||
|
BatchOperateVO resvo = service.batchSave(batchVO, updateKeysNum);
|
||||||
|
// 转换成前台dto
|
||||||
|
List<SupplierPriceVO> voList = new ArrayList<SupplierPriceVO>();
|
||||||
|
|
||||||
|
for (String key : orderKey) {
|
||||||
|
if (resvo.getUpdObjs() != null) {
|
||||||
|
for (Object obj : resvo.getUpdObjs()) {
|
||||||
|
SupplierPriceVO vo = (SupplierPriceVO) obj;
|
||||||
|
if (key.equals(vo.getPk_supplierprice())) {
|
||||||
|
voList.add(vo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (SupplierPriceVO vo : unchangedList) {
|
||||||
|
if (key.equals(vo.getPk_supplierprice())) {
|
||||||
|
voList.add(vo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (resvo.getAddObjs() != null) {
|
||||||
|
Object[] addObjs = resvo.getAddObjs();
|
||||||
|
for (Object obj : addObjs) {
|
||||||
|
voList.add((SupplierPriceVO) obj);
|
||||||
|
}
|
||||||
|
// voList.addAll(Arrays.asList(resvo.getAddObjs()));
|
||||||
|
}
|
||||||
|
|
||||||
|
vos = voList.toArray(new SupplierPriceVO[voList.size()]);
|
||||||
|
if (vos != null && vos.length > 0) {
|
||||||
|
Grid grid = operator.toGrid(vos);
|
||||||
|
SupplierPricePrecisionProcessor util = new SupplierPricePrecisionProcessor();
|
||||||
|
util.process(grid);
|
||||||
|
return grid;
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (BusinessException e) {
|
||||||
|
ExceptionUtils.wrapException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue