public void doPrintAccount(List<ToolPersonDto> dmList,Map<String, String> queryMap, String tagPrintName){
try {
// 1. 按machineNo分组
Map<String, List<ToolPersonDto>> groupedMap = dmList.stream()
.collect(Collectors.groupingBy(ToolPersonDto::getMachineNo));
// 2. 遍历分组进行打印
for (Map.Entry<String, List<ToolPersonDto>> entry : groupedMap.entrySet()) {
List<ToolPersonDto> groupList = entry.getValue();
// 3. 获取打印数据
String json = getPrintersData(groupList, queryMap);
manageRemote.accountPrint(json, tagPrintName, queryMap.get("stationName"));
}
/* String json = getPrintersData(dmList,queryMap);
//打印清单
manageRemote.accountPrint(json, tagPrintName, queryMap.get("stationName"));*/
} catch (Exception e) {
String msg = String.format("打印个人账出错,%s,%s",tagPrintName, ExceptionUtils.getRootCauseMessage(e));
logger.fine(msg);
throw new FaceletException(msg);
}
}
private String getPrintersData(List<ToolPersonDto> dmList,Map<String, String> queryMap) {
try {
ObjectMapper mapper = new ObjectMapper();
ObjectNode node = mapper.createObjectNode();
String empNo = queryMap.get("empNo");
String empName="";
List<AccountPrintDm> accList = coverAcctRecord(dmList,empNo);
for (AccountPrintDm accountPrintDm : accList) {
if (empNo.equals(accountPrintDm.getEmpNo())){
empName=accountPrintDm.getEmpName();
}
}
if (StringUtils.isBlank(empName)) {
throw new EJBException("查询该员工个人帐报表数据不存在,打印失败");
}
AccountPrintDm oneDm = accList.get(0);
// node.put("empNo", oneDm.getEmpNo());
// node.put("empName",oneDm.getEmpName());
node.put("empNo",empNo);
node.put("empName",empName);
node.put("machineNo",oneDm.getMachineNo());
node.put("printDate",queryMap.get("printDate"));
node.put("printEmp",queryMap.get("printEmp"));
Map<String,String> map=hrEmpRemote.getEmpInfo(oneDm.getEmpNo());
String deptName = (StringUtils.isNotBlank(map.get("factoryName")) ? map.get("factoryName") : "")+(StringUtils.isNotBlank(map.get("groupName")) ? "/"+map.get("groupName") : "");
node.put("deptName", deptName);
node.put("shareMan",oneDm.getShareMan());
node.putPOJO("data", accList);
return node.toString();
}
catch (Exception e){throw new EJBException(e);}
},private List<AccountPrintDm> coverAcctRecord(List<ToolPersonDto> dmList, String empNo) {
List<AccountPrintDm> accList = new ArrayList<>();
Integer i = 0;
for (ToolPersonDto dto : dmList) {
AccountPrintDm accDm = new AccountPrintDm();
i++;
/* if(StringUtils.isNotBlank(dto.getShareOwnerNo()) && dto.getShareOwnerNo().equals(empNo)){
accDm.setShareMan(dto.getEmpNo()+"["+dto.getEmpName()+"]");
}
else{
accDm.setShareMan(StringUtils.isNotBlank(dto.getShareOwnerNo()) ? dto.getShareOwnerNo()+"["+dto.getShareOwnerName()+"]" : "");
}*/
if(StringUtils.isNotBlank(dto.getShareOwnerNo()) && dto.getShareOwnerNo().equals(empNo)){
accDm.setShareMan(dto.getEmpNo()+"["+dto.getEmpName()+"]");
logger.info(dto.getEmpNo()+"["+dto.getEmpName()+"]");
}
else{
accDm.setShareMan(StringUtils.isNotBlank(dto.getShareOwnerNo()) ? dto.getShareOwnerNo()+"["+dto.getShareOwnerName()+"]" : "");
}
accDm.setNo(i.toString());
accDm.setShareMan(StringUtils.isNotBlank(dto.getShareOwnerNo()) ? dto.getShareOwnerNo()+"["+dto.getShareOwnerName()+"]" : "");
accDm.setSerialNo(dto.getSerialNo());
accDm.setEmpNo(dto.getEmpNo());
accDm.setEmpName(dto.getEmpName());
accDm.setMachineNo(dto.getMachineNo());
accDm.setItemCode(dto.getItemCode());
accDm.setItemDesc(dto.getItemDesc());
accDm.setQty(String.valueOf(dto.getQty()) );
accDm.setSource(dto.getSource());
accList.add(accDm);
}
return accList;
}, logger.info(dto.getEmpNo()+"["+dto.getEmpName()+"]");,日志打印的数据和真实打印的数据不一样为什么?