PcdCleanCycleInfoAction.java
package com.mycim.webapp.actions.pcd;
import com.fa.sesa.exception.Assert;
import com.fa.sesa.exception.Errors;
import com.fa.sesa.threadlocal.LocalContext;
import com.mycim.framework.utils.lang.collections.MapUtils;
import com.mycim.framework.utils.lang.math.NumberUtils;
import com.mycim.valueobject.MessageIdList;
import com.mycim.webapp.WebUtils;
import com.mycim.webapp.actions.CarrierSetupAction;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author liuji.li
* @version 6.0.0
* @date 2019/9/11
**/
public class PcdCleanCycleInfoAction extends CarrierSetupAction {
@Override
public ActionForward init(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
viewCleanCycle(mapping, form, request, response);
return mapping.getInputForward();
}
public ActionForward savePcdDefaultCleanCycle(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
Long facilityRrn = LocalContext.getFacilityRrn();
String user = LocalContext.getUserId();
int count = carrierService.getCategoryAndTypeCount(facilityRrn);
if (count > 0) {
// 获取request中的所有周期信息
List<Map<String, Object>> defaultCleanCycleList = new ArrayList<Map<String, Object>>();
for (int i = 0; i < count; i++) {
// 组装参数
Map<String, Object> defaultCleanCycleMap = new HashMap<String, Object>();
String categoryCode = WebUtils.getParameter("categoryCode" + i, request);
String typeCode = WebUtils.getParameter("typeCode" + i, request);
String defaultCleanCycle = WebUtils.getParameter("defaultCleanCycle" + i, request);
String categoryDesc = WebUtils.getParameter("categoryDesc" + i, request);
String typeDesc = WebUtils.getParameter("typeDesc" + i, request);
Assert.isTrue(NumberUtils.isNumber(defaultCleanCycle),
Errors.create().key(MessageIdList.PCD_NUMBER_ERROR).content("{}和{}组合输入的清洗周期不是数字!")
.args(categoryDesc, typeDesc).build());
double defaultCleanCycleD = NumberUtils.toDouble(defaultCleanCycle);
defaultCleanCycleMap.put("defaultCleanCycle", defaultCleanCycleD);
defaultCleanCycleMap.put("categoryCode", categoryCode);
defaultCleanCycleMap.put("typeCode", typeCode);
defaultCleanCycleMap.put("categoryDesc", categoryDesc);
defaultCleanCycleMap.put("typeDesc", typeDesc);
defaultCleanCycleMap.put("operationUser", user);
defaultCleanCycleList.add(defaultCleanCycleMap);
}
try {
carrierService.resetCleanCycle(defaultCleanCycleList, facilityRrn, user);
} catch (Exception e) {
request.setAttribute("errorMsg", e.getMessage());
}
}
viewCleanCycle(mapping, form, request, response);
return mapping.getInputForward();
}
private void viewCleanCycle(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
Long facilityRrn = LocalContext.getFacilityRrn();
// 获取所有 category
List<Map<String, Object>> categoryList = carrierService.getAllPcdCategory(facilityRrn);
// 获取所有 type
List<Map<String, Object>> typeList = carrierService.getAllPcdType(facilityRrn);
List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>();
for (int i = 0; i < categoryList.size(); i++) {
Map<String, Object> categoryMap = categoryList.get(i);
for (int j = 0; j < typeList.size(); j++) {
Map<String, Object> typeMap = typeList.get(j);
String categoryCode = MapUtils.getString(categoryMap, "categoryCode", "");
String typeCode = MapUtils.getString(typeMap, "typeCode", "");
Map<String, Object> resultMap = new HashMap<String, Object>();
String categoryDesc = MapUtils.getString(categoryMap, "categoryDesc", "");
String typeDesc = MapUtils.getString(typeMap, "typeDesc", "");
// 获取设置过的默认清洗周期,没有置为0
double defaultCleanCycle = carrierService.getDefaultCleanCycle(categoryCode, typeCode, facilityRrn);
resultMap.put("categoryCode", categoryCode);
resultMap.put("categoryDesc", categoryDesc);
resultMap.put("typeCode", typeCode);
resultMap.put("typeDesc", typeDesc);
resultMap.put("defaultCleanCycle", defaultCleanCycle);
resultList.add(resultMap);
}
}
request.setAttribute("categoryTypeList", resultList);
}
}